summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe
Commit message (Collapse)AuthorAgeFilesLines
* oe/utils: log exceptions in ThreadedWorker functionsRoss Burton4 days1-1/+2
| | | | | | | | | | | | | | If the function a ThreadedWorker is executing raises an exception, don't use print() as that mostly disappears. Instead, output it to the logger. This is done using bb.mainlogger.debug directly instead of bb.debug() as this allows us to pass the exception instance directly, which is then incorporated into the log stream. (From OE-Core rev: 2f1ea25c222b344dd8b784b2bc73a6540ab30274) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/qa,insane: Move extra error handling functions to libraryMike Crowe5 days1-0/+34
| | | | | | | | | | | | | | | | | | | | | | | Extract package_qa_write_error, package_qa_handle_error and package_qa_add_message functions from insane.bbclass to lib/oe/qa.py and drop the package_qa_ prefixes. Update various bbclasses to use the new functions. No import is required since base.bbclass puts oe.qa in OE_IMPORTS. Stop requiring callers to manually track whether a fatal error has been encountered via a "sane" flag. Instead replace the QA_SANE variable with QA_ERRORS_FOUND and call oe.qa.exit_if_errors or oe.qa.exit_with_message_if_errors at the end of each task. Inspired by discussion resulting from https://lists.openembedded.org/g/openembedded-core/message/156793 and https://lists.openembedded.org/g/openembedded-core/message/156900 (From OE-Core rev: f0ad152ef4cc15c042bc9eeefb6af096d054b220) Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variableRichard Purdie6 days1-1/+1
| | | | | | | | | | We want things to be reproduicble and the variable doesn't really change much any more. Drop the remaining uses and make those code paths always active. (From OE-Core rev: d15fb02c7ee7da50e322d74bc6a545234e20c7f3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Merge code into base.bbclassRichard Purdie6 days1-0/+51
| | | | | | | | | | Reproducibility is here to stay and needs to be part of our default workflow. Move the remaining code to base.bbclass so it is always a first class citizen and it is clear people need to be mindful of it. (From OE-Core rev: abb0671d2cebfd7e8df94796404bbe9c7f961058) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Move class function code into libraryRichard Purdie6 days1-0/+33
| | | | | | | | | To try and avoid parse/memory overhead of functions within bitbake, move the bulk of the reproducibility functions to the function library. (From OE-Core rev: f2fd1c9d75e774c8a5271cdc1ec6f65c4492f941) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Allow validation of sstate singatures against list of keysDaniel McGregor7 days1-5/+22
| | | | | | | | | | Allow a user to validate sstate objects against a list of keys, instead of just any known key in the user's keychain. (From OE-Core rev: 52ba0c5e6e2e3d5d01dc3f01404f0ab1bb29b3b5) Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe/license: implement ast.NodeVisitor.visit_ConstantRoss Burton7 days1-0/+6
| | | | | | | | | | | | Since Python 3.8 visit_Num(), visit_Str() and so on are all deprecated and replaced with visit_Constant. We can't yet remove the deprecated functions until we require 3.8, but we can implement visit_Constant to silence the deprecation warnings. (From OE-Core rev: abc93390a3f19bc4cc159c5690a478b9e2270906) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildhistory: Fix package output files for SDKsAndres Beltran8 days1-1/+1
| | | | | | | | | | | | | | | | | 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: 82e6172c1df378dff4e503aa878501c08937b5bb) Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* packagedata.py: silence a DeprecationWarningMingli Yu9 days1-1/+1
| | | | | | | | | | | | | | | | Use regex strings (rā€™ā€™) to silence below deprecation warning [1]: $ cat tmp/work/intel_x86_64-wrs-linux/linux-yocto/5.10.x+gitAUTOINC+917c420111_373c02c3ca-r0/temp/log.do_deploy [snip] /build/layers/oe-core/meta/lib/oe/packagedata.py:22: DeprecationWarning: invalid escape sequence \s r = re.compile("(^.+?):\s+(.*)") [snip] [1] https://docs.python.org/3/library/re.html (From OE-Core rev: b5b70cba70067466da5e94f69632a2a029203838) Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Only apply group/other permissions to pseudo filesRichard Purdie14 days1-13/+14
| | | | | | | | | | | | | | | | | 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>
* sstatesig: Add processing for full build paths in sysroot filesRichard Purdie2021-10-041-3/+36
| | | | | | | | | | | | | | | | | | | | | 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>
* sstatesig: Revert "Test cross/native hashserv method extension"Richard Purdie2021-10-021-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2a76082363d189880613765ad339718e3614049d. We have an issue where x86 host builds are not matching hashes with aarch64 host builds. We'd expect that for a given target, the target artefacts should work regardless of the host architecture, compiler version etc. but this isn't happening and the hashes are differing. This is due to issues from hash equivalence. I believe the commit being reverted was added as a test and there were other fixes at the time which resolved these issues. As illustration of that, different gcc versions are not cauing issues with hash equivalence. That should be similar to the aarch64 case vs. x86-64 and hence if we're not seeing gcc verison issues, we also don't need this special case. As such, revert it as we don't need it and it is in fact breaking sstate reuse cross platform. [YOCTO #14578] (From OE-Core rev: be67dc551ca15a6f19855e8e99848aab2a33800d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/spdx.py: Add commentsJoshua Watt2021-09-281-0/+57
| | | | | | | | | | Adds several comments to this file to explain the intention and how it should be used (From OE-Core rev: 0be0ba70e68b57a3617d3c1ea4b6233b37d5d648) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* spdx.py: Add SPDXAnnotation ObjectSaul Wold2021-09-281-0/+7
| | | | | | | | | | | | This is added to allow the create-spdx code to create annotations that store values properly according to the SPDX Specification. Initialy they will be used to track if a recipe is a native type. (From OE-Core rev: 8db551bba619f3b3612c59270043148214a462cc) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: correct collections vs collections.abc deprecationAlexander Kanavin2021-09-191-6/+1
| | | | | | | | | collections.abc is available since 3.3 and doesn't need special handling. (From OE-Core rev: 01152c9410ba00274c8415a5d914dc33dfd0cf46) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Allow exclusion of the root directory for do_packageRichard Purdie2021-09-161-1/+4
| | | | | | | | | | | | The package task references WORKDIR at it's top level and we can't easily make the timestamp for that determnistic due to writes to files there and in other subdirs. We could try and force it to a specific value but it is easier to just remove it from the package task, we don't need it there or care about it in this case. (From OE-Core rev: 9cceeb906527f90d8dd3aad75aa3a8805e2a1df5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd: '${systemd_unitdir}/system' => '${systemd_system_unitdir}'Robert P. J. Day2021-09-071-1/+1
| | | | | | | | | | | Repo-wide replacement to use newer variable to represent systemd system unitdir directory. (From OE-Core rev: 5ace3ada5c54500c71becc8e0c6eddeb8bc053e3) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/create-spdx: Fix up license reportingJoshua Watt2021-09-031-0/+8
| | | | | | | | | | | | | | | | | | Licenses reported in the SPDX documents should be either: A) A valid SPDX identifier cross referenced from the SPDX license database B) A "LicenseRef" to a license described in the SPDX document The licensing code will now add a placeholder extracted license with corresponding "LicenseRef" for any licenses that are not matched to the SPDX database Parenthesis in the license expression are now handled correctly (From OE-Core rev: 28d9d035c0ff8fcaf28bc96a976a43a602a47e94) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/create-spdx: Add runtime dependency mappingJoshua Watt2021-09-031-2/+3
| | | | | | | (From OE-Core rev: 82f3229bce41dc101c79865033432161dac269d8) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/create-spdx: Add SHA1 to index fileJoshua Watt2021-09-031-3/+13
| | | | | | | (From OE-Core rev: ebfe78ad26b643ce0fb22ba5b3ede43da4a78987) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/create-spdx: Add classJoshua Watt2021-09-032-0/+326
| | | | | | | | | | | | | Adds a class as a first attempt to create SPDX SBoM documents during the build. This initial work was influenced by [meta-doubleopen][1], although almost completely rewritten. [1]: https://github.com/doubleopen-project/meta-doubleopen (From OE-Core rev: 78c79821ae7e2f060b9a74ea9aefce98102bb00e) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: Add extended packaged dataJoshua Watt2021-09-031-0/+12
| | | | | | | | | | | | | | | | | | Adds extended package data which is encoded as JSON which allows it to encode more structure than the "flat" package data files. The extended data might be much larger than the standard package data, so it is not read by default and instead requires oe.packagedata.read_subpkgdata_extended() to be called Currently, the file sizes and ELF debug sources are saved off into the extended package data (From OE-Core rev: db9cf430e54ae68da80fbc3fba80ce88d8df164d) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Reviewed-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildhistory: Label packages providing per-file dependencies in depends.dotAndres Beltran2021-09-011-2/+30
| | | | | | | | | | | | | | | | Currently, depends.dot includes per-file dependencies but not the packages providing those files. This makes it hard to obtain all package dependencies by just looking at depends.dot. Parse the RPROVIDES and FILERPROVIDES fields from pkgdata to map each of their values to the package providing the component. Include runtime packages as dependencies in depends.dot, together with the component provided by the package as a label. (From OE-Core rev: 2ba33093017574bbe29eeba699eb90628614d03a) Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* prservice: remove connection cachingScott Murray2021-08-231-13/+12
| | | | | | | | | | | | | | This patch is a follow on of the the PR server rework in bitbake to add read-only support. The shift to using the bb.asyncrpc code in the PR server and client brings issues with respect to reuse of the same asyncio loop in different processes. This patch removes the PR service connection caching to avoid one source of this problem. It is believed that in practice this should have little impact on overall performance. (From OE-Core rev: 0fc3055027e2a76ac863f1c0e0d52e95748066aa) Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/elf: Add Android OS to machine_dictHsia-Jun Li2021-08-221-0/+8
| | | | | | | | | Add entries for Android to the mappings. (From OE-Core rev: 2cec34178d6e5864c5d6280532a77cfb9cb255ea) Signed-off-by: Hsia-Jun Li <randy.li@synaptics.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/packagedata: Fix for new overridesJoshua Watt2021-08-131-3/+3
| | | | | | | | | | | Fix read_subpkgdata_dict to account for the new override operator being ":" instead of "_" (From OE-Core rev: 0b04ae769d4fad2caaa858803d8fbbbaec689541) 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>
* classes/cve-check: Move get_patches_cves to libraryJoshua Watt2021-08-131-0/+83
| | | | | | | | | | | | | | Moving the function will allow other classes to capture which CVEs have been patched, in particular SBoM generation. Also add a function to capture the CPE ID from the CVE Product and Version (From OE-Core rev: 75d34259a715120be1d023e4fd7b6b4b125f2443) 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>
* lib/oe: add generic functions for overlayfsVyacheslav Yurkov2021-08-121-0/+43
| | | | | | | (From OE-Core rev: 53f0af20f94399335c8a5a6b7001994e332b69a6) Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Manual override fixesRichard Purdie2021-08-023-11/+11
| | | | | | | | | | The automated conversion of OE-Core to use the new override sytax isn't perfect. This patches some mis-converted lines and some lines which were missed by the automation. (From OE-Core rev: 4e9a06b64b43131b731fb59a0305f78a98e27fbd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert to new override syntaxRichard Purdie2021-08-025-12/+12
| | | | | | | | | | | | This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". (From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs: remove ldconfig auxiliary cache where appropriateDamian Wrobel2021-07-281-0/+10
| | | | | | | | | | | | | | | Removes the /var/cache/ldconfig auxiliary cache directory from the rootfs when: - read-only-rootfs is in IMAGE_FEATURES, - ldconfig is not in DISTRO_FEATURES. In both cases the /var/cache/ldconfig/aux-cache is useless. (From OE-Core rev: e7a18904582b27fd12a437ff4d8d25c625af7696) Signed-off-by: Damian Wrobel <dwrobel@ertelnet.rybnik.pl> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/package_manager: Don't ignore installation failures in ā†µFabio Berton2021-06-291-5/+3
| | | | | | | | | | | | | | | | | | install_complementary When attempt_only flag is set to True all installation failures are ignored. Disable attempt_only, that is the default in install function, to raise error in install_complementary and to prevent do_populate_sdk task to treat errors as warnings. [RP: Historically some of our addtional packages were in bad shape and wouldn't all install. This is no longer the case so we shouldn't need a hack like this any longer.] (From OE-Core rev: 8042ad9ca91ddaaf741366e1068c63c284ff98f5) Signed-off-by: Fabio Berton <fabio.berton@criticaltechworks.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/buildhistory: Add option to strip path prefixJoshua Watt2021-06-031-2/+13
| | | | | | | | | | | Adds an option to strip a prefix from the paths reported in buildhistory. This makes it easier to compare task signatures in the build history when the builds were done from different directories. (From OE-Core rev: 194e7a29212c4a29222730f47d3133dfe92447c1) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/rpm: decode systemctl failuresArmin Kuster2021-06-011-0/+3
| | | | | | | | | | | Parse systemctl error to provide more info [Yocto #14395] (From OE-Core rev: 9d33a3ad68aeadd359e978b35097ece507a92b14) Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig.py: make it fatal error when sstate manifest isn't foundMartin Jansa2021-05-211-1/+1
| | | | | | | | | | * all known issues in this area were fixed, make it fatal that it cannot be overlooked if someone triggers this issue again (From OE-Core rev: 64b89f3c8fc31842256c482a3039d90d3f12c1cc) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/gpg_sign.py: Fix gpg verificationDaniel McGregor2021-05-211-1/+1
| | | | | | | | | | | A stray space made it into the command for verifying gpg signatures. This caused verification to fail, at least on my host. Removing the space makes it work as expected. (From OE-Core rev: af1d948822cbe6ac7ede9cb4e881db8dc780e308) Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib/oe/rootfs.py: Fix typo "Restoreing" -> "Restoring"Robert P. J. Day2021-05-131-1/+1
| | | | | | | (From OE-Core rev: 2621dbbc1181808f18ca4ae79408d0d5b557670f) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/package_manager: Use shutil.copy instead of bb.utils.copyfile for interceptsRichard Purdie2021-05-061-1/+1
| | | | | | | | | | If the scripts/postinst-intercepts is owned by root/root then the copyfile() calls will fail due to chown issues. We don't care about ownership of these files so use shutil.copy() instead which won't perform any chown. (From OE-Core rev: 1a03c70c282b3445b93a4c70ea6d40a1778750c5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib/scripts: Use bb.utils.rename() instead of os.rename()Devendra Tewari2021-05-063-7/+7
| | | | | | | | | | | | | | | | | | Incremental build in Docker fails with: OSError: [Errno 18] Invalid cross-device link when source and destination are on different overlay filesystems. Rather than adding fallback code to every call site, use a new wrapper in bitbake which detects this case and falls back to shutil.move which is slower but will handtle the overlay docker filesystems correctly. [YOCTO #14301] (From OE-Core rev: 656a65b2b84e7d529b89cf5de7eb838f902d84a2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: find .ko.gz and .ko.xz kernel modules as wellChristophe Chapuis2021-05-021-1/+1
| | | | | | | | | | | | | * with xz PACKAGECONFIG enabled in kmod and xz module compression enabled in kernel the do_rootfs task doesn't run depmod in the image, because it thinks there are no modules: NOTE: No Kernel Modules found, not running depmod (From OE-Core rev: 9c13ce05eae0f126eb150e48709e9bd06e9280fa) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* prservice: Use new connect APIPaul Barker2021-05-011-1/+1
| | | | | | | | | | | The new prserv connect() function decouples the code in oe-core from the exact classes and implementation details used within bitbake. This allows us to more easily switch over to a new asyncrpc based prservice. (From OE-Core rev: 6bf39c5c8cf09e3f2ce6eba13b9d18193bce9655) Signed-off-by: Paul Barker <pbarker@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: apply postinstall on sdkhongxu2021-04-181-0/+4
| | | | | | | | | | | | | | | | | | | | | If not postinstall applied, some nativesdk command could not be found in sdk due to update-alternatives in postinst not be executed, such as chroot: $ which chroot /sbin/chroot $ which chroot.coreutils path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot.coreutils After applying the fix $ which chroot path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot $ which chroot.coreutils path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot.coreutils (From OE-Core rev: 2a9bf19502766baa4087456649d5471483d04f6a) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/terminal: Fix tmux new-session on older tmux versions (<1.9)Peter Budny2021-04-181-3/+13
| | | | | | | | | | | `tmux new -c` fails on tmux older than 1.9, when that flag was added. We can omit the flag for older versions of tmux, and the working directory gets set even without it. (From OE-Core rev: c55c294be6f5119f4c58a4e7a0bc052904126569) Signed-off-by: Peter Budny <pbbudny@amazon.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext: Avoid copying and producing .pyc filesMark Hatle2021-03-281-3/+3
| | | | | | | | | | | | Since pyc cache files are really system specific, no real reason to copy or generate them during the eSDK build process. Also generating them has the possibility of re-using inodes that pseudo may have been tracking, leading a build failure. (From OE-Core rev: ce8eba263647ae63a722122e28f26af46ae083a0) Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: uninstall the run-postinsts package if not neededAwais Belal2021-03-281-5/+3
| | | | | | | | | | | | | | | | | | | | The run-postinsts package runs post installation scripts on target if packages request delayed post installations. When no delayed post installations are found the sysV style scripts are disabled for the package and hence it did not run on sysV based systems. However, the package provides systemd service as well which still ran on systems based on systemd even when no post installations were found. Rather than disabling/masking scripts for different initialization managers we now simply remove/uninstall the run-postinsts package when no post installations are found to be delayed till runtime. This is also more aligned with the function (_uninstall_unneeded) this functionality is triggered through. (From OE-Core rev: 627fb3181edd71502fbdf96549c41b2dea027250) Signed-off-by: Awais Belal <awais_belal@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/utils: add directory size functionRoss Burton2021-03-281-0/+31
| | | | | | | | | | | | | | | | | | | For the purpose of image construction using du on a rootfs directory isn't entirely satisfactory. Bare "du" will report the actual disk usage so file systems which can compress the data will report less than the actual space required. Using "du --apparent-size" will report the actual space used, but as this simply sums the bytes used for content across an entire file system can result in significant under-reporting due to block size overhead. Attempt to solve these problems by implementing our own function to calculate how large a rootfs will be. This function handles hardlinks correctly but rounds up all sizes to multiples of the block size (currently, 4KB is the hard-coded block size). (From OE-Core rev: 6ca53ad7b26ee2b4e6d2c121c6f6d6eed7f6b56f) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: CVE_VERSION_SUFFIX to work with patched releaseLee Chee Yang2021-03-201-1/+6
| | | | | | | | | | | | | CVE_VERSION_SUFFIX in "patch" to treat version string with suffix "pX" or "patchX" as patched release. also update testcases to cover this changes and set CVE_VERSION_SUFFIX for sudo. (From OE-Core rev: 8076815fc2ffc8f632e73527ce2b7d158a29e9ea) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig.py: show an error instead of warning when sstate manifest isn't foundMartin Jansa2021-02-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * not sure if there are some valid use-cases for missing manifest, but recently I'm seeing increasing number of build failures where something from native recipe is missing (seen it with pseudo, autoconf, nodejs recently) and the only indication that something is wrong (before showing sometimes misleading error like: recipe-sysroot-native/usr/bin/node: No such file or directory is this warning: NOTE: Running task 7844 of 12431 (/meta-oe/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb:do_prepare_recipe_sysroot) NOTE: recipe nodejs-12.20.2-r0: task do_prepare_recipe_sysroot: Started WARNING: nodejs-12.20.2-r0 do_prepare_recipe_sysroot: Manifest /BUILD/sstate-control/manifest-x86_64_ubuntu-18.04-nodejs-native.populate_sysroot not found in x86_64 x86_64_ubuntu-18.04 (variant '')? NOTE: Running task 7845 of 12431 (/meta-oe/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb:do_unpack) NOTE: recipe nodejs-12.20.2-r0: task do_unpack: Started WARNING: nodejs-12.20.2-r0 do_prepare_recipe_sysroot: Manifest /BUILD/sstate-control/manifest-x86_64_ubuntu-18.04-nodejs-native.populate_sysroot not found in x86_64 x86_64_ubuntu-18.04 (variant '')? NOTE: recipe nodejs-12.20.2-r0: task do_prepare_recipe_sysroot: Succeeded if I rebuild that native dependency, then it gets fixed and I don't see these failures in clean builds (as without sstate and with empty TMPDIR), only in incremental builds * but if there isn't valid reason for missing manifest file, then I think it would be better to error early (or even bb.fatal()) (From OE-Core rev: 95607a26854d873399d2b9d7e5fcbffc0cbdba4c) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Improve SOURCE_DATE_EPOCH_FALLBACK handlingRichard Purdie2021-02-241-2/+6
| | | | | | | | | | | | | | Ensure the fallback value if used is written to the SDE file and hence stored in sstate, reducing any confusion within the code over '0' values. Bump the HASHEQUIV_VERSION since we've had a ton of trouble with ensuring this rolls out correctly on the autobuilder so others may too, take a clean slate for it. (From OE-Core rev: 53ffffa32b76330835287dfc05d4e4796841af08) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* licenses: Fix canonical license for 'or-later' handlingRichard Purdie2021-02-211-8/+1
| | | | | | | | | | GPLv2 and GPLv2+ are two difference licenses with different meanings and we can't just pretend they're the same thing. Change the code to treat them separately. (From OE-Core rev: d1baf74ac92fe0c8c32dff101fd77d77f70fd583) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>