summaryrefslogtreecommitdiffstats
path: root/meta/classes
AgeCommit message (Collapse)Author
2021-11-24create-spdx: Fix key errors in do_create_runtime_spdxAndres Beltran
Currently, the do_create_runtime_spdx task fails with a Key Error if a dependency is not contained in the package providers dictionary. Add a check before using "dep" as a key in "providers". (From OE-Core rev: ac9b387c5e19386ce3c5cd88b42dad24d25b0f70) Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 140ce5ef5e8f10251091660e3ef76f315f409076) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24create-spdx: Protect against None from LICENSE_PATHSaul Wold
If LICENSE_PATH is not set, then the split() will fail on a NoneType. (From OE-Core rev: 123ee0fc0d1470427cc563f512f621e0172cc232) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit d6260decae6d2654f6e058f12ca02d582a8ef5a4) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24create_spdx: ensure is_work_shared() is uniqueSaul Wold
There is a function with the same name is_work_shared() in the archiver class this causes a conflict when both classes are included. Use work-shared as the check in WORKDIR to allow for other packages beyond the kernel and gcc that use a common shared-work source directory. (From OE-Core rev: 1d350fd2a0db57617fbc62eb1d65f3ffa2667551) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 18eab77ee65c73b17225e69c7ba446ab1c69fa92) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21insane.bbclass: Add a check for directories that are expected to be emptyPeter Kjellerstedt
The empty-dirs QA check verifies that all directories specified in QA_EMPTY_DIRS are empty. 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. Compared to the corresponding patch for master, there are two differences: * "/var/volatile" is not added to QA_EMPTY_DIRS by default, and * "empty-dirs" is not enabled in ERROR_QA (nor in WARN_QA). (From OE-Core rev: 9f3fbfc02ae6fadffbcc1bda1fa75dfe140d05c5) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21mirrors: Add kernel.org sources mirror for downloads.yoctoproject.orgRichard Purdie
kernel.org now has a mirror of the downloads.yoctoproject.org sources archive so include this in our mirrors list. (From OE-Core rev: d7fe71c0fa0f368037b20d423c4c45d91c108a8c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit f602b6c2046bbc52a95dcc68a754f1cbb2db6761) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21uninative: Add version to uninative tarball nameRichard Purdie
uninative works via hashes and doesn't need the version in the tarball name but it does make things easier to inspect in DL_DIR. There were reasons such as ease of publication of the build tarballs but we can handle those differently now and the signature issues from the early code aren't an issue now. From 3.4 onwards we can use a version'd name. [YOCTO #12970] (From OE-Core rev: aca617aada3a06a6b460bf477541639f44681b32) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit dadba70d6a24d8ebb5576598efffa973151c7218) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21mirrors: Add uninative mirror on kernel.orgRichard Purdie
At the last nas outage, we realised that we don't have good mirrors of the uninative tarball if our main system can't be accessed. kernel.org mirrors some Yocto Project data so we've ensured uninative is there. Add the appropriate mirror url to make use of that. (From OE-Core rev: 20d7be2f3b481bc9a2f034f84eff1c48a4a13d92) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 1833cb0c5841afafb468b963b74b63366b09a134) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15meta: Add explict branch to git SRC_URIsRichard Purdie
There is uncertainty about the default branch name in git going forward. To try and cover the different possible outcomes, add branch names to all git:// and gitsm:// SRC_URI entries. This update was made with the script added to contrib in this patch which aims to help others convert other layers. (From OE-Core rev: 37b4f66fa23979cbfe82679a74ce21b11fc61557) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit b51c405faf6f8c0365f7533bfaf470d79152a463) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15meson: set objcopy in the cross and native toolchain filesRoss Burton
(From OE-Core rev: 028d40076b704669cf7bf423385a4f11e0dd6f03) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 0a589998e717ae3865f0db5abe6005ab4eee86d9) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15create-spdx: Set the Organization field via a variableAndres Beltran
Currently, the "Organization" field for SBOMs is hard-coded in create-spdx. Create a new variable SPDX_ORG to make this field more generic. (From OE-Core rev: e370039febe601127347da977ff9b7e5c7470315) Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit f239814f3f5d9bd54de54b0f2a5081067336e32b) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15sstate: another fix for touching files inside pseudoJose Quaresma
This patch is a fixup for 676757f "sstate: fix touching files inside pseudo" running the 'id' command inside the sstate_unpack_package function shows that this funcion run inside the pseudo: uid=0(root) gid=0(root) groups=0(root) The check for [ -w ${SSTATE_PKG} ] and [ -O ${SSTATE_PKG}.siginfo ] will always return true and the touch can fail when the real user don't have permission or in readonly filesystem. As the documentation refers: - the file test operator "-w" check if the file has write permission (for the user running the test). - the file test operator "-O" check if you are owner of file We can avoid this test running the touch and mask any return errors that we have. (From OE-Core rev: 29fc85997ade490ae46ffca37ef8e1a56957c876) (From OE-Core rev: 10e300e6b4c3935d3fd177478f07c429c9b8c735) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 5b9210d66c78bb3f79056e5586cea7b0edd714a9) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15sstate: Account for reserved characters when shortening sstate filenamesManuel Leonhardt
Previously, when shortening sstate filenames, the reserved characters for .siginfo were not considered, when siginfo=False, resulting in differently shortend filenames for the sstate and siginfo files. With this change, the filenames of the truncated sstate and siginfo files have the same basename, just as is already the case for untruncated filenames. Making sure that the .siginfo files always have the filename of the corresponding sstate file plus its .siginfo suffix, also when being truncated, makes it easier to manage the sstate cache and an sstate mirror outside of Bitbake/Yocto. (From OE-Core rev: c5fbe4b18446900525119038b8c4b284ace3a8d6) Signed-off-by: Manuel Leonhardt <mleonhardt@arri.de> Cc: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit c2e0e43b7123cf5149833e0072c8edaea3629112) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08meson.bblcass: Remove empty egg-info directories before running mesonPeter Kjellerstedt
sstate.bbclass no longer removes empty directories to avoid a race (see commit 4f94d929 "sstate/staging: Handle directory creation race issue"). Unfortunately Python apparently treats an empty egg-info directory as if the version it previously contained still exists and fails if a newer version is required, which Meson does. To avoid this, make sure there are no empty egg-info directories from previous versions left behind. (From OE-Core rev: 0abc761e84ea25a4acc7633eb9b5c8ae73120116) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 47d9d90b4ec7d04d6f3f1a9b97c0ab7f1264a88e) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08create-spdx: cross recipes are native alsoSaul Wold
Recipes that inherit cross should also be categorized as isNative (From OE-Core rev: 9edd5e3eeec447a1d90ebbfc681c84d7047933ec) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit ee113e3894deb1cfb18622085a3fe0600e1ef01d) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08create-spdx: add create_annotation functionSaul Wold
This allows code reuse and future usage with relationship annotations (From OE-Core rev: a56b50ada5d1aba57e901684af6a3761f74f6674) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit 1f8fdb7dc9d02d0ee3c42674ca16e03f0ec18cba) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08go.bbclass: Allow adding parameters to go ldflagsAhmed Hossam
Currently, there is no clean way to pass extra parameters to the go tool link, which is passed by the go build ldflags flag, the append needs to happen inside the quotes of the ldflags parameter See [YOCTO #14554]. Add a variable to allow adding extra parameters to -ldflags in the GO_LDFLAGS variable, one of the main usecases is setting the application version. For example, adding to the recipe something like GO_EXTRA_LDFLAGS="-X main.Version=v1.0.0" or GO_EXTRA_LDFLAGS="-X main.Version=${PV}" (From OE-Core rev: 4c0c5edbb561f2bd21bba979ed7553fb3b717116) Signed-off-by: Ahmed Hossam <Ahmed.Hossam@opensynergy.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit eaa7a61dab9a1d7bb039f16abdd9aacb44faa595) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08staging: Fix autoconf-native rebuild failureRichard Purdie
When rebuilds are triggered, autoconf-native can fail with: | DEBUG: Executing shell function update_gnu_config | install: cannot stat '[BUILDPATH]tmp/work/x86_64-linux/autoconf-native/2.71-r0/recipe-sysroot-native/usr/share/gnu-config/config.guess': No such file or directory which is due to update_gnu_config running before extend_recipe_sysroot. This only happens rarely since usually the prepare_recipe_sysroot function would already have set things up and only in the invalidated task hash cases does this rebuild in this way from configure only. Fix the code to prepend this function instead of appending which resolves the ordering issue. (From OE-Core rev: f79fa476c0d0d57ab5ce59728fdb9fff4cd54df1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit b9535f513366536b13d0522058f517d2e04451b5) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08classes/populate_sdk_base: Add setscene tasksJoshua Watt
do_populate_sdk was added to SSTATETASKS, but had no _setscene task created to allow it to actually run from sstate. Add it so that SDKs can be restored from sstate. Note that like do_image_complete, do_populate_sdk is marked with SSTATE_SKIP_CREATION by default so sstate is not used for them; adding this task will allow it to work if the user overrides this default though. (From OE-Core rev: 292cd79bfb9a9e62f1cb4afaef7d8c7f2c4aac98) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 1f204592903a2fd9375b0f3c9c52e7dde0467460) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29sstate: fix touching files inside pseudoJose Quaresma
running the 'id' command inside the sstate_create_package function shows that this funcion run inside the pseudo: uid=0(root) gid=0(root) groups=0(root) The check for touch files [ ! -w ${SSTATE_PKG} ] will always return true and the touch can fail when the real user don't have permission or in readonly filesystem. As the documentation refers, the file test operator "-w" check if the file has write permission (for the user running the test). We can avoid this test running the touch and mask any return errors that we have. (From OE-Core rev: 1092bb67737eff63c24c26c9f807bec5e6adffc9) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit f6e7445c94443544e92fda97a017ce93393c5f84) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29testimage: fix unclosed testdata fileRoss Burton
(From OE-Core rev: 950bafd0ce15309167336d30e0ced6f184284c81) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 0c192a97e3e1c015a48667d6903cc07a8b2620e4) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29patch.bbclass: when the patch fails show more info on the fatal errorJose Quaresma
There are situations when the user have the 'patchdir' defined as a parameter on SRC_URI. However he doesn't know that with this the patch is applied relatively to the receipe source dir 'S'. - When user have 'patchdir' defined check if this directory exist. - If the patch fails show addition info to the user: - Import: show the striplevel - Resolver: show the expanded 'patchdir' to the user. The next example is from opencv in meta-oe layer, here the patch is applied on the target directory ${WORKDIR}/git/contrib. S = "${WORKDIR}/git" SRCREV_FORMAT = "opencv_contrib" SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \ git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \ file://0001-sfm-link-with-Glog_LIBS.patch;patchdir=../contrib \ " * When the patch fail there are no message that indicates the real reason. patchdir=../no-found-on-file-system ERROR: opencv-4.5.2-r0 do_patch: Command Error: 'quilt --quiltrc /build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0 Output: stdout: Applying patch 0001-sfm-link-with-Glog_LIBS.patch can't find file to patch at input line 37 Perhaps you used the wrong -p or --strip option? * The check of the patchdir will add a new fatal error when the user specifies a wrong path than don't exist. patchdir=../no-found-on-file-system ERROR: opencv-4.5.2-r0 do_patch: Target directory '/build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/git/../no-found-on-file-system' not found, patchdir '../no-found-on-file-system' is incorrect in patch file '0001-sfm-link-with-Glog_LIBS.patch' * When we can't aplly the patch but the patchdir exist, show the expanded patchdir on fatal error. patchdir=../git ERROR: opencv-4.5.2-r0 do_patch: Applying patch '0001-sfm-link-with-Glog_LIBS.patch' on target directory '/build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/git/../git' Command Error: 'quilt --quiltrc /build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0 Output: stdout: Applying patch 0001-sfm-link-with-Glog_LIBS.patch can't find file to patch at input line 37 Perhaps you used the wrong -p or --strip option? (From OE-Core rev: caf21ee38f7a96af6c10e80f9422611e317b29d6) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit c44bc7c0fb8b7c2e44dd93607a3bfd9733e1df80) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29buildhistory: Fix package output files for SDKsAndres Beltran
Currently, installed packages are listed for images in image-info.txt, but not for SDKs in sdk-info.txt. Add TOOLCHAIN_HOST_TASK and TOOLCHAIN_TARGET_TASK to the output variables in sdk-info.txt. Moreover, package output files for the SDK host are empty because PKGDATA_DIR defaults to the target directory. Fix this bug and create a new variable called PKGDATA_DIR_SDK which stores the correct path for the SDK host package data. (From OE-Core rev: af7b5c664649d2c0d1b23eb1d553080b9d2a7864) Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit 82e6172c1df378dff4e503aa878501c08937b5bb) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-08baremetal-image: Fix do_image dependenciesAlejandro Hernandez Samaniego
Commit 282d596b8 added a fix for image.bbclass related to QEMU dependencies, such fix made the older logic borrowed from image.bbclass incompatible. Update the dependency logic to reflect new changes, we no longer need to add the do_addto_recipe_sysroot dependency specifically. (From OE-Core rev: 4663f06c81285aeab8e8d33ec5338d7854b9dd9f) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-08abi_version/sstate: Bump to fix rpm corruption issuesRichard Purdie
(From OE-Core rev: 14feca0dc781f8e9003f70f317b63b242dc579b6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-08sstatesig: Only apply group/other permissions to pseudo filesRichard Purdie
We hardlink some files into the build, such as licence files in do_populate_lic tasks. Depending on the umask that the source tree was checked out with, the group permissions would vary. This results in inconsistent task outhashes. Avoid this by ignoring the group/other bits unless we're under pseudo context. Bump the ABI numbers to ensure we don't see cache corruption from earlier builds. (From OE-Core rev: 2bd9c806de7e5197168360e3bd1d223a04a92291) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-07kernel-yocto: don't apply config metadata patches twiceBruce Ashfield
(From OE-Core rev: 0b88ed0af350c609ce8075e7d89ca7db91486858) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-04reproducible_build: Work around caching issuesRichard Purdie
SOURCE_DATE_EPOCH can be expanded early in the parsing process before the class extensions are applied. This can mean the directory pointed to for the SDE can be incorrect until later in parsing. Cache the file name in the cached value and allow it to dynamically update. This isn't ideal but avoding expansion of the variable likely isn't possible and I'm not sure how else to handle this. This works around the issue until a better solution can be found. (From OE-Core rev: 44dc97cd1223e4d2b635669627ec5f796838d42d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-04abi_version/sstate: Bump HASH_VERSION and SSTATE_VERSIONRichard Purdie
At this point the hash equivalence and sstate is 'junk' on the autobuilder unforuntately due to the volume of fixes and also the volume of slighly not quite right patches tested during the development of the fixes. In order to try and help any remaining sanity I might have, bump the version numbers to start with a clean slate so we're working from a known good baseline rather than risk chasing phantom issues. For those upgrading, there wouldn't be much reuse anyway after the changes. (From OE-Core rev: be32692c627a14509de5eb3834e7321c3c5faf25) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-04image-artifact-names: Use SOURCE_DATE_EPOCH when making reproducible builds ↵Richard Purdie
for deploy Using DATETIME means the do_deploy output is not deterministic. Use SDE when using reproducible builds since it is consistent for given input data. (From OE-Core rev: 0e2fbdb32bae67e71e904a036a38395efb6ec6a6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-04sstatesig: Add processing for full build paths in sysroot filesRichard Purdie
Some files in the populate_sysroot tasks have hardcoded paths in them, particularly if they are postinst-useradd- files or crossscripts. Add some filtering logic to remove these paths. This means that the hashequiv "outhash" matches correcting in more cases allowing for better build artefact reuse. To make this work a new variable is added SSTATE_HASHEQUIV_FILEMAP which maps file globbing to replacement patterns (paths or regex) on a per sstate task basis. It is hoped this shouldn't be needed in many cases. We are in the process to developing QA tests which will better detect issues in this area to allow optimal sstate reuse. (From OE-Core rev: d9852ffbbe728dac33dc081538a08af98f52fd4a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-04externalsrc: Fix a source date epoch race in reproducible buildsRichard Purdie
When reproducible builds are enabled and externalsrc is in use, the source date epoch function is added. The conditions on the conditional code removing the unpack task need to match the deltask function, else the source date epoch function can end up running twice and the functions can race with each other causing build failures or corruption. (From OE-Core rev: e82095c02881410035ca23dc12692f074d8ed39b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-04wic/bootimg-efi: Add Unified Kernel Image optionKristian Klausen
"A unified kernel image is a single EFI PE executable combining an EFI stub loader, a kernel image, an initramfs image, and the kernel command line. [...] Images of this type have the advantage that all metadata and payload that makes up the boot entry is monopolized in a single PE file that can be signed cryptographically as one for the purpose of EFI SecureBoot."[1] This commit adds a create-unified-kernel-image=true option to the bootimg-efi plugin for creating a Unified Kernel Image[1] and installing it into $BOOT/EFI/Linux/ with a .efi extension per the the Boot Loader Specification[1][2]. This is useful for implementing Secure Boot. systemd-boot is the only mainstream bootloader implementing the specification, but GRUB should be able to boot the EFI binary, this commit however doesn't implement the necessary changes to the GRUB config generation logic to boot the Unified Kernel Image. [1] https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images [2] https://systemd.io/BOOT_LOADER_SPECIFICATION/ (From OE-Core rev: b0573f240525df561ddef6e47cb285b217d38487) Signed-off-by: Kristian Klausen <kristian@klausen.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-02image: Exclude IMAGE_VERSION_SUFFIX from expansion in image tasksRichard Purdie
Similarly to DATETIME, exclude IMAGE_VERSION_SUFFIX from expansion in image tasks to ensure the sstate signatures are calculated correctly. (From OE-Core rev: ceabe8b89f8a0b75d22a286e6f86d260f7e2fd3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-02package: Ensure pclist files are deterministic and don't use full pathsRichard Purdie
Currently the pkgconfig pclist files contain full paths which are build host specific and the order of entries is not deterministic. Fix both these issues so the files are deterministic. (From OE-Core rev: e422e29bca4af3ab4073e04490f38b05cd7c38c0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-28rm_work.bbclass: Fix for files starting with -William A. Kennington III
This makes it possible to name files starting with a hyphen in the work directory. Without this change rm will fail due to an unexpected option being passed. (From OE-Core rev: 5f1a63e0de4921ef970114a16d0827fcddcdaa0e) Signed-off-by: William A. Kennington III <wak@google.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-28create-spdx: Use SPDXAnnotation to track native recipesSaul Wold
Create a small function that checks for 'isNative' as part of an Annotation When the collect_dep_sources() runs, it collects sources from both native and non-native recipes. Later when the GENERATED_FROM matching occurs it may find the file (via checksum) from the native recipe since it's the same checksum as the target file. The that are generated DocumentRefs point to the native recipe rather than the target recipe DocumentRef. (From OE-Core rev: ba5ec03986a0bce8dccbc381fd34e44b8a135e66) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-28package_ipk: Use localdata store when signing packagesKenfe-Mickael Laventure
When signing a package, we were resolving the `PKGV` version using the original data store (`d`). However, since that store does not have the package name in its `OVERRIDES` list the wrong version can be returned in recipes that produce multiple packages. One such example would be `external-arm-toolchain.bb`. The above issue is fixed by using `localdata` instead of `d` when resolving the needed variables. (From OE-Core rev: 2b5f01cf5a92a873ac4c3f0ba0584cab2cc05714) Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@verkada.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-28kernel.bbclass: remove unnecessary dead codeRasmus Villemoes
The grep pattern seems to have been wrong ever since we stopped adding the -ffile-prefix-map via a patch in commit 20aea61385e, because the actual upstream gcc produces -ffile-prefix-map=<old>=<new> and not -ffile-prefix-map=<old=new> Besides, these *-prefix-map options are already used when building the kernel due to the setting of KERNEL_CC, and the kernel build system itself also probes for and uses at least -fmacro-prefix-map (hence taking care of __FILE__ etc., but not necessarily things that go in .debug_info sections). (From OE-Core rev: 5d56de8cd653d2a3a7f4c104d50c14e22d412f66) Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-26libc_package/buildstats: Fix python regex quoting warningsRichard Purdie
(From OE-Core rev: 6a8077317ce12e13018ec4472f728dd24880bda9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-26autotools.bbclass: use ordinary append for file-checksums updateMatt Madison
Commit 29daffc2410f06f36b779d5bf1fd1ef6e900ca8f added an anonymous python function to append the site file dependencies for do_configure. This causes any recipe that inherits allarch after autotools to end up with a different set of file checksums for each machine, since the anonymous python would get processed before the TARGET_ARCH changes in allarch. Use an ordinary += assignment to fix this. (From OE-Core rev: 60af398f520c938600205ef40e27f90e5342209c) Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23ssate: Cleanup directtasks handlingRichard Purdie
There are several tasks which should only be triggered by direct dependencies. Some are listed in the dep loop, some are not. They should all be in both cases. Fix this by making a list and using the list in both cases to fix various inconsistencies. (From OE-Core rev: 29d285bc07bd7732c7ea39c0fd03c0b3c0d93e52) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23sstate: Avoid deploy_source_date_epoch sstate when unneededRichard Purdie
This sstate task is only needed when depended upon, it can be skipped if there are no tasks running that directly depend upon it. This reduced the number of sstate tasks in something like an image build. (From OE-Core rev: 601cee016da5c7505915e26641a085714de175ce) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23sstate: Ensure deploy tasks don't pull in toolchainsRichard Purdie
If an image is built from sstate, the cross toolchain was being pulled in. This was due to the sstate dependencies for deploy tasks not being considered in the "depvalid" logic. do_deploy tasks do not need their populate_sysroot dependencies when installed from sstate so skip these. This reduces the sstate pulled in by an image build from sstate significantly. (From OE-Core rev: 8047c184f8266fc047c0e5a5524586d414528626) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23staging: Mark deploy an sstate taskRichard Purdie
Deploy is a tricky task as it isn't in SSTATETASKS as it isn't always present. We do need to ensure dependency chains around do_deploy tasks are correctly handled as sstate tasks though. For now add to the list of sstate tasks manually (like the other locale task reference). Without this, missing manifest files could be reported now that do_deploy tasks no longer have their dependencies added by the depvalid function. (From OE-Core rev: 1fdbe550323b98ca67ed7130f5a0d7d626bd2c64) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23meta: Drop useless classRichard Purdie
This class was added by me back in 2007 and has changed one for a whitespace issue since. It only has two lines and neither are particularly useful, one was replaced by the nopackages class, the other adding recursive dependencies also is now mainly problematic adding tons of unneeded dependencies. The name is hard to understand and the class doesn't have a clear purpose. Drop it. Remove the references in devtool (which may be the one reason to keep it around but in my view still not worth it). (From OE-Core rev: 6e2cbfc561dac89bf9183d24d90e52f7d9117826) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23populate_sdk_base/images: Drop use of 'meta' class and hence do_build ↵Richard Purdie
dependencies The 'meta' is old and not very useful. It empties PACKAGES and creates recursive do_build dependencies. We shouldn't need such recursive build dependencies any more so simplify the code. This does cause behaviour changes as some dependencies are no longer built. It did show up issues with qemu-helper-native handling for example but those issues look like real races and the underlying dependency chains were not correct. 'bitbake XXX --runall build' would give the previous behaviour. (From OE-Core rev: 41d7f1aa2cc9ef5dba4db38435402d4c9c0a63e1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23reproducible_build/package_XXX: Ensure SDE task is in dependency chainRichard Purdie
(From OE-Core rev: 938e4dfb68a465f61cb754b2cd28d0728616b5a9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23package_ipk/deb/rpm: Drop recursive do_build task dependenciesRichard Purdie
This is a controversial change which removes the recursive dependencies from the do_build target of packaging tasks of recipes. Currently this means when you "bitbake <image>" or "bitbake <recipe>", the packaging tasks run for all packaging backends enabled for all recipes in the dependency chain. The same therefore then applies to images. We don't actually need that, it is a convinience thing. Removing it massively simplifies the task graph and causes much fewer tasks to execute in many common scenarios. It also means less sstate is fetched for example when building an image. This means when building a recipe all package formats would be built but when building an image, only the format used by the image would be generated. This should be an improvement in most cases but some CI systems may need to be explict about what they're building. 'bitbake XXX --runall build' would give the previous behaviour. (From OE-Core rev: 220d29a5abb5be8b80c64d8f2f48949bc8c534a3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23siteinfo/autotools: Ensure task checksums reflect site filesRichard Purdie
Currently, if you change the site files, nothing rebuilds since they are not accounted for in task checksums. They could/should be through the file-checksums task flag. We need to cache all the files looked for, whether the exist or not so that if they do exist and didn't, the checksum also changes. This gets complicated by the need to clean out hardcoded build paths from the variable and that other layers can have site files. This patch adds this functionality. A new variable, SITEINFO_PATHVARS is added which controls which substitutions to make on the file-checksum values to remove the hardcoded paths. Layers adding site files will need to set this to a variable that has the layer path in it and is excluded from task hashes (COREBASE is the one the core layer uses). This patch will cause yocto-check-layer to fail for some layers where site files are added yet the layer isn't a machine specific layer. This is arguable correct since these additional site files apply to all recipes and things from a layer like core could be changed by such changes so it is right they should rebuild. There is a determinism issue potentially there if not. meta-openembedded does have some such references but looking at them they should move to core or likely just be removed as most look obsolete anyway. [YOCTO #13729] (From OE-Core rev: 29daffc2410f06f36b779d5bf1fd1ef6e900ca8f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23image/qemu: Add explict depends for qemu-helper addto_recipe_sysroot taskRichard Purdie
The populate_sysroot task isn't enough for qemu-helper-native, we need it's addto_recipe_sysroot task. This corrects what amounts to bad dependency information to be explicit. (From OE-Core rev: 55623420208bc4c77a61492d2bbcbc71d3123acd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>