aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.templateconf2
-rw-r--r--meta-selftest/files/static-group1
-rw-r--r--meta-selftest/lib/oeqa/runtime/cases/virgl.py2
-rw-r--r--meta-selftest/recipes-devtools/mtd/mtd-utils-selftest/0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch (renamed from meta/recipes-devtools/mtd/mtd-utils/0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch)0
-rw-r--r--meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb77
-rw-r--r--meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb7
-rw-r--r--meta-selftest/recipes-test/poison/poison.bb8
-rw-r--r--meta-selftest/recipes-test/testrpm/files/testfile.txt1
-rw-r--r--meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb18
-rw-r--r--meta-skeleton/recipes-kernel/hello-mod/files/hello.c13
-rw-r--r--meta-skeleton/recipes-skeleton/service/service_0.1.bb2
-rw-r--r--meta-skeleton/recipes-skeleton/useradd/useradd-example.bb4
-rw-r--r--meta/classes-global/base.bbclass785
-rw-r--r--meta/classes-global/buildstats.bbclass302
-rw-r--r--meta/classes-global/debian.bbclass156
-rw-r--r--meta/classes-global/devshell.bbclass166
-rw-r--r--meta/classes-global/insane.bbclass1457
-rw-r--r--meta/classes-global/license.bbclass426
-rw-r--r--meta/classes-global/logging.bbclass107
-rw-r--r--meta/classes-global/mirrors.bbclass97
-rw-r--r--meta/classes-global/package.bbclass2561
-rw-r--r--meta/classes-global/package_deb.bbclass329
-rw-r--r--meta/classes-global/package_ipk.bbclass292
-rw-r--r--meta/classes-global/package_pkgdata.bbclass173
-rw-r--r--meta/classes-global/package_rpm.bbclass755
-rw-r--r--meta/classes-global/package_tar.bbclass77
-rw-r--r--meta/classes-global/packagedata.bbclass40
-rw-r--r--meta/classes-global/patch.bbclass171
-rw-r--r--meta/classes-global/sanity.bbclass1028
-rw-r--r--meta/classes-global/sstate.bbclass1369
-rw-r--r--meta/classes-global/staging.bbclass690
-rw-r--r--meta/classes-global/uninative.bbclass179
-rw-r--r--meta/classes-global/utility-tasks.bbclass60
-rw-r--r--meta/classes-global/utils.bbclass369
-rw-r--r--meta/classes-recipe/allarch.bbclass71
-rw-r--r--meta/classes-recipe/autotools-brokensep.bbclass11
-rw-r--r--meta/classes-recipe/autotools.bbclass260
-rw-r--r--meta/classes-recipe/baremetal-image.bbclass137
-rw-r--r--meta/classes-recipe/bash-completion.bbclass13
-rw-r--r--meta/classes-recipe/bin_package.bbclass42
-rw-r--r--meta/classes-recipe/binconfig-disabled.bbclass36
-rw-r--r--meta/classes-recipe/binconfig.bbclass60
-rw-r--r--meta/classes-recipe/cargo-update-recipe-crates.bbclass45
-rw-r--r--meta/classes-recipe/cargo.bbclass96
-rw-r--r--meta/classes-recipe/cargo_common.bbclass139
-rw-r--r--meta/classes-recipe/cmake.bbclass223
-rw-r--r--meta/classes-recipe/cml1.bbclass107
-rw-r--r--meta/classes-recipe/compress_doc.bbclass269
-rw-r--r--meta/classes-recipe/core-image.bbclass86
-rw-r--r--meta/classes-recipe/cpan-base.bbclass33
-rw-r--r--meta/classes-recipe/cpan.bbclass71
-rw-r--r--meta/classes-recipe/cpan_build.bbclass47
-rw-r--r--meta/classes-recipe/cross-canadian.bbclass200
-rw-r--r--meta/classes-recipe/cross.bbclass103
-rw-r--r--meta/classes-recipe/crosssdk.bbclass57
-rw-r--r--meta/classes-recipe/deploy.bbclass18
-rw-r--r--meta/classes-recipe/devicetree.bbclass154
-rw-r--r--meta/classes-recipe/devupstream.bbclass61
-rw-r--r--meta/classes-recipe/distro_features_check.bbclass13
-rw-r--r--meta/classes-recipe/dos2unix.bbclass20
-rw-r--r--meta/classes-recipe/features_check.bbclass57
-rw-r--r--meta/classes-recipe/fontcache.bbclass63
-rw-r--r--meta/classes-recipe/fs-uuid.bbclass30
-rw-r--r--meta/classes-recipe/gconf.bbclass77
-rw-r--r--meta/classes-recipe/gettext.bbclass28
-rw-r--r--meta/classes-recipe/gi-docgen.bbclass30
-rw-r--r--meta/classes-recipe/gio-module-cache.bbclass44
-rw-r--r--meta/classes-recipe/github-releases.bbclass3
-rw-r--r--meta/classes-recipe/glide.bbclass15
-rw-r--r--meta/classes-recipe/gnomebase.bbclass37
-rw-r--r--meta/classes-recipe/go-mod.bbclass26
-rw-r--r--meta/classes-recipe/go-ptest.bbclass60
-rw-r--r--meta/classes-recipe/go.bbclass170
-rw-r--r--meta/classes-recipe/goarch.bbclass122
-rw-r--r--meta/classes-recipe/gobject-introspection-data.bbclass18
-rw-r--r--meta/classes-recipe/gobject-introspection.bbclass61
-rw-r--r--meta/classes-recipe/grub-efi-cfg.bbclass122
-rw-r--r--meta/classes-recipe/grub-efi.bbclass14
-rw-r--r--meta/classes-recipe/gsettings.bbclass48
-rw-r--r--meta/classes-recipe/gtk-doc.bbclass89
-rw-r--r--meta/classes-recipe/gtk-icon-cache.bbclass95
-rw-r--r--meta/classes-recipe/gtk-immodules-cache.bbclass82
-rw-r--r--meta/classes-recipe/image-artifact-names.bbclass28
-rw-r--r--meta/classes-recipe/image-combined-dbg.bbclass15
-rw-r--r--meta/classes-recipe/image-container.bbclass27
-rw-r--r--meta/classes-recipe/image-live.bbclass265
-rw-r--r--meta/classes-recipe/image-postinst-intercepts.bbclass29
-rw-r--r--meta/classes-recipe/image.bbclass684
-rw-r--r--meta/classes-recipe/image_types.bbclass369
-rw-r--r--meta/classes-recipe/image_types_wic.bbclass190
-rw-r--r--meta/classes-recipe/kernel-arch.bbclass74
-rw-r--r--meta/classes-recipe/kernel-artifact-names.bbclass37
-rw-r--r--meta/classes-recipe/kernel-devicetree.bbclass119
-rw-r--r--meta/classes-recipe/kernel-fitimage.bbclass831
-rw-r--r--meta/classes-recipe/kernel-grub.bbclass111
-rw-r--r--meta/classes-recipe/kernel-module-split.bbclass197
-rw-r--r--meta/classes-recipe/kernel-uboot.bbclass49
-rw-r--r--meta/classes-recipe/kernel-uimage.bbclass41
-rw-r--r--meta/classes-recipe/kernel-yocto.bbclass732
-rw-r--r--meta/classes-recipe/kernel.bbclass845
-rw-r--r--meta/classes-recipe/kernelsrc.bbclass16
-rw-r--r--meta/classes-recipe/lib_package.bbclass12
-rw-r--r--meta/classes-recipe/libc-package.bbclass390
-rw-r--r--meta/classes-recipe/license_image.bbclass295
-rw-r--r--meta/classes-recipe/linux-dummy.bbclass31
-rw-r--r--meta/classes-recipe/linux-kernel-base.bbclass47
-rw-r--r--meta/classes-recipe/linuxloader.bbclass82
-rw-r--r--meta/classes-recipe/live-vm-common.bbclass100
-rw-r--r--meta/classes-recipe/manpages.bbclass51
-rw-r--r--meta/classes-recipe/meson-routines.bbclass57
-rw-r--r--meta/classes-recipe/meson.bbclass179
-rw-r--r--meta/classes-recipe/mime-xdg.bbclass78
-rw-r--r--meta/classes-recipe/mime.bbclass76
-rw-r--r--meta/classes-recipe/module-base.bbclass27
-rw-r--r--meta/classes-recipe/module.bbclass80
-rw-r--r--meta/classes-recipe/multilib_header.bbclass58
-rw-r--r--meta/classes-recipe/multilib_script.bbclass40
-rw-r--r--meta/classes-recipe/native.bbclass236
-rw-r--r--meta/classes-recipe/nativesdk.bbclass124
-rw-r--r--meta/classes-recipe/nopackages.bbclass19
-rw-r--r--meta/classes-recipe/npm.bbclass338
-rw-r--r--meta/classes-recipe/overlayfs-etc.bbclass85
-rw-r--r--meta/classes-recipe/overlayfs.bbclass141
-rw-r--r--meta/classes-recipe/packagegroup.bbclass67
-rw-r--r--meta/classes-recipe/perl-version.bbclass72
-rw-r--r--meta/classes-recipe/perlnative.bbclass9
-rw-r--r--meta/classes-recipe/pixbufcache.bbclass69
-rw-r--r--meta/classes-recipe/pkgconfig.bbclass8
-rw-r--r--meta/classes-recipe/populate_sdk.bbclass13
-rw-r--r--meta/classes-recipe/populate_sdk_base.bbclass386
-rw-r--r--meta/classes-recipe/populate_sdk_ext.bbclass843
-rw-r--r--meta/classes-recipe/ptest-gnome.bbclass14
-rw-r--r--meta/classes-recipe/ptest-perl.bbclass36
-rw-r--r--meta/classes-recipe/ptest.bbclass142
-rw-r--r--meta/classes-recipe/pypi.bbclass34
-rw-r--r--meta/classes-recipe/python3-dir.bbclass11
-rw-r--r--meta/classes-recipe/python3native.bbclass30
-rw-r--r--meta/classes-recipe/python3targetconfig.bbclass35
-rw-r--r--meta/classes-recipe/python_flit_core.bbclass14
-rw-r--r--meta/classes-recipe/python_hatchling.bbclass9
-rw-r--r--meta/classes-recipe/python_pep517.bbclass60
-rw-r--r--meta/classes-recipe/python_poetry_core.bbclass9
-rw-r--r--meta/classes-recipe/python_pyo3.bbclass36
-rw-r--r--meta/classes-recipe/python_setuptools3_rust.bbclass17
-rw-r--r--meta/classes-recipe/python_setuptools_build_meta.bbclass9
-rw-r--r--meta/classes-recipe/qemu.bbclass77
-rw-r--r--meta/classes-recipe/qemuboot.bbclass171
-rw-r--r--meta/classes-recipe/rootfs-postcommands.bbclass476
-rw-r--r--meta/classes-recipe/rootfs_deb.bbclass41
-rw-r--r--meta/classes-recipe/rootfs_ipk.bbclass44
-rw-r--r--meta/classes-recipe/rootfs_rpm.bbclass45
-rw-r--r--meta/classes-recipe/rootfsdebugfiles.bbclass47
-rw-r--r--meta/classes-recipe/rust-bin.bbclass154
-rw-r--r--meta/classes-recipe/rust-common.bbclass174
-rw-r--r--meta/classes-recipe/rust-target-config.bbclass403
-rw-r--r--meta/classes-recipe/rust.bbclass51
-rw-r--r--meta/classes-recipe/scons.bbclass34
-rw-r--r--meta/classes-recipe/setuptools3-base.bbclass37
-rw-r--r--meta/classes-recipe/setuptools3.bbclass38
-rw-r--r--meta/classes-recipe/setuptools3_legacy.bbclass84
-rw-r--r--meta/classes-recipe/siteinfo.bbclass232
-rw-r--r--meta/classes-recipe/syslinux.bbclass194
-rw-r--r--meta/classes-recipe/systemd-boot-cfg.bbclass77
-rw-r--r--meta/classes-recipe/systemd-boot.bbclass35
-rw-r--r--meta/classes-recipe/systemd.bbclass239
-rw-r--r--meta/classes-recipe/testexport.bbclass180
-rw-r--r--meta/classes-recipe/testimage.bbclass501
-rw-r--r--meta/classes-recipe/testsdk.bbclass52
-rw-r--r--meta/classes-recipe/texinfo.bbclass24
-rw-r--r--meta/classes-recipe/toolchain-scripts-base.bbclass17
-rw-r--r--meta/classes-recipe/toolchain-scripts.bbclass236
-rw-r--r--meta/classes-recipe/uboot-config.bbclass143
-rw-r--r--meta/classes-recipe/uboot-extlinux-config.bbclass158
-rw-r--r--meta/classes-recipe/uboot-sign.bbclass447
-rw-r--r--meta/classes-recipe/update-alternatives.bbclass333
-rw-r--r--meta/classes-recipe/update-rc.d.bbclass129
-rw-r--r--meta/classes-recipe/upstream-version-is-even.bbclass11
-rw-r--r--meta/classes-recipe/vala.bbclass30
-rw-r--r--meta/classes-recipe/waf.bbclass81
-rw-r--r--meta/classes-recipe/xmlcatalog.bbclass32
-rw-r--r--meta/classes/allarch.bbclass65
-rw-r--r--meta/classes/archiver.bbclass12
-rw-r--r--meta/classes/autotools-brokensep.bbclass5
-rw-r--r--meta/classes/autotools.bbclass254
-rw-r--r--meta/classes/baremetal-image.bbclass122
-rw-r--r--meta/classes/base.bbclass783
-rw-r--r--meta/classes/bash-completion.bbclass7
-rw-r--r--meta/classes/bin_package.bbclass40
-rw-r--r--meta/classes/binconfig-disabled.bbclass30
-rw-r--r--meta/classes/binconfig.bbclass54
-rw-r--r--meta/classes/buildhistory.bbclass4
-rw-r--r--meta/classes/buildstats-summary.bbclass6
-rw-r--r--meta/classes/buildstats.bbclass296
-rw-r--r--meta/classes/cargo.bbclass91
-rw-r--r--meta/classes/cargo_common.bbclass133
-rw-r--r--meta/classes/ccache.bbclass6
-rw-r--r--meta/classes/ccmake.bbclass6
-rw-r--r--meta/classes/chrpath.bbclass6
-rw-r--r--meta/classes/cmake.bbclass217
-rw-r--r--meta/classes/cml1.bbclass101
-rw-r--r--meta/classes/compress_doc.bbclass263
-rw-r--r--meta/classes/copyleft_compliance.bbclass6
-rw-r--r--meta/classes/copyleft_filter.bbclass8
-rw-r--r--meta/classes/core-image.bbclass79
-rw-r--r--meta/classes/cpan-base.bbclass27
-rw-r--r--meta/classes/cpan.bbclass65
-rw-r--r--meta/classes/cpan_build.bbclass41
-rw-r--r--meta/classes/create-spdx-2.2.bbclass1026
-rw-r--r--meta/classes/create-spdx.bbclass1026
-rw-r--r--meta/classes/cross-canadian.bbclass196
-rw-r--r--meta/classes/cross.bbclass97
-rw-r--r--meta/classes/crosssdk.bbclass51
-rw-r--r--meta/classes/cve-check.bbclass42
-rw-r--r--meta/classes/debian.bbclass150
-rw-r--r--meta/classes/deploy.bbclass12
-rw-r--r--meta/classes/devicetree.bbclass148
-rw-r--r--meta/classes/devshell.bbclass160
-rw-r--r--meta/classes/devtool-source.bbclass6
-rw-r--r--meta/classes/devupstream.bbclass55
-rw-r--r--meta/classes/distro_features_check.bbclass7
-rw-r--r--meta/classes/distrooverrides.bbclass6
-rw-r--r--meta/classes/dos2unix.bbclass14
-rw-r--r--meta/classes/externalsrc.bbclass36
-rw-r--r--meta/classes/extrausers.bbclass6
-rw-r--r--meta/classes/features_check.bbclass54
-rw-r--r--meta/classes/fontcache.bbclass57
-rw-r--r--meta/classes/fs-uuid.bbclass24
-rw-r--r--meta/classes/gconf.bbclass71
-rw-r--r--meta/classes/gettext.bbclass22
-rw-r--r--meta/classes/gi-docgen.bbclass24
-rw-r--r--meta/classes/gio-module-cache.bbclass38
-rw-r--r--meta/classes/glide.bbclass9
-rw-r--r--meta/classes/gnomebase.bbclass31
-rw-r--r--meta/classes/go-mod.bbclass20
-rw-r--r--meta/classes/go-ptest.bbclass54
-rw-r--r--meta/classes/go.bbclass164
-rw-r--r--meta/classes/goarch.bbclass116
-rw-r--r--meta/classes/gobject-introspection-data.bbclass12
-rw-r--r--meta/classes/gobject-introspection.bbclass55
-rw-r--r--meta/classes/grub-efi-cfg.bbclass123
-rw-r--r--meta/classes/grub-efi.bbclass8
-rw-r--r--meta/classes/gsettings.bbclass42
-rw-r--r--meta/classes/gtk-doc.bbclass83
-rw-r--r--meta/classes/gtk-icon-cache.bbclass89
-rw-r--r--meta/classes/gtk-immodules-cache.bbclass76
-rw-r--r--meta/classes/icecc.bbclass53
-rw-r--r--meta/classes/image-artifact-names.bbclass22
-rw-r--r--meta/classes/image-buildinfo.bbclass2
-rw-r--r--meta/classes/image-combined-dbg.bbclass9
-rw-r--r--meta/classes/image-container.bbclass21
-rw-r--r--meta/classes/image-live.bbclass264
-rw-r--r--meta/classes/image-postinst-intercepts.bbclass23
-rw-r--r--meta/classes/image.bbclass679
-rw-r--r--meta/classes/image_types.bbclass349
-rw-r--r--meta/classes/image_types_wic.bbclass184
-rw-r--r--meta/classes/insane.bbclass1447
-rw-r--r--meta/classes/kernel-arch.bbclass68
-rw-r--r--meta/classes/kernel-artifact-names.bbclass31
-rw-r--r--meta/classes/kernel-devicetree.bbclass113
-rw-r--r--meta/classes/kernel-fitimage.bbclass797
-rw-r--r--meta/classes/kernel-grub.bbclass105
-rw-r--r--meta/classes/kernel-module-split.bbclass191
-rw-r--r--meta/classes/kernel-uboot.bbclass43
-rw-r--r--meta/classes/kernel-uimage.bbclass35
-rw-r--r--meta/classes/kernel-yocto.bbclass726
-rw-r--r--meta/classes/kernel.bbclass815
-rw-r--r--meta/classes/kernelsrc.bbclass10
-rw-r--r--meta/classes/lib_package.bbclass7
-rw-r--r--meta/classes/libc-package.bbclass384
-rw-r--r--meta/classes/license.bbclass420
-rw-r--r--meta/classes/license_image.bbclass289
-rw-r--r--meta/classes/linux-dummy.bbclass26
-rw-r--r--meta/classes/linux-kernel-base.bbclass41
-rw-r--r--meta/classes/linuxloader.bbclass76
-rw-r--r--meta/classes/live-vm-common.bbclass94
-rw-r--r--meta/classes/logging.bbclass101
-rw-r--r--meta/classes/manpages.bbclass45
-rw-r--r--meta/classes/mcextend.bbclass6
-rw-r--r--meta/classes/meson-routines.bbclass51
-rw-r--r--meta/classes/meson.bbclass173
-rw-r--r--meta/classes/metadata_scm.bbclass5
-rw-r--r--meta/classes/migrate_localcount.bbclass6
-rw-r--r--meta/classes/mime-xdg.bbclass74
-rw-r--r--meta/classes/mime.bbclass70
-rw-r--r--meta/classes/mirrors.bbclass89
-rw-r--r--meta/classes/module-base.bbclass21
-rw-r--r--meta/classes/module.bbclass74
-rw-r--r--meta/classes/multilib.bbclass6
-rw-r--r--meta/classes/multilib_global.bbclass6
-rw-r--r--meta/classes/multilib_header.bbclass52
-rw-r--r--meta/classes/multilib_script.bbclass34
-rw-r--r--meta/classes/native.bbclass230
-rw-r--r--meta/classes/nativesdk.bbclass118
-rw-r--r--meta/classes/nopackages.bbclass13
-rw-r--r--meta/classes/npm.bbclass340
-rw-r--r--meta/classes/oelint.bbclass6
-rw-r--r--meta/classes/overlayfs-etc.bbclass76
-rw-r--r--meta/classes/overlayfs.bbclass131
-rw-r--r--meta/classes/own-mirrors.bbclass7
-rw-r--r--meta/classes/package.bbclass2552
-rw-r--r--meta/classes/package_deb.bbclass327
-rw-r--r--meta/classes/package_ipk.bbclass286
-rw-r--r--meta/classes/package_pkgdata.bbclass167
-rw-r--r--meta/classes/package_rpm.bbclass755
-rw-r--r--meta/classes/package_tar.bbclass71
-rw-r--r--meta/classes/packagedata.bbclass34
-rw-r--r--meta/classes/packagegroup.bbclass61
-rw-r--r--meta/classes/patch.bbclass169
-rw-r--r--meta/classes/perl-version.bbclass66
-rw-r--r--meta/classes/perlnative.bbclass3
-rw-r--r--meta/classes/pixbufcache.bbclass63
-rw-r--r--meta/classes/pkgconfig.bbclass2
-rw-r--r--meta/classes/populate_sdk.bbclass7
-rw-r--r--meta/classes/populate_sdk_base.bbclass378
-rw-r--r--meta/classes/populate_sdk_ext.bbclass836
-rw-r--r--meta/classes/prexport.bbclass6
-rw-r--r--meta/classes/primport.bbclass6
-rw-r--r--meta/classes/ptest-gnome.bbclass8
-rw-r--r--meta/classes/ptest-perl.bbclass30
-rw-r--r--meta/classes/ptest.bbclass136
-rw-r--r--meta/classes/pypi.bbclass28
-rw-r--r--meta/classes/python3-dir.bbclass5
-rw-r--r--meta/classes/python3native.bbclass24
-rw-r--r--meta/classes/python3targetconfig.bbclass29
-rw-r--r--meta/classes/python_flit_core.bbclass8
-rw-r--r--meta/classes/python_hatchling.bbclass3
-rw-r--r--meta/classes/python_pep517.bbclass54
-rw-r--r--meta/classes/python_poetry_core.bbclass3
-rw-r--r--meta/classes/python_pyo3.bbclass30
-rw-r--r--meta/classes/python_setuptools3_rust.bbclass11
-rw-r--r--meta/classes/python_setuptools_build_meta.bbclass3
-rw-r--r--meta/classes/qemu.bbclass71
-rw-r--r--meta/classes/qemuboot.bbclass165
-rw-r--r--meta/classes/recipe_sanity.bbclass6
-rw-r--r--meta/classes/relative_symlinks.bbclass6
-rw-r--r--meta/classes/relocatable.bbclass6
-rw-r--r--meta/classes/remove-libtool.bbclass6
-rw-r--r--meta/classes/report-error.bbclass3
-rw-r--r--meta/classes/rm_work.bbclass8
-rw-r--r--meta/classes/rm_work_and_downloads.bbclass3
-rw-r--r--meta/classes/rootfs-postcommands.bbclass435
-rw-r--r--meta/classes/rootfs_deb.bbclass39
-rw-r--r--meta/classes/rootfs_ipk.bbclass38
-rw-r--r--meta/classes/rootfs_rpm.bbclass39
-rw-r--r--meta/classes/rootfsdebugfiles.bbclass41
-rw-r--r--meta/classes/rust-bin.bbclass148
-rw-r--r--meta/classes/rust-common.bbclass171
-rw-r--r--meta/classes/rust-target-config.bbclass389
-rw-r--r--meta/classes/rust.bbclass45
-rw-r--r--meta/classes/sanity.bbclass1022
-rw-r--r--meta/classes/scons.bbclass28
-rw-r--r--meta/classes/setuptools3-base.bbclass31
-rw-r--r--meta/classes/setuptools3.bbclass32
-rw-r--r--meta/classes/setuptools3_legacy.bbclass78
-rw-r--r--meta/classes/sign_ipk.bbclass6
-rw-r--r--meta/classes/sign_package_feed.bbclass6
-rw-r--r--meta/classes/sign_rpm.bbclass6
-rw-r--r--meta/classes/siteconfig.bbclass6
-rw-r--r--meta/classes/siteinfo.bbclass226
-rw-r--r--meta/classes/sstate.bbclass1358
-rw-r--r--meta/classes/staging.bbclass684
-rw-r--r--meta/classes/syslinux.bbclass194
-rw-r--r--meta/classes/systemd-boot-cfg.bbclass71
-rw-r--r--meta/classes/systemd-boot.bbclass35
-rw-r--r--meta/classes/systemd.bbclass233
-rw-r--r--meta/classes/terminal.bbclass6
-rw-r--r--meta/classes/testexport.bbclass182
-rw-r--r--meta/classes/testimage.bbclass508
-rw-r--r--meta/classes/testsdk.bbclass52
-rw-r--r--meta/classes/texinfo.bbclass18
-rw-r--r--meta/classes/toaster.bbclass2
-rw-r--r--meta/classes/toolchain-scripts-base.bbclass11
-rw-r--r--meta/classes/toolchain-scripts.bbclass230
-rw-r--r--meta/classes/typecheck.bbclass6
-rw-r--r--meta/classes/uboot-config.bbclass130
-rw-r--r--meta/classes/uboot-extlinux-config.bbclass158
-rw-r--r--meta/classes/uboot-sign.bbclass499
-rw-r--r--meta/classes/uninative.bbclass171
-rw-r--r--meta/classes/update-alternatives.bbclass327
-rw-r--r--meta/classes/update-rc.d.bbclass123
-rw-r--r--meta/classes/upstream-version-is-even.bbclass5
-rw-r--r--meta/classes/useradd-staticids.bbclass6
-rw-r--r--meta/classes/useradd.bbclass6
-rw-r--r--meta/classes/useradd_base.bbclass6
-rw-r--r--meta/classes/utility-tasks.bbclass54
-rw-r--r--meta/classes/utils.bbclass364
-rw-r--r--meta/classes/vala.bbclass24
-rw-r--r--meta/classes/waf.bbclass75
-rw-r--r--meta/classes/xmlcatalog.bbclass26
-rw-r--r--meta/classes/yocto-check-layer.bbclass6
-rw-r--r--meta/conf/bitbake.conf16
-rw-r--r--meta/conf/distro/include/default-distrovars.inc2
-rw-r--r--meta/conf/distro/include/maintainers.inc18
-rw-r--r--meta/conf/distro/include/ptest-packagelists.inc6
-rw-r--r--meta/conf/distro/include/tcmode-default.inc10
-rw-r--r--meta/conf/distro/include/yocto-uninative.inc10
-rw-r--r--meta/conf/layer.conf2
-rw-r--r--meta/conf/local.conf.sample244
-rw-r--r--meta/conf/local.conf.sample.extended389
-rw-r--r--meta/conf/machine/include/arm/arch-armv9a.inc28
-rw-r--r--meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc10
-rw-r--r--meta/conf/machine/qemux86-64.conf2
-rw-r--r--meta/conf/templates/default/bblayers.conf.sample (renamed from meta/conf/bblayers.conf.sample)0
-rw-r--r--meta/conf/templates/default/conf-notes.txt (renamed from meta/conf/conf-notes.txt)0
-rw-r--r--meta/conf/templates/default/local.conf.sample245
-rw-r--r--meta/conf/templates/default/local.conf.sample.extended389
-rw-r--r--meta/conf/templates/default/site.conf.sample (renamed from meta/conf/site.conf.sample)0
-rw-r--r--meta/conf/testexport.conf3
-rw-r--r--meta/files/layers.example.json48
-rw-r--r--meta/files/layers.schema.json76
-rw-r--r--meta/files/overlayfs-etc-preinit.sh.in23
-rw-r--r--meta/lib/bblayers/buildconf.py85
-rw-r--r--meta/lib/bblayers/create.py2
-rw-r--r--meta/lib/bblayers/makesetup.py107
-rw-r--r--meta/lib/bblayers/setupwriters/oe-setup-layers.py50
-rw-r--r--meta/lib/buildstats.py2
-rw-r--r--meta/lib/oe/__init__.py2
-rw-r--r--meta/lib/oe/cachedpath.py2
-rw-r--r--meta/lib/oe/classextend.py2
-rw-r--r--meta/lib/oe/classutils.py2
-rw-r--r--meta/lib/oe/copy_buildsystem.py2
-rw-r--r--meta/lib/oe/cve_check.py8
-rw-r--r--meta/lib/oe/data.py2
-rw-r--r--meta/lib/oe/distro_check.py2
-rw-r--r--meta/lib/oe/elf.py2
-rw-r--r--meta/lib/oe/gpg_sign.py2
-rw-r--r--meta/lib/oe/license.py2
-rw-r--r--meta/lib/oe/lsb.py2
-rw-r--r--meta/lib/oe/maketype.py2
-rw-r--r--meta/lib/oe/manifest.py2
-rw-r--r--meta/lib/oe/npm_registry.py6
-rw-r--r--meta/lib/oe/overlayfs.py8
-rw-r--r--meta/lib/oe/package.py2
-rw-r--r--meta/lib/oe/package_manager/__init__.py2
-rw-r--r--meta/lib/oe/package_manager/deb/__init__.py2
-rw-r--r--meta/lib/oe/package_manager/deb/manifest.py2
-rw-r--r--meta/lib/oe/package_manager/deb/rootfs.py2
-rw-r--r--meta/lib/oe/package_manager/deb/sdk.py2
-rw-r--r--meta/lib/oe/package_manager/ipk/__init__.py2
-rw-r--r--meta/lib/oe/package_manager/ipk/manifest.py2
-rw-r--r--meta/lib/oe/package_manager/ipk/rootfs.py2
-rw-r--r--meta/lib/oe/package_manager/ipk/sdk.py2
-rw-r--r--meta/lib/oe/package_manager/rpm/__init__.py35
-rw-r--r--meta/lib/oe/package_manager/rpm/manifest.py2
-rw-r--r--meta/lib/oe/package_manager/rpm/rootfs.py2
-rw-r--r--meta/lib/oe/package_manager/rpm/sdk.py2
-rw-r--r--meta/lib/oe/packagedata.py2
-rw-r--r--meta/lib/oe/packagegroup.py2
-rw-r--r--meta/lib/oe/patch.py2
-rw-r--r--meta/lib/oe/path.py2
-rw-r--r--meta/lib/oe/prservice.py2
-rw-r--r--meta/lib/oe/qa.py2
-rw-r--r--meta/lib/oe/reproducible.py2
-rw-r--r--meta/lib/oe/rootfs.py42
-rw-r--r--meta/lib/oe/rust.py8
-rw-r--r--meta/lib/oe/sbom.py2
-rw-r--r--meta/lib/oe/sdk.py2
-rw-r--r--meta/lib/oe/spdx.py2
-rw-r--r--meta/lib/oe/sstatesig.py14
-rw-r--r--meta/lib/oe/terminal.py2
-rw-r--r--meta/lib/oe/types.py2
-rw-r--r--meta/lib/oe/useradd.py2
-rw-r--r--meta/lib/oe/utils.py2
-rw-r--r--meta/lib/oeqa/controllers/__init__.py2
-rw-r--r--meta/lib/oeqa/controllers/testtargetloader.py2
-rw-r--r--meta/lib/oeqa/core/decorator/data.py24
-rw-r--r--meta/lib/oeqa/core/target/ssh.py4
-rw-r--r--meta/lib/oeqa/core/utils/concurrencytest.py2
-rw-r--r--meta/lib/oeqa/oetest.py22
-rw-r--r--meta/lib/oeqa/runtime/cases/_qemutiny.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/apt.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/boot.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/buildcpio.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/buildgalculator.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/buildlzip.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/connman.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/date.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/df.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/dnf.py88
-rw-r--r--meta/lib/oeqa/runtime/cases/ethernet_ip_connman.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/gcc.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/gi.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/go.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/gstreamer.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/kernelmodule.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/ksample.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/ldd.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/logrotate.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/multilib.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/oe_syslog.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/opkg.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/pam.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/parselogs.py6
-rw-r--r--meta/lib/oeqa/runtime/cases/perl.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/ping.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/ptest.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/python.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/rpm.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/rt.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/rtc.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/runlevel.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/rust.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/scons.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/scp.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/skeletoninit.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/ssh.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/stap.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/storage.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/suspend.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/systemd.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/terminal.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/usb_hid.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/weston.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/x32lib.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/xorg.py2
-rw-r--r--meta/lib/oeqa/sdk/buildtools-cases/build.py2
-rw-r--r--meta/lib/oeqa/sdk/buildtools-cases/gcc.py2
-rw-r--r--meta/lib/oeqa/sdk/buildtools-cases/https.py2
-rw-r--r--meta/lib/oeqa/sdk/buildtools-cases/sanity.py2
-rw-r--r--meta/lib/oeqa/sdk/buildtools-docs-cases/build.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/assimp.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/buildcpio.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/buildepoxy.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/buildgalculator.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/buildlzip.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/gcc.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/perl.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/python.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/rust.py2
-rw-r--r--meta/lib/oeqa/sdk/files/rust/hello/build.rs3
-rw-r--r--meta/lib/oeqa/sdk/testmetaidesupport.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/archiver.py34
-rw-r--r--meta/lib/oeqa/selftest/cases/bblayers.py47
-rw-r--r--meta/lib/oeqa/selftest/cases/bblogging.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/bbtests.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/binutils.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/buildhistory.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/buildoptions.py5
-rw-r--r--meta/lib/oeqa/selftest/cases/containerimage.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/cve_check.py6
-rw-r--r--meta/lib/oeqa/selftest/cases/debuginfod.py55
-rw-r--r--meta/lib/oeqa/selftest/cases/devtool.py8
-rw-r--r--meta/lib/oeqa/selftest/cases/distrodata.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/eSDK.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/efibootpartition.py41
-rw-r--r--meta/lib/oeqa/selftest/cases/fetch.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/fitimage.py31
-rw-r--r--meta/lib/oeqa/selftest/cases/gcc.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/gdbserver.py172
-rw-r--r--meta/lib/oeqa/selftest/cases/glibc.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/gotoolchain.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/image_typedep.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/imagefeatures.py16
-rw-r--r--meta/lib/oeqa/selftest/cases/incompatible_lic.py7
-rw-r--r--meta/lib/oeqa/selftest/cases/intercept.py6
-rw-r--r--meta/lib/oeqa/selftest/cases/kerneldevelopment.py6
-rw-r--r--meta/lib/oeqa/selftest/cases/layerappend.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/liboe.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/lic_checksum.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/manifest.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/meta_ide.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/minidebuginfo.py43
-rw-r--r--meta/lib/oeqa/selftest/cases/multiconfig.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/newlib.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/buildhistory.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/elf.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/license.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/path.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/types.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/utils.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oescripts.py11
-rw-r--r--meta/lib/oeqa/selftest/cases/overlayfs.py111
-rw-r--r--meta/lib/oeqa/selftest/cases/package.py30
-rw-r--r--meta/lib/oeqa/selftest/cases/pkgdata.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/prservice.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/pseudo.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/recipetool.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/recipeutils.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/resulttooltests.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/rootfspostcommandstests.py97
-rw-r--r--meta/lib/oeqa/selftest/cases/rpmtests.py14
-rw-r--r--meta/lib/oeqa/selftest/cases/runcmd.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/runqemu.py26
-rw-r--r--meta/lib/oeqa/selftest/cases/runtime_test.py21
-rw-r--r--meta/lib/oeqa/selftest/cases/selftest.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/signing.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/sstate.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/sstatetests.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/sysroot.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/tinfoil.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/wic.py59
-rw-r--r--meta/lib/oeqa/selftest/cases/wrapper.py5
-rw-r--r--meta/lib/oeqa/utils/__init__.py2
-rw-r--r--meta/lib/oeqa/utils/commands.py19
-rw-r--r--meta/lib/oeqa/utils/decorators.py85
-rw-r--r--meta/lib/oeqa/utils/dump.py2
-rw-r--r--meta/lib/oeqa/utils/ftools.py2
-rw-r--r--meta/lib/oeqa/utils/httpserver.py2
-rw-r--r--meta/lib/oeqa/utils/logparser.py2
-rw-r--r--meta/lib/oeqa/utils/network.py2
-rw-r--r--meta/lib/oeqa/utils/nfs.py4
-rw-r--r--meta/lib/oeqa/utils/package_manager.py2
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py47
-rw-r--r--meta/lib/oeqa/utils/subprocesstweak.py2
-rw-r--r--meta/lib/rootfspostcommands.py64
-rw-r--r--meta/recipes-bsp/acpid/acpid_2.0.33.bb6
-rw-r--r--meta/recipes-bsp/acpid/acpid_2.0.34.bb6
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi/lib-Makefile-fix-parallel-issue.patch38
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch17
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi_3.0.14.bb70
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi_3.0.15.bb69
-rw-r--r--meta/recipes-bsp/grub/files/0001-configure-Remove-obsoleted-malign-jumps-loops-functi.patch48
-rw-r--r--meta/recipes-bsp/grub/files/0002-configure-Check-for-falign-jumps-1-beside-falign-loo.patch59
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2021-3695-video-readers-png-Drop-greyscale-support-to-fix-heap.patch179
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2021-3696-video-readers-png-Avoid-heap-OOB-R-W-inserting-huff.patch50
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2021-3697-video-readers-jpeg-Block-int-underflow-wild-pointer.patch84
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2022-28733-net-ip-Do-IP-fragment-maths-safely.patch63
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2022-28734-net-http-Error-out-on-headers-with-LF-without-CR.patch58
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2022-28734-net-http-Fix-OOB-write-for-split-http-headers.patch56
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2022-28735-kern-efi-sb-Reject-non-kernel-files-in-the-shim_lock.patch111
-rw-r--r--meta/recipes-bsp/grub/files/video-Remove-trailing-whitespaces.patch693
-rw-r--r--meta/recipes-bsp/grub/files/video-readers-jpeg-Abort-sooner-if-a-read-operation-.patch264
-rw-r--r--meta/recipes-bsp/grub/files/video-readers-jpeg-Refuse-to-handle-multiple-start-o.patch53
-rw-r--r--meta/recipes-bsp/grub/grub2.inc22
-rw-r--r--meta/recipes-bsp/setserial/setserial/0001-setserial.c-Add-needed-system-headers-for-ioctl-and-.patch41
-rw-r--r--meta/recipes-bsp/setserial/setserial_2.17.bb3
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb26
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv_0.3.3.bb26
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-common.inc2
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-tools_2022.10.bb (renamed from meta/recipes-bsp/u-boot/u-boot-tools_2022.07.bb)0
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc12
-rw-r--r--meta/recipes-bsp/u-boot/u-boot_2022.07.bb9
-rw-r--r--meta/recipes-bsp/u-boot/u-boot_2022.10.bb9
-rw-r--r--meta/recipes-connectivity/avahi/avahi_0.8.bb6
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/0001-avoid-start-failure-with-bind-user.patch (renamed from meta/recipes-connectivity/bind/bind-9.18.5/0001-avoid-start-failure-with-bind-user.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/0001-named-lwresd-V-and-start-log-hide-build-options.patch (renamed from meta/recipes-connectivity/bind/bind-9.18.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/bind-ensure-searching-for-json-headers-searches-sysr.patch (renamed from meta/recipes-connectivity/bind/bind-9.18.5/bind-ensure-searching-for-json-headers-searches-sysr.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/bind9 (renamed from meta/recipes-connectivity/bind/bind-9.18.5/bind9)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/conf.patch (renamed from meta/recipes-connectivity/bind/bind-9.18.5/conf.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/generate-rndc-key.sh (renamed from meta/recipes-connectivity/bind/bind-9.18.5/generate-rndc-key.sh)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/init.d-add-support-for-read-only-rootfs.patch (renamed from meta/recipes-connectivity/bind/bind-9.18.5/init.d-add-support-for-read-only-rootfs.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/make-etc-initd-bind-stop-work.patch (renamed from meta/recipes-connectivity/bind/bind-9.18.5/make-etc-initd-bind-stop-work.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.18.8/named.service (renamed from meta/recipes-connectivity/bind/bind-9.18.5/named.service)0
-rw-r--r--meta/recipes-connectivity/bind/bind_9.18.5.bb114
-rw-r--r--meta/recipes-connectivity/bind/bind_9.18.8.bb114
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5.inc3
-rw-r--r--meta/recipes-connectivity/connman/connman.inc11
-rw-r--r--meta/recipes-connectivity/connman/connman/CVE-2022-32292.patch37
-rw-r--r--meta/recipes-connectivity/connman/connman/CVE-2022-32293_p1.patch141
-rw-r--r--meta/recipes-connectivity/connman/connman/CVE-2022-32293_p2.patch174
-rw-r--r--meta/recipes-connectivity/connman/connman/connman39
-rw-r--r--meta/recipes-connectivity/connman/connman_1.41.bb3
-rw-r--r--meta/recipes-connectivity/dhcpcd/dhcpcd_9.4.1.bb1
-rw-r--r--meta/recipes-connectivity/dhcpcd/files/0001-20-resolv.conf-improve-the-sitation-of-working-with-.patch82
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils_2.3.bb211
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils_2.4.bb211
-rw-r--r--meta/recipes-connectivity/iproute2/iproute2.inc91
-rw-r--r--meta/recipes-connectivity/iproute2/iproute2/0001-ip-ipstats.c-add-an-include-where-MIN-is-defined.patch25
-rw-r--r--meta/recipes-connectivity/iproute2/iproute2_5.19.0.bb12
-rw-r--r--meta/recipes-connectivity/iproute2/iproute2_6.0.0.bb99
-rw-r--r--meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch2
-rw-r--r--meta/recipes-connectivity/libuv/libuv_1.44.2.bb2
-rw-r--r--meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb4
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/0005-mountd-Check-for-return-of-stat-function.patch34
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/0006-Fix-function-prototypes.patch93
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.1.bb145
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.2.bb150
-rw-r--r--meta/recipes-connectivity/ofono/ofono_1.34.bb55
-rw-r--r--meta/recipes-connectivity/ofono/ofono_2.0.bb55
-rw-r--r--meta/recipes-connectivity/openssh/openssh/ssh_config6
-rw-r--r--meta/recipes-connectivity/openssh/openssh/sshd_config17
-rw-r--r--meta/recipes-connectivity/openssh/openssh_9.0p1.bb183
-rw-r--r--meta/recipes-connectivity/openssh/openssh_9.1p1.bb183
-rw-r--r--meta/recipes-connectivity/openssl/files/environment.d-openssl.sh4
-rw-r--r--meta/recipes-connectivity/openssl/openssl_3.0.5.bb258
-rw-r--r--meta/recipes-connectivity/openssl/openssl_3.0.7.bb258
-rw-r--r--meta/recipes-connectivity/resolvconf/resolvconf/0001-avoid-using-m-option-for-readlink.patch37
-rw-r--r--meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb9
-rw-r--r--meta/recipes-connectivity/socat/socat/0001-configure.ac-check-getprotobynumber_r-with-AC_TRY_LI.patch35
-rw-r--r--meta/recipes-connectivity/socat/socat_1.7.4.3.bb53
-rw-r--r--meta/recipes-connectivity/socat/socat_1.7.4.4.bb51
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0006-Make-it-possible-to-build-without-debconf-support.patch129
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0006-Make-it-possible-to-configure-whether-to-use-SELinux.patch35
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0007-Make-it-possible-to-disable-the-generation-of-the-do.patch46
-rw-r--r--meta/recipes-core/base-passwd/base-passwd_3.5.52.bb122
-rw-r--r--meta/recipes-core/base-passwd/base-passwd_3.6.1.bb124
-rw-r--r--meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch128
-rw-r--r--meta/recipes-core/busybox/busybox_1.35.0.bb1
-rw-r--r--meta/recipes-core/coreutils/coreutils_9.1.bb1
-rw-r--r--meta/recipes-core/dbus/dbus_1.14.0.bb184
-rw-r--r--meta/recipes-core/dbus/dbus_1.14.4.bb185
-rw-r--r--meta/recipes-core/dropbear/dropbear.inc128
-rw-r--r--meta/recipes-core/dropbear/dropbear/0007-Fix-X11-build-failure-use-DROPBEAR_PRIO_LOWDELAY.patch28
-rw-r--r--meta/recipes-core/dropbear/dropbear_2022.82.bb132
-rw-r--r--meta/recipes-core/ell/ell_0.52.bb22
-rw-r--r--meta/recipes-core/ell/ell_0.54.bb22
-rw-r--r--meta/recipes-core/expat/expat_2.4.8.bb31
-rw-r--r--meta/recipes-core/expat/expat_2.5.0.bb32
-rw-r--r--meta/recipes-core/gettext/gettext-0.21.1/0001-init-env.in-do-not-add-C-CXX-parameters.patch (renamed from meta/recipes-core/gettext/gettext-0.21/0001-init-env.in-do-not-add-C-CXX-parameters.patch)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch (renamed from meta/recipes-core/gettext/gettext-0.21/0001-tests-autopoint-3-unset-MAKEFLAGS.patch)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21.1/parallel.patch (renamed from meta/recipes-core/gettext/gettext-0.21/parallel.patch)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21.1/run-ptest (renamed from meta/recipes-core/gettext/gettext-0.21/run-ptest)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21.1/serial-tests-config.patch (renamed from meta/recipes-core/gettext/gettext-0.21/serial-tests-config.patch)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21.1/use-pkgconfig.patch709
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/0001-libtextstyle-fix-builds-with-automake-1.16.4-and-new.patch29
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch23
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/mingw.patch28
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch699
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/COPYING (renamed from meta/recipes-core/gettext/gettext-minimal-0.21/COPYING)0
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/Makefile.in.in (renamed from meta/recipes-core/gettext/gettext-minimal-0.21/Makefile.in.in)0
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/gettext.m4386
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/host-cpu-c-abi.m4678
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/iconv.m4283
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/intlmacosx.m465
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-ld.m4168
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-link.m4813
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-prefix.m4323
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/nls.m432
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/po.m4454
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/progtest.m491
-rwxr-xr-xmeta/recipes-core/gettext/gettext-minimal-0.21.1/config.rpath684
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21.1/remove-potcdate.sin (renamed from meta/recipes-core/gettext/gettext-minimal-0.21/remove-potcdate.sin)0
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4386
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4675
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4288
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m465
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4168
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4800
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4320
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/nls.m432
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4450
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m491
-rwxr-xr-xmeta/recipes-core/gettext/gettext-minimal-0.21/config.rpath684
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-native_0.21.1.bb (renamed from meta/recipes-core/gettext/gettext-minimal-native_0.21.bb)0
-rw-r--r--meta/recipes-core/gettext/gettext_0.21.1.bb215
-rw-r--r--meta/recipes-core/gettext/gettext_0.21.bb218
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch39
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch14
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch46
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-g-file-info-don-t-assume-million-in-one-ev.patch50
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-meson.build-do-not-use-can_run_host_binari.patch48
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch123
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/cpp-null.patch77
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/cpp-null2.patch31
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch8
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/run-ptest1
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.72.3.bb53
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.74.1.bb55
-rw-r--r--meta/recipes-core/glib-2.0/glib.inc16
-rw-r--r--meta/recipes-core/glib-networking/glib-networking_2.72.1.bb38
-rw-r--r--meta/recipes-core/glib-networking/glib-networking_2.74.0.bb38
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.35.bb54
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.36.bb54
-rw-r--r--meta/recipes-core/glibc/glibc-common.inc2
-rw-r--r--meta/recipes-core/glibc/glibc-locale.inc16
-rw-r--r--meta/recipes-core/glibc/glibc-locale_2.36.bb (renamed from meta/recipes-core/glibc/glibc-locale_2.35.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-mtrace_2.36.bb (renamed from meta/recipes-core/glibc/glibc-mtrace_2.35.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-scripts_2.36.bb (renamed from meta/recipes-core/glibc/glibc-scripts_2.35.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-tests_2.35.bb120
-rw-r--r--meta/recipes-core/glibc/glibc-tests_2.36.bb119
-rw-r--r--meta/recipes-core/glibc/glibc-testsuite_2.36.bb (renamed from meta/recipes-core/glibc/glibc-testsuite_2.35.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-version.inc6
-rw-r--r--meta/recipes-core/glibc/glibc/0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch128
-rw-r--r--meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch8
-rw-r--r--meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch6
-rw-r--r--meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch22
-rw-r--r--meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch6
-rw-r--r--meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch12
-rw-r--r--meta/recipes-core/glibc/glibc/0008-nativesdk-glibc-Fall-back-to-faccessat-on-faccess2-r.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0009-yes-within-the-path-sets-wrong-config-variables.patch30
-rw-r--r--meta/recipes-core/glibc/glibc/0010-eglibc-Cross-building-and-testing-instructions.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0011-eglibc-Help-bootstrap-cross-toolchain.patch8
-rw-r--r--meta/recipes-core/glibc/glibc/0012-eglibc-Resolve-__fpscr_values-on-SH4.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0013-eglibc-Forward-port-cross-locale-generation-support.patch46
-rw-r--r--meta/recipes-core/glibc/glibc/0014-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0015-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch53
-rw-r--r--meta/recipes-core/glibc/glibc/0016-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch53
-rw-r--r--meta/recipes-core/glibc/glibc/0016-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch29
-rw-r--r--meta/recipes-core/glibc/glibc/0017-powerpc-Do-not-ask-compiler-for-finding-arch.patch48
-rw-r--r--meta/recipes-core/glibc/glibc/0017-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch29
-rw-r--r--meta/recipes-core/glibc/glibc/0018-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch19
-rw-r--r--meta/recipes-core/glibc/glibc/0019-Replace-echo-with-printf-builtin-in-nscd-init-script.patch79
-rw-r--r--meta/recipes-core/glibc/glibc/0019-powerpc-Do-not-ask-compiler-for-finding-arch.patch48
-rw-r--r--meta/recipes-core/glibc/glibc/0020-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch40
-rw-r--r--meta/recipes-core/glibc/glibc/0021-Replace-echo-with-printf-builtin-in-nscd-init-script.patch79
-rw-r--r--meta/recipes-core/glibc/glibc/0021-timezone-Make-shell-interpreter-overridable-in-tzsel.patch47
-rw-r--r--meta/recipes-core/glibc/glibc/0022-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch39
-rw-r--r--meta/recipes-core/glibc/glibc/0022-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch27
-rw-r--r--meta/recipes-core/glibc/glibc/0023-fix-create-thread-failed-in-unprivileged-process-BZ-.patch86
-rw-r--r--meta/recipes-core/glibc/glibc/0023-timezone-Make-shell-interpreter-overridable-in-tzsel.patch47
-rw-r--r--meta/recipes-core/glibc/glibc/0024-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch32
-rw-r--r--meta/recipes-core/glibc/glibc/0024-fix-create-thread-failed-in-unprivileged-process-BZ-.patch88
-rw-r--r--meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch28
-rw-r--r--meta/recipes-core/glibc/glibc/reproducible-paths.patch23
-rw-r--r--meta/recipes-core/glibc/glibc_2.35.bb125
-rw-r--r--meta/recipes-core/glibc/glibc_2.36.bb129
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.37.bb57
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.39.bb57
-rw-r--r--meta/recipes-core/images/build-appliance-image_15.0.0.bb2
-rw-r--r--meta/recipes-core/initscripts/init-system-helpers_1.64.bb41
-rw-r--r--meta/recipes-core/initscripts/init-system-helpers_1.65.2.bb42
-rw-r--r--meta/recipes-core/kbd/kbd_2.5.1.bb1
-rw-r--r--meta/recipes-core/libcgroup/libcgroup/0001-api-Use-GNU-strerror_r-when-available.patch55
-rw-r--r--meta/recipes-core/libcgroup/libcgroup_2.0.2.bb33
-rw-r--r--meta/recipes-core/libcgroup/libcgroup_3.0.0.bb35
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.30.bb (renamed from meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.28.bb)0
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt.inc2
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt_4.4.30.bb (renamed from meta/recipes-core/libxcrypt/libxcrypt_4.4.28.bb)0
-rw-r--r--meta/recipes-core/libxml/libxml2/0001-Port-gentest.py-to-Python-3.patch814
-rw-r--r--meta/recipes-core/libxml/libxml2_2.9.14.bb18
-rw-r--r--meta/recipes-core/meta/buildtools-tarball.bb2
-rw-r--r--meta/recipes-core/meta/cve-update-db-native.bb60
-rw-r--r--meta/recipes-core/meta/testexport-tarball.bb2
-rw-r--r--meta/recipes-core/musl/gcompat/0001-auxv-new-module.patch59
-rw-r--r--meta/recipes-core/musl/gcompat_git.bb7
-rw-r--r--meta/recipes-core/musl/libc-test/run-ptest28
-rw-r--r--meta/recipes-core/musl/libc-test_git.bb51
-rw-r--r--meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch18
-rw-r--r--meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch20
-rw-r--r--meta/recipes-core/musl/musl_git.bb2
-rw-r--r--meta/recipes-core/ncurses/files/exit_prototype.patch22
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.3+20220423.bb1
-rw-r--r--meta/recipes-core/netbase/netbase_6.3.bb23
-rw-r--r--meta/recipes-core/netbase/netbase_6.4.bb25
-rw-r--r--meta/recipes-core/os-release/os-release.bb5
-rw-r--r--meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch2
-rw-r--r--meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch7
-rw-r--r--meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch45
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb5
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-base.bb5
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb4
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-self-hosted.bb5
-rw-r--r--meta/recipes-core/psplash/psplash_git.bb2
-rw-r--r--meta/recipes-core/readline/readline.inc2
-rw-r--r--meta/recipes-core/readline/readline/configure-fix.patch35
-rw-r--r--meta/recipes-core/readline/readline_8.1.2.bb7
-rw-r--r--meta/recipes-core/readline/readline_8.2.bb5
-rw-r--r--meta/recipes-core/systemd/systemd-boot_251.8.bb (renamed from meta/recipes-core/systemd/systemd-boot_251.3.bb)0
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl11
-rw-r--r--meta/recipes-core/systemd/systemd.inc2
-rw-r--r--meta/recipes-core/systemd/systemd/00-create-volatile.conf1
-rw-r--r--meta/recipes-core/systemd/systemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch97
-rw-r--r--meta/recipes-core/systemd/systemd_251.3.bb797
-rw-r--r--meta/recipes-core/systemd/systemd_251.8.bb801
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab/start_getty6
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/install.patch2
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch17
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_3.04.bb1
-rw-r--r--meta/recipes-core/udev/eudev_3.2.11.bb7
-rw-r--r--meta/recipes-core/util-linux/util-linux.inc1
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-configure.ac-Improve-check-for-magic.patch40
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.38.1.bb3
-rw-r--r--meta/recipes-core/zlib/zlib/0001-Correct-incorrect-inputs-provided-to-the-CRC-functio.patch54
-rw-r--r--meta/recipes-core/zlib/zlib/cc.patch27
-rw-r--r--meta/recipes-core/zlib/zlib/ldflags-tests.patch45
-rw-r--r--meta/recipes-core/zlib/zlib_1.2.12.bb42
-rw-r--r--meta/recipes-core/zlib/zlib_1.2.13.bb47
-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-Remove-using-std-binary_function.patch87
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch4
-rw-r--r--meta/recipes-devtools/apt/apt/0001-typecast-time_t-and-suseconds_t-from-std-chrono.patch64
-rw-r--r--meta/recipes-devtools/apt/apt/0002-interactive-helper-Undefine-_FORTIFY_SOURCE.patch27
-rw-r--r--meta/recipes-devtools/apt/apt_2.4.5.bb5
-rw-r--r--meta/recipes-devtools/autoconf-archive/autoconf-archive_2022.02.11.bb17
-rw-r--r--meta/recipes-devtools/autoconf-archive/autoconf-archive_2022.09.03.bb17
-rw-r--r--meta/recipes-devtools/autoconf/autoconf/0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch138
-rw-r--r--meta/recipes-devtools/autoconf/autoconf_2.71.bb1
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.38.inc37
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.39.inc43
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-canadian.inc4
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-canadian_2.39.bb (renamed from meta/recipes-devtools/binutils/binutils-cross-canadian_2.38.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-testsuite_2.39.bb (renamed from meta/recipes-devtools/binutils/binutils-cross-testsuite_2.38.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross.inc1
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross_2.39.bb (renamed from meta/recipes-devtools/binutils/binutils-cross_2.38.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-crosssdk_2.39.bb (renamed from meta/recipes-devtools/binutils/binutils-crosssdk_2.38.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils.inc19
-rw-r--r--meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch2
-rw-r--r--meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch2
-rw-r--r--meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch16
-rw-r--r--meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch10
-rw-r--r--meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch37
-rw-r--r--meta/recipes-devtools/binutils/binutils/0005-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch32
-rw-r--r--meta/recipes-devtools/binutils/binutils/0006-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch32
-rw-r--r--meta/recipes-devtools/binutils/binutils/0006-warn-for-uses-of-system-directories-when-cross-linki.patch288
-rw-r--r--meta/recipes-devtools/binutils/binutils/0007-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch37
-rw-r--r--meta/recipes-devtools/binutils/binutils/0007-warn-for-uses-of-system-directories-when-cross-linki.patch288
-rw-r--r--meta/recipes-devtools/binutils/binutils/0008-Use-libtool-2.4.patch31741
-rw-r--r--meta/recipes-devtools/binutils/binutils/0008-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch37
-rw-r--r--meta/recipes-devtools/binutils/binutils/0009-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch49
-rw-r--r--meta/recipes-devtools/binutils/binutils/0009-Use-libtool-2.4.patch25302
-rw-r--r--meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch49
-rw-r--r--meta/recipes-devtools/binutils/binutils/0010-sync-with-OE-libtool-changes.patch86
-rw-r--r--meta/recipes-devtools/binutils/binutils/0011-Check-for-clang-before-checking-gcc-version.patch45
-rw-r--r--meta/recipes-devtools/binutils/binutils/0011-sync-with-OE-libtool-changes.patch86
-rw-r--r--meta/recipes-devtools/binutils/binutils/0012-Check-for-clang-before-checking-gcc-version.patch45
-rw-r--r--meta/recipes-devtools/binutils/binutils/0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch38
-rw-r--r--meta/recipes-devtools/binutils/binutils/0013-Avoid-as-info-race-condition.patch75
-rw-r--r--meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch36
-rw-r--r--meta/recipes-devtools/binutils/binutils/0014-CVE-2019-1010204.patch49
-rw-r--r--meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch350
-rw-r--r--meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch536
-rw-r--r--meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch95
-rw-r--r--meta/recipes-devtools/binutils/binutils_2.38.bb69
-rw-r--r--meta/recipes-devtools/binutils/binutils_2.39.bb75
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-device-utils.c-Use-linux-mount.h-instead-of-sys-moun.patch32
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools_5.18.1.bb73
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.1.bb72
-rw-r--r--meta/recipes-devtools/cargo/cargo.inc2
-rw-r--r--meta/recipes-devtools/cargo/cargo_1.65.0.bb (renamed from meta/recipes-devtools/cargo/cargo_1.62.0.bb)0
-rw-r--r--meta/recipes-devtools/ccache/ccache_4.6.1.bb28
-rw-r--r--meta/recipes-devtools/ccache/ccache_4.7.2.bb26
-rw-r--r--meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch8
-rw-r--r--meta/recipes-devtools/cmake/cmake-native_3.23.2.bb64
-rw-r--r--meta/recipes-devtools/cmake/cmake-native_3.24.2.bb65
-rw-r--r--meta/recipes-devtools/cmake/cmake.inc6
-rw-r--r--meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch56
-rw-r--r--meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch79
-rw-r--r--meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake5
-rw-r--r--meta/recipes-devtools/cmake/cmake_3.24.2.bb (renamed from meta/recipes-devtools/cmake/cmake_3.23.2.bb)0
-rw-r--r--meta/recipes-devtools/diffstat/diffstat_1.64.bb27
-rw-r--r--meta/recipes-devtools/diffstat/diffstat_1.65.bb27
-rw-r--r--meta/recipes-devtools/dnf/dnf_4.13.0.bb90
-rw-r--r--meta/recipes-devtools/dnf/dnf_4.14.0.bb96
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools_4.2.bb6
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.187.bb170
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.188.bb171
-rw-r--r--meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch8
-rw-r--r--meta/recipes-devtools/expect/expect/0001-Add-prototype-to-function-definitions.patch113
-rw-r--r--meta/recipes-devtools/expect/expect_5.45.4.bb3
-rw-r--r--meta/recipes-devtools/fdisk/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch59
-rw-r--r--meta/recipes-devtools/fdisk/gptfdisk/0001-Updated-guid.cc-to-deal-with-minor-change-in-libuuid.patch27
-rw-r--r--meta/recipes-devtools/fdisk/gptfdisk_1.0.9.bb2
-rw-r--r--meta/recipes-devtools/file/file_5.42.bb54
-rw-r--r--meta/recipes-devtools/file/file_5.43.bb54
-rw-r--r--meta/recipes-devtools/flex/flex_2.6.4.bb8
-rw-r--r--meta/recipes-devtools/gcc/gcc-12.1.inc116
-rw-r--r--meta/recipes-devtools/gcc/gcc-12.2.inc114
-rw-r--r--meta/recipes-devtools/gcc/gcc-common.inc10
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian.inc3
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian_12.2.bb (renamed from meta/recipes-devtools/gcc/gcc-cross-canadian_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross_12.2.bb (renamed from meta/recipes-devtools/gcc/gcc-cross_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-crosssdk_12.2.bb (renamed from meta/recipes-devtools/gcc/gcc-crosssdk_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-multilib-config.inc2
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime.inc17
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime_12.2.bb (renamed from meta/recipes-devtools/gcc/gcc-runtime_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-sanitizers_12.2.bb (renamed from meta/recipes-devtools/gcc/gcc-sanitizers_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-shared-source.inc10
-rw-r--r--meta/recipes-devtools/gcc/gcc-source.inc9
-rw-r--r--meta/recipes-devtools/gcc/gcc-source_12.2.bb (renamed from meta/recipes-devtools/gcc/gcc-source_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-target.inc2
-rw-r--r--meta/recipes-devtools/gcc/gcc/0001-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch45
-rw-r--r--meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch43
-rw-r--r--meta/recipes-devtools/gcc/gcc/0012-export-CPP.patch50
-rw-r--r--meta/recipes-devtools/gcc/gcc/0022-mingw32-Enable-operation_not_supported.patch26
-rw-r--r--meta/recipes-devtools/gcc/gcc/0025-Move-sched.h-include-ahead-of-user-headers.patch56
-rw-r--r--meta/recipes-devtools/gcc/gcc/hardcoded-paths.patch19
-rw-r--r--meta/recipes-devtools/gcc/gcc/prefix-map-realpath.patch63
-rw-r--r--meta/recipes-devtools/gcc/gcc_12.2.bb (renamed from meta/recipes-devtools/gcc/gcc_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgcc-common.inc3
-rw-r--r--meta/recipes-devtools/gcc/libgcc-initial_12.2.bb (renamed from meta/recipes-devtools/gcc/libgcc-initial_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgcc_12.2.bb (renamed from meta/recipes-devtools/gcc/libgcc_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgfortran_12.2.bb (renamed from meta/recipes-devtools/gcc/libgfortran_12.1.bb)0
-rw-r--r--meta/recipes-devtools/gdb/gdb.inc1
-rw-r--r--meta/recipes-devtools/gdb/gdb/readline-8.2.patch39
-rw-r--r--meta/recipes-devtools/git/git_2.37.1.bb168
-rw-r--r--meta/recipes-devtools/git/git_2.38.1.bb169
-rw-r--r--meta/recipes-devtools/gnu-config/gnu-config_git.bb4
-rw-r--r--meta/recipes-devtools/go/go-1.19.3.inc18
-rw-r--r--meta/recipes-devtools/go/go-1.19.inc19
-rw-r--r--meta/recipes-devtools/go/go-binary-native_1.19.3.bb48
-rw-r--r--meta/recipes-devtools/go/go-binary-native_1.19.bb46
-rw-r--r--meta/recipes-devtools/go/go-cross-canadian_1.19.3.bb (renamed from meta/recipes-devtools/go/go-cross-canadian_1.19.bb)0
-rw-r--r--meta/recipes-devtools/go/go-cross_1.19.3.bb (renamed from meta/recipes-devtools/go/go-cross_1.19.bb)0
-rw-r--r--meta/recipes-devtools/go/go-crosssdk_1.19.3.bb (renamed from meta/recipes-devtools/go/go-crosssdk_1.19.bb)0
-rw-r--r--meta/recipes-devtools/go/go-native_1.19.3.bb58
-rw-r--r--meta/recipes-devtools/go/go-native_1.19.bb58
-rw-r--r--meta/recipes-devtools/go/go-runtime.inc2
-rw-r--r--meta/recipes-devtools/go/go-runtime_1.19.3.bb (renamed from meta/recipes-devtools/go/go-runtime_1.19.bb)0
-rw-r--r--meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch8
-rw-r--r--meta/recipes-devtools/go/go/filter-build-paths.patch3
-rw-r--r--meta/recipes-devtools/go/go/stack-protector.patch32
-rw-r--r--meta/recipes-devtools/go/go_1.19.3.bb (renamed from meta/recipes-devtools/go/go_1.19.bb)0
-rw-r--r--meta/recipes-devtools/jquery/jquery_3.6.0.bb39
-rw-r--r--meta/recipes-devtools/jquery/jquery_3.6.1.bb39
-rw-r--r--meta/recipes-devtools/json-c/json-c/0001-Fix-build-with-clang-15.patch34
-rw-r--r--meta/recipes-devtools/json-c/json-c/run-ptest20
-rw-r--r--meta/recipes-devtools/json-c/json-c_0.16.bb18
-rw-r--r--meta/recipes-devtools/libcomps/libcomps_0.1.18.bb23
-rw-r--r--meta/recipes-devtools/libcomps/libcomps_0.1.19.bb23
-rw-r--r--meta/recipes-devtools/libdnf/libdnf_0.67.0.bb36
-rw-r--r--meta/recipes-devtools/libdnf/libdnf_0.69.0.bb36
-rw-r--r--meta/recipes-devtools/libedit/libedit_20210910-3.1.bb24
-rw-r--r--meta/recipes-devtools/libedit/libedit_20221030-3.1.bb24
-rw-r--r--meta/recipes-devtools/librepo/librepo_1.14.3.bb29
-rw-r--r--meta/recipes-devtools/librepo/librepo_1.14.5.bb29
-rw-r--r--meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch90
-rw-r--r--meta/recipes-devtools/llvm/llvm/llvm-config51
-rw-r--r--meta/recipes-devtools/llvm/llvm_git.bb18
-rw-r--r--meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch38
-rw-r--r--meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch41
-rw-r--r--meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch33
-rw-r--r--meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch36
-rw-r--r--meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch79
-rw-r--r--meta/recipes-devtools/make/make/sigpipe.patch42
-rw-r--r--meta/recipes-devtools/make/make_4.3.bb18
-rw-r--r--meta/recipes-devtools/make/make_4.4.bb14
-rw-r--r--meta/recipes-devtools/meson/meson/0001-is_debianlike-always-return-False.patch15
-rwxr-xr-xmeta/recipes-devtools/meson/meson/meson-wrapper21
-rw-r--r--meta/recipes-devtools/meson/meson_0.63.0.bb158
-rw-r--r--meta/recipes-devtools/meson/meson_0.64.0.bb156
-rw-r--r--meta/recipes-devtools/mmc/mmc-utils_git.bb2
-rw-r--r--meta/recipes-devtools/mtd/mtd-utils/add-exclusion-to-mkfs-jffs2-git-2.patch105
-rw-r--r--meta/recipes-devtools/mtd/mtd-utils_git.bb9
-rw-r--r--meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch6
-rw-r--r--meta/recipes-devtools/mtools/mtools_4.0.40.bb49
-rw-r--r--meta/recipes-devtools/mtools/mtools_4.0.42.bb49
-rw-r--r--meta/recipes-devtools/ninja/ninja_1.11.0.bb31
-rw-r--r--meta/recipes-devtools/ninja/ninja_1.11.1.bb31
-rw-r--r--meta/recipes-devtools/opkg-utils/opkg-utils_0.5.0.bb6
-rw-r--r--meta/recipes-devtools/opkg/opkg_0.6.0.bb5
-rw-r--r--meta/recipes-devtools/orc/orc_0.4.32.bb30
-rw-r--r--meta/recipes-devtools/orc/orc_0.4.33.bb30
-rw-r--r--meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch65
-rw-r--r--meta/recipes-devtools/patchelf/patchelf_0.14.5.bb18
-rw-r--r--meta/recipes-devtools/patchelf/patchelf_0.16.1.bb17
-rw-r--r--meta/recipes-devtools/perl-cross/files/0001-Makefile-correctly-list-modules-when-cleaning-them.patch24
-rw-r--r--meta/recipes-devtools/perl-cross/files/0001-Makefile-do-not-clean-config.h-xconfig.h.patch28
-rw-r--r--meta/recipes-devtools/perl-cross/files/0001-configure_func.sh-Add-_GNU_SOURCE-define-and-functio.patch485
-rw-r--r--meta/recipes-devtools/perl-cross/perlcross_1.4.bb9
-rw-r--r--meta/recipes-devtools/perl/libtest-fatal-perl_0.016.bb36
-rw-r--r--meta/recipes-devtools/perl/libtest-warnings-perl_0.031.bb39
-rw-r--r--meta/recipes-devtools/perl/libtry-tiny-perl_0.31.bb36
-rw-r--r--meta/recipes-devtools/perl/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch110
-rw-r--r--meta/recipes-devtools/perl/liburi-perl_5.08.bb50
-rw-r--r--meta/recipes-devtools/perl/liburi-perl_5.17.bb56
-rw-r--r--meta/recipes-devtools/perl/perl_5.36.0.bb10
-rw-r--r--meta/recipes-devtools/pkgconf/pkgconf_1.8.0.bb67
-rw-r--r--meta/recipes-devtools/pkgconf/pkgconf_1.9.3.bb67
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb2
-rw-r--r--meta/recipes-devtools/python/python3-babel_2.10.3.bb26
-rw-r--r--meta/recipes-devtools/python/python3-babel_2.11.0.bb26
-rw-r--r--meta/recipes-devtools/python/python3-bcrypt-crates.inc53
-rw-r--r--meta/recipes-devtools/python/python3-bcrypt_3.2.2.bb30
-rw-r--r--meta/recipes-devtools/python/python3-bcrypt_4.0.1.bb32
-rw-r--r--meta/recipes-devtools/python/python3-certifi_2022.6.15.bb14
-rw-r--r--meta/recipes-devtools/python/python3-certifi_2022.9.24.bb14
-rw-r--r--meta/recipes-devtools/python/python3-cryptography-crates.inc58
-rw-r--r--meta/recipes-devtools/python/python3-cryptography-vectors_37.0.4.bb29
-rw-r--r--meta/recipes-devtools/python/python3-cryptography-vectors_38.0.3.bb29
-rw-r--r--meta/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch29
-rw-r--r--meta/recipes-devtools/python/python3-cryptography_37.0.4.bb115
-rw-r--r--meta/recipes-devtools/python/python3-cryptography_38.0.3.bb72
-rw-r--r--meta/recipes-devtools/python/python3-cython_0.29.32.bb18
-rw-r--r--meta/recipes-devtools/python/python3-dbus_1.2.18.bb25
-rw-r--r--meta/recipes-devtools/python/python3-dbus_1.3.2.bb23
-rw-r--r--meta/recipes-devtools/python/python3-dtschema_2022.11.bb15
-rw-r--r--meta/recipes-devtools/python/python3-dtschema_2022.8.bb15
-rw-r--r--meta/recipes-devtools/python/python3-flit-core_3.7.1.bb37
-rw-r--r--meta/recipes-devtools/python/python3-flit-core_3.8.0.bb37
-rw-r--r--meta/recipes-devtools/python/python3-git_3.1.27.bb32
-rw-r--r--meta/recipes-devtools/python/python3-git_3.1.29.bb32
-rw-r--r--meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_22.8.0.bb14
-rw-r--r--meta/recipes-devtools/python/python3-hatchling_1.11.1.bb17
-rw-r--r--meta/recipes-devtools/python/python3-hatchling_1.6.0.bb17
-rw-r--r--meta/recipes-devtools/python/python3-hypothesis_6.54.1.bb38
-rw-r--r--meta/recipes-devtools/python/python3-hypothesis_6.57.1.bb38
-rw-r--r--meta/recipes-devtools/python/python3-idna_3.3.bb19
-rw-r--r--meta/recipes-devtools/python/python3-idna_3.4.bb14
-rw-r--r--meta/recipes-devtools/python/python3-importlib-metadata_4.12.0.bb20
-rw-r--r--meta/recipes-devtools/python/python3-importlib-metadata_5.0.0.bb20
-rw-r--r--meta/recipes-devtools/python/python3-iso8601_1.0.2.bb15
-rw-r--r--meta/recipes-devtools/python/python3-iso8601_1.1.0.bb15
-rw-r--r--meta/recipes-devtools/python/python3-jsonschema_4.17.0.bb48
-rw-r--r--meta/recipes-devtools/python/python3-jsonschema_4.9.1.bb48
-rw-r--r--meta/recipes-devtools/python/python3-lxml_4.9.1.bb42
-rw-r--r--meta/recipes-devtools/python/python3-mako_1.2.1.bb20
-rw-r--r--meta/recipes-devtools/python/python3-mako_1.2.3.bb20
-rw-r--r--meta/recipes-devtools/python/python3-more-itertools_8.13.0.bb27
-rw-r--r--meta/recipes-devtools/python/python3-more-itertools_9.0.0.bb27
-rw-r--r--meta/recipes-devtools/python/python3-numpy_1.23.1.bb73
-rw-r--r--meta/recipes-devtools/python/python3-numpy_1.23.4.bb72
-rw-r--r--meta/recipes-devtools/python/python3-pathspec_0.10.1.bb11
-rw-r--r--meta/recipes-devtools/python/python3-pathspec_0.9.0.bb11
-rw-r--r--meta/recipes-devtools/python/python3-pbr_5.11.0.bb4
-rw-r--r--meta/recipes-devtools/python/python3-pbr_5.9.0.bb4
-rw-r--r--meta/recipes-devtools/python/python3-pip/reproducible.patch83
-rw-r--r--meta/recipes-devtools/python/python3-pip_22.2.2.bb63
-rw-r--r--meta/recipes-devtools/python/python3-pip_22.3.1.bb61
-rw-r--r--meta/recipes-devtools/python/python3-poetry-core_1.0.8.bb44
-rw-r--r--meta/recipes-devtools/python/python3-poetry-core_1.3.2.bb45
-rw-r--r--meta/recipes-devtools/python/python3-psutil_5.9.1.bb27
-rw-r--r--meta/recipes-devtools/python/python3-psutil_5.9.4.bb27
-rw-r--r--meta/recipes-devtools/python/python3-pycairo_1.21.0.bb6
-rw-r--r--meta/recipes-devtools/python/python3-pyelftools_0.28.bb15
-rw-r--r--meta/recipes-devtools/python/python3-pyelftools_0.29.bb15
-rw-r--r--meta/recipes-devtools/python/python3-pygments_2.12.0.bb19
-rw-r--r--meta/recipes-devtools/python/python3-pygments_2.13.0.bb19
-rw-r--r--meta/recipes-devtools/python/python3-pyopenssl_22.0.0.bb23
-rw-r--r--meta/recipes-devtools/python/python3-pyopenssl_22.1.0.bb23
-rw-r--r--meta/recipes-devtools/python/python3-pyrsistent_0.18.1.bb14
-rw-r--r--meta/recipes-devtools/python/python3-pyrsistent_0.19.2.bb14
-rw-r--r--meta/recipes-devtools/python/python3-pytest-subtests_0.8.0.bb20
-rw-r--r--meta/recipes-devtools/python/python3-pytest-subtests_0.9.0.bb20
-rw-r--r--meta/recipes-devtools/python/python3-pytest_7.1.2.bb41
-rw-r--r--meta/recipes-devtools/python/python3-pytest_7.2.0.bb41
-rw-r--r--meta/recipes-devtools/python/python3-pytz_2022.1.bb35
-rw-r--r--meta/recipes-devtools/python/python3-pytz_2022.6.bb35
-rw-r--r--meta/recipes-devtools/python/python3-requests_2.28.1.bb1
-rw-r--r--meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb2
-rw-r--r--meta/recipes-devtools/python/python3-setuptools-rust/8e9892f08b1248dc03862da86915c2745e0ff7ec.patch221
-rw-r--r--meta/recipes-devtools/python/python3-setuptools-rust_1.4.1.bb29
-rw-r--r--meta/recipes-devtools/python/python3-setuptools-rust_1.5.2.bb30
-rw-r--r--meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch2
-rw-r--r--meta/recipes-devtools/python/python3-setuptools_63.4.1.bb55
-rw-r--r--meta/recipes-devtools/python/python3-setuptools_65.5.1.bb55
-rw-r--r--meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.0.0.bb22
-rw-r--r--meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.1.1.bb22
-rw-r--r--meta/recipes-devtools/python/python3-sphinx_5.1.1.bb28
-rw-r--r--meta/recipes-devtools/python/python3-sphinx_5.3.0.bb37
-rw-r--r--meta/recipes-devtools/python/python3-subunit_1.4.0.bb15
-rw-r--r--meta/recipes-devtools/python/python3-subunit_1.4.1.bb15
-rw-r--r--meta/recipes-devtools/python/python3-typing-extensions_4.3.0.bb14
-rw-r--r--meta/recipes-devtools/python/python3-typing-extensions_4.4.0.bb24
-rw-r--r--meta/recipes-devtools/python/python3-urllib3_1.26.11.bb23
-rw-r--r--meta/recipes-devtools/python/python3-urllib3_1.26.12.bb23
-rw-r--r--meta/recipes-devtools/python/python3-wheel_0.37.1.bb17
-rw-r--r--meta/recipes-devtools/python/python3-wheel_0.38.4.bb17
-rw-r--r--meta/recipes-devtools/python/python3-zipp_3.10.0.bb18
-rw-r--r--meta/recipes-devtools/python/python3-zipp_3.8.1.bb18
-rw-r--r--meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch8
-rw-r--r--meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch6
-rw-r--r--meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch14
-rw-r--r--meta/recipes-devtools/python/python3/0001-Mitigate-the-race-condition-in-testSockName.patch47
-rw-r--r--meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch18
-rw-r--r--meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch33
-rw-r--r--meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch33
-rw-r--r--meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch6
-rw-r--r--meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch46
-rw-r--r--meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch10
-rw-r--r--meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch21
-rw-r--r--meta/recipes-devtools/python/python3/crosspythonpath.patch22
-rw-r--r--meta/recipes-devtools/python/python3/cve-2022-37460.patch95
-rw-r--r--meta/recipes-devtools/python/python3/get_module_deps3.py2
-rw-r--r--meta/recipes-devtools/python/python3/makerace.patch10
-rw-r--r--meta/recipes-devtools/python/python3/python3-manifest.json70
-rw-r--r--meta/recipes-devtools/python/python3_3.10.6.bb429
-rw-r--r--meta/recipes-devtools/python/python3_3.11.0.bb432
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb6
-rwxr-xr-xmeta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper25
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper.c34
-rw-r--r--meta/recipes-devtools/qemu/qemu-native_7.1.0.bb (renamed from meta/recipes-devtools/qemu/qemu-native_7.0.0.bb)0
-rw-r--r--meta/recipes-devtools/qemu/qemu-system-native_7.0.0.bb32
-rw-r--r--meta/recipes-devtools/qemu/qemu-system-native_7.1.0.bb33
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc19
-rw-r--r--meta/recipes-devtools/qemu/qemu/0001-net-tulip-Restrict-DMA-engine-to-memories.patch64
-rw-r--r--meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch46
-rw-r--r--meta/recipes-devtools/qemu/qemu/CVE-2022-3165.patch59
-rw-r--r--meta/recipes-devtools/qemu/qemu/CVE-2022-35414.patch53
-rw-r--r--meta/recipes-devtools/qemu/qemu/arm-cpreg-fix.patch27
-rw-r--r--meta/recipes-devtools/qemu/qemu/cross.patch17
-rw-r--r--meta/recipes-devtools/qemu/qemu_7.1.0.bb (renamed from meta/recipes-devtools/qemu/qemu_7.0.0.bb)0
-rw-r--r--meta/recipes-devtools/quilt/quilt.inc1
-rw-r--r--meta/recipes-devtools/quilt/quilt/fix-grep-3.8.patch144
-rw-r--r--meta/recipes-devtools/repo/repo_2.28.bb31
-rw-r--r--meta/recipes-devtools/repo/repo_2.29.9.bb31
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch22
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch10
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch26
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch11
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch10
-rw-r--r--meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch32
-rw-r--r--meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch8
-rw-r--r--meta/recipes-devtools/rpm/files/0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch17
-rw-r--r--meta/recipes-devtools/rpm/files/0001-docs-do-not-build-manpages-requires-pandoc.patch11
-rw-r--r--meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch13
-rw-r--r--meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch71
-rw-r--r--meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch17
-rw-r--r--meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch16
-rw-r--r--meta/recipes-devtools/rpm/files/fifofix.patch22
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.17.1.bb206
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.18.0.bb207
-rw-r--r--meta/recipes-devtools/rsync/files/0001-Add-missing-prototypes-to-function-declarations.patch171
-rw-r--r--meta/recipes-devtools/rsync/rsync_3.2.4.bb70
-rw-r--r--meta/recipes-devtools/rsync/rsync_3.2.7.bb70
-rw-r--r--meta/recipes-devtools/ruby/ruby/0001-Remove-dependency-on-libcapstone.patch36
-rw-r--r--meta/recipes-devtools/ruby/ruby_3.1.2.bb2
-rw-r--r--meta/recipes-devtools/rust/files/target-rust-ccld.c19
-rw-r--r--meta/recipes-devtools/rust/libstd-rs.inc3
-rw-r--r--meta/recipes-devtools/rust/libstd-rs_1.65.0.bb (renamed from meta/recipes-devtools/rust/libstd-rs_1.62.0.bb)0
-rw-r--r--meta/recipes-devtools/rust/rust-cross-canadian.inc28
-rw-r--r--meta/recipes-devtools/rust/rust-cross-canadian_1.65.0.bb (renamed from meta/recipes-devtools/rust/rust-cross-canadian_1.62.0.bb)0
-rw-r--r--meta/recipes-devtools/rust/rust-llvm_1.62.0.bb6
-rw-r--r--meta/recipes-devtools/rust/rust-llvm_1.65.0.bb6
-rw-r--r--meta/recipes-devtools/rust/rust-snapshot.inc24
-rw-r--r--meta/recipes-devtools/rust/rust-source.inc7
-rw-r--r--meta/recipes-devtools/rust/rust.inc11
-rw-r--r--meta/recipes-devtools/rust/rust/0001-Add-ENOTSUP-constant-for-riscv32-musl.patch32
-rw-r--r--meta/recipes-devtools/rust/rust/crossbeam_atomic.patch81
-rw-r--r--meta/recipes-devtools/rust/rust/hardcodepaths.patch16
-rw-r--r--meta/recipes-devtools/rust/rust_1.62.0.bb82
-rw-r--r--meta/recipes-devtools/rust/rust_1.65.0.bb86
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb2
-rw-r--r--meta/recipes-devtools/strace/strace_5.18.bb57
-rw-r--r--meta/recipes-devtools/strace/strace_6.0.bb57
-rw-r--r--meta/recipes-devtools/swig/swig.inc2
-rw-r--r--meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch44
-rw-r--r--meta/recipes-devtools/swig/swig_4.0.2.bb7
-rw-r--r--meta/recipes-devtools/swig/swig_4.1.0.bb7
-rw-r--r--meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch2
-rw-r--r--meta/recipes-devtools/syslinux/syslinux/0012-libinstaller-Fix-build-with-glibc-2.36.patch2
-rw-r--r--meta/recipes-devtools/syslinux/syslinux/0014-Fix-reproducibility-issues.patch2
-rw-r--r--meta/recipes-devtools/tcltk/tcl/alter-includedir.patch38
-rw-r--r--meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch29
-rw-r--r--meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch50
-rw-r--r--meta/recipes-devtools/tcltk/tcl_8.6.11.bb103
-rw-r--r--meta/recipes-devtools/tcltk/tcl_8.6.12.bb104
-rw-r--r--meta/recipes-devtools/unfs3/unfs3_git.bb2
-rw-r--r--meta/recipes-devtools/vala/vala.inc10
-rw-r--r--meta/recipes-devtools/vala/vala_0.56.2.bb3
-rw-r--r--meta/recipes-devtools/vala/vala_0.56.3.bb3
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-Fix-drd-tests-shared_timed_mutex.cpp.patch26
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch8
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64227
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/remove-for-all1
-rw-r--r--meta/recipes-devtools/valgrind/valgrind_3.19.0.bb255
-rw-r--r--meta/recipes-devtools/valgrind/valgrind_3.20.0.bb254
-rw-r--r--meta/recipes-devtools/xmlto/xmlto-0.0.28/configure.in-drop-the-test-of-xmllint-and-xsltproc.patch30
-rw-r--r--meta/recipes-devtools/xmlto/xmlto_0.0.28.bb21
-rw-r--r--meta/recipes-extended/bash/bash/execute_cmd.patch28
-rw-r--r--meta/recipes-extended/bash/bash/makerace.patch52
-rw-r--r--meta/recipes-extended/bash/bash/makerace2.patch98
-rw-r--r--meta/recipes-extended/bash/bash/use_aclocal.patch27
-rw-r--r--meta/recipes-extended/bash/bash_5.1.16.bb25
-rw-r--r--meta/recipes-extended/bash/bash_5.2.9.bb22
-rw-r--r--meta/recipes-extended/bc/bc/run-ptest9
-rw-r--r--meta/recipes-extended/bc/bc_1.07.1.bb9
-rw-r--r--meta/recipes-extended/cracklib/cracklib/0001-rules-Drop-using-register-keyword.patch278
-rw-r--r--meta/recipes-extended/cracklib/cracklib/0002-rules-Correct-parameter-types-to-Debug-calls.patch40
-rw-r--r--meta/recipes-extended/cracklib/cracklib_2.9.7.bb36
-rw-r--r--meta/recipes-extended/cracklib/cracklib_2.9.8.bb34
-rw-r--r--meta/recipes-extended/cronie/cronie_1.6.1.bb8
-rw-r--r--meta/recipes-extended/cups/cups.inc7
-rw-r--r--meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch6
-rw-r--r--meta/recipes-extended/ethtool/ethtool_5.18.bb37
-rw-r--r--meta/recipes-extended/ethtool/ethtool_6.0.bb37
-rw-r--r--meta/recipes-extended/gawk/gawk/remove-sensitive-tests.patch35
-rw-r--r--meta/recipes-extended/gawk/gawk/run-ptest2
-rw-r--r--meta/recipes-extended/gawk/gawk_5.1.1.bb64
-rw-r--r--meta/recipes-extended/gawk/gawk_5.2.1.bb69
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-prevent_recompiling.patch78
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript_9.56.1.bb1
-rw-r--r--meta/recipes-extended/grep/grep/0001-mcontext-is-not-a-standard-layout-so-glibc-and-musl-.patch32
-rw-r--r--meta/recipes-extended/grep/grep_3.7.bb48
-rw-r--r--meta/recipes-extended/grep/grep_3.8.bb46
-rw-r--r--meta/recipes-extended/groff/files/0001-Make-manpages-mulitlib-identical.patch2
-rw-r--r--meta/recipes-extended/groff/files/0001-replace-perl-w-with-use-warnings.patch2
-rw-r--r--meta/recipes-extended/hdparm/hdparm/0001-hdparm-Remove-unused-linux-fs.h-header.patch32
-rw-r--r--meta/recipes-extended/hdparm/hdparm_9.64.bb44
-rw-r--r--meta/recipes-extended/hdparm/hdparm_9.65.bb43
-rw-r--r--meta/recipes-extended/less/less_600.bb43
-rw-r--r--meta/recipes-extended/less/less_608.bb42
-rw-r--r--meta/recipes-extended/libidn/libidn2_2.3.3.bb33
-rw-r--r--meta/recipes-extended/libidn/libidn2_2.3.4.bb33
-rw-r--r--meta/recipes-extended/libpipeline/libpipeline_1.5.6.bb14
-rw-r--r--meta/recipes-extended/libpipeline/libpipeline_1.5.7.bb14
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb25
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc_1.3.3.bb28
-rw-r--r--meta/recipes-extended/lighttpd/lighttpd_1.4.65.bb79
-rw-r--r--meta/recipes-extended/lighttpd/lighttpd_1.4.67.bb79
-rw-r--r--meta/recipes-extended/logrotate/logrotate_3.20.1.bb7
-rw-r--r--meta/recipes-extended/lsof/files/lsof-remove-host-information.patch75
-rw-r--r--meta/recipes-extended/lsof/files/remove-host-information.patch87
-rw-r--r--meta/recipes-extended/lsof/lsof_4.95.0.bb46
-rw-r--r--meta/recipes-extended/lsof/lsof_4.96.4.bb39
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-Remove-duplicate-include-of-sys-mount.h.patch30
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-kvm-Fix-stack-access-mode-in-KVM-test-ELF-headers.patch40
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-memcg-functional-Fix-usage-of-PAGESIZE-from-memcg_li.patch121
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-mountns0-1-3-wait-for-umount-completed-in-thread_b.patch63
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-net_stress-Fix-usage-of-variables-from-tst_net.sh.patch154
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-netstress-Restore-runtime-to-5m.patch53
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-nfs05_make_tree-Restore-5-min-timeout.patch31
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-syscalls-migrate_pages03-restore-runtime-to-5m.patch44
-rw-r--r--meta/recipes-extended/ltp/ltp/0002-kvm-use-LD-instead-of-hardcoding-ld.patch39
-rw-r--r--meta/recipes-extended/ltp/ltp/0003-Add-KVM_LD-Makefile-variable-for-building-KVM-payloa.patch63
-rw-r--r--meta/recipes-extended/ltp/ltp_20220527.bb164
-rw-r--r--meta/recipes-extended/ltp/ltp_20220930.bb140
-rw-r--r--meta/recipes-extended/man-db/man-db_2.10.2.bb68
-rw-r--r--meta/recipes-extended/man-db/man-db_2.11.1.bb70
-rw-r--r--meta/recipes-extended/man-pages/man-pages_5.13.bb37
-rw-r--r--meta/recipes-extended/man-pages/man-pages_6.01.bb37
-rw-r--r--meta/recipes-extended/mc/files/0001-mc-replace-perl-w-with-use-warnings.patch2
-rw-r--r--meta/recipes-extended/msmtp/msmtp_1.8.20.bb27
-rw-r--r--meta/recipes-extended/msmtp/msmtp_1.8.22.bb27
-rw-r--r--meta/recipes-extended/pam/libpam/CVE-2022-28321-0002.patch205
-rw-r--r--meta/recipes-extended/pam/libpam_1.5.2.bb7
-rw-r--r--meta/recipes-extended/psmisc/psmisc.inc1
-rw-r--r--meta/recipes-extended/quota/quota/0001-quota-Use-realloc-3-instead-of-reallocarray-3.patch34
-rw-r--r--meta/recipes-extended/quota/quota/fcntl.patch27
-rw-r--r--meta/recipes-extended/quota/quota_4.06.bb35
-rw-r--r--meta/recipes-extended/quota/quota_4.09.bb34
-rw-r--r--meta/recipes-extended/rust-example/rust-hello-world/0001-enable-LTO.patch (renamed from meta/recipes-example/rust-hello-world/rust-hello-world/0001-enable-LTO.patch)0
-rw-r--r--meta/recipes-extended/rust-example/rust-hello-world_git.bb (renamed from meta/recipes-example/rust-hello-world/rust-hello-world_git.bb)0
-rw-r--r--meta/recipes-extended/screen/screen/0001-configure-Add-needed-system-headers-in-checks.patch151
-rw-r--r--meta/recipes-extended/screen/screen_4.9.0.bb3
-rw-r--r--meta/recipes-extended/sed/sed_4.8.bb68
-rw-r--r--meta/recipes-extended/sed/sed_4.9.bb67
-rw-r--r--meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch6
-rw-r--r--meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch6
-rw-r--r--meta/recipes-extended/shadow/files/securetty1
-rw-r--r--meta/recipes-extended/shadow/files/shadow-4.1.3-dots-in-usernames.patch27
-rw-r--r--meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch111
-rw-r--r--meta/recipes-extended/shadow/files/shadow-update-pam-conf.patch4
-rw-r--r--meta/recipes-extended/shadow/shadow.inc17
-rw-r--r--meta/recipes-extended/shadow/shadow_4.13.bb (renamed from meta/recipes-extended/shadow/shadow_4.11.1.bb)0
-rw-r--r--meta/recipes-extended/slang/slang/dont-link-to-host.patch23
-rw-r--r--meta/recipes-extended/slang/slang/terminfo_fixes.patch28
-rw-r--r--meta/recipes-extended/slang/slang_2.3.2.bb84
-rw-r--r--meta/recipes-extended/slang/slang_2.3.3.bb83
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng/0001-core-helper-remove-include-of-sys-mount.h.patch34
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng/0002-core-shim-remove-include-of-sys-mount.h.patch34
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng_0.14.03.bb32
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng_0.14.06.bb32
-rw-r--r--meta/recipes-extended/sudo/sudo.inc4
-rw-r--r--meta/recipes-extended/sudo/sudo_1.9.11p3.bb62
-rw-r--r--meta/recipes-extended/sudo/sudo_1.9.12p1.bb62
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.4.2.bb56
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.4.4.bb56
-rw-r--r--meta/recipes-extended/sysstat/sysstat_12.6.0.bb7
-rw-r--r--meta/recipes-extended/sysstat/sysstat_12.6.1.bb7
-rw-r--r--meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch11765
-rw-r--r--meta/recipes-extended/texinfo/texinfo/disable-native-tools.patch19
-rw-r--r--meta/recipes-extended/texinfo/texinfo/dont-depend-on-help2man.patch8
-rw-r--r--meta/recipes-extended/texinfo/texinfo/link-zip.patch2
-rw-r--r--meta/recipes-extended/texinfo/texinfo/use_host_makedoc.patch19
-rw-r--r--meta/recipes-extended/texinfo/texinfo_6.8.bb90
-rw-r--r--meta/recipes-extended/texinfo/texinfo_7.0.bb90
-rw-r--r--meta/recipes-extended/time/time/0001-include-string.h-for-memset.patch27
-rw-r--r--meta/recipes-extended/time/time_1.9.bb4
-rw-r--r--meta/recipes-extended/timezone/timezone.inc6
-rw-r--r--meta/recipes-extended/unzip/unzip/0001-configure-Add-correct-system-headers-and-prototypes-.patch112
-rw-r--r--meta/recipes-extended/unzip/unzip_6.0.bb4
-rw-r--r--meta/recipes-extended/watchdog/watchdog/0001-shutdown-Do-not-guard-sys-quota.h-sys-swap.h-and-sys.patch37
-rw-r--r--meta/recipes-extended/watchdog/watchdog_5.16.bb5
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb2
-rw-r--r--meta/recipes-extended/xz/xz/CVE-2022-1271.patch96
-rw-r--r--meta/recipes-extended/xz/xz_5.2.5.bb47
-rw-r--r--meta/recipes-extended/xz/xz_5.2.7.bb44
-rw-r--r--meta/recipes-extended/zip/zip-3.0/0001-configure-Specify-correct-function-signatures-and-de.patch134
-rw-r--r--meta/recipes-extended/zip/zip-3.0/0002-unix.c-Do-not-redefine-DIR-as-FILE.patch35
-rw-r--r--meta/recipes-extended/zip/zip_3.0.bb5
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_42.3.bb43
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_42.4.bb43
-rw-r--r--meta/recipes-gnome/gcr/gcr_3.40.0.bb2
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch18
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch22
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.10.bb132
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.8.bb128
-rw-r--r--meta/recipes-gnome/gi-docgen/gi-docgen_git.bb4
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch6
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme_42.0.bb40
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb40
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb2
-rw-r--r--meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_42.0.bb16
-rw-r--r--meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_43.0.bb16
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_1.6.3.bb27
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_1.8.0.bb27
-rw-r--r--meta/recipes-gnome/librsvg/librsvg_2.54.4.bb75
-rw-r--r--meta/recipes-gnome/librsvg/librsvg_2.54.5.bb75
-rw-r--r--meta/recipes-graphics/cairo/cairo_1.16.0.bb6
-rw-r--r--meta/recipes-graphics/drm/libdrm_2.4.112.bb59
-rw-r--r--meta/recipes-graphics/drm/libdrm_2.4.114.bb60
-rw-r--r--meta/recipes-graphics/fontconfig/fontconfig_2.14.0.bb70
-rw-r--r--meta/recipes-graphics/fontconfig/fontconfig_2.14.1.bb70
-rw-r--r--meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch18
-rw-r--r--meta/recipes-graphics/glslang/glslang_1.3.216.0.bb32
-rw-r--r--meta/recipes-graphics/glslang/glslang_1.3.231.1.bb32
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz/0001-fix-signedness-of-char-in-tests.patch27
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz_5.1.0.bb50
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz_5.3.1.bb45
-rw-r--r--meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.3.bb62
-rw-r--r--meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.4.bb62
-rw-r--r--meta/recipes-graphics/kmscube/kmscube/0001-drm-common.c-do-not-use-invalid-modifier.patch27
-rw-r--r--meta/recipes-graphics/kmscube/kmscube/0001-texturator-Use-correct-GL-extension-header.patch33
-rw-r--r--meta/recipes-graphics/kmscube/kmscube_git.bb7
-rw-r--r--meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb32
-rw-r--r--meta/recipes-graphics/libepoxy/libepoxy_1.5.9.bb32
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2/0001-Disable-libunwind-in-native-OE-builds-by-not-looking.patch36
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2/0001-video-restore-ability-to-disable-fb-accel-via-hint.patch36
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb85
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2_2.26.0.bb85
-rw-r--r--meta/recipes-graphics/libva/libva-initial_2.16.0.bb (renamed from meta/recipes-graphics/libva/libva-initial_2.15.0.bb)0
-rw-r--r--meta/recipes-graphics/libva/libva-utils_2.15.0.bb32
-rw-r--r--meta/recipes-graphics/libva/libva-utils_2.16.0.bb32
-rw-r--r--meta/recipes-graphics/libva/libva.inc8
-rw-r--r--meta/recipes-graphics/libva/libva_2.16.0.bb (renamed from meta/recipes-graphics/libva/libva_2.15.0.bb)0
-rw-r--r--meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch158
-rw-r--r--meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch10
-rw-r--r--meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch2
-rw-r--r--meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch10
-rw-r--r--meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch20
-rw-r--r--meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch113
-rw-r--r--meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch6
-rw-r--r--meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch61
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_22.2.3.bb (renamed from meta/recipes-graphics/mesa/mesa-gl_22.1.5.bb)0
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc32
-rw-r--r--meta/recipes-graphics/mesa/mesa_22.2.3.bb (renamed from meta/recipes-graphics/mesa/mesa_22.1.5.bb)0
-rw-r--r--meta/recipes-graphics/pango/pango/0001-tests-meson.build-install-nofonts-fonts.conf-as-it-i.patch35
-rw-r--r--meta/recipes-graphics/pango/pango_1.50.11.bb55
-rw-r--r--meta/recipes-graphics/pango/pango_1.50.8.bb54
-rw-r--r--meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-add-missing-endian.h-check.patch25
-rw-r--r--meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch (renamed from meta/recipes-graphics/piglit/piglit/0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch)0
-rw-r--r--meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch (renamed from meta/recipes-graphics/piglit/piglit/0002-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch)0
-rw-r--r--meta/recipes-graphics/piglit/piglit/0005-cmake-Don-t-enable-GLX-if-tests-are-disabled.patch32
-rw-r--r--meta/recipes-graphics/piglit/piglit_git.bb16
-rw-r--r--meta/recipes-graphics/shaderc/files/0001-CMakeLists.txt-drop-OSDependent-OGLCompiler-from-lis.patch76
-rw-r--r--meta/recipes-graphics/shaderc/shaderc_2022.1.bb29
-rw-r--r--meta/recipes-graphics/shaderc/shaderc_2022.3.bb30
-rw-r--r--meta/recipes-graphics/spir/spirv-headers_1.3.216.0.bb18
-rw-r--r--meta/recipes-graphics/spir/spirv-headers_1.3.231.1.bb18
-rw-r--r--meta/recipes-graphics/spir/spirv-tools_1.3.216.0.bb41
-rw-r--r--meta/recipes-graphics/spir/spirv-tools_1.3.231.1.bb42
-rw-r--r--meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb4
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch11
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0135.patch117
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0175.patch107
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer_0.10.3.bb33
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb25
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-headers_1.3.216.0.bb22
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-headers_1.3.231.1.bb22
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-loader_1.3.216.0.bb40
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-loader_1.3.231.1.bb38
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-samples/0001-Qualify-move-as-std-move.patch405
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-core-hpp_vulkan_resource.h-add-header-incl.patch27
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-samples_git.bb6
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-tools_1.3.216.0.bb32
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-tools_1.3.231.1.bb32
-rw-r--r--meta/recipes-graphics/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch42
-rw-r--r--meta/recipes-graphics/wayland/libinput_1.19.4.bb49
-rw-r--r--meta/recipes-graphics/wayland/libinput_1.21.0.bb50
-rw-r--r--meta/recipes-graphics/wayland/wayland-protocols_1.26.bb26
-rw-r--r--meta/recipes-graphics/wayland/wayland-protocols_1.28.bb25
-rw-r--r--meta/recipes-graphics/wayland/wayland-utils_1.0.0.bb20
-rw-r--r--meta/recipes-graphics/wayland/wayland-utils_1.1.0.bb21
-rw-r--r--meta/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch32
-rw-r--r--meta/recipes-graphics/wayland/weston_10.0.1.bb144
-rw-r--r--meta/recipes-graphics/wayland/weston_11.0.0.bb139
-rw-r--r--meta/recipes-graphics/xorg-app/rgb_1.0.6.bb16
-rw-r--r--meta/recipes-graphics/xorg-app/rgb_1.1.0.bb16
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.3.bb14
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.4.bb14
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb26
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.2.0.bb27
-rw-r--r--meta/recipes-graphics/xorg-lib/libfontenc_1.1.4.bb17
-rw-r--r--meta/recipes-graphics/xorg-lib/libfontenc_1.1.6.bb18
-rw-r--r--meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb19
-rw-r--r--meta/recipes-graphics/xorg-lib/libpciaccess_0.17.bb16
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/0001-fix-a-memory-leak-in-XRegisterIMInstantiateCallback.patch57
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_1.8.1.bb1
-rw-r--r--meta/recipes-graphics/xorg-lib/libxau_1.0.10.bb24
-rw-r--r--meta/recipes-graphics/xorg-lib/libxau_1.0.9.bb24
-rw-r--r--meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb26
-rw-r--r--meta/recipes-graphics/xorg-lib/libxext_1.3.5.bb25
-rw-r--r--meta/recipes-graphics/xorg-lib/libxfont2_2.0.5.bb23
-rw-r--r--meta/recipes-graphics/xorg-lib/libxfont2_2.0.6.bb24
-rw-r--r--meta/recipes-graphics/xorg-lib/libxft_2.3.4.bb32
-rw-r--r--meta/recipes-graphics/xorg-lib/libxft_2.3.6.bb33
-rw-r--r--meta/recipes-graphics/xorg-lib/libxinerama_1.1.4.bb22
-rw-r--r--meta/recipes-graphics/xorg-lib/libxinerama_1.1.5.bb21
-rw-r--r--meta/recipes-graphics/xorg-lib/libxkbfile_1.1.0.bb18
-rw-r--r--meta/recipes-graphics/xorg-lib/libxkbfile_1.1.1.bb17
-rw-r--r--meta/recipes-graphics/xorg-lib/libxmu_1.1.3.bb34
-rw-r--r--meta/recipes-graphics/xorg-lib/libxmu_1.1.4.bb31
-rw-r--r--meta/recipes-graphics/xorg-lib/libxrender_0.9.10.bb24
-rw-r--r--meta/recipes-graphics/xorg-lib/libxrender_0.9.11.bb23
-rw-r--r--meta/recipes-graphics/xorg-lib/libxshmfence_1.3.1.bb21
-rw-r--r--meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb21
-rw-r--r--meta/recipes-graphics/xorg-lib/libxtst_1.2.3.bb22
-rw-r--r--meta/recipes-graphics/xorg-lib/libxtst_1.2.4.bb21
-rw-r--r--meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb22
-rw-r--r--meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.5.bb21
-rw-r--r--meta/recipes-graphics/xorg-lib/pixman_0.40.0.bb41
-rw-r--r--meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb40
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-image_0.4.0.bb13
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-image_0.4.1.bb12
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.0.bb9
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb8
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-renderutil_0.3.10.bb9
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-renderutil_0.3.9.bb10
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-wm_0.4.1.bb11
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-wm_0.4.2.bb10
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util.inc2
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util_0.4.0.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/xkeyboard-config_2.36.bb30
-rw-r--r--meta/recipes-graphics/xorg-lib/xkeyboard-config_2.37.bb30
-rw-r--r--meta/recipes-graphics/xorg-lib/xorg-lib-common.inc3
-rw-r--r--meta/recipes-graphics/xorg-proto/xorgproto_2022.1.bb25
-rw-r--r--meta/recipes-graphics/xorg-proto/xorgproto_2022.2.bb25
-rw-r--r--meta/recipes-graphics/xorg-util/makedepend_1.0.6.bb21
-rw-r--r--meta/recipes-graphics/xorg-util/makedepend_1.0.7.bb20
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg.inc8
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-xkb-fix-some-possible-memleaks-in-XkbGetKbdByName.patch63
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-xkb-proof-GetCountedString-against-request-length-at.patch38
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.4.bb2
-rw-r--r--meta/recipes-graphics/xwayland/xwayland_22.1.3.bb45
-rw-r--r--meta/recipes-graphics/xwayland/xwayland_22.1.5.bb45
-rw-r--r--meta/recipes-kernel/kern-tools/kern-tools-native_git.bb2
-rw-r--r--meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb16
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20220708.bb1083
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20221109.bb1126
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.19.bb2
-rw-r--r--meta/recipes-kernel/linux/kernel-devsrc.bb25
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-dev.bb6
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.19.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.19.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto.inc3
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.15.bb28
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.19.bb30
-rw-r--r--meta/recipes-kernel/lttng/babeltrace_1.5.11.bb98
-rw-r--r--meta/recipes-kernel/lttng/babeltrace_1.5.8.bb98
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-compaction-make-tracepoints-condtional-on-CONFIG_COM.patch103
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-fix-mm-page_alloc-fix-tracepoint-mm_page_alloc_zone_.patch106
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-fix-mm-slab_common-drop-kmem_alloc-avoid-dereferenci.patch278
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-fix-net-skb-introduce-kfree_skb_reason-v5.15.58.v5.1.patch53
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0002-fix-fs-Remove-flags-parameter-from-aops-write_begin-.patch76
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0003-fix-workqueue-Fix-type-of-cpu-in-trace-event-v5.19.patch124
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.13.4.bb47
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.13.7.bb43
-rw-r--r--meta/recipes-kernel/lttng/lttng-platforms.inc4
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/determinism.patch2
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.13.7.bb195
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.13.8.bb195
-rw-r--r--meta/recipes-kernel/lttng/lttng-ust_2.13.3.bb53
-rw-r--r--meta/recipes-kernel/lttng/lttng-ust_2.13.5.bb53
-rw-r--r--meta/recipes-kernel/perf/perf.bb11
-rw-r--r--meta/recipes-kernel/powertop/powertop/0001-src-fix-compatibility-with-ncurses-6.3.patch52
-rw-r--r--meta/recipes-kernel/powertop/powertop_2.14.bb25
-rw-r--r--meta/recipes-kernel/powertop/powertop_2.15.bb24
-rw-r--r--meta/recipes-kernel/systemtap/systemtap/python-3.11.patch37
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.inc1
-rw-r--r--meta/recipes-kernel/wireless-regdb/wireless-regdb_2022.06.06.bb43
-rw-r--r--meta/recipes-kernel/wireless-regdb/wireless-regdb_2022.08.12.bb43
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib_1.2.7.2.bb44
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib_1.2.8.bb44
-rw-r--r--meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch25
-rw-r--r--meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb4
-rw-r--r--meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.7.2.bb24
-rw-r--r--meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.8.bb24
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.2.7.bb120
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.2.8.bb120
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-rpzaenc-stop-accessing-out-of-bounds-frame.patch89
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-smcenc-stop-accessing-out-of-bounds-frame.patch108
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.2.bb178
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.bb174
-rw-r--r--meta/recipes-multimedia/flac/flac_1.3.4.bb45
-rw-r--r--meta/recipes-multimedia/flac/flac_1.4.2.bb39
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.20.3.bb52
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.20.4.bb52
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.3.bb28
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.4.bb28
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.3.bb47
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.4.bb47
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch86
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.3.bb166
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.4.bb165
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.bb94
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.4.bb94
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.3.bb81
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.4.bb85
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.3.bb46
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.4.bb46
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.3.bb30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.4.bb30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.3.bb31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.4.bb31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.3.bb53
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.4.bb53
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.20.3.bb73
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.20.4.bb73
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.37.bb35
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.38.bb34
-rw-r--r--meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb6
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1_1.1.0.bb6
-rw-r--r--meta/recipes-multimedia/libtiff/files/0001-Revised-handling-of-TIFFTAG_INKNAMES-and-related-TIF.patch266
-rw-r--r--meta/recipes-multimedia/libtiff/files/0001-tiffcrop-S-option-Make-decision-simpler.patch36
-rw-r--r--meta/recipes-multimedia/libtiff/files/0001-tiffcrop-disable-incompatibility-of-Z-X-Y-z-options-.patch59
-rw-r--r--meta/recipes-multimedia/libtiff/files/0001-tiffcrop-subroutines-require-a-larger-buffer-fixes-2.patch653
-rw-r--r--meta/recipes-multimedia/libtiff/files/CVE-2022-2953.patch86
-rw-r--r--meta/recipes-multimedia/libtiff/files/CVE-2022-34526.patch32
-rw-r--r--meta/recipes-multimedia/libtiff/files/CVE-2022-3970.patch39
-rw-r--r--meta/recipes-multimedia/libtiff/tiff_4.4.0.bb11
-rw-r--r--meta/recipes-multimedia/mpg123/mpg123_1.30.1.bb52
-rw-r--r--meta/recipes-multimedia/mpg123/mpg123_1.31.1.bb52
-rw-r--r--meta/recipes-multimedia/webp/libwebp_1.2.3.bb55
-rw-r--r--meta/recipes-multimedia/webp/libwebp_1.2.4.bb55
-rw-r--r--meta/recipes-sato/puzzles/puzzles_git.bb2
-rw-r--r--meta/recipes-sato/webkit/libwpe/0001-Fix-build-failure-due-to-libc-using-libc-functions.patch42
-rw-r--r--meta/recipes-sato/webkit/libwpe_1.12.2.bb20
-rw-r--r--meta/recipes-sato/webkit/libwpe_1.14.0.bb18
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch39
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-without-opengl-or-es.patch133
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch47
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-When-building-introspection-files-do-not-quote-CFLAG.patch67
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch296
-rw-r--r--meta/recipes-sato/webkit/webkitgtk_2.36.5.bb167
-rw-r--r--meta/recipes-sato/webkit/webkitgtk_2.38.2.bb165
-rw-r--r--meta/recipes-sato/webkit/wpebackend-fdo_1.12.0.bb24
-rw-r--r--meta/recipes-sato/webkit/wpebackend-fdo_1.14.0.bb24
-rw-r--r--meta/recipes-support/apr/apr/0001-add-AC_CACHE_CHECK-for-strerror_r-return-type.patch52
-rw-r--r--meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch62
-rw-r--r--meta/recipes-support/apr/apr_1.7.0.bb19
-rw-r--r--meta/recipes-support/argp-standalone/argp-standalone_1.3.bb33
-rw-r--r--meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb31
-rw-r--r--meta/recipes-support/argp-standalone/files/0001-throw-in-funcdef.patch84
-rw-r--r--meta/recipes-support/argp-standalone/files/0002-isprint.patch51
-rw-r--r--meta/recipes-support/argp-standalone/files/out_of_tree_build.patch2
-rw-r--r--meta/recipes-support/atk/at-spi2-atk_2.38.0.bb20
-rw-r--r--meta/recipes-support/atk/at-spi2-core_2.44.1.bb39
-rw-r--r--meta/recipes-support/atk/at-spi2-core_2.46.0.bb45
-rw-r--r--meta/recipes-support/atk/atk_2.38.0.bb20
-rw-r--r--meta/recipes-support/bash-completion/bash-completion_2.11.bb7
-rw-r--r--meta/recipes-support/boost/boost-1.79.0.inc20
-rw-r--r--meta/recipes-support/boost/boost-1.80.0.inc20
-rw-r--r--meta/recipes-support/boost/boost-build-native_1.80.0.bb28
-rw-r--r--meta/recipes-support/boost/boost-build-native_4.4.1.bb27
-rw-r--r--meta/recipes-support/boost/boost.inc1
-rw-r--r--meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch19
-rw-r--r--meta/recipes-support/boost/boost/0001-The-std-lib-unary-binary_function-base-classes-are-d.patch34
-rw-r--r--meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch112
-rw-r--r--meta/recipes-support/boost/boost_1.79.0.bb8
-rw-r--r--meta/recipes-support/boost/boost_1.80.0.bb8
-rw-r--r--meta/recipes-support/curl/curl_7.84.0.bb117
-rw-r--r--meta/recipes-support/curl/curl_7.86.0.bb116
-rw-r--r--meta/recipes-support/curl/files/0001-easy_lock-switch-to-using-atomic_int-instead-of-bool.patch37
-rw-r--r--meta/recipes-support/curl/files/0001-easy_lock.h-include-sched.h-if-available-to-fix-buil.patch33
-rw-r--r--meta/recipes-support/diffoscope/diffoscope_220.bb30
-rw-r--r--meta/recipes-support/diffoscope/diffoscope_224.bb30
-rw-r--r--meta/recipes-support/enchant/enchant2_2.3.3.bb6
-rw-r--r--meta/recipes-support/fribidi/fribidi_1.0.12.bb6
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.7.7.bb90
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.7.8.bb90
-rw-r--r--meta/recipes-support/gnutls/libtasn1_4.18.0.bb23
-rw-r--r--meta/recipes-support/gnutls/libtasn1_4.19.0.bb23
-rw-r--r--meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch18
-rw-r--r--meta/recipes-support/gpgme/gpgme_1.17.1.bb87
-rw-r--r--meta/recipes-support/gpgme/gpgme_1.18.0.bb79
-rw-r--r--meta/recipes-support/icu/icu_71.1.bb150
-rw-r--r--meta/recipes-support/icu/icu_72-1.bb150
-rw-r--r--meta/recipes-support/iso-codes/iso-codes_4.11.0.bb22
-rw-r--r--meta/recipes-support/iso-codes/iso-codes_4.12.0.bb22
-rw-r--r--meta/recipes-support/libatomic-ops/libatomic-ops_7.6.12.bb22
-rw-r--r--meta/recipes-support/libatomic-ops/libatomic-ops_7.6.14.bb22
-rw-r--r--meta/recipes-support/libbsd/libbsd_0.11.6.bb43
-rw-r--r--meta/recipes-support/libbsd/libbsd_0.11.7.bb43
-rw-r--r--meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch2
-rw-r--r--meta/recipes-support/libcap/libcap_2.65.bb80
-rw-r--r--meta/recipes-support/libcap/libcap_2.66.bb80
-rw-r--r--meta/recipes-support/libcheck/libcheck_0.15.2.bb6
-rw-r--r--meta/recipes-support/libevent/libevent_2.1.12.bb7
-rw-r--r--meta/recipes-support/libexif/libexif_0.6.24.bb6
-rw-r--r--meta/recipes-support/libffi/libffi/0001-arm-sysv-reverted-clang-VFP-mitigation.patch8
-rw-r--r--meta/recipes-support/libffi/libffi/not-win32.patch8
-rw-r--r--meta/recipes-support/libffi/libffi_3.4.2.bb36
-rw-r--r--meta/recipes-support/libffi/libffi_3.4.4.bb34
-rw-r--r--meta/recipes-support/libgcrypt/files/0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch79
-rw-r--r--meta/recipes-support/libgcrypt/files/no-bench-slope.patch20
-rw-r--r--meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch18
-rw-r--r--meta/recipes-support/libgcrypt/files/run-ptest8
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb27
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch8
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch16
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.45.bb53
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.46.bb53
-rw-r--r--meta/recipes-support/libical/libical_3.0.14.bb55
-rw-r--r--meta/recipes-support/libical/libical_3.0.16.bb54
-rw-r--r--meta/recipes-support/libjitterentropy/libjitterentropy_3.4.0.bb30
-rw-r--r--meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb30
-rw-r--r--meta/recipes-support/libksba/libksba_1.6.0.bb34
-rw-r--r--meta/recipes-support/libksba/libksba_1.6.2.bb34
-rw-r--r--meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.75.bb7
-rw-r--r--meta/recipes-support/libnl/libnl_3.7.0.bb8
-rw-r--r--meta/recipes-support/libpcre/libpcre2_10.40.bb7
-rw-r--r--meta/recipes-support/libproxy/libproxy_0.4.18.bb7
-rw-r--r--meta/recipes-support/libpsl/libpsl_0.21.1.bb6
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4_2.74.2.bb46
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb46
-rw-r--r--meta/recipes-support/libsoup/libsoup_3.0.7.bb44
-rw-r--r--meta/recipes-support/libsoup/libsoup_3.2.2.bb46
-rw-r--r--meta/recipes-support/libunistring/libunistring_1.0.bb27
-rw-r--r--meta/recipes-support/libunistring/libunistring_1.1.bb27
-rw-r--r--meta/recipes-support/liburcu/liburcu_0.13.1.bb24
-rw-r--r--meta/recipes-support/liburcu/liburcu_0.13.2.bb24
-rw-r--r--meta/recipes-support/libusb/libusb1_1.0.26.bb6
-rw-r--r--meta/recipes-support/libxslt/libxslt_1.1.35.bb60
-rw-r--r--meta/recipes-support/libxslt/libxslt_1.1.37.bb60
-rw-r--r--meta/recipes-support/lz4/files/CVE-2021-3520.patch27
-rw-r--r--meta/recipes-support/lz4/lz4_1.9.3.bb31
-rw-r--r--meta/recipes-support/lz4/lz4_1.9.4.bb29
-rw-r--r--meta/recipes-support/nghttp2/nghttp2_1.48.0.bb35
-rw-r--r--meta/recipes-support/nghttp2/nghttp2_1.50.0.bb33
-rw-r--r--meta/recipes-support/numactl/numactl_git.bb6
-rw-r--r--meta/recipes-support/pinentry/pinentry-1.2.0/gpg-error_pkconf.patch195
-rw-r--r--meta/recipes-support/pinentry/pinentry-1.2.1/gpg-error_pkconf.patch196
-rw-r--r--meta/recipes-support/pinentry/pinentry-1.2.1/libassuan_pkgconf.patch (renamed from meta/recipes-support/pinentry/pinentry-1.2.0/libassuan_pkgconf.patch)0
-rw-r--r--meta/recipes-support/pinentry/pinentry_1.2.0.bb36
-rw-r--r--meta/recipes-support/pinentry/pinentry_1.2.1.bb38
-rw-r--r--meta/recipes-support/popt/popt/0001-popt-test-output-format-for-ptest.patch68
-rw-r--r--meta/recipes-support/popt/popt_1.18.bb33
-rw-r--r--meta/recipes-support/popt/popt_1.19.bb31
-rw-r--r--meta/recipes-support/re2c/re2c_3.0.bb6
-rw-r--r--meta/recipes-support/rng-tools/rng-tools/rng-tools.service5
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.39.2.bb14
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.39.4.bb14
-rw-r--r--meta/recipes-support/taglib/taglib_1.12.bb42
-rw-r--r--meta/recipes-support/taglib/taglib_1.13.bb41
-rw-r--r--meta/recipes-support/vim/vim.inc4
-rw-r--r--meta/recipes-support/vte/vte/0001-Makefile.docs-correctly-substitute-gtkdoc-qemu-wrapp.patch24
-rw-r--r--meta/recipes-support/vte/vte_0.68.0.bb62
-rw-r--r--meta/recipes-support/vte/vte_0.70.1.bb54
-rwxr-xr-xscripts/autobuilder-worker-prereq-tests2
-rwxr-xr-xscripts/bitbake-prserv-tool2
-rwxr-xr-xscripts/bitbake-whatchanged4
-rwxr-xr-xscripts/combo-layer-hook-default.sh2
-rwxr-xr-xscripts/contrib/convert-overrides.py103
-rwxr-xr-xscripts/contrib/ddimage2
-rwxr-xr-xscripts/contrib/dialog-power-control2
-rwxr-xr-xscripts/contrib/documentation-audit.sh2
-rwxr-xr-xscripts/contrib/patchreview.py2
-rwxr-xr-xscripts/contrib/test_build_time_worker.sh2
-rwxr-xr-xscripts/contrib/verify-homepage.py2
-rwxr-xr-xscripts/cp-noerror2
-rwxr-xr-xscripts/create-pull-request2
-rwxr-xr-xscripts/gen-lockedsig-cache3
-rwxr-xr-xscripts/git4
-rwxr-xr-xscripts/install-buildtools20
-rw-r--r--scripts/lib/argparse_oe.py2
-rw-r--r--scripts/lib/devtool/menuconfig.py2
-rw-r--r--scripts/lib/devtool/standard.py16
-rw-r--r--scripts/lib/recipetool/create_buildsys_python.py2
-rw-r--r--scripts/lib/wic/ksparser.py2
-rw-r--r--scripts/lib/wic/partition.py26
-rw-r--r--scripts/lib/wic/plugins/imager/direct.py10
-rw-r--r--scripts/lib/wic/plugins/source/bootimg-efi.py29
-rw-r--r--scripts/lib/wic/plugins/source/bootimg-partition.py2
-rw-r--r--scripts/lib/wic/plugins/source/empty.py2
-rw-r--r--scripts/lib/wic/plugins/source/isoimage-isohybrid.py2
-rw-r--r--scripts/lib/wic/plugins/source/rawcopy.py6
-rw-r--r--scripts/lib/wic/plugins/source/rootfs.py2
-rwxr-xr-xscripts/oe-check-sstate8
-rwxr-xr-xscripts/oe-debuginfod2
-rwxr-xr-xscripts/oe-gnome-terminal-phonehome2
-rwxr-xr-xscripts/oe-pkgdata-browser5
-rwxr-xr-xscripts/oe-pylint2
-rwxr-xr-xscripts/oe-setup-builddir62
-rwxr-xr-xscripts/oe-setup-layers78
-rwxr-xr-xscripts/oe-time-dd-test.sh4
-rwxr-xr-xscripts/oe-trim-schemas2
-rwxr-xr-xscripts/oepydevshell-internal.py2
-rwxr-xr-xscripts/pythondeps2
-rwxr-xr-xscripts/runqemu36
-rw-r--r--scripts/runqemu.README16
-rwxr-xr-xscripts/sstate-diff-machines.sh2
-rwxr-xr-xscripts/sstate-sysroot-cruft.sh2
-rwxr-xr-xscripts/sysroot-relativelinks.py2
-rwxr-xr-xscripts/task-time2
-rwxr-xr-xscripts/verify-bashisms2
1771 files changed, 98734 insertions, 96550 deletions
diff --git a/.templateconf b/.templateconf
index 0bf5ecf1e5..e399e06acd 100644
--- a/.templateconf
+++ b/.templateconf
@@ -1,2 +1,2 @@
# Template settings
-TEMPLATECONF=${TEMPLATECONF:-meta/conf}
+TEMPLATECONF=${TEMPLATECONF:-meta/conf/templates/default}
diff --git a/meta-selftest/files/static-group b/meta-selftest/files/static-group
index b2e0e2f870..b13dde3218 100644
--- a/meta-selftest/files/static-group
+++ b/meta-selftest/files/static-group
@@ -23,3 +23,4 @@ _apt:x:523:
weston-launch:x:524:
weston:x:525:
wayland:x:526:
+render:x:527:
diff --git a/meta-selftest/lib/oeqa/runtime/cases/virgl.py b/meta-selftest/lib/oeqa/runtime/cases/virgl.py
index 144decdd6b..f19cdee9f0 100644
--- a/meta-selftest/lib/oeqa/runtime/cases/virgl.py
+++ b/meta-selftest/lib/oeqa/runtime/cases/virgl.py
@@ -15,4 +15,4 @@ class VirglTest(OERuntimeTestCase):
def test_kmscube(self):
status, output = self.target.run('kmscube')
self.assertEqual(status, 0, "kmscube exited with non-zero status %d and output:\n%s" %(status, output))
- self.assertIn('renderer: "virgl"', output, "kmscube does not seem to use virgl:\n%s" %(output))
+ self.assertIn('renderer: "virgl', output, "kmscube does not seem to use virgl:\n%s" %(output))
diff --git a/meta/recipes-devtools/mtd/mtd-utils/0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch b/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest/0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch
index 73d4a8475f..73d4a8475f 100644
--- a/meta/recipes-devtools/mtd/mtd-utils/0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch
+++ b/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest/0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch
diff --git a/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb b/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb
new file mode 100644
index 0000000000..ca2141c972
--- /dev/null
+++ b/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb
@@ -0,0 +1,77 @@
+SUMMARY = "Tools for managing memory technology devices"
+HOMEPAGE = "http://www.linux-mtd.infradead.org/"
+DESCRIPTION = "mtd-utils tool is a generic Linux subsystem for memory devices, especially Flash devices."
+SECTION = "base"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
+ file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"
+
+inherit autotools pkgconfig update-alternatives
+
+DEPENDS = "zlib e2fsprogs util-linux"
+RDEPENDS:mtd-utils-tests += "bash"
+
+PV = "2.1.4"
+
+SRCREV = "c7f1bfa44a84d02061787e2f6093df5cc40b9f5c"
+SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master \
+ file://0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# xattr support creates an additional compile-time dependency on acl because
+# the sys/acl.h header is needed. libacl is not needed and thus enabling xattr
+# regardless whether acl is enabled or disabled in the distro should be okay.
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)} lzo jffs ubifs"
+PACKAGECONFIG[lzo] = "--with-lzo,--without-lzo,lzo"
+PACKAGECONFIG[xattr] = "--with-xattr,--without-xattr,acl"
+PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,openssl"
+PACKAGECONFIG[jffs] = "--with-jffs,--without-jffs"
+PACKAGECONFIG[ubifs] = "--with-ubifs,--without-ubifs"
+PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
+
+CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} ${@bb.utils.contains('PACKAGECONFIG', 'xattr', '', '-DWITHOUT_XATTR', d)} -I${S}/include' 'BUILDDIR=${S}'"
+
+# Use higher priority than corresponding BusyBox-provided applets
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN} = "flashcp flash_eraseall flash_lock flash_unlock nanddump nandwrite"
+ALTERNATIVE:${PN}-ubifs = "ubiattach ubidetach ubimkvol ubirename ubirmvol ubirsvol ubiupdatevol"
+
+ALTERNATIVE_LINK_NAME[nandwrite] = "${sbindir}/nandwrite"
+ALTERNATIVE_LINK_NAME[nanddump] = "${sbindir}/nanddump"
+ALTERNATIVE_LINK_NAME[ubiattach] = "${sbindir}/ubiattach"
+ALTERNATIVE_LINK_NAME[ubidetach] = "${sbindir}/ubidetach"
+ALTERNATIVE_LINK_NAME[ubimkvol] = "${sbindir}/ubimkvol"
+ALTERNATIVE_LINK_NAME[ubirename] = "${sbindir}/ubirename"
+ALTERNATIVE_LINK_NAME[ubirmvol] = "${sbindir}/ubirmvol"
+ALTERNATIVE_LINK_NAME[ubirsvol] = "${sbindir}/ubirsvol"
+ALTERNATIVE_LINK_NAME[ubiupdatevol] = "${sbindir}/ubiupdatevol"
+ALTERNATIVE_LINK_NAME[flash_eraseall] = "${sbindir}/flash_eraseall"
+ALTERNATIVE_LINK_NAME[flash_lock] = "${sbindir}/flash_lock"
+ALTERNATIVE_LINK_NAME[flash_unlock] = "${sbindir}/flash_unlock"
+ALTERNATIVE_LINK_NAME[flashcp] = "${sbindir}/flashcp"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir}
+}
+
+PACKAGES =+ "mtd-utils-misc mtd-utils-tests"
+PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "jffs", "mtd-utils-jffs2", "", d)}"
+PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "ubifs", "mtd-utils-ubifs", "", d)}"
+
+FILES:mtd-utils-jffs2 = "${sbindir}/mkfs.jffs2 ${sbindir}/jffs2dump ${sbindir}/jffs2reader ${sbindir}/sumtool"
+FILES:mtd-utils-ubifs = "${sbindir}/mkfs.ubifs ${sbindir}/ubi*"
+FILES:mtd-utils-misc = "${sbindir}/nftl* ${sbindir}/ftl* ${sbindir}/rfd* ${sbindir}/doc* ${sbindir}/serve_image ${sbindir}/recv_image"
+FILES:mtd-utils-tests = "${libexecdir}/mtd-utils/*"
+
+BBCLASSEXTEND = "native nativesdk"
+
+# git/.compr.c.dep:46: warning: NUL character seen; rest of line ignored
+# git/.compr.c.dep:47: *** missing separator. Stop.
+PARALLEL_MAKE = ""
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb b/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb
index 913a4d1fdb..50cba9514b 100644
--- a/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb
+++ b/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb
@@ -12,6 +12,11 @@ OVERLAYFS_WRITABLE_PATHS[mnt-overlay] += "/usr/share/my-application"
do_install() {
install -d ${D}/usr/share/my-application
+ install -d ${D}${sysconfdir}
+ echo "Original file in /etc" >> ${D}${sysconfdir}/lower-layer-test.txt
}
-FILES:${PN} += "/usr"
+FILES:${PN} += "\
+ ${exec_prefix} \
+ ${sysconfdir \
+"
diff --git a/meta-selftest/recipes-test/poison/poison.bb b/meta-selftest/recipes-test/poison/poison.bb
index 7ace901cc3..e9eee0cdba 100644
--- a/meta-selftest/recipes-test/poison/poison.bb
+++ b/meta-selftest/recipes-test/poison/poison.bb
@@ -9,8 +9,12 @@ inherit nopackages
# will result in compiler errors. This recipe should will fail to build and
# oe-selftest has a test that verifies that.
do_compile() {
- touch empty.c
- ${CPP} ${CFLAGS} -I/usr/include empty.c
+ bbnote Testing preprocessor
+ echo "int main(int argc, char** argv) {}" | ${CPP} -I/usr/include -
+ bbnote Testing C compiler
+ echo "int main(int argc, char** argv) {}" | ${CC} -x c -I/usr/include -
+ bbnote Testing C++ compiler
+ echo "int main(int argc, char** argv) {}" | ${CC} -x c++ -I/usr/include -
}
EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/testrpm/files/testfile.txt b/meta-selftest/recipes-test/testrpm/files/testfile.txt
new file mode 100644
index 0000000000..c4d7630c1e
--- /dev/null
+++ b/meta-selftest/recipes-test/testrpm/files/testfile.txt
@@ -0,0 +1 @@
+== This file serves the purposes of SRC_URI only
diff --git a/meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb b/meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb
new file mode 100644
index 0000000000..5e8761ab55
--- /dev/null
+++ b/meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Test recipe for testing rpm generated by oe-core"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+LICENSE = "MIT"
+
+SRC_URI = "file://testfile.txt"
+INHIBIT_DEFAULT_DEPS = "1"
+
+do_compile(){
+ echo "testdata" > ${B}/"file with [brackets].txt"
+ echo "testdata" > ${B}/"file with (parentheses).txt"
+}
+
+do_install(){
+ install ${B}/* ${D}/
+}
+
+FILES:${PN} = "*"
diff --git a/meta-skeleton/recipes-kernel/hello-mod/files/hello.c b/meta-skeleton/recipes-kernel/hello-mod/files/hello.c
index 6b73a79524..4f73455d20 100644
--- a/meta-skeleton/recipes-kernel/hello-mod/files/hello.c
+++ b/meta-skeleton/recipes-kernel/hello-mod/files/hello.c
@@ -2,18 +2,7 @@
*
* Copyright (C) 2011 Intel Corporation. All rights reserved.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
- * the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * SPDX-License-Identifier: GPL-2.0-only
*
*****************************************************************************/
diff --git a/meta-skeleton/recipes-skeleton/service/service_0.1.bb b/meta-skeleton/recipes-skeleton/service/service_0.1.bb
index d1d8c5f365..912f6b0f61 100644
--- a/meta-skeleton/recipes-skeleton/service/service_0.1.bb
+++ b/meta-skeleton/recipes-skeleton/service/service_0.1.bb
@@ -9,6 +9,8 @@ SRC_URI = "file://skeleton \
file://COPYRIGHT \
"
+S = "${WORKDIR}"
+
do_compile () {
${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/skeleton_test.c -o ${WORKDIR}/skeleton-test
}
diff --git a/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb b/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
index 3f4c42d714..cff624e2f9 100644
--- a/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
+++ b/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
@@ -33,8 +33,8 @@ USERADD_PACKAGES = "${PN} ${PN}-user3"
USERADD_PARAM:${PN} = "-u 1200 -d /home/user1 -r -s /bin/bash user1; -u 1201 -d /home/user2 -r -s /bin/bash user2"
# user3 will be managed in the useradd-example-user3 pacakge:
-# As an example, we use the -P option to set clear text password for user3
-USERADD_PARAM:${PN}-user3 = "-u 1202 -d /home/user3 -r -s /bin/bash -P 'user3' user3"
+# As an example, we use the -p option to set password ('user3') for user3
+USERADD_PARAM:${PN}-user3 = "-u 1202 -d /home/user3 -r -s /bin/bash -p '\$6\$XAWr.8nc\$bUE4pYYaVb8n6BbnBitU0zeJMtfhTpFpiOBLL9zRl4e4YQo88UU4r/1kjRzmTimCy.BvDh4xoFwVqcO.pihLa1' user3"
# GROUPADD_PARAM works the same way, which you set to the options
# you'd normally pass to the groupadd command. This will create
diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass
new file mode 100644
index 0000000000..c81aa51ef3
--- /dev/null
+++ b/meta/classes-global/base.bbclass
@@ -0,0 +1,785 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+BB_DEFAULT_TASK ?= "build"
+CLASSOVERRIDE ?= "class-target"
+
+inherit patch
+inherit staging
+
+inherit mirrors
+inherit utils
+inherit utility-tasks
+inherit logging
+
+OE_EXTRA_IMPORTS ?= ""
+
+OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license oe.qa oe.reproducible oe.rust oe.buildcfg ${OE_EXTRA_IMPORTS}"
+OE_IMPORTS[type] = "list"
+
+PACKAGECONFIG_CONFARGS ??= ""
+
+def oe_import(d):
+ import sys
+
+ bbpath = [os.path.join(dir, "lib") for dir in d.getVar("BBPATH").split(":")]
+ sys.path[0:0] = [dir for dir in bbpath if dir not in sys.path]
+
+ import oe.data
+ for toimport in oe.data.typed_value("OE_IMPORTS", d):
+ try:
+ # Make a python object accessible from the metadata
+ bb.utils._context[toimport.split(".", 1)[0]] = __import__(toimport)
+ except AttributeError as e:
+ bb.error("Error importing OE modules: %s" % str(e))
+ return ""
+
+# We need the oe module name space early (before INHERITs get added)
+OE_IMPORTED := "${@oe_import(d)}"
+
+inherit metadata_scm
+
+def lsb_distro_identifier(d):
+ adjust = d.getVar('LSB_DISTRO_ADJUST')
+ adjust_func = None
+ if adjust:
+ try:
+ adjust_func = globals()[adjust]
+ except KeyError:
+ pass
+ return oe.lsb.distro_identifier(adjust_func)
+
+die() {
+ bbfatal_log "$*"
+}
+
+oe_runmake_call() {
+ bbnote ${MAKE} ${EXTRA_OEMAKE} "$@"
+ ${MAKE} ${EXTRA_OEMAKE} "$@"
+}
+
+oe_runmake() {
+ oe_runmake_call "$@" || die "oe_runmake failed"
+}
+
+
+def get_base_dep(d):
+ if d.getVar('INHIBIT_DEFAULT_DEPS', False):
+ return ""
+ return "${BASE_DEFAULT_DEPS}"
+
+BASE_DEFAULT_DEPS = "virtual/${HOST_PREFIX}gcc virtual/${HOST_PREFIX}compilerlibs virtual/libc"
+
+BASEDEPENDS = ""
+BASEDEPENDS:class-target = "${@get_base_dep(d)}"
+BASEDEPENDS:class-nativesdk = "${@get_base_dep(d)}"
+
+DEPENDS:prepend="${BASEDEPENDS} "
+
+FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
+# THISDIR only works properly with imediate expansion as it has to run
+# in the context of the location its used (:=)
+THISDIR = "${@os.path.dirname(d.getVar('FILE'))}"
+
+def extra_path_elements(d):
+ path = ""
+ elements = (d.getVar('EXTRANATIVEPATH') or "").split()
+ for e in elements:
+ path = path + "${STAGING_BINDIR_NATIVE}/" + e + ":"
+ return path
+
+PATH:prepend = "${@extra_path_elements(d)}"
+
+def get_lic_checksum_file_list(d):
+ filelist = []
+ lic_files = d.getVar("LIC_FILES_CHKSUM") or ''
+ tmpdir = d.getVar("TMPDIR")
+ s = d.getVar("S")
+ b = d.getVar("B")
+ workdir = d.getVar("WORKDIR")
+
+ urls = lic_files.split()
+ for url in urls:
+ # We only care about items that are absolute paths since
+ # any others should be covered by SRC_URI.
+ try:
+ (method, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
+ if method != "file" or not path:
+ raise bb.fetch.MalformedUrl(url)
+
+ if path[0] == '/':
+ if path.startswith((tmpdir, s, b, workdir)):
+ continue
+ filelist.append(path + ":" + str(os.path.exists(path)))
+ except bb.fetch.MalformedUrl:
+ bb.fatal(d.getVar('PN') + ": LIC_FILES_CHKSUM contains an invalid URL: " + url)
+ return " ".join(filelist)
+
+def setup_hosttools_dir(dest, toolsvar, d, fatal=True):
+ tools = d.getVar(toolsvar).split()
+ origbbenv = d.getVar("BB_ORIGENV", False)
+ path = origbbenv.getVar("PATH")
+ # Need to ignore our own scripts directories to avoid circular links
+ for p in path.split(":"):
+ if p.endswith("/scripts"):
+ path = path.replace(p, "/ignoreme")
+ bb.utils.mkdirhier(dest)
+ notfound = []
+ for tool in tools:
+ desttool = os.path.join(dest, tool)
+ if not os.path.exists(desttool):
+ # clean up dead symlink
+ if os.path.islink(desttool):
+ os.unlink(desttool)
+ srctool = bb.utils.which(path, tool, executable=True)
+ # gcc/g++ may link to ccache on some hosts, e.g.,
+ # /usr/local/bin/ccache/gcc -> /usr/bin/ccache, then which(gcc)
+ # would return /usr/local/bin/ccache/gcc, but what we need is
+ # /usr/bin/gcc, this code can check and fix that.
+ if "ccache" in srctool:
+ srctool = bb.utils.which(path, tool, executable=True, direction=1)
+ if srctool:
+ os.symlink(srctool, desttool)
+ else:
+ notfound.append(tool)
+
+ if notfound and fatal:
+ bb.fatal("The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:\n %s" % " ".join(notfound))
+
+addtask fetch
+do_fetch[dirs] = "${DL_DIR}"
+do_fetch[file-checksums] = "${@bb.fetch.get_checksum_file_list(d)}"
+do_fetch[file-checksums] += " ${@get_lic_checksum_file_list(d)}"
+do_fetch[vardeps] += "SRCREV"
+do_fetch[network] = "1"
+python base_do_fetch() {
+
+ src_uri = (d.getVar('SRC_URI') or "").split()
+ if not src_uri:
+ return
+
+ try:
+ fetcher = bb.fetch2.Fetch(src_uri, d)
+ fetcher.download()
+ except bb.fetch2.BBFetchException as e:
+ bb.fatal("Bitbake Fetcher Error: " + repr(e))
+}
+
+addtask unpack after do_fetch
+do_unpack[dirs] = "${WORKDIR}"
+
+do_unpack[cleandirs] = "${@d.getVar('S') if os.path.normpath(d.getVar('S')) != os.path.normpath(d.getVar('WORKDIR')) else os.path.join('${S}', 'patches')}"
+
+python base_do_unpack() {
+ src_uri = (d.getVar('SRC_URI') or "").split()
+ if not src_uri:
+ return
+
+ try:
+ fetcher = bb.fetch2.Fetch(src_uri, d)
+ fetcher.unpack(d.getVar('WORKDIR'))
+ except bb.fetch2.BBFetchException as e:
+ bb.fatal("Bitbake Fetcher Error: " + repr(e))
+}
+
+SSTATETASKS += "do_deploy_source_date_epoch"
+
+do_deploy_source_date_epoch () {
+ mkdir -p ${SDE_DEPLOYDIR}
+ if [ -e ${SDE_FILE} ]; then
+ echo "Deploying SDE from ${SDE_FILE} -> ${SDE_DEPLOYDIR}."
+ cp -p ${SDE_FILE} ${SDE_DEPLOYDIR}/__source_date_epoch.txt
+ else
+ echo "${SDE_FILE} not found!"
+ fi
+}
+
+python do_deploy_source_date_epoch_setscene () {
+ sstate_setscene(d)
+ bb.utils.mkdirhier(d.getVar('SDE_DIR'))
+ sde_file = os.path.join(d.getVar('SDE_DEPLOYDIR'), '__source_date_epoch.txt')
+ if os.path.exists(sde_file):
+ target = d.getVar('SDE_FILE')
+ bb.debug(1, "Moving setscene SDE file %s -> %s" % (sde_file, target))
+ bb.utils.rename(sde_file, target)
+ else:
+ bb.debug(1, "%s not found!" % sde_file)
+}
+
+do_deploy_source_date_epoch[dirs] = "${SDE_DEPLOYDIR}"
+do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DEPLOYDIR}"
+addtask do_deploy_source_date_epoch_setscene
+addtask do_deploy_source_date_epoch before do_configure after do_patch
+
+python create_source_date_epoch_stamp() {
+ # Version: 1
+ source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S'))
+ oe.reproducible.epochfile_write(source_date_epoch, d.getVar('SDE_FILE'), d)
+}
+do_unpack[postfuncs] += "create_source_date_epoch_stamp"
+
+def get_source_date_epoch_value(d):
+ return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d)
+
+def get_layers_branch_rev(d):
+ revisions = oe.buildcfg.get_layer_revisions(d)
+ layers_branch_rev = ["%-20s = \"%s:%s\"" % (r[1], r[2], r[3]) for r in revisions]
+ i = len(layers_branch_rev)-1
+ p1 = layers_branch_rev[i].find("=")
+ s1 = layers_branch_rev[i][p1:]
+ while i > 0:
+ p2 = layers_branch_rev[i-1].find("=")
+ s2= layers_branch_rev[i-1][p2:]
+ if s1 == s2:
+ layers_branch_rev[i-1] = layers_branch_rev[i-1][0:p2]
+ i -= 1
+ else:
+ i -= 1
+ p1 = layers_branch_rev[i].find("=")
+ s1= layers_branch_rev[i][p1:]
+ return layers_branch_rev
+
+
+BUILDCFG_FUNCS ??= "buildcfg_vars get_layers_branch_rev buildcfg_neededvars"
+BUILDCFG_FUNCS[type] = "list"
+
+def buildcfg_vars(d):
+ statusvars = oe.data.typed_value('BUILDCFG_VARS', d)
+ for var in statusvars:
+ value = d.getVar(var)
+ if value is not None:
+ yield '%-20s = "%s"' % (var, value)
+
+def buildcfg_neededvars(d):
+ needed_vars = oe.data.typed_value("BUILDCFG_NEEDEDVARS", d)
+ pesteruser = []
+ for v in needed_vars:
+ val = d.getVar(v)
+ if not val or val == 'INVALID':
+ pesteruser.append(v)
+
+ if pesteruser:
+ bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser))
+
+addhandler base_eventhandler
+base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.event.RecipeParsed"
+python base_eventhandler() {
+ import bb.runqueue
+
+ if isinstance(e, bb.event.ConfigParsed):
+ if not d.getVar("NATIVELSBSTRING", False):
+ d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
+ d.setVar("ORIGNATIVELSBSTRING", d.getVar("NATIVELSBSTRING", False))
+ d.setVar('BB_VERSION', bb.__version__)
+
+ # There might be no bb.event.ConfigParsed event if bitbake server is
+ # running, so check bb.event.BuildStarted too to make sure ${HOSTTOOLS_DIR}
+ # exists.
+ if isinstance(e, bb.event.ConfigParsed) or \
+ (isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
+ # Works with the line in layer.conf which changes PATH to point here
+ setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d)
+ setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False)
+
+ if isinstance(e, bb.event.MultiConfigParsed):
+ # We need to expand SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS in each of the multiconfig data stores
+ # own contexts so the variables get expanded correctly for that arch, then inject back into
+ # the main data store.
+ deps = []
+ for config in e.mcdata:
+ deps.append(e.mcdata[config].getVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS"))
+ deps = " ".join(deps)
+ e.mcdata[''].setVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", deps)
+
+ if isinstance(e, bb.event.BuildStarted):
+ localdata = bb.data.createCopy(d)
+ statuslines = []
+ for func in oe.data.typed_value('BUILDCFG_FUNCS', localdata):
+ g = globals()
+ if func not in g:
+ bb.warn("Build configuration function '%s' does not exist" % func)
+ else:
+ flines = g[func](localdata)
+ if flines:
+ statuslines.extend(flines)
+
+ statusheader = d.getVar('BUILDCFG_HEADER')
+ if statusheader:
+ bb.plain('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines)))
+
+ # This code is to silence warnings where the SDK variables overwrite the
+ # target ones and we'd see dulpicate key names overwriting each other
+ # for various PREFERRED_PROVIDERS
+ if isinstance(e, bb.event.RecipePreFinalise):
+ if d.getVar("TARGET_PREFIX") == d.getVar("SDK_PREFIX"):
+ d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils")
+ d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc")
+ d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++")
+ d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs")
+
+ if isinstance(e, bb.event.RecipeParsed):
+ #
+ # If we have multiple providers of virtual/X and a PREFERRED_PROVIDER_virtual/X is set
+ # skip parsing for all the other providers which will mean they get uninstalled from the
+ # sysroot since they're now "unreachable". This makes switching virtual/kernel work in
+ # particular.
+ #
+ pn = d.getVar('PN')
+ source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False)
+ if not source_mirror_fetch:
+ provs = (d.getVar("PROVIDES") or "").split()
+ multiprovidersallowed = (d.getVar("BB_MULTI_PROVIDER_ALLOWED") or "").split()
+ for p in provs:
+ if p.startswith("virtual/") and p not in multiprovidersallowed:
+ profprov = d.getVar("PREFERRED_PROVIDER_" + p)
+ if profprov and pn != profprov:
+ raise bb.parse.SkipRecipe("PREFERRED_PROVIDER_%s set to %s, not %s" % (p, profprov, pn))
+}
+
+CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate"
+CLEANBROKEN = "0"
+
+addtask configure after do_patch
+do_configure[dirs] = "${B}"
+base_do_configure() {
+ if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
+ if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" ]; then
+ cd ${B}
+ if [ "${CLEANBROKEN}" != "1" -a \( -e Makefile -o -e makefile -o -e GNUmakefile \) ]; then
+ oe_runmake clean
+ fi
+ # -ignore_readdir_race does not work correctly with -delete;
+ # use xargs to avoid spurious build failures
+ find ${B} -ignore_readdir_race -name \*.la -type f -print0 | xargs -0 rm -f
+ fi
+ fi
+ if [ -n "${CONFIGURESTAMPFILE}" ]; then
+ mkdir -p `dirname ${CONFIGURESTAMPFILE}`
+ echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE}
+ fi
+}
+
+addtask compile after do_configure
+do_compile[dirs] = "${B}"
+base_do_compile() {
+ if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then
+ oe_runmake || die "make failed"
+ else
+ bbnote "nothing to compile"
+ fi
+}
+
+addtask install after do_compile
+do_install[dirs] = "${B}"
+# Remove and re-create ${D} so that is it guaranteed to be empty
+do_install[cleandirs] = "${D}"
+
+base_do_install() {
+ :
+}
+
+addtask build after do_populate_sysroot
+do_build[noexec] = "1"
+do_build[recrdeptask] += "do_deploy"
+do_build () {
+ :
+}
+
+def set_packagetriplet(d):
+ archs = []
+ tos = []
+ tvs = []
+
+ archs.append(d.getVar("PACKAGE_ARCHS").split())
+ tos.append(d.getVar("TARGET_OS"))
+ tvs.append(d.getVar("TARGET_VENDOR"))
+
+ def settriplet(d, varname, archs, tos, tvs):
+ triplets = []
+ for i in range(len(archs)):
+ for arch in archs[i]:
+ triplets.append(arch + tvs[i] + "-" + tos[i])
+ triplets.reverse()
+ d.setVar(varname, " ".join(triplets))
+
+ settriplet(d, "PKGTRIPLETS", archs, tos, tvs)
+
+ variants = d.getVar("MULTILIB_VARIANTS") or ""
+ for item in variants.split():
+ localdata = bb.data.createCopy(d)
+ overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
+ localdata.setVar("OVERRIDES", overrides)
+
+ archs.append(localdata.getVar("PACKAGE_ARCHS").split())
+ tos.append(localdata.getVar("TARGET_OS"))
+ tvs.append(localdata.getVar("TARGET_VENDOR"))
+
+ settriplet(d, "PKGMLTRIPLETS", archs, tos, tvs)
+
+python () {
+ import string, re
+
+ # Handle backfilling
+ oe.utils.features_backfill("DISTRO_FEATURES", d)
+ oe.utils.features_backfill("MACHINE_FEATURES", d)
+
+ if d.getVar("S")[-1] == '/':
+ bb.warn("Recipe %s sets S variable with trailing slash '%s', remove it" % (d.getVar("PN"), d.getVar("S")))
+ if d.getVar("B")[-1] == '/':
+ bb.warn("Recipe %s sets B variable with trailing slash '%s', remove it" % (d.getVar("PN"), d.getVar("B")))
+
+ if os.path.normpath(d.getVar("WORKDIR")) != os.path.normpath(d.getVar("S")):
+ d.appendVar("PSEUDO_IGNORE_PATHS", ",${S}")
+ if os.path.normpath(d.getVar("WORKDIR")) != os.path.normpath(d.getVar("B")):
+ d.appendVar("PSEUDO_IGNORE_PATHS", ",${B}")
+
+ # To add a recipe to the skip list , set:
+ # SKIP_RECIPE[pn] = "message"
+ pn = d.getVar('PN')
+ skip_msg = d.getVarFlag('SKIP_RECIPE', pn)
+ if skip_msg:
+ bb.debug(1, "Skipping %s %s" % (pn, skip_msg))
+ raise bb.parse.SkipRecipe("Recipe will be skipped because: %s" % (skip_msg))
+
+ # Handle PACKAGECONFIG
+ #
+ # These take the form:
+ #
+ # PACKAGECONFIG ??= "<default options>"
+ # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends,foo_runtime_recommends,foo_conflict_packageconfig"
+ pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
+ if pkgconfigflags:
+ pkgconfig = (d.getVar('PACKAGECONFIG') or "").split()
+ pn = d.getVar("PN")
+
+ mlprefix = d.getVar("MLPREFIX")
+
+ def expandFilter(appends, extension, prefix):
+ appends = bb.utils.explode_deps(d.expand(" ".join(appends)))
+ newappends = []
+ for a in appends:
+ if a.endswith("-native") or ("-cross-" in a):
+ newappends.append(a)
+ elif a.startswith("virtual/"):
+ subs = a.split("/", 1)[1]
+ if subs.startswith(prefix):
+ newappends.append(a + extension)
+ else:
+ newappends.append("virtual/" + prefix + subs + extension)
+ else:
+ if a.startswith(prefix):
+ newappends.append(a + extension)
+ else:
+ newappends.append(prefix + a + extension)
+ return newappends
+
+ def appendVar(varname, appends):
+ if not appends:
+ return
+ if varname.find("DEPENDS") != -1:
+ if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('cross-canadian', d) :
+ appends = expandFilter(appends, "", "nativesdk-")
+ elif bb.data.inherits_class('native', d):
+ appends = expandFilter(appends, "-native", "")
+ elif mlprefix:
+ appends = expandFilter(appends, "", mlprefix)
+ varname = d.expand(varname)
+ d.appendVar(varname, " " + " ".join(appends))
+
+ extradeps = []
+ extrardeps = []
+ extrarrecs = []
+ extraconf = []
+ for flag, flagval in sorted(pkgconfigflags.items()):
+ items = flagval.split(",")
+ num = len(items)
+ if num > 6:
+ bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend,rrecommend,conflict_packageconfig can be specified!"
+ % (d.getVar('PN'), flag))
+
+ if flag in pkgconfig:
+ if num >= 3 and items[2]:
+ extradeps.append(items[2])
+ if num >= 4 and items[3]:
+ extrardeps.append(items[3])
+ if num >= 5 and items[4]:
+ extrarrecs.append(items[4])
+ if num >= 1 and items[0]:
+ extraconf.append(items[0])
+ elif num >= 2 and items[1]:
+ extraconf.append(items[1])
+
+ if num >= 6 and items[5]:
+ conflicts = set(items[5].split())
+ invalid = conflicts.difference(set(pkgconfigflags.keys()))
+ if invalid:
+ bb.error("%s: PACKAGECONFIG[%s] Invalid conflict package config%s '%s' specified."
+ % (d.getVar('PN'), flag, 's' if len(invalid) > 1 else '', ' '.join(invalid)))
+
+ if flag in pkgconfig:
+ intersec = conflicts.intersection(set(pkgconfig))
+ if intersec:
+ bb.fatal("%s: PACKAGECONFIG[%s] Conflict package config%s '%s' set in PACKAGECONFIG."
+ % (d.getVar('PN'), flag, 's' if len(intersec) > 1 else '', ' '.join(intersec)))
+
+ appendVar('DEPENDS', extradeps)
+ appendVar('RDEPENDS:${PN}', extrardeps)
+ appendVar('RRECOMMENDS:${PN}', extrarrecs)
+ appendVar('PACKAGECONFIG_CONFARGS', extraconf)
+
+ pn = d.getVar('PN')
+ license = d.getVar('LICENSE')
+ if license == "INVALID" and pn != "defaultpkgname":
+ bb.fatal('This recipe does not have the LICENSE field set (%s)' % pn)
+
+ if bb.data.inherits_class('license', d):
+ check_license_format(d)
+ unmatched_license_flags = check_license_flags(d)
+ if unmatched_license_flags:
+ if len(unmatched_license_flags) == 1:
+ message = "because it has a restricted license '{0}'. Which is not listed in LICENSE_FLAGS_ACCEPTED".format(unmatched_license_flags[0])
+ else:
+ message = "because it has restricted licenses {0}. Which are not listed in LICENSE_FLAGS_ACCEPTED".format(
+ ", ".join("'{0}'".format(f) for f in unmatched_license_flags))
+ bb.debug(1, "Skipping %s %s" % (pn, message))
+ raise bb.parse.SkipRecipe(message)
+
+ # If we're building a target package we need to use fakeroot (pseudo)
+ # in order to capture permissions, owners, groups and special files
+ if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
+ d.appendVarFlag('do_prepare_recipe_sysroot', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
+ d.appendVarFlag('do_install', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
+ d.setVarFlag('do_install', 'fakeroot', '1')
+ d.appendVarFlag('do_package', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
+ d.setVarFlag('do_package', 'fakeroot', '1')
+ d.setVarFlag('do_package_setscene', 'fakeroot', '1')
+ d.appendVarFlag('do_package_setscene', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
+ d.setVarFlag('do_devshell', 'fakeroot', '1')
+ d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
+
+ need_machine = d.getVar('COMPATIBLE_MACHINE')
+ if need_machine and not d.getVar('PARSE_ALL_RECIPES', False):
+ import re
+ compat_machines = (d.getVar('MACHINEOVERRIDES') or "").split(":")
+ for m in compat_machines:
+ if re.match(need_machine, m):
+ break
+ else:
+ raise bb.parse.SkipRecipe("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % d.getVar('MACHINE'))
+
+ source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False) or d.getVar('PARSE_ALL_RECIPES', False)
+ if not source_mirror_fetch:
+ need_host = d.getVar('COMPATIBLE_HOST')
+ if need_host:
+ import re
+ this_host = d.getVar('HOST_SYS')
+ if not re.match(need_host, this_host):
+ raise bb.parse.SkipRecipe("incompatible with host %s (not in COMPATIBLE_HOST)" % this_host)
+
+ bad_licenses = (d.getVar('INCOMPATIBLE_LICENSE') or "").split()
+
+ check_license = False if pn.startswith("nativesdk-") else True
+ for t in ["-native", "-cross-${TARGET_ARCH}", "-cross-initial-${TARGET_ARCH}",
+ "-crosssdk-${SDK_SYS}", "-crosssdk-initial-${SDK_SYS}",
+ "-cross-canadian-${TRANSLATED_TARGET_ARCH}"]:
+ if pn.endswith(d.expand(t)):
+ check_license = False
+ if pn.startswith("gcc-source-"):
+ check_license = False
+
+ if check_license and bad_licenses:
+ bad_licenses = expand_wildcard_licenses(d, bad_licenses)
+
+ exceptions = (d.getVar("INCOMPATIBLE_LICENSE_EXCEPTIONS") or "").split()
+
+ for lic_exception in exceptions:
+ if ":" in lic_exception:
+ lic_exception = lic_exception.split(":")[1]
+ if lic_exception in oe.license.obsolete_license_list():
+ bb.fatal("Obsolete license %s used in INCOMPATIBLE_LICENSE_EXCEPTIONS" % lic_exception)
+
+ pkgs = d.getVar('PACKAGES').split()
+ skipped_pkgs = {}
+ unskipped_pkgs = []
+ for pkg in pkgs:
+ remaining_bad_licenses = oe.license.apply_pkg_license_exception(pkg, bad_licenses, exceptions)
+
+ incompatible_lic = incompatible_license(d, remaining_bad_licenses, pkg)
+ if incompatible_lic:
+ skipped_pkgs[pkg] = incompatible_lic
+ else:
+ unskipped_pkgs.append(pkg)
+
+ if unskipped_pkgs:
+ for pkg in skipped_pkgs:
+ bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg])))
+ d.setVar('_exclude_incompatible-' + pkg, ' '.join(skipped_pkgs[pkg]))
+ for pkg in unskipped_pkgs:
+ bb.debug(1, "Including the package %s" % pkg)
+ else:
+ incompatible_lic = incompatible_license(d, bad_licenses)
+ for pkg in skipped_pkgs:
+ incompatible_lic += skipped_pkgs[pkg]
+ incompatible_lic = sorted(list(set(incompatible_lic)))
+
+ if incompatible_lic:
+ bb.debug(1, "Skipping recipe %s because of incompatible license(s): %s" % (pn, ' '.join(incompatible_lic)))
+ raise bb.parse.SkipRecipe("it has incompatible license(s): %s" % ' '.join(incompatible_lic))
+
+ needsrcrev = False
+ srcuri = d.getVar('SRC_URI')
+ for uri_string in srcuri.split():
+ uri = bb.fetch.URI(uri_string)
+ # Also check downloadfilename as the URL path might not be useful for sniffing
+ path = uri.params.get("downloadfilename", uri.path)
+
+ # HTTP/FTP use the wget fetcher
+ if uri.scheme in ("http", "https", "ftp"):
+ d.appendVarFlag('do_fetch', 'depends', ' wget-native:do_populate_sysroot')
+
+ # Svn packages should DEPEND on subversion-native
+ if uri.scheme == "svn":
+ needsrcrev = True
+ d.appendVarFlag('do_fetch', 'depends', ' subversion-native:do_populate_sysroot')
+
+ # Git packages should DEPEND on git-native
+ elif uri.scheme in ("git", "gitsm"):
+ needsrcrev = True
+ d.appendVarFlag('do_fetch', 'depends', ' git-native:do_populate_sysroot')
+
+ # Mercurial packages should DEPEND on mercurial-native
+ elif uri.scheme == "hg":
+ needsrcrev = True
+ d.appendVar("EXTRANATIVEPATH", ' python3-native ')
+ d.appendVarFlag('do_fetch', 'depends', ' mercurial-native:do_populate_sysroot')
+
+ # Perforce packages support SRCREV = "${AUTOREV}"
+ elif uri.scheme == "p4":
+ needsrcrev = True
+
+ # OSC packages should DEPEND on osc-native
+ elif uri.scheme == "osc":
+ d.appendVarFlag('do_fetch', 'depends', ' osc-native:do_populate_sysroot')
+
+ elif uri.scheme == "npm":
+ d.appendVarFlag('do_fetch', 'depends', ' nodejs-native:do_populate_sysroot')
+
+ elif uri.scheme == "repo":
+ needsrcrev = True
+ d.appendVarFlag('do_fetch', 'depends', ' repo-native:do_populate_sysroot')
+
+ # *.lz4 should DEPEND on lz4-native for unpacking
+ if path.endswith('.lz4'):
+ d.appendVarFlag('do_unpack', 'depends', ' lz4-native:do_populate_sysroot')
+
+ # *.zst should DEPEND on zstd-native for unpacking
+ elif path.endswith('.zst'):
+ d.appendVarFlag('do_unpack', 'depends', ' zstd-native:do_populate_sysroot')
+
+ # *.lz should DEPEND on lzip-native for unpacking
+ elif path.endswith('.lz'):
+ d.appendVarFlag('do_unpack', 'depends', ' lzip-native:do_populate_sysroot')
+
+ # *.xz should DEPEND on xz-native for unpacking
+ elif path.endswith('.xz') or path.endswith('.txz'):
+ d.appendVarFlag('do_unpack', 'depends', ' xz-native:do_populate_sysroot')
+
+ # .zip should DEPEND on unzip-native for unpacking
+ elif path.endswith('.zip') or path.endswith('.jar'):
+ d.appendVarFlag('do_unpack', 'depends', ' unzip-native:do_populate_sysroot')
+
+ # Some rpm files may be compressed internally using xz (for example, rpms from Fedora)
+ elif path.endswith('.rpm'):
+ d.appendVarFlag('do_unpack', 'depends', ' xz-native:do_populate_sysroot')
+
+ # *.deb should DEPEND on xz-native for unpacking
+ elif path.endswith('.deb'):
+ d.appendVarFlag('do_unpack', 'depends', ' xz-native:do_populate_sysroot')
+
+ if needsrcrev:
+ d.setVar("SRCPV", "${@bb.fetch2.get_srcrev(d)}")
+
+ # Gather all named SRCREVs to add to the sstate hash calculation
+ # This anonymous python snippet is called multiple times so we
+ # need to be careful to not double up the appends here and cause
+ # the base hash to mismatch the task hash
+ for uri in srcuri.split():
+ parm = bb.fetch.decodeurl(uri)[5]
+ uri_names = parm.get("name", "").split(",")
+ for uri_name in filter(None, uri_names):
+ srcrev_name = "SRCREV_{}".format(uri_name)
+ if srcrev_name not in (d.getVarFlag("do_fetch", "vardeps") or "").split():
+ d.appendVarFlag("do_fetch", "vardeps", " {}".format(srcrev_name))
+
+ set_packagetriplet(d)
+
+ # 'multimachine' handling
+ mach_arch = d.getVar('MACHINE_ARCH')
+ pkg_arch = d.getVar('PACKAGE_ARCH')
+
+ if (pkg_arch == mach_arch):
+ # Already machine specific - nothing further to do
+ return
+
+ #
+ # We always try to scan SRC_URI for urls with machine overrides
+ # unless the package sets SRC_URI_OVERRIDES_PACKAGE_ARCH=0
+ #
+ override = d.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH')
+ if override != '0':
+ paths = []
+ fpaths = (d.getVar('FILESPATH') or '').split(':')
+ machine = d.getVar('MACHINE')
+ for p in fpaths:
+ if os.path.basename(p) == machine and os.path.isdir(p):
+ paths.append(p)
+
+ if paths:
+ for s in srcuri.split():
+ if not s.startswith("file://"):
+ continue
+ fetcher = bb.fetch2.Fetch([s], d)
+ local = fetcher.localpath(s)
+ for mp in paths:
+ if local.startswith(mp):
+ #bb.note("overriding PACKAGE_ARCH from %s to %s for %s" % (pkg_arch, mach_arch, pn))
+ d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}")
+ return
+
+ packages = d.getVar('PACKAGES').split()
+ for pkg in packages:
+ pkgarch = d.getVar("PACKAGE_ARCH_%s" % pkg)
+
+ # We could look for != PACKAGE_ARCH here but how to choose
+ # if multiple differences are present?
+ # Look through PACKAGE_ARCHS for the priority order?
+ if pkgarch and pkgarch == mach_arch:
+ d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}")
+ bb.warn("Recipe %s is marked as only being architecture specific but seems to have machine specific packages?! The recipe may as well mark itself as machine specific directly." % d.getVar("PN"))
+}
+
+addtask cleansstate after do_clean
+python do_cleansstate() {
+ sstate_clean_cachefiles(d)
+}
+addtask cleanall after do_cleansstate
+do_cleansstate[nostamp] = "1"
+
+python do_cleanall() {
+ src_uri = (d.getVar('SRC_URI') or "").split()
+ if not src_uri:
+ return
+
+ try:
+ fetcher = bb.fetch2.Fetch(src_uri, d)
+ fetcher.clean()
+ except bb.fetch2.BBFetchException as e:
+ bb.fatal(str(e))
+}
+do_cleanall[nostamp] = "1"
+
+
+EXPORT_FUNCTIONS do_fetch do_unpack do_configure do_compile do_install
diff --git a/meta/classes-global/buildstats.bbclass b/meta/classes-global/buildstats.bbclass
new file mode 100644
index 0000000000..f49a67aa4f
--- /dev/null
+++ b/meta/classes-global/buildstats.bbclass
@@ -0,0 +1,302 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+BUILDSTATS_BASE = "${TMPDIR}/buildstats/"
+
+################################################################################
+# Build statistics gathering.
+#
+# The CPU and Time gathering/tracking functions and bbevent inspiration
+# were written by Christopher Larson.
+#
+################################################################################
+
+def get_buildprocess_cputime(pid):
+ with open("/proc/%d/stat" % pid, "r") as f:
+ fields = f.readline().rstrip().split()
+ # 13: utime, 14: stime, 15: cutime, 16: cstime
+ return sum(int(field) for field in fields[13:16])
+
+def get_process_cputime(pid):
+ import resource
+ with open("/proc/%d/stat" % pid, "r") as f:
+ fields = f.readline().rstrip().split()
+ stats = {
+ 'utime' : fields[13],
+ 'stime' : fields[14],
+ 'cutime' : fields[15],
+ 'cstime' : fields[16],
+ }
+ iostats = {}
+ if os.path.isfile("/proc/%d/io" % pid):
+ with open("/proc/%d/io" % pid, "r") as f:
+ while True:
+ i = f.readline().strip()
+ if not i:
+ break
+ if not ":" in i:
+ # one more extra line is appended (empty or containing "0")
+ # most probably due to race condition in kernel while
+ # updating IO stats
+ break
+ i = i.split(": ")
+ iostats[i[0]] = i[1]
+ resources = resource.getrusage(resource.RUSAGE_SELF)
+ childres = resource.getrusage(resource.RUSAGE_CHILDREN)
+ return stats, iostats, resources, childres
+
+def get_cputime():
+ with open("/proc/stat", "r") as f:
+ fields = f.readline().rstrip().split()[1:]
+ return sum(int(field) for field in fields)
+
+def set_timedata(var, d, server_time):
+ d.setVar(var, server_time)
+
+def get_timedata(var, d, end_time):
+ oldtime = d.getVar(var, False)
+ if oldtime is None:
+ return
+ return end_time - oldtime
+
+def set_buildtimedata(var, d):
+ import time
+ time = time.time()
+ cputime = get_cputime()
+ proctime = get_buildprocess_cputime(os.getpid())
+ d.setVar(var, (time, cputime, proctime))
+
+def get_buildtimedata(var, d):
+ import time
+ timedata = d.getVar(var, False)
+ if timedata is None:
+ return
+ oldtime, oldcpu, oldproc = timedata
+ procdiff = get_buildprocess_cputime(os.getpid()) - oldproc
+ cpudiff = get_cputime() - oldcpu
+ end_time = time.time()
+ timediff = end_time - oldtime
+ if cpudiff > 0:
+ cpuperc = float(procdiff) * 100 / cpudiff
+ else:
+ cpuperc = None
+ return timediff, cpuperc
+
+def write_task_data(status, logfile, e, d):
+ with open(os.path.join(logfile), "a") as f:
+ elapsedtime = get_timedata("__timedata_task", d, e.time)
+ if elapsedtime:
+ f.write(d.expand("${PF}: %s\n" % e.task))
+ f.write(d.expand("Elapsed time: %0.2f seconds\n" % elapsedtime))
+ cpu, iostats, resources, childres = get_process_cputime(os.getpid())
+ if cpu:
+ f.write("utime: %s\n" % cpu['utime'])
+ f.write("stime: %s\n" % cpu['stime'])
+ f.write("cutime: %s\n" % cpu['cutime'])
+ f.write("cstime: %s\n" % cpu['cstime'])
+ for i in iostats:
+ f.write("IO %s: %s\n" % (i, iostats[i]))
+ rusages = ["ru_utime", "ru_stime", "ru_maxrss", "ru_minflt", "ru_majflt", "ru_inblock", "ru_oublock", "ru_nvcsw", "ru_nivcsw"]
+ for i in rusages:
+ f.write("rusage %s: %s\n" % (i, getattr(resources, i)))
+ for i in rusages:
+ f.write("Child rusage %s: %s\n" % (i, getattr(childres, i)))
+ if status == "passed":
+ f.write("Status: PASSED \n")
+ else:
+ f.write("Status: FAILED \n")
+ f.write("Ended: %0.2f \n" % e.time)
+
+def write_host_data(logfile, e, d, type):
+ import subprocess, os, datetime
+ # minimum time allowed for each command to run, in seconds
+ time_threshold = 0.5
+ limit = 10
+ # the total number of commands
+ num_cmds = 0
+ msg = ""
+ if type == "interval":
+ # interval at which data will be logged
+ interval = d.getVar("BB_HEARTBEAT_EVENT", False)
+ if interval is None:
+ bb.warn("buildstats: Collecting host data at intervals failed. Set BB_HEARTBEAT_EVENT=\"<interval>\" in conf/local.conf for the interval at which host data will be logged.")
+ d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
+ return
+ interval = int(interval)
+ cmds = d.getVar('BB_LOG_HOST_STAT_CMDS_INTERVAL')
+ msg = "Host Stats: Collecting data at %d second intervals.\n" % interval
+ if cmds is None:
+ d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
+ bb.warn("buildstats: Collecting host data at intervals failed. Set BB_LOG_HOST_STAT_CMDS_INTERVAL=\"command1 ; command2 ; ... \" in conf/local.conf.")
+ return
+ if type == "failure":
+ cmds = d.getVar('BB_LOG_HOST_STAT_CMDS_FAILURE')
+ msg = "Host Stats: Collecting data on failure.\n"
+ msg += "Failed at task: " + e.task + "\n"
+ if cmds is None:
+ d.setVar("BB_LOG_HOST_STAT_ON_FAILURE", "0")
+ bb.warn("buildstats: Collecting host data on failure failed. Set BB_LOG_HOST_STAT_CMDS_FAILURE=\"command1 ; command2 ; ... \" in conf/local.conf.")
+ return
+ c_san = []
+ for cmd in cmds.split(";"):
+ if len(cmd) == 0:
+ continue
+ num_cmds += 1
+ c_san.append(cmd)
+ if num_cmds == 0:
+ if type == "interval":
+ d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
+ if type == "failure":
+ d.setVar("BB_LOG_HOST_STAT_ON_FAILURE", "0")
+ return
+
+ # return if the interval is not enough to run all commands within the specified BB_HEARTBEAT_EVENT interval
+ if type == "interval":
+ limit = interval / num_cmds
+ if limit <= time_threshold:
+ d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
+ bb.warn("buildstats: Collecting host data failed. BB_HEARTBEAT_EVENT interval not enough to run the specified commands. Increase value of BB_HEARTBEAT_EVENT in conf/local.conf.")
+ return
+
+ # set the environment variables
+ path = d.getVar("PATH")
+ opath = d.getVar("BB_ORIGENV", False).getVar("PATH")
+ ospath = os.environ['PATH']
+ os.environ['PATH'] = path + ":" + opath + ":" + ospath
+ with open(logfile, "a") as f:
+ f.write("Event Time: %f\nDate: %s\n" % (e.time, datetime.datetime.now()))
+ f.write("%s" % msg)
+ for c in c_san:
+ try:
+ output = subprocess.check_output(c.split(), stderr=subprocess.STDOUT, timeout=limit).decode('utf-8')
+ except (subprocess.CalledProcessError, subprocess.TimeoutExpired, FileNotFoundError) as err:
+ output = "Error running command: %s\n%s\n" % (c, err)
+ f.write("%s\n%s\n" % (c, output))
+ # reset the environment
+ os.environ['PATH'] = ospath
+
+python run_buildstats () {
+ import bb.build
+ import bb.event
+ import time, subprocess, platform
+
+ bn = d.getVar('BUILDNAME')
+ ########################################################################
+ # bitbake fires HeartbeatEvent even before a build has been
+ # triggered, causing BUILDNAME to be None
+ ########################################################################
+ if bn is not None:
+ bsdir = os.path.join(d.getVar('BUILDSTATS_BASE'), bn)
+ taskdir = os.path.join(bsdir, d.getVar('PF'))
+ if isinstance(e, bb.event.HeartbeatEvent) and bb.utils.to_boolean(d.getVar("BB_LOG_HOST_STAT_ON_INTERVAL")):
+ bb.utils.mkdirhier(bsdir)
+ write_host_data(os.path.join(bsdir, "host_stats_interval"), e, d, "interval")
+
+ if isinstance(e, bb.event.BuildStarted):
+ ########################################################################
+ # If the kernel was not configured to provide I/O statistics, issue
+ # a one time warning.
+ ########################################################################
+ if not os.path.isfile("/proc/%d/io" % os.getpid()):
+ bb.warn("The Linux kernel on your build host was not configured to provide process I/O statistics. (CONFIG_TASK_IO_ACCOUNTING is not set)")
+
+ ########################################################################
+ # at first pass make the buildstats hierarchy and then
+ # set the buildname
+ ########################################################################
+ bb.utils.mkdirhier(bsdir)
+ set_buildtimedata("__timedata_build", d)
+ build_time = os.path.join(bsdir, "build_stats")
+ # write start of build into build_time
+ with open(build_time, "a") as f:
+ host_info = platform.uname()
+ f.write("Host Info: ")
+ for x in host_info:
+ if x:
+ f.write(x + " ")
+ f.write("\n")
+ f.write("Build Started: %0.2f \n" % d.getVar('__timedata_build', False)[0])
+
+ elif isinstance(e, bb.event.BuildCompleted):
+ build_time = os.path.join(bsdir, "build_stats")
+ with open(build_time, "a") as f:
+ ########################################################################
+ # Write build statistics for the build
+ ########################################################################
+ timedata = get_buildtimedata("__timedata_build", d)
+ if timedata:
+ time, cpu = timedata
+ # write end of build and cpu used into build_time
+ f.write("Elapsed time: %0.2f seconds \n" % (time))
+ if cpu:
+ f.write("CPU usage: %0.1f%% \n" % cpu)
+
+ if isinstance(e, bb.build.TaskStarted):
+ set_timedata("__timedata_task", d, e.time)
+ bb.utils.mkdirhier(taskdir)
+ # write into the task event file the name and start time
+ with open(os.path.join(taskdir, e.task), "a") as f:
+ f.write("Event: %s \n" % bb.event.getName(e))
+ f.write("Started: %0.2f \n" % e.time)
+
+ elif isinstance(e, bb.build.TaskSucceeded):
+ write_task_data("passed", os.path.join(taskdir, e.task), e, d)
+ if e.task == "do_rootfs":
+ bs = os.path.join(bsdir, "build_stats")
+ with open(bs, "a") as f:
+ rootfs = d.getVar('IMAGE_ROOTFS')
+ if os.path.isdir(rootfs):
+ try:
+ rootfs_size = subprocess.check_output(["du", "-sh", rootfs],
+ stderr=subprocess.STDOUT).decode('utf-8')
+ f.write("Uncompressed Rootfs size: %s" % rootfs_size)
+ except subprocess.CalledProcessError as err:
+ bb.warn("Failed to get rootfs size: %s" % err.output.decode('utf-8'))
+
+ elif isinstance(e, bb.build.TaskFailed):
+ # Can have a failure before TaskStarted so need to mkdir here too
+ bb.utils.mkdirhier(taskdir)
+ write_task_data("failed", os.path.join(taskdir, e.task), e, d)
+ ########################################################################
+ # Lets make things easier and tell people where the build failed in
+ # build_status. We do this here because BuildCompleted triggers no
+ # matter what the status of the build actually is
+ ########################################################################
+ build_status = os.path.join(bsdir, "build_stats")
+ with open(build_status, "a") as f:
+ f.write(d.expand("Failed at: ${PF} at task: %s \n" % e.task))
+ if bb.utils.to_boolean(d.getVar("BB_LOG_HOST_STAT_ON_FAILURE")):
+ write_host_data(os.path.join(bsdir, "host_stats_%s_failure" % e.task), e, d, "failure")
+}
+
+addhandler run_buildstats
+run_buildstats[eventmask] = "bb.event.BuildStarted bb.event.BuildCompleted bb.event.HeartbeatEvent bb.build.TaskStarted bb.build.TaskSucceeded bb.build.TaskFailed"
+
+python runqueue_stats () {
+ import buildstats
+ from bb import event, runqueue
+ # We should not record any samples before the first task has started,
+ # because that's the first activity shown in the process chart.
+ # Besides, at that point we are sure that the build variables
+ # are available that we need to find the output directory.
+ # The persistent SystemStats is stored in the datastore and
+ # closed when the build is done.
+ system_stats = d.getVar('_buildstats_system_stats', False)
+ if not system_stats and isinstance(e, (bb.runqueue.sceneQueueTaskStarted, bb.runqueue.runQueueTaskStarted)):
+ system_stats = buildstats.SystemStats(d)
+ d.setVar('_buildstats_system_stats', system_stats)
+ if system_stats:
+ # Ensure that we sample at important events.
+ done = isinstance(e, bb.event.BuildCompleted)
+ if system_stats.sample(e, force=done):
+ d.setVar('_buildstats_system_stats', system_stats)
+ if done:
+ system_stats.close()
+ d.delVar('_buildstats_system_stats')
+}
+
+addhandler runqueue_stats
+runqueue_stats[eventmask] = "bb.runqueue.sceneQueueTaskStarted bb.runqueue.runQueueTaskStarted bb.event.HeartbeatEvent bb.event.BuildCompleted bb.event.MonitorDiskEvent"
diff --git a/meta/classes-global/debian.bbclass b/meta/classes-global/debian.bbclass
new file mode 100644
index 0000000000..7135d74837
--- /dev/null
+++ b/meta/classes-global/debian.bbclass
@@ -0,0 +1,156 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+# Debian package renaming only occurs when a package is built
+# We therefore have to make sure we build all runtime packages
+# before building the current package to make the packages runtime
+# depends are correct
+#
+# Custom library package names can be defined setting
+# DEBIANNAME: + pkgname to the desired name.
+#
+# Better expressed as ensure all RDEPENDS package before we package
+# This means we can't have circular RDEPENDS/RRECOMMENDS
+
+AUTO_LIBNAME_PKGS = "${PACKAGES}"
+
+inherit package
+
+DEBIANRDEP = "do_packagedata"
+do_package_write_ipk[deptask] = "${DEBIANRDEP}"
+do_package_write_deb[deptask] = "${DEBIANRDEP}"
+do_package_write_tar[deptask] = "${DEBIANRDEP}"
+do_package_write_rpm[deptask] = "${DEBIANRDEP}"
+do_package_write_ipk[rdeptask] = "${DEBIANRDEP}"
+do_package_write_deb[rdeptask] = "${DEBIANRDEP}"
+do_package_write_tar[rdeptask] = "${DEBIANRDEP}"
+do_package_write_rpm[rdeptask] = "${DEBIANRDEP}"
+
+python () {
+ if not d.getVar("PACKAGES"):
+ d.setVar("DEBIANRDEP", "")
+}
+
+python debian_package_name_hook () {
+ import glob, copy, stat, errno, re, pathlib, subprocess
+
+ pkgdest = d.getVar("PKGDEST")
+ packages = d.getVar('PACKAGES')
+ so_re = re.compile(r"lib.*\.so")
+
+ def socrunch(s):
+ s = s.lower().replace('_', '-')
+ m = re.match(r"^(.*)(.)\.so\.(.*)$", s)
+ if m is None:
+ return None
+ if m.group(2) in '0123456789':
+ bin = '%s%s-%s' % (m.group(1), m.group(2), m.group(3))
+ else:
+ bin = m.group(1) + m.group(2) + m.group(3)
+ dev = m.group(1) + m.group(2)
+ return (bin, dev)
+
+ def isexec(path):
+ try:
+ s = os.stat(path)
+ except (os.error, AttributeError):
+ return 0
+ return (s[stat.ST_MODE] & stat.S_IEXEC)
+
+ def add_rprovides(pkg, d):
+ newpkg = d.getVar('PKG:' + pkg)
+ if newpkg and newpkg != pkg:
+ provs = (d.getVar('RPROVIDES:' + pkg) or "").split()
+ if pkg not in provs:
+ d.appendVar('RPROVIDES:' + pkg, " " + pkg + " (=" + d.getVar("PKGV") + ")")
+
+ def auto_libname(packages, orig_pkg):
+ p = lambda var: pathlib.PurePath(d.getVar(var))
+ libdirs = (p("base_libdir"), p("libdir"))
+ bindirs = (p("base_bindir"), p("base_sbindir"), p("bindir"), p("sbindir"))
+
+ sonames = []
+ has_bins = 0
+ has_libs = 0
+ for f in pkgfiles[orig_pkg]:
+ # This is .../packages-split/orig_pkg/
+ pkgpath = pathlib.PurePath(pkgdest, orig_pkg)
+ # Strip pkgpath off the full path to a file in the package, re-root
+ # so it is absolute, and then get the parent directory of the file.
+ path = pathlib.PurePath("/") / (pathlib.PurePath(f).relative_to(pkgpath).parent)
+ if path in bindirs:
+ has_bins = 1
+ if path in libdirs:
+ has_libs = 1
+ if so_re.match(os.path.basename(f)):
+ try:
+ cmd = [d.expand("${TARGET_PREFIX}objdump"), "-p", f]
+ output = subprocess.check_output(cmd).decode("utf-8")
+ for m in re.finditer(r"\s+SONAME\s+([^\s]+)", output):
+ if m.group(1) not in sonames:
+ sonames.append(m.group(1))
+ except subprocess.CalledProcessError:
+ pass
+ bb.debug(1, 'LIBNAMES: pkg %s libs %d bins %d sonames %s' % (orig_pkg, has_libs, has_bins, sonames))
+ soname = None
+ if len(sonames) == 1:
+ soname = sonames[0]
+ elif len(sonames) > 1:
+ lead = d.getVar('LEAD_SONAME')
+ if lead:
+ r = re.compile(lead)
+ filtered = []
+ for s in sonames:
+ if r.match(s):
+ filtered.append(s)
+ if len(filtered) == 1:
+ soname = filtered[0]
+ elif len(filtered) > 1:
+ bb.note("Multiple matches (%s) for LEAD_SONAME '%s'" % (", ".join(filtered), lead))
+ else:
+ bb.note("Multiple libraries (%s) found, but LEAD_SONAME '%s' doesn't match any of them" % (", ".join(sonames), lead))
+ else:
+ bb.note("Multiple libraries (%s) found and LEAD_SONAME not defined" % ", ".join(sonames))
+
+ if has_libs and not has_bins and soname:
+ soname_result = socrunch(soname)
+ if soname_result:
+ (pkgname, devname) = soname_result
+ for pkg in packages.split():
+ if (d.getVar('PKG:' + pkg, False) or d.getVar('DEBIAN_NOAUTONAME:' + pkg, False)):
+ add_rprovides(pkg, d)
+ continue
+ debian_pn = d.getVar('DEBIANNAME:' + pkg, False)
+ if debian_pn:
+ newpkg = debian_pn
+ elif pkg == orig_pkg:
+ newpkg = pkgname
+ else:
+ newpkg = pkg.replace(orig_pkg, devname, 1)
+ mlpre=d.getVar('MLPREFIX')
+ if mlpre:
+ if not newpkg.find(mlpre) == 0:
+ newpkg = mlpre + newpkg
+ if newpkg != pkg:
+ bb.note("debian: renaming %s to %s" % (pkg, newpkg))
+ d.setVar('PKG:' + pkg, newpkg)
+ add_rprovides(pkg, d)
+ else:
+ add_rprovides(orig_pkg, d)
+
+ # reversed sort is needed when some package is substring of another
+ # ie in ncurses we get without reverse sort:
+ # DEBUG: LIBNAMES: pkgname libtic5 devname libtic pkg ncurses-libtic orig_pkg ncurses-libtic debian_pn None newpkg libtic5
+ # and later
+ # DEBUG: LIBNAMES: pkgname libtic5 devname libtic pkg ncurses-libticw orig_pkg ncurses-libtic debian_pn None newpkg libticw
+ # so we need to handle ncurses-libticw->libticw5 before ncurses-libtic->libtic5
+ for pkg in sorted((d.getVar('AUTO_LIBNAME_PKGS') or "").split(), reverse=True):
+ auto_libname(packages, pkg)
+}
+
+EXPORT_FUNCTIONS package_name_hook
+
+DEBIAN_NAMES = "1"
diff --git a/meta/classes-global/devshell.bbclass b/meta/classes-global/devshell.bbclass
new file mode 100644
index 0000000000..03af56b7a2
--- /dev/null
+++ b/meta/classes-global/devshell.bbclass
@@ -0,0 +1,166 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+inherit terminal
+
+DEVSHELL = "${SHELL}"
+
+PATH:prepend:task-devshell = "${COREBASE}/scripts/git-intercept:"
+
+python do_devshell () {
+ if d.getVarFlag("do_devshell", "manualfakeroot"):
+ d.prependVar("DEVSHELL", "pseudo ")
+ fakeenv = d.getVar("FAKEROOTENV").split()
+ for f in fakeenv:
+ k = f.split("=")
+ d.setVar(k[0], k[1])
+ d.appendVar("OE_TERMINAL_EXPORTS", " " + k[0])
+ d.delVarFlag("do_devshell", "fakeroot")
+
+ oe_terminal(d.getVar('DEVSHELL'), 'OpenEmbedded Developer Shell', d)
+}
+
+addtask devshell after do_patch do_prepare_recipe_sysroot
+
+# The directory that the terminal starts in
+DEVSHELL_STARTDIR ?= "${S}"
+do_devshell[dirs] = "${DEVSHELL_STARTDIR}"
+do_devshell[nostamp] = "1"
+do_devshell[network] = "1"
+
+# devshell and fakeroot/pseudo need careful handling since only the final
+# command should run under fakeroot emulation, any X connection should
+# be done as the normal user. We therfore carefully construct the envionment
+# manually
+python () {
+ if d.getVarFlag("do_devshell", "fakeroot"):
+ # We need to signal our code that we want fakeroot however we
+ # can't manipulate the environment and variables here yet (see YOCTO #4795)
+ d.setVarFlag("do_devshell", "manualfakeroot", "1")
+ d.delVarFlag("do_devshell", "fakeroot")
+}
+
+def pydevshell(d):
+
+ import code
+ import select
+ import signal
+ import termios
+
+ m, s = os.openpty()
+ sname = os.ttyname(s)
+
+ def noechoicanon(fd):
+ old = termios.tcgetattr(fd)
+ old[3] = old[3] &~ termios.ECHO &~ termios.ICANON
+ # &~ termios.ISIG
+ termios.tcsetattr(fd, termios.TCSADRAIN, old)
+
+ # No echo or buffering over the pty
+ noechoicanon(s)
+
+ pid = os.fork()
+ if pid:
+ os.close(m)
+ oe_terminal("oepydevshell-internal.py %s %d" % (sname, pid), 'OpenEmbedded Developer PyShell', d)
+ os._exit(0)
+ else:
+ os.close(s)
+
+ os.dup2(m, sys.stdin.fileno())
+ os.dup2(m, sys.stdout.fileno())
+ os.dup2(m, sys.stderr.fileno())
+
+ bb.utils.nonblockingfd(sys.stdout)
+ bb.utils.nonblockingfd(sys.stderr)
+ bb.utils.nonblockingfd(sys.stdin)
+
+ _context = {
+ "os": os,
+ "bb": bb,
+ "time": time,
+ "d": d,
+ }
+
+ ps1 = "pydevshell> "
+ ps2 = "... "
+ buf = []
+ more = False
+
+ i = code.InteractiveInterpreter(locals=_context)
+ print("OE PyShell (PN = %s)\n" % d.getVar("PN"))
+
+ def prompt(more):
+ if more:
+ prompt = ps2
+ else:
+ prompt = ps1
+ sys.stdout.write(prompt)
+ sys.stdout.flush()
+
+ # Restore Ctrl+C since bitbake masks this
+ def signal_handler(signal, frame):
+ raise KeyboardInterrupt
+ signal.signal(signal.SIGINT, signal_handler)
+
+ child = None
+
+ prompt(more)
+ while True:
+ try:
+ try:
+ (r, _, _) = select.select([sys.stdin], [], [], 1)
+ if not r:
+ continue
+ line = sys.stdin.readline().strip()
+ if not line:
+ prompt(more)
+ continue
+ except EOFError as e:
+ sys.stdout.write("\n")
+ sys.stdout.flush()
+ except (OSError, IOError) as e:
+ if e.errno == 11:
+ continue
+ if e.errno == 5:
+ return
+ raise
+ else:
+ if not child:
+ child = int(line)
+ continue
+ buf.append(line)
+ source = "\n".join(buf)
+ more = i.runsource(source, "<pyshell>")
+ if not more:
+ buf = []
+ sys.stderr.flush()
+ prompt(more)
+ except KeyboardInterrupt:
+ i.write("\nKeyboardInterrupt\n")
+ buf = []
+ more = False
+ prompt(more)
+ except SystemExit:
+ # Easiest way to ensure everything exits
+ os.kill(child, signal.SIGTERM)
+ break
+
+python do_pydevshell() {
+ import signal
+
+ try:
+ pydevshell(d)
+ except SystemExit:
+ # Stop the SIGTERM above causing an error exit code
+ return
+ finally:
+ return
+}
+addtask pydevshell after do_patch
+
+do_pydevshell[nostamp] = "1"
+do_pydevshell[network] = "1"
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
new file mode 100644
index 0000000000..df2c40c3c5
--- /dev/null
+++ b/meta/classes-global/insane.bbclass
@@ -0,0 +1,1457 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+# BB Class inspired by ebuild.sh
+#
+# This class will test files after installation for certain
+# security issues and other kind of issues.
+#
+# Checks we do:
+# -Check the ownership and permissions
+# -Check the RUNTIME path for the $TMPDIR
+# -Check if .la files wrongly point to workdir
+# -Check if .pc files wrongly point to workdir
+# -Check if packages contains .debug directories or .so files
+# where they should be in -dev or -dbg
+# -Check if config.log contains traces to broken autoconf tests
+# -Check invalid characters (non-utf8) on some package metadata
+# -Ensure that binaries in base_[bindir|sbindir|libdir] do not link
+# into exec_prefix
+# -Check that scripts in base_[bindir|sbindir|libdir] do not reference
+# files under exec_prefix
+# -Check if the package name is upper case
+
+# Elect whether a given type of error is a warning or error, they may
+# have been set by other files.
+WARN_QA ?= " libdir xorg-driver-abi buildpaths \
+ textrel incompatible-license files-invalid \
+ infodir build-deps src-uri-bad symlink-to-sysroot multilib \
+ invalid-packageconfig host-user-contaminated uppercase-pn patch-fuzz \
+ mime mime-xdg unlisted-pkg-lics unhandled-features-check \
+ missing-update-alternatives native-last missing-ptest \
+ license-exists license-no-generic license-syntax license-format \
+ license-incompatible license-file-missing obsolete-license \
+ "
+ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
+ perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
+ split-strip packages-list pkgv-undefined var-undefined \
+ version-going-backwards expanded-d invalid-chars \
+ license-checksum dev-elf file-rdeps configure-unsafe \
+ configure-gettext perllocalpod shebang-size \
+ already-stripped installed-vs-shipped ldflags compile-host-path \
+ install-host-path pn-overrides unknown-configure-option \
+ useless-rpaths rpaths staticdev empty-dirs \
+ "
+# Add usrmerge QA check based on distro feature
+ERROR_QA:append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
+
+FAKEROOT_QA = "host-user-contaminated"
+FAKEROOT_QA[doc] = "QA tests which need to run under fakeroot. If any \
+enabled tests are listed here, the do_package_qa task will run under fakeroot."
+
+ALL_QA = "${WARN_QA} ${ERROR_QA}"
+
+UNKNOWN_CONFIGURE_OPT_IGNORE ?= "--enable-nls --disable-nls --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot --disable-static"
+
+# This is a list of directories that are expected to be empty.
+QA_EMPTY_DIRS ?= " \
+ /dev/pts \
+ /media \
+ /proc \
+ /run \
+ /tmp \
+ ${localstatedir}/run \
+ ${localstatedir}/volatile \
+"
+# It is possible to specify why a directory is expected to be empty by defining
+# QA_EMPTY_DIRS_RECOMMENDATION:<path>, which will then be included in the error
+# message if the directory is not empty. If it is not specified for a directory,
+# then "but it is expected to be empty" will be used.
+
+def package_qa_clean_path(path, d, pkg=None):
+ """
+ Remove redundant paths from the path for display. If pkg isn't set then
+ TMPDIR is stripped, otherwise PKGDEST/pkg is stripped.
+ """
+ if pkg:
+ path = path.replace(os.path.join(d.getVar("PKGDEST"), pkg), "/")
+ return path.replace(d.getVar("TMPDIR"), "/").replace("//", "/")
+
+QAPATHTEST[shebang-size] = "package_qa_check_shebang_size"
+def package_qa_check_shebang_size(path, name, d, elf, messages):
+ import stat
+ if os.path.islink(path) or stat.S_ISFIFO(os.stat(path).st_mode) or elf:
+ return
+
+ try:
+ with open(path, 'rb') as f:
+ stanza = f.readline(130)
+ except IOError:
+ return
+
+ if stanza.startswith(b'#!'):
+ #Shebang not found
+ try:
+ stanza = stanza.decode("utf-8")
+ except UnicodeDecodeError:
+ #If it is not a text file, it is not a script
+ return
+
+ if len(stanza) > 129:
+ oe.qa.add_message(messages, "shebang-size", "%s: %s maximum shebang size exceeded, the maximum size is 128." % (name, package_qa_clean_path(path, d)))
+ return
+
+QAPATHTEST[libexec] = "package_qa_check_libexec"
+def package_qa_check_libexec(path,name, d, elf, messages):
+
+ # Skip the case where the default is explicitly /usr/libexec
+ libexec = d.getVar('libexecdir')
+ if libexec == "/usr/libexec":
+ return True
+
+ if 'libexec' in path.split(os.path.sep):
+ oe.qa.add_message(messages, "libexec", "%s: %s is using libexec please relocate to %s" % (name, package_qa_clean_path(path, d), libexec))
+ return False
+
+ return True
+
+QAPATHTEST[rpaths] = "package_qa_check_rpath"
+def package_qa_check_rpath(file,name, d, elf, messages):
+ """
+ Check for dangerous RPATHs
+ """
+ if not elf:
+ return
+
+ if os.path.islink(file):
+ return
+
+ bad_dirs = [d.getVar('BASE_WORKDIR'), d.getVar('STAGING_DIR_TARGET')]
+
+ phdrs = elf.run_objdump("-p", d)
+
+ import re
+ rpath_re = re.compile(r"\s+RPATH\s+(.*)")
+ for line in phdrs.split("\n"):
+ m = rpath_re.match(line)
+ if m:
+ rpath = m.group(1)
+ for dir in bad_dirs:
+ if dir in rpath:
+ oe.qa.add_message(messages, "rpaths", "package %s contains bad RPATH %s in file %s" % (name, rpath, file))
+
+QAPATHTEST[useless-rpaths] = "package_qa_check_useless_rpaths"
+def package_qa_check_useless_rpaths(file, name, d, elf, messages):
+ """
+ Check for RPATHs that are useless but not dangerous
+ """
+ def rpath_eq(a, b):
+ return os.path.normpath(a) == os.path.normpath(b)
+
+ if not elf:
+ return
+
+ if os.path.islink(file):
+ return
+
+ libdir = d.getVar("libdir")
+ base_libdir = d.getVar("base_libdir")
+
+ phdrs = elf.run_objdump("-p", d)
+
+ import re
+ rpath_re = re.compile(r"\s+RPATH\s+(.*)")
+ for line in phdrs.split("\n"):
+ m = rpath_re.match(line)
+ if m:
+ rpath = m.group(1)
+ if rpath_eq(rpath, libdir) or rpath_eq(rpath, base_libdir):
+ # The dynamic linker searches both these places anyway. There is no point in
+ # looking there again.
+ oe.qa.add_message(messages, "useless-rpaths", "%s: %s contains probably-redundant RPATH %s" % (name, package_qa_clean_path(file, d, name), rpath))
+
+QAPATHTEST[dev-so] = "package_qa_check_dev"
+def package_qa_check_dev(path, name, d, elf, messages):
+ """
+ Check for ".so" library symlinks in non-dev packages
+ """
+
+ if not name.endswith("-dev") and not name.endswith("-dbg") and not name.endswith("-ptest") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
+ oe.qa.add_message(messages, "dev-so", "non -dev/-dbg/nativesdk- package %s contains symlink .so '%s'" % \
+ (name, package_qa_clean_path(path, d, name)))
+
+QAPATHTEST[dev-elf] = "package_qa_check_dev_elf"
+def package_qa_check_dev_elf(path, name, d, elf, messages):
+ """
+ Check that -dev doesn't contain real shared libraries. The test has to
+ check that the file is not a link and is an ELF object as some recipes
+ install link-time .so files that are linker scripts.
+ """
+ if name.endswith("-dev") and path.endswith(".so") and not os.path.islink(path) and elf:
+ oe.qa.add_message(messages, "dev-elf", "-dev package %s contains non-symlink .so '%s'" % \
+ (name, package_qa_clean_path(path, d, name)))
+
+QAPATHTEST[staticdev] = "package_qa_check_staticdev"
+def package_qa_check_staticdev(path, name, d, elf, messages):
+ """
+ Check for ".a" library in non-staticdev packages
+ There are a number of exceptions to this rule, -pic packages can contain
+ static libraries, the _nonshared.a belong with their -dev packages and
+ libgcc.a, libgcov.a will be skipped in their packages
+ """
+
+ if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a") and not '/usr/lib/debug-static/' in path and not '/.debug-static/' in path:
+ oe.qa.add_message(messages, "staticdev", "non -staticdev package contains static .a library: %s path '%s'" % \
+ (name, package_qa_clean_path(path,d, name)))
+
+QAPATHTEST[mime] = "package_qa_check_mime"
+def package_qa_check_mime(path, name, d, elf, messages):
+ """
+ Check if package installs mime types to /usr/share/mime/packages
+ while no inheriting mime.bbclass
+ """
+
+ if d.getVar("datadir") + "/mime/packages" in path and path.endswith('.xml') and not bb.data.inherits_class("mime", d):
+ oe.qa.add_message(messages, "mime", "package contains mime types but does not inherit mime: %s path '%s'" % \
+ (name, package_qa_clean_path(path,d)))
+
+QAPATHTEST[mime-xdg] = "package_qa_check_mime_xdg"
+def package_qa_check_mime_xdg(path, name, d, elf, messages):
+ """
+ Check if package installs desktop file containing MimeType and requires
+ mime-types.bbclass to create /usr/share/applications/mimeinfo.cache
+ """
+
+ if d.getVar("datadir") + "/applications" in path and path.endswith('.desktop') and not bb.data.inherits_class("mime-xdg", d):
+ mime_type_found = False
+ try:
+ with open(path, 'r') as f:
+ for line in f.read().split('\n'):
+ if 'MimeType' in line:
+ mime_type_found = True
+ break;
+ except:
+ # At least libreoffice installs symlinks with absolute paths that are dangling here.
+ # We could implement some magic but for few (one) recipes it is not worth the effort so just warn:
+ wstr = "%s cannot open %s - is it a symlink with absolute path?\n" % (name, package_qa_clean_path(path,d))
+ wstr += "Please check if (linked) file contains key 'MimeType'.\n"
+ pkgname = name
+ if name == d.getVar('PN'):
+ pkgname = '${PN}'
+ wstr += "If yes: add \'inhert mime-xdg\' and \'MIME_XDG_PACKAGES += \"%s\"\' / if no add \'INSANE_SKIP:%s += \"mime-xdg\"\' to recipe." % (pkgname, pkgname)
+ oe.qa.add_message(messages, "mime-xdg", wstr)
+ if mime_type_found:
+ oe.qa.add_message(messages, "mime-xdg", "package contains desktop file with key 'MimeType' but does not inhert mime-xdg: %s path '%s'" % \
+ (name, package_qa_clean_path(path,d)))
+
+def package_qa_check_libdir(d):
+ """
+ Check for wrong library installation paths. For instance, catch
+ recipes installing /lib/bar.so when ${base_libdir}="lib32" or
+ installing in /usr/lib64 when ${libdir}="/usr/lib"
+ """
+ import re
+
+ pkgdest = d.getVar('PKGDEST')
+ base_libdir = d.getVar("base_libdir") + os.sep
+ libdir = d.getVar("libdir") + os.sep
+ libexecdir = d.getVar("libexecdir") + os.sep
+ exec_prefix = d.getVar("exec_prefix") + os.sep
+
+ messages = []
+
+ # The re's are purposely fuzzy, as some there are some .so.x.y.z files
+ # that don't follow the standard naming convention. It checks later
+ # that they are actual ELF files
+ lib_re = re.compile(r"^/lib.+\.so(\..+)?$")
+ exec_re = re.compile(r"^%s.*/lib.+\.so(\..+)?$" % exec_prefix)
+
+ for root, dirs, files in os.walk(pkgdest):
+ if root == pkgdest:
+ # Skip subdirectories for any packages with libdir in INSANE_SKIP
+ skippackages = []
+ for package in dirs:
+ if 'libdir' in (d.getVar('INSANE_SKIP:' + package) or "").split():
+ bb.note("Package %s skipping libdir QA test" % (package))
+ skippackages.append(package)
+ elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-file-directory' and package.endswith("-dbg"):
+ bb.note("Package %s skipping libdir QA test for PACKAGE_DEBUG_SPLIT_STYLE equals debug-file-directory" % (package))
+ skippackages.append(package)
+ for package in skippackages:
+ dirs.remove(package)
+ for file in files:
+ full_path = os.path.join(root, file)
+ rel_path = os.path.relpath(full_path, pkgdest)
+ if os.sep in rel_path:
+ package, rel_path = rel_path.split(os.sep, 1)
+ rel_path = os.sep + rel_path
+ if lib_re.match(rel_path):
+ if base_libdir not in rel_path:
+ # make sure it's an actual ELF file
+ elf = oe.qa.ELFFile(full_path)
+ try:
+ elf.open()
+ messages.append("%s: found library in wrong location: %s" % (package, rel_path))
+ except (oe.qa.NotELFFileError):
+ pass
+ if exec_re.match(rel_path):
+ if libdir not in rel_path and libexecdir not in rel_path:
+ # make sure it's an actual ELF file
+ elf = oe.qa.ELFFile(full_path)
+ try:
+ elf.open()
+ messages.append("%s: found library in wrong location: %s" % (package, rel_path))
+ except (oe.qa.NotELFFileError):
+ pass
+
+ if messages:
+ oe.qa.handle_error("libdir", "\n".join(messages), d)
+
+QAPATHTEST[debug-files] = "package_qa_check_dbg"
+def package_qa_check_dbg(path, name, d, elf, messages):
+ """
+ Check for ".debug" files or directories outside of the dbg package
+ """
+
+ if not "-dbg" in name and not "-ptest" in name:
+ if '.debug' in path.split(os.path.sep):
+ oe.qa.add_message(messages, "debug-files", "non debug package contains .debug directory: %s path %s" % \
+ (name, package_qa_clean_path(path,d)))
+
+QAPATHTEST[arch] = "package_qa_check_arch"
+def package_qa_check_arch(path,name,d, elf, messages):
+ """
+ Check if archs are compatible
+ """
+ import re, oe.elf
+
+ if not elf:
+ return
+
+ target_os = d.getVar('HOST_OS')
+ target_arch = d.getVar('HOST_ARCH')
+ provides = d.getVar('PROVIDES')
+ bpn = d.getVar('BPN')
+
+ if target_arch == "allarch":
+ pn = d.getVar('PN')
+ oe.qa.add_message(messages, "arch", pn + ": Recipe inherits the allarch class, but has packaged architecture-specific binaries")
+ return
+
+ # FIXME: Cross package confuse this check, so just skip them
+ for s in ['cross', 'nativesdk', 'cross-canadian']:
+ if bb.data.inherits_class(s, d):
+ return
+
+ # avoid following links to /usr/bin (e.g. on udev builds)
+ # we will check the files pointed to anyway...
+ if os.path.islink(path):
+ return
+
+ #if this will throw an exception, then fix the dict above
+ (machine, osabi, abiversion, littleendian, bits) \
+ = oe.elf.machine_dict(d)[target_os][target_arch]
+
+ # Check the architecture and endiannes of the binary
+ is_32 = (("virtual/kernel" in provides) or bb.data.inherits_class("module", d)) and \
+ (target_os == "linux-gnux32" or target_os == "linux-muslx32" or \
+ target_os == "linux-gnu_ilp32" or re.match(r'mips64.*32', d.getVar('DEFAULTTUNE')))
+ is_bpf = (oe.qa.elf_machine_to_string(elf.machine()) == "BPF")
+ if not ((machine == elf.machine()) or is_32 or is_bpf):
+ oe.qa.add_message(messages, "arch", "Architecture did not match (%s, expected %s) in %s" % \
+ (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path, d, name)))
+ elif not ((bits == elf.abiSize()) or is_32 or is_bpf):
+ oe.qa.add_message(messages, "arch", "Bit size did not match (%d, expected %d) in %s" % \
+ (elf.abiSize(), bits, package_qa_clean_path(path, d, name)))
+ elif not ((littleendian == elf.isLittleEndian()) or is_bpf):
+ oe.qa.add_message(messages, "arch", "Endiannes did not match (%d, expected %d) in %s" % \
+ (elf.isLittleEndian(), littleendian, package_qa_clean_path(path,d, name)))
+
+QAPATHTEST[desktop] = "package_qa_check_desktop"
+def package_qa_check_desktop(path, name, d, elf, messages):
+ """
+ Run all desktop files through desktop-file-validate.
+ """
+ if path.endswith(".desktop"):
+ desktop_file_validate = os.path.join(d.getVar('STAGING_BINDIR_NATIVE'),'desktop-file-validate')
+ output = os.popen("%s %s" % (desktop_file_validate, path))
+ # This only produces output on errors
+ for l in output:
+ oe.qa.add_message(messages, "desktop", "Desktop file issue: " + l.strip())
+
+QAPATHTEST[textrel] = "package_qa_textrel"
+def package_qa_textrel(path, name, d, elf, messages):
+ """
+ Check if the binary contains relocations in .text
+ """
+
+ if not elf:
+ return
+
+ if os.path.islink(path):
+ return
+
+ phdrs = elf.run_objdump("-p", d)
+ sane = True
+
+ import re
+ textrel_re = re.compile(r"\s+TEXTREL\s+")
+ for line in phdrs.split("\n"):
+ if textrel_re.match(line):
+ sane = False
+ break
+
+ if not sane:
+ path = package_qa_clean_path(path, d, name)
+ oe.qa.add_message(messages, "textrel", "%s: ELF binary %s has relocations in .text" % (name, path))
+
+QAPATHTEST[ldflags] = "package_qa_hash_style"
+def package_qa_hash_style(path, name, d, elf, messages):
+ """
+ Check if the binary has the right hash style...
+ """
+
+ if not elf:
+ return
+
+ if os.path.islink(path):
+ return
+
+ gnu_hash = "--hash-style=gnu" in d.getVar('LDFLAGS')
+ if not gnu_hash:
+ gnu_hash = "--hash-style=both" in d.getVar('LDFLAGS')
+ if not gnu_hash:
+ return
+
+ sane = False
+ has_syms = False
+
+ phdrs = elf.run_objdump("-p", d)
+
+ # If this binary has symbols, we expect it to have GNU_HASH too.
+ for line in phdrs.split("\n"):
+ if "SYMTAB" in line:
+ has_syms = True
+ if "GNU_HASH" in line or "MIPS_XHASH" in line:
+ sane = True
+ if ("[mips32]" in line or "[mips64]" in line) and d.getVar('TCLIBC') == "musl":
+ sane = True
+ if has_syms and not sane:
+ path = package_qa_clean_path(path, d, name)
+ oe.qa.add_message(messages, "ldflags", "File %s in package %s doesn't have GNU_HASH (didn't pass LDFLAGS?)" % (path, name))
+
+
+QAPATHTEST[buildpaths] = "package_qa_check_buildpaths"
+def package_qa_check_buildpaths(path, name, d, elf, messages):
+ """
+ Check for build paths inside target files and error if paths are not
+ explicitly ignored.
+ """
+ import stat
+
+ # Ignore symlinks/devs/fifos
+ mode = os.lstat(path).st_mode
+ if stat.S_ISLNK(mode) or stat.S_ISBLK(mode) or stat.S_ISFIFO(mode) or stat.S_ISCHR(mode) or stat.S_ISSOCK(mode):
+ return
+
+ tmpdir = bytes(d.getVar('TMPDIR'), encoding="utf-8")
+ with open(path, 'rb') as f:
+ file_content = f.read()
+ if tmpdir in file_content:
+ trimmed = path.replace(os.path.join (d.getVar("PKGDEST"), name), "")
+ oe.qa.add_message(messages, "buildpaths", "File %s in package %s contains reference to TMPDIR" % (trimmed, name))
+
+
+QAPATHTEST[xorg-driver-abi] = "package_qa_check_xorg_driver_abi"
+def package_qa_check_xorg_driver_abi(path, name, d, elf, messages):
+ """
+ Check that all packages containing Xorg drivers have ABI dependencies
+ """
+
+ # Skip dev, dbg or nativesdk packages
+ if name.endswith("-dev") or name.endswith("-dbg") or name.startswith("nativesdk-"):
+ return
+
+ driverdir = d.expand("${libdir}/xorg/modules/drivers/")
+ if driverdir in path and path.endswith(".so"):
+ mlprefix = d.getVar('MLPREFIX') or ''
+ for rdep in bb.utils.explode_deps(d.getVar('RDEPENDS:' + name) or ""):
+ if rdep.startswith("%sxorg-abi-" % mlprefix):
+ return
+ oe.qa.add_message(messages, "xorg-driver-abi", "Package %s contains Xorg driver (%s) but no xorg-abi- dependencies" % (name, os.path.basename(path)))
+
+QAPATHTEST[infodir] = "package_qa_check_infodir"
+def package_qa_check_infodir(path, name, d, elf, messages):
+ """
+ Check that /usr/share/info/dir isn't shipped in a particular package
+ """
+ infodir = d.expand("${infodir}/dir")
+
+ if infodir in path:
+ oe.qa.add_message(messages, "infodir", "The /usr/share/info/dir file is not meant to be shipped in a particular package.")
+
+QAPATHTEST[symlink-to-sysroot] = "package_qa_check_symlink_to_sysroot"
+def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages):
+ """
+ Check that the package doesn't contain any absolute symlinks to the sysroot.
+ """
+ if os.path.islink(path):
+ target = os.readlink(path)
+ if os.path.isabs(target):
+ tmpdir = d.getVar('TMPDIR')
+ if target.startswith(tmpdir):
+ trimmed = path.replace(os.path.join (d.getVar("PKGDEST"), name), "")
+ oe.qa.add_message(messages, "symlink-to-sysroot", "Symlink %s in %s points to TMPDIR" % (trimmed, name))
+
+# Check license variables
+do_populate_lic[postfuncs] += "populate_lic_qa_checksum"
+python populate_lic_qa_checksum() {
+ """
+ Check for changes in the license files.
+ """
+
+ lic_files = d.getVar('LIC_FILES_CHKSUM') or ''
+ lic = d.getVar('LICENSE')
+ pn = d.getVar('PN')
+
+ if lic == "CLOSED":
+ return
+
+ if not lic_files and d.getVar('SRC_URI'):
+ oe.qa.handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d)
+
+ srcdir = d.getVar('S')
+ corebase_licensefile = d.getVar('COREBASE') + "/LICENSE"
+ for url in lic_files.split():
+ try:
+ (type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
+ except bb.fetch.MalformedUrl:
+ oe.qa.handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d)
+ continue
+ srclicfile = os.path.join(srcdir, path)
+ if not os.path.isfile(srclicfile):
+ oe.qa.handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM points to an invalid file: " + srclicfile, d)
+ continue
+
+ if (srclicfile == corebase_licensefile):
+ bb.warn("${COREBASE}/LICENSE is not a valid license file, please use '${COMMON_LICENSE_DIR}/MIT' for a MIT License file in LIC_FILES_CHKSUM. This will become an error in the future")
+
+ recipemd5 = parm.get('md5', '')
+ beginline, endline = 0, 0
+ if 'beginline' in parm:
+ beginline = int(parm['beginline'])
+ if 'endline' in parm:
+ endline = int(parm['endline'])
+
+ if (not beginline) and (not endline):
+ md5chksum = bb.utils.md5_file(srclicfile)
+ with open(srclicfile, 'r', errors='replace') as f:
+ license = f.read().splitlines()
+ else:
+ with open(srclicfile, 'rb') as f:
+ import hashlib
+ lineno = 0
+ license = []
+ try:
+ m = hashlib.new('MD5', usedforsecurity=False)
+ except TypeError:
+ m = hashlib.new('MD5')
+ for line in f:
+ lineno += 1
+ if (lineno >= beginline):
+ if ((lineno <= endline) or not endline):
+ m.update(line)
+ license.append(line.decode('utf-8', errors='replace').rstrip())
+ else:
+ break
+ md5chksum = m.hexdigest()
+ if recipemd5 == md5chksum:
+ bb.note (pn + ": md5 checksum matched for ", url)
+ else:
+ if recipemd5:
+ msg = pn + ": The LIC_FILES_CHKSUM does not match for " + url
+ msg = msg + "\n" + pn + ": The new md5 checksum is " + md5chksum
+ max_lines = int(d.getVar('QA_MAX_LICENSE_LINES') or 20)
+ if not license or license[-1] != '':
+ # Ensure that our license text ends with a line break
+ # (will be added with join() below).
+ license.append('')
+ remove = len(license) - max_lines
+ if remove > 0:
+ start = max_lines // 2
+ end = start + remove - 1
+ del license[start:end]
+ license.insert(start, '...')
+ msg = msg + "\n" + pn + ": Here is the selected license text:" + \
+ "\n" + \
+ "{:v^70}".format(" beginline=%d " % beginline if beginline else "") + \
+ "\n" + "\n".join(license) + \
+ "{:^^70}".format(" endline=%d " % endline if endline else "")
+ if beginline:
+ if endline:
+ srcfiledesc = "%s (lines %d through to %d)" % (srclicfile, beginline, endline)
+ else:
+ srcfiledesc = "%s (beginning on line %d)" % (srclicfile, beginline)
+ elif endline:
+ srcfiledesc = "%s (ending on line %d)" % (srclicfile, endline)
+ else:
+ srcfiledesc = srclicfile
+ msg = msg + "\n" + pn + ": Check if the license information has changed in %s to verify that the LICENSE value \"%s\" remains valid" % (srcfiledesc, lic)
+
+ else:
+ msg = pn + ": LIC_FILES_CHKSUM is not specified for " + url
+ msg = msg + "\n" + pn + ": The md5 checksum is " + md5chksum
+ oe.qa.handle_error("license-checksum", msg, d)
+
+ oe.qa.exit_if_errors(d)
+}
+
+def qa_check_staged(path,d):
+ """
+ Check staged la and pc files for common problems like references to the work
+ directory.
+
+ As this is run after every stage we should be able to find the one
+ responsible for the errors easily even if we look at every .pc and .la file.
+ """
+
+ tmpdir = d.getVar('TMPDIR')
+ workdir = os.path.join(tmpdir, "work")
+ recipesysroot = d.getVar("RECIPE_SYSROOT")
+
+ if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d):
+ pkgconfigcheck = workdir
+ else:
+ pkgconfigcheck = tmpdir
+
+ skip = (d.getVar('INSANE_SKIP') or "").split()
+ skip_la = False
+ if 'la' in skip:
+ bb.note("Recipe %s skipping qa checking: la" % d.getVar('PN'))
+ skip_la = True
+
+ skip_pkgconfig = False
+ if 'pkgconfig' in skip:
+ bb.note("Recipe %s skipping qa checking: pkgconfig" % d.getVar('PN'))
+ skip_pkgconfig = True
+
+ skip_shebang_size = False
+ if 'shebang-size' in skip:
+ bb.note("Recipe %s skipping qa checkking: shebang-size" % d.getVar('PN'))
+ skip_shebang_size = True
+
+ # find all .la and .pc files
+ # read the content
+ # and check for stuff that looks wrong
+ for root, dirs, files in os.walk(path):
+ for file in files:
+ path = os.path.join(root,file)
+ if file.endswith(".la") and not skip_la:
+ with open(path) as f:
+ file_content = f.read()
+ file_content = file_content.replace(recipesysroot, "")
+ if workdir in file_content:
+ error_msg = "%s failed sanity test (workdir) in path %s" % (file,root)
+ oe.qa.handle_error("la", error_msg, d)
+ elif file.endswith(".pc") and not skip_pkgconfig:
+ with open(path) as f:
+ file_content = f.read()
+ file_content = file_content.replace(recipesysroot, "")
+ if pkgconfigcheck in file_content:
+ error_msg = "%s failed sanity test (tmpdir) in path %s" % (file,root)
+ oe.qa.handle_error("pkgconfig", error_msg, d)
+
+ if not skip_shebang_size:
+ errors = {}
+ package_qa_check_shebang_size(path, "", d, None, errors)
+ for e in errors:
+ oe.qa.handle_error(e, errors[e], d)
+
+
+# Run all package-wide warnfuncs and errorfuncs
+def package_qa_package(warnfuncs, errorfuncs, package, d):
+ warnings = {}
+ errors = {}
+
+ for func in warnfuncs:
+ func(package, d, warnings)
+ for func in errorfuncs:
+ func(package, d, errors)
+
+ for w in warnings:
+ oe.qa.handle_error(w, warnings[w], d)
+ for e in errors:
+ oe.qa.handle_error(e, errors[e], d)
+
+ return len(errors) == 0
+
+# Run all recipe-wide warnfuncs and errorfuncs
+def package_qa_recipe(warnfuncs, errorfuncs, pn, d):
+ warnings = {}
+ errors = {}
+
+ for func in warnfuncs:
+ func(pn, d, warnings)
+ for func in errorfuncs:
+ func(pn, d, errors)
+
+ for w in warnings:
+ oe.qa.handle_error(w, warnings[w], d)
+ for e in errors:
+ oe.qa.handle_error(e, errors[e], d)
+
+ return len(errors) == 0
+
+def prepopulate_objdump_p(elf, d):
+ output = elf.run_objdump("-p", d)
+ return (elf.name, output)
+
+# Walk over all files in a directory and call func
+def package_qa_walk(warnfuncs, errorfuncs, package, d):
+ #if this will throw an exception, then fix the dict above
+ target_os = d.getVar('HOST_OS')
+ target_arch = d.getVar('HOST_ARCH')
+
+ warnings = {}
+ errors = {}
+ elves = {}
+ for path in pkgfiles[package]:
+ elf = None
+ if os.path.isfile(path):
+ elf = oe.qa.ELFFile(path)
+ try:
+ elf.open()
+ elf.close()
+ except oe.qa.NotELFFileError:
+ elf = None
+ if elf:
+ elves[path] = elf
+
+ results = oe.utils.multiprocess_launch(prepopulate_objdump_p, elves.values(), d, extraargs=(d,))
+ for item in results:
+ elves[item[0]].set_objdump("-p", item[1])
+
+ for path in pkgfiles[package]:
+ if path in elves:
+ elves[path].open()
+ for func in warnfuncs:
+ func(path, package, d, elves.get(path), warnings)
+ for func in errorfuncs:
+ func(path, package, d, elves.get(path), errors)
+ if path in elves:
+ elves[path].close()
+
+ for w in warnings:
+ oe.qa.handle_error(w, warnings[w], d)
+ for e in errors:
+ oe.qa.handle_error(e, errors[e], d)
+
+def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d):
+ # Don't do this check for kernel/module recipes, there aren't too many debug/development
+ # packages and you can get false positives e.g. on kernel-module-lirc-dev
+ if bb.data.inherits_class("kernel", d) or bb.data.inherits_class("module-base", d):
+ return
+
+ if not "-dbg" in pkg and not "packagegroup-" in pkg and not "-image" in pkg:
+ localdata = bb.data.createCopy(d)
+ localdata.setVar('OVERRIDES', localdata.getVar('OVERRIDES') + ':' + pkg)
+
+ # Now check the RDEPENDS
+ rdepends = bb.utils.explode_deps(localdata.getVar('RDEPENDS') or "")
+
+ # Now do the sanity check!!!
+ if "build-deps" not in skip:
+ for rdepend in rdepends:
+ if "-dbg" in rdepend and "debug-deps" not in skip:
+ error_msg = "%s rdepends on %s" % (pkg,rdepend)
+ oe.qa.handle_error("debug-deps", error_msg, d)
+ if (not "-dev" in pkg and not "-staticdev" in pkg) and rdepend.endswith("-dev") and "dev-deps" not in skip:
+ error_msg = "%s rdepends on %s" % (pkg, rdepend)
+ oe.qa.handle_error("dev-deps", error_msg, d)
+ if rdepend not in packages:
+ rdep_data = oe.packagedata.read_subpkgdata(rdepend, d)
+ if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
+ continue
+ if not rdep_data or not 'PN' in rdep_data:
+ pkgdata_dir = d.getVar("PKGDATA_DIR")
+ try:
+ possibles = os.listdir("%s/runtime-rprovides/%s/" % (pkgdata_dir, rdepend))
+ except OSError:
+ possibles = []
+ for p in possibles:
+ rdep_data = oe.packagedata.read_subpkgdata(p, d)
+ if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
+ break
+ if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
+ continue
+ if rdep_data and 'PN' in rdep_data:
+ error_msg = "%s rdepends on %s, but it isn't a build dependency, missing %s in DEPENDS or PACKAGECONFIG?" % (pkg, rdepend, rdep_data['PN'])
+ else:
+ error_msg = "%s rdepends on %s, but it isn't a build dependency?" % (pkg, rdepend)
+ oe.qa.handle_error("build-deps", error_msg, d)
+
+ if "file-rdeps" not in skip:
+ ignored_file_rdeps = set(['/bin/sh', '/usr/bin/env', 'rtld(GNU_HASH)'])
+ if bb.data.inherits_class('nativesdk', d):
+ ignored_file_rdeps |= set(['/bin/bash', '/usr/bin/perl', 'perl'])
+ # For Saving the FILERDEPENDS
+ filerdepends = {}
+ rdep_data = oe.packagedata.read_subpkgdata(pkg, d)
+ for key in rdep_data:
+ if key.startswith("FILERDEPENDS:"):
+ for subkey in bb.utils.explode_deps(rdep_data[key]):
+ if subkey not in ignored_file_rdeps and \
+ not subkey.startswith('perl('):
+ # We already know it starts with FILERDEPENDS_
+ filerdepends[subkey] = key[13:]
+
+ if filerdepends:
+ done = rdepends[:]
+ # Add the rprovides of itself
+ if pkg not in done:
+ done.insert(0, pkg)
+
+ # The python is not a package, but python-core provides it, so
+ # skip checking /usr/bin/python if python is in the rdeps, in
+ # case there is a RDEPENDS:pkg = "python" in the recipe.
+ for py in [ d.getVar('MLPREFIX') + "python", "python" ]:
+ if py in done:
+ filerdepends.pop("/usr/bin/python",None)
+ done.remove(py)
+ for rdep in done:
+ # The file dependencies may contain package names, e.g.,
+ # perl
+ filerdepends.pop(rdep,None)
+
+ # For Saving the FILERPROVIDES, RPROVIDES and FILES_INFO
+ rdep_data = oe.packagedata.read_subpkgdata(rdep, d)
+ for key in rdep_data:
+ if key.startswith("FILERPROVIDES:") or key.startswith("RPROVIDES:"):
+ for subkey in bb.utils.explode_deps(rdep_data[key]):
+ filerdepends.pop(subkey,None)
+ # Add the files list to the rprovides
+ if key.startswith("FILES_INFO:"):
+ # Use eval() to make it as a dict
+ for subkey in eval(rdep_data[key]):
+ filerdepends.pop(subkey,None)
+ if not filerdepends:
+ # Break if all the file rdepends are met
+ break
+ if filerdepends:
+ for key in filerdepends:
+ error_msg = "%s contained in package %s requires %s, but no providers found in RDEPENDS:%s?" % \
+ (filerdepends[key].replace(":%s" % pkg, "").replace("@underscore@", "_"), pkg, key, pkg)
+ oe.qa.handle_error("file-rdeps", error_msg, d)
+package_qa_check_rdepends[vardepsexclude] = "OVERRIDES"
+
+def package_qa_check_deps(pkg, pkgdest, d):
+
+ localdata = bb.data.createCopy(d)
+ localdata.setVar('OVERRIDES', pkg)
+
+ def check_valid_deps(var):
+ try:
+ rvar = bb.utils.explode_dep_versions2(localdata.getVar(var) or "")
+ except ValueError as e:
+ bb.fatal("%s:%s: %s" % (var, pkg, e))
+ for dep in rvar:
+ for v in rvar[dep]:
+ if v and not v.startswith(('< ', '= ', '> ', '<= ', '>=')):
+ error_msg = "%s:%s is invalid: %s (%s) only comparisons <, =, >, <=, and >= are allowed" % (var, pkg, dep, v)
+ oe.qa.handle_error("dep-cmp", error_msg, d)
+
+ check_valid_deps('RDEPENDS')
+ check_valid_deps('RRECOMMENDS')
+ check_valid_deps('RSUGGESTS')
+ check_valid_deps('RPROVIDES')
+ check_valid_deps('RREPLACES')
+ check_valid_deps('RCONFLICTS')
+
+QAPKGTEST[usrmerge] = "package_qa_check_usrmerge"
+def package_qa_check_usrmerge(pkg, d, messages):
+
+ pkgdest = d.getVar('PKGDEST')
+ pkg_dir = pkgdest + os.sep + pkg + os.sep
+ merged_dirs = ['bin', 'sbin', 'lib'] + d.getVar('MULTILIB_VARIANTS').split()
+ for f in merged_dirs:
+ if os.path.exists(pkg_dir + f) and not os.path.islink(pkg_dir + f):
+ msg = "%s package is not obeying usrmerge distro feature. /%s should be relocated to /usr." % (pkg, f)
+ oe.qa.add_message(messages, "usrmerge", msg)
+ return False
+ return True
+
+QAPKGTEST[perllocalpod] = "package_qa_check_perllocalpod"
+def package_qa_check_perllocalpod(pkg, d, messages):
+ """
+ Check that the recipe didn't ship a perlocal.pod file, which shouldn't be
+ installed in a distribution package. cpan.bbclass sets NO_PERLLOCAL=1 to
+ handle this for most recipes.
+ """
+ import glob
+ pkgd = oe.path.join(d.getVar('PKGDEST'), pkg)
+ podpath = oe.path.join(pkgd, d.getVar("libdir"), "perl*", "*", "*", "perllocal.pod")
+
+ matches = glob.glob(podpath)
+ if matches:
+ matches = [package_qa_clean_path(path, d, pkg) for path in matches]
+ msg = "%s contains perllocal.pod (%s), should not be installed" % (pkg, " ".join(matches))
+ oe.qa.add_message(messages, "perllocalpod", msg)
+
+QAPKGTEST[expanded-d] = "package_qa_check_expanded_d"
+def package_qa_check_expanded_d(package, d, messages):
+ """
+ Check for the expanded D (${D}) value in pkg_* and FILES
+ variables, warn the user to use it correctly.
+ """
+ sane = True
+ expanded_d = d.getVar('D')
+
+ for var in 'FILES','pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm':
+ bbvar = d.getVar(var + ":" + package) or ""
+ if expanded_d in bbvar:
+ if var == 'FILES':
+ oe.qa.add_message(messages, "expanded-d", "FILES in %s recipe should not contain the ${D} variable as it references the local build directory not the target filesystem, best solution is to remove the ${D} reference" % package)
+ sane = False
+ else:
+ oe.qa.add_message(messages, "expanded-d", "%s in %s recipe contains ${D}, it should be replaced by $D instead" % (var, package))
+ sane = False
+ return sane
+
+QAPKGTEST[unlisted-pkg-lics] = "package_qa_check_unlisted_pkg_lics"
+def package_qa_check_unlisted_pkg_lics(package, d, messages):
+ """
+ Check that all licenses for a package are among the licenses for the recipe.
+ """
+ pkg_lics = d.getVar('LICENSE:' + package)
+ if not pkg_lics:
+ return True
+
+ recipe_lics_set = oe.license.list_licenses(d.getVar('LICENSE'))
+ package_lics = oe.license.list_licenses(pkg_lics)
+ unlisted = package_lics - recipe_lics_set
+ if unlisted:
+ oe.qa.add_message(messages, "unlisted-pkg-lics",
+ "LICENSE:%s includes licenses (%s) that are not "
+ "listed in LICENSE" % (package, ' '.join(unlisted)))
+ return False
+ obsolete = set(oe.license.obsolete_license_list()) & package_lics - recipe_lics_set
+ if obsolete:
+ oe.qa.add_message(messages, "obsolete-license",
+ "LICENSE:%s includes obsolete licenses %s" % (package, ' '.join(obsolete)))
+ return False
+ return True
+
+QAPKGTEST[empty-dirs] = "package_qa_check_empty_dirs"
+def package_qa_check_empty_dirs(pkg, d, messages):
+ """
+ Check for the existence of files in directories that are expected to be
+ empty.
+ """
+
+ pkgd = oe.path.join(d.getVar('PKGDEST'), pkg)
+ for dir in (d.getVar('QA_EMPTY_DIRS') or "").split():
+ empty_dir = oe.path.join(pkgd, dir)
+ if os.path.exists(empty_dir) and os.listdir(empty_dir):
+ recommendation = (d.getVar('QA_EMPTY_DIRS_RECOMMENDATION:' + dir) or
+ "but it is expected to be empty")
+ msg = "%s installs files in %s, %s" % (pkg, dir, recommendation)
+ oe.qa.add_message(messages, "empty-dirs", msg)
+
+def package_qa_check_encoding(keys, encode, d):
+ def check_encoding(key, enc):
+ sane = True
+ value = d.getVar(key)
+ if value:
+ try:
+ s = value.encode(enc)
+ except UnicodeDecodeError as e:
+ error_msg = "%s has non %s characters" % (key,enc)
+ sane = False
+ oe.qa.handle_error("invalid-chars", error_msg, d)
+ return sane
+
+ for key in keys:
+ sane = check_encoding(key, encode)
+ if not sane:
+ break
+
+HOST_USER_UID := "${@os.getuid()}"
+HOST_USER_GID := "${@os.getgid()}"
+
+QAPATHTEST[host-user-contaminated] = "package_qa_check_host_user"
+def package_qa_check_host_user(path, name, d, elf, messages):
+ """Check for paths outside of /home which are owned by the user running bitbake."""
+
+ if not os.path.lexists(path):
+ return
+
+ dest = d.getVar('PKGDEST')
+ pn = d.getVar('PN')
+ home = os.path.join(dest, name, 'home')
+ if path == home or path.startswith(home + os.sep):
+ return
+
+ try:
+ stat = os.lstat(path)
+ except OSError as exc:
+ import errno
+ if exc.errno != errno.ENOENT:
+ raise
+ else:
+ check_uid = int(d.getVar('HOST_USER_UID'))
+ if stat.st_uid == check_uid:
+ oe.qa.add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, package_qa_clean_path(path, d, name), check_uid))
+ return False
+
+ check_gid = int(d.getVar('HOST_USER_GID'))
+ if stat.st_gid == check_gid:
+ oe.qa.add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, package_qa_clean_path(path, d, name), check_gid))
+ return False
+ return True
+
+QARECIPETEST[unhandled-features-check] = "package_qa_check_unhandled_features_check"
+def package_qa_check_unhandled_features_check(pn, d, messages):
+ if not bb.data.inherits_class('features_check', d):
+ var_set = False
+ for kind in ['DISTRO', 'MACHINE', 'COMBINED']:
+ for var in ['ANY_OF_' + kind + '_FEATURES', 'REQUIRED_' + kind + '_FEATURES', 'CONFLICT_' + kind + '_FEATURES']:
+ if d.getVar(var) is not None or d.hasOverrides(var):
+ var_set = True
+ if var_set:
+ oe.qa.handle_error("unhandled-features-check", "%s: recipe doesn't inherit features_check" % pn, d)
+
+QARECIPETEST[missing-update-alternatives] = "package_qa_check_missing_update_alternatives"
+def package_qa_check_missing_update_alternatives(pn, d, messages):
+ # Look at all packages and find out if any of those sets ALTERNATIVE variable
+ # without inheriting update-alternatives class
+ for pkg in (d.getVar('PACKAGES') or '').split():
+ if d.getVar('ALTERNATIVE:%s' % pkg) and not bb.data.inherits_class('update-alternatives', d):
+ oe.qa.handle_error("missing-update-alternatives", "%s: recipe defines ALTERNATIVE:%s but doesn't inherit update-alternatives. This might fail during do_rootfs later!" % (pn, pkg), d)
+
+# The PACKAGE FUNC to scan each package
+python do_package_qa () {
+ import subprocess
+ import oe.packagedata
+
+ bb.note("DO PACKAGE QA")
+
+ main_lic = d.getVar('LICENSE')
+
+ # Check for obsolete license references in main LICENSE (packages are checked below for any changes)
+ main_licenses = oe.license.list_licenses(d.getVar('LICENSE'))
+ obsolete = set(oe.license.obsolete_license_list()) & main_licenses
+ if obsolete:
+ oe.qa.handle_error("obsolete-license", "Recipe LICENSE includes obsolete licenses %s" % ' '.join(obsolete), d)
+
+ bb.build.exec_func("read_subpackage_metadata", d)
+
+ # Check non UTF-8 characters on recipe's metadata
+ package_qa_check_encoding(['DESCRIPTION', 'SUMMARY', 'LICENSE', 'SECTION'], 'utf-8', d)
+
+ logdir = d.getVar('T')
+ pn = d.getVar('PN')
+
+ # Scan the packages...
+ pkgdest = d.getVar('PKGDEST')
+ packages = set((d.getVar('PACKAGES') or '').split())
+
+ global pkgfiles
+ pkgfiles = {}
+ for pkg in packages:
+ pkgfiles[pkg] = []
+ pkgdir = os.path.join(pkgdest, pkg)
+ for walkroot, dirs, files in os.walk(pkgdir):
+ # Don't walk into top-level CONTROL or DEBIAN directories as these
+ # are temporary directories created by do_package.
+ if walkroot == pkgdir:
+ for control in ("CONTROL", "DEBIAN"):
+ if control in dirs:
+ dirs.remove(control)
+ for file in files:
+ pkgfiles[pkg].append(os.path.join(walkroot, file))
+
+ # no packages should be scanned
+ if not packages:
+ return
+
+ import re
+ # The package name matches the [a-z0-9.+-]+ regular expression
+ pkgname_pattern = re.compile(r"^[a-z0-9.+-]+$")
+
+ taskdepdata = d.getVar("BB_TASKDEPDATA", False)
+ taskdeps = set()
+ for dep in taskdepdata:
+ taskdeps.add(taskdepdata[dep][0])
+
+ def parse_test_matrix(matrix_name):
+ testmatrix = d.getVarFlags(matrix_name) or {}
+ g = globals()
+ warnchecks = []
+ for w in (d.getVar("WARN_QA") or "").split():
+ if w in skip:
+ continue
+ if w in testmatrix and testmatrix[w] in g:
+ warnchecks.append(g[testmatrix[w]])
+
+ errorchecks = []
+ for e in (d.getVar("ERROR_QA") or "").split():
+ if e in skip:
+ continue
+ if e in testmatrix and testmatrix[e] in g:
+ errorchecks.append(g[testmatrix[e]])
+ return warnchecks, errorchecks
+
+ for package in packages:
+ skip = set((d.getVar('INSANE_SKIP') or "").split() +
+ (d.getVar('INSANE_SKIP:' + package) or "").split())
+ if skip:
+ bb.note("Package %s skipping QA tests: %s" % (package, str(skip)))
+
+ bb.note("Checking Package: %s" % package)
+ # Check package name
+ if not pkgname_pattern.match(package):
+ oe.qa.handle_error("pkgname",
+ "%s doesn't match the [a-z0-9.+-]+ regex" % package, d)
+
+ warn_checks, error_checks = parse_test_matrix("QAPATHTEST")
+ package_qa_walk(warn_checks, error_checks, package, d)
+
+ warn_checks, error_checks = parse_test_matrix("QAPKGTEST")
+ package_qa_package(warn_checks, error_checks, package, d)
+
+ package_qa_check_rdepends(package, pkgdest, skip, taskdeps, packages, d)
+ package_qa_check_deps(package, pkgdest, d)
+
+ warn_checks, error_checks = parse_test_matrix("QARECIPETEST")
+ package_qa_recipe(warn_checks, error_checks, pn, d)
+
+ if 'libdir' in d.getVar("ALL_QA").split():
+ package_qa_check_libdir(d)
+
+ oe.qa.exit_if_errors(d)
+}
+
+# binutils is used for most checks, so need to set as dependency
+# POPULATESYSROOTDEPS is defined in staging class.
+do_package_qa[depends] += "${POPULATESYSROOTDEPS}"
+do_package_qa[vardeps] = "${@bb.utils.contains('ERROR_QA', 'empty-dirs', 'QA_EMPTY_DIRS', '', d)}"
+do_package_qa[vardepsexclude] = "BB_TASKDEPDATA"
+do_package_qa[rdeptask] = "do_packagedata"
+addtask do_package_qa after do_packagedata do_package before do_build
+
+# Add the package specific INSANE_SKIPs to the sstate dependencies
+python() {
+ pkgs = (d.getVar('PACKAGES') or '').split()
+ for pkg in pkgs:
+ d.appendVarFlag("do_package_qa", "vardeps", " INSANE_SKIP:{}".format(pkg))
+}
+
+SSTATETASKS += "do_package_qa"
+do_package_qa[sstate-inputdirs] = ""
+do_package_qa[sstate-outputdirs] = ""
+python do_package_qa_setscene () {
+ sstate_setscene(d)
+}
+addtask do_package_qa_setscene
+
+python do_qa_sysroot() {
+ bb.note("QA checking do_populate_sysroot")
+ sysroot_destdir = d.expand('${SYSROOT_DESTDIR}')
+ for sysroot_dir in d.expand('${SYSROOT_DIRS}').split():
+ qa_check_staged(sysroot_destdir + sysroot_dir, d)
+ oe.qa.exit_with_message_if_errors("do_populate_sysroot for this recipe installed files with QA issues", d)
+}
+do_populate_sysroot[postfuncs] += "do_qa_sysroot"
+
+python do_qa_patch() {
+ import subprocess
+
+ ###########################################################################
+ # Check patch.log for fuzz warnings
+ #
+ # Further information on why we check for patch fuzz warnings:
+ # http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html
+ # https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450
+ ###########################################################################
+
+ logdir = d.getVar('T')
+ patchlog = os.path.join(logdir,"log.do_patch")
+
+ if os.path.exists(patchlog):
+ fuzzheader = '--- Patch fuzz start ---'
+ fuzzfooter = '--- Patch fuzz end ---'
+ statement = "grep -e '%s' %s > /dev/null" % (fuzzheader, patchlog)
+ if subprocess.call(statement, shell=True) == 0:
+ msg = "Fuzz detected:\n\n"
+ fuzzmsg = ""
+ inFuzzInfo = False
+ f = open(patchlog, "r")
+ for line in f:
+ if fuzzheader in line:
+ inFuzzInfo = True
+ fuzzmsg = ""
+ elif fuzzfooter in line:
+ fuzzmsg = fuzzmsg.replace('\n\n', '\n')
+ msg += fuzzmsg
+ msg += "\n"
+ inFuzzInfo = False
+ elif inFuzzInfo and not 'Now at patch' in line:
+ fuzzmsg += line
+ f.close()
+ msg += "The context lines in the patches can be updated with devtool:\n"
+ msg += "\n"
+ msg += " devtool modify %s\n" % d.getVar('PN')
+ msg += " devtool finish --force-patch-refresh %s <layer_path>\n\n" % d.getVar('PN')
+ msg += "Don't forget to review changes done by devtool!\n"
+ if bb.utils.filter('ERROR_QA', 'patch-fuzz', d):
+ bb.error(msg)
+ elif bb.utils.filter('WARN_QA', 'patch-fuzz', d):
+ bb.warn(msg)
+ msg = "Patch log indicates that patches do not apply cleanly."
+ oe.qa.handle_error("patch-fuzz", msg, d)
+
+ # Check if the patch contains a correctly formatted and spelled Upstream-Status
+ import re
+ from oe import patch
+
+ coremeta_path = os.path.join(d.getVar('COREBASE'), 'meta', '')
+ for url in patch.src_patches(d):
+ (_, _, fullpath, _, _, _) = bb.fetch.decodeurl(url)
+
+ # skip patches not in oe-core
+ if not os.path.abspath(fullpath).startswith(coremeta_path):
+ continue
+
+ kinda_status_re = re.compile(r"^.*upstream.*status.*$", re.IGNORECASE | re.MULTILINE)
+ strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Accepted|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE)
+ guidelines = "https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status"
+
+ with open(fullpath, encoding='utf-8', errors='ignore') as f:
+ file_content = f.read()
+ match_kinda = kinda_status_re.search(file_content)
+ match_strict = strict_status_re.search(file_content)
+
+ if not match_strict:
+ if match_kinda:
+ bb.error("Malformed Upstream-Status in patch\n%s\nPlease correct according to %s :\n%s" % (fullpath, guidelines, match_kinda.group(0)))
+ else:
+ bb.error("Missing Upstream-Status in patch\n%s\nPlease add according to %s ." % (fullpath, guidelines))
+}
+
+python do_qa_configure() {
+ import subprocess
+
+ ###########################################################################
+ # Check config.log for cross compile issues
+ ###########################################################################
+
+ configs = []
+ workdir = d.getVar('WORKDIR')
+
+ skip = (d.getVar('INSANE_SKIP') or "").split()
+ skip_configure_unsafe = False
+ if 'configure-unsafe' in skip:
+ bb.note("Recipe %s skipping qa checking: configure-unsafe" % d.getVar('PN'))
+ skip_configure_unsafe = True
+
+ if bb.data.inherits_class('autotools', d) and not skip_configure_unsafe:
+ bb.note("Checking autotools environment for common misconfiguration")
+ for root, dirs, files in os.walk(workdir):
+ statement = "grep -q -F -e 'is unsafe for cross-compilation' %s" % \
+ os.path.join(root,"config.log")
+ if "config.log" in files:
+ if subprocess.call(statement, shell=True) == 0:
+ error_msg = """This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities.
+Rerun configure task after fixing this."""
+ oe.qa.handle_error("configure-unsafe", error_msg, d)
+
+ if "configure.ac" in files:
+ configs.append(os.path.join(root,"configure.ac"))
+ if "configure.in" in files:
+ configs.append(os.path.join(root, "configure.in"))
+
+ ###########################################################################
+ # Check gettext configuration and dependencies are correct
+ ###########################################################################
+
+ skip_configure_gettext = False
+ if 'configure-gettext' in skip:
+ bb.note("Recipe %s skipping qa checking: configure-gettext" % d.getVar('PN'))
+ skip_configure_gettext = True
+
+ cnf = d.getVar('EXTRA_OECONF') or ""
+ if not ("gettext" in d.getVar('P') or "gcc-runtime" in d.getVar('P') or \
+ "--disable-nls" in cnf or skip_configure_gettext):
+ ml = d.getVar("MLPREFIX") or ""
+ if bb.data.inherits_class('cross-canadian', d):
+ gt = "nativesdk-gettext"
+ else:
+ gt = "gettext-native"
+ deps = bb.utils.explode_deps(d.getVar('DEPENDS') or "")
+ if gt not in deps:
+ for config in configs:
+ gnu = "grep \"^[[:space:]]*AM_GNU_GETTEXT\" %s >/dev/null" % config
+ if subprocess.call(gnu, shell=True) == 0:
+ error_msg = "AM_GNU_GETTEXT used but no inherit gettext"
+ oe.qa.handle_error("configure-gettext", error_msg, d)
+
+ ###########################################################################
+ # Check unrecognised configure options (with a white list)
+ ###########################################################################
+ if bb.data.inherits_class("autotools", d):
+ bb.note("Checking configure output for unrecognised options")
+ try:
+ if bb.data.inherits_class("autotools", d):
+ flag = "WARNING: unrecognized options:"
+ log = os.path.join(d.getVar('B'), 'config.log')
+ output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ').replace('"', '')
+ options = set()
+ for line in output.splitlines():
+ options |= set(line.partition(flag)[2].split())
+ ignore_opts = set(d.getVar("UNKNOWN_CONFIGURE_OPT_IGNORE").split())
+ options -= ignore_opts
+ if options:
+ pn = d.getVar('PN')
+ error_msg = pn + ": configure was passed unrecognised options: " + " ".join(options)
+ oe.qa.handle_error("unknown-configure-option", error_msg, d)
+ except subprocess.CalledProcessError:
+ pass
+
+ # Check invalid PACKAGECONFIG
+ pkgconfig = (d.getVar("PACKAGECONFIG") or "").split()
+ if pkgconfig:
+ pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
+ for pconfig in pkgconfig:
+ if pconfig not in pkgconfigflags:
+ pn = d.getVar('PN')
+ error_msg = "%s: invalid PACKAGECONFIG: %s" % (pn, pconfig)
+ oe.qa.handle_error("invalid-packageconfig", error_msg, d)
+
+ oe.qa.exit_if_errors(d)
+}
+
+def unpack_check_src_uri(pn, d):
+ import re
+
+ skip = (d.getVar('INSANE_SKIP') or "").split()
+ if 'src-uri-bad' in skip:
+ bb.note("Recipe %s skipping qa checking: src-uri-bad" % d.getVar('PN'))
+ return
+
+ if "${PN}" in d.getVar("SRC_URI", False):
+ oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses PN not BPN" % pn, d)
+
+ for url in d.getVar("SRC_URI").split():
+ # Search for github and gitlab URLs that pull unstable archives (comment for future greppers)
+ if re.search(r"git(hu|la)b\.com/.+/.+/archive/.+", url) or "//codeload.github.com/" in url:
+ oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git protocol" % pn, d)
+
+python do_qa_unpack() {
+ src_uri = d.getVar('SRC_URI')
+ s_dir = d.getVar('S')
+ if src_uri and not os.path.exists(s_dir):
+ bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN'), d.getVar('S', False), s_dir))
+
+ unpack_check_src_uri(d.getVar('PN'), d)
+}
+
+# Check for patch fuzz
+do_patch[postfuncs] += "do_qa_patch "
+
+# Check broken config.log files, for packages requiring Gettext which
+# don't have it in DEPENDS.
+#addtask qa_configure after do_configure before do_compile
+do_configure[postfuncs] += "do_qa_configure "
+
+# Check does S exist.
+do_unpack[postfuncs] += "do_qa_unpack"
+
+python () {
+ import re
+
+ tests = d.getVar('ALL_QA').split()
+ if "desktop" in tests:
+ d.appendVar("PACKAGE_DEPENDS", " desktop-file-utils-native")
+
+ ###########################################################################
+ # Check various variables
+ ###########################################################################
+
+ # Checking ${FILESEXTRAPATHS}
+ extrapaths = (d.getVar("FILESEXTRAPATHS") or "")
+ if '__default' not in extrapaths.split(":"):
+ msg = "FILESEXTRAPATHS-variable, must always use :prepend (or :append)\n"
+ msg += "type of assignment, and don't forget the colon.\n"
+ msg += "Please assign it with the format of:\n"
+ msg += " FILESEXTRAPATHS:append := \":${THISDIR}/Your_Files_Path\" or\n"
+ msg += " FILESEXTRAPATHS:prepend := \"${THISDIR}/Your_Files_Path:\"\n"
+ msg += "