summaryrefslogtreecommitdiffstats
path: root/meta/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* oeqa/runtime/dnf: rewrite test_dnf_installroot_usrmergeRoss Burton2022-11-021-20/+12
| | | | | | | | | | | | | | This test doesn't get exercised on the autobuilder and so it was broken: specifically some of the ln commands silently fail and the chroot isn't usable. Rewrite the test case to correctly construct a chroot so the test can pass. (From OE-Core rev: bb6ebb9956a42df3ed8681aec9aedf340b12f934) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/target/ssh: add ignore_status argument to run()Ross Burton2022-11-021-2/+2
| | | | | | | | | | | | | | | The underlying _run() method has an ignore_status argument and can either return the exit code or raise an exception if it is non-zero. Add the same argument to the run() method so that test cases can change this value. It currently defaults to True as that is the existing behaviour, but a follow-up patch will change this to False as test cases should fail on errors unless told otherwise. (From OE-Core rev: e244228730178d15a066a1428956de328cc09671) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pinentry: update 1.2.0 -> 1.2.1Alexander Kanavin2022-10-291-5/+4
| | | | | | | | | | libcap support dropped upstream. (From OE-Core rev: 6196af94fef1e25bf68f6888706eed7693cc24a8) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-target-config: match riscv target names with what rust expectsAlexander Kanavin2022-10-281-0/+2
| | | | | | | | | | | | | | | | | | | | Official rust risc-v targets are prefixed with riscv32gc- and riscv64gc-: https://doc.rust-lang.org/nightly/rustc/platform-support.html Particularly crossbeam-utils make important build time decisions for atomics based on those names, and so we need to match ours with official targets. On the other hand, the actual definitions for those targets do not use the 'gc' suffix in 'arch' and 'llvm-target' fields, and so we need to follow that too, to avoid cryptic mismatch errors from rust-llvm: https://github.com/rust-lang/rust/blob/master/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_gnu.rs (From OE-Core rev: 1cfb9c8a59d98ccc9b0510cd28fb933f72fb6b6c) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* u-boot: Rework signing to remove interdependenciesSean Anderson2022-10-261-13/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The U-Boot signing code is a bit of a mess. The problem is that mkimage determines the public keys to embed into a device tree based on an image that it is signing. This results in all sorts of contortions: U-Boot has to be available to the kernel recipe so that it can have the correct public keys embedded. Then, the signed U-Boot has to be made available to U-Boot's do_deploy. This same dance is then repeated for SPL. To complicate matters, signing for U-Boot and U-Boot SPL is optional, so the whole process must be seamlessly integrated with a non-signed build. The complexity and interdependency of this process makes it difficult to extend. For example, it is not possible to install a signed U-Boot binary into the root filesystem. This is first because u-boot:do_install must run before linux:do_assemble_fitimage, which must run before u-boot:do_deploy. But aside from infrastructure issues, installing a signed U-Boot also can't happen, because the kernel image might have an embedded initramfs (containing the signed U-Boot). However, all of this complexity is accidental. It is not necessary to embed the public keys into U-Boot and sign the kernel in one fell swoop. Instead, we can sign the kernel, stage it, and sign the staged kernel again to embed the public keys into U-Boot [1]. This twice-signed kernel serves only to provide the correct parameters to mkimage, and does not have to be installed or deployed. By cutting the dependency of linux:do_assemble_fitimage on u-boot:do_install, we can drastically simplify the build process, making it much more extensible. The process of doing this conversion is a bit involved, since the U-Boot and Linux recipes are so intertwined at the moment. The most major change is that uboot-sign is no longer inherited by kernel-fitimage. Similarly, all U-Boot-related tasks have been removed from kernel-fitimage. We add a new step to the install task to stage the kernel in /sysroot-only. The logic to disable assemble_fitimage has been removed. We always assemble it, even if the final fitImage will use a bundled initramfs, because U-Boot will need it. On the U-Boot side, much of the churn stems from multiple config support. Previously, we took a fairly ad-hoc approach to UBOOT_CONFIG and UBOOT_MACHINE, introducing for loops wherever we needed to deal with them. However, I have chosen to use a much more structured approach. Each task which needs to use the build directory uses the following pseudocode: do_mytask() { if ${UBOOT_CONFIG}; then for config, type in zip(${UBOOT_CONFIG}, ${UBOOT_MACHINE}); do cd ${config} mytask_helper ${type} done else cd ${B} mytask_helper "" fi } By explicitly placing the work in mytask_helper, we make it easier to ensure that everything is covered, and we also allow bbappends files to more easily extend the task (as otherwise they would need to reimplement the loop themselves). [1] It doesn't particularly matter what we sign. Any FIT will do, but I chose the kernel's because we already went to the trouble of setting it up with the correct hashes and signatures. In the future, we could create a "dummy" image and sign that instead, but it would probably have to happen in the kernel recipe anyway (so we have access to the appropriate variables). (From OE-Core rev: 5e12dc911d0c541f43aa6d0c046fb87e8b7c1f7e) Signed-off-by: Sean Anderson <sean.anderson@seco.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildconf: compare abspathAdrian Freihofer2022-10-261-1/+1
| | | | | | | | | | | We have something like ${TOPDIR}/../../poky/meta in the bblayers.conf file. This does not work without normalizing the path for comparison. (From OE-Core rev: e0d45bcd34311ae248bac9378f46962198d148ef) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* overlayfs: Allow not used mount pointsVyacheslav Yurkov2022-10-261-1/+5
| | | | | | | | | | | | | When machine configuration defines a mount point, which is not used in any recipe, allow to fall through and only report a note in the logs. This can be expected behavior, when a mount point is defined for several machines, but not used in all of them (From OE-Core rev: a9c604b5e0d943b5b5f7c8bdd5be730c2abcf866) Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe/packagemanager/rpm: don't leak file objectsRoss Burton2022-10-251-12/+21
| | | | | | | (From OE-Core rev: 28706c27680745c9f8df27713ce63ef5d611138c) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/dnf: use dnf-test packagesRoss Burton2022-09-261-32/+20
| | | | | | | | | | | | | | | | | | Instead of installing run-postinsts with it's postinst scripts causing systemd restarts, use the new dnf-test-* packages instead. Remove from the installroot tests entirely as they're exercised enough using just busybox. Rewrite the exclude test to be simplier now these packages are not going to be part of an existing dependency chain. [ YOCTO #14787 ] (From OE-Core rev: fb1de2abc53bd742bc55cfecd384b78852c10d80) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/dnf: fix typoAlexandre Belloni2022-09-201-1/+1
| | | | | | | (From OE-Core rev: 454b85fc612bd060b51ac2b94e36698ed1b76d56) Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils/decorators: Drop getResultsRichard Purdie2022-09-171-37/+0
| | | | | | | | | | Now there are no users of getResults, drop it. The code doesn't work with python 3.8 onwards and is pretty horrible with internal python knowledge. We don't need this. (From OE-Core rev: 058d00386f13c48e84081adc0504fc71a06c6529) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils/decorators: Drop unused decoratorsRichard Purdie2022-09-171-48/+0
| | | | | | | | | | These decorators aren't used anywhere in core and broke from python 3.8 onwards. The code implementing them (in getResults) is pretty horrible and I'm happy to see them and it removed. (From OE-Core rev: 1d7ff45e2bd48c613a0757491daaa3bedc97cb5e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oetest: Drop getResults usage from oeRuntimeTestRichard Purdie2022-09-171-15/+1
| | | | | | | | | | | | Despite the name, this code is only used from testexport and the function in question is broken on python 3.8 onwards. Since nobody is using it and the failure log handling here is of questionable benefit anyway, drop it. We should be using the same code for normal test runs and testexport, not having two different codepaths. (From OE-Core rev: 19919109f20c3b45ebc26b9b92594fbdc2cbc79d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oetest: Drop unused variableRichard Purdie2022-09-171-6/+0
| | | | | | | | | The pscmd variable appears unused, drop it and the code which then isn't needed. (From OE-Core rev: fbdc1f307c3a73979aee288f03aa513ccd93b799) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: Drop FAKEROOT support in exec functionAndrei Gherzan2022-09-171-7/+1
| | | | | | | | | | | | | The _exec_shell_cmd function is used by a couple of other functions that are ultimatelly called from the create_rootfs function. The latter is used in image bbclass' do_rootfs which is running using the fakeroot support in bitbake. This makes the fakeroot support in _exec_shell_cmd redundant and never actually used. (From OE-Core rev: d1439c41049e3cf201939bbc2b1fee58a46137a1) Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/qemurunner: Work around possible control character contaminationRichard Purdie2022-09-131-8/+13
| | | | | | | | | | | | | | | | | Using a binary string as the login banner search expression is fraught with risks. We've seen cases on the autobuilder where "login:" is clearly shown but the code hasn't triggered. The most likely cause is hidden control characters in the output causing the search to fail. Take the opportunity to remove the horrible binary string search, at the expense of decoding the bootlog multiple times. Tweak the logging so we can know which log was printed (self.msg or bootlog) just in case this isn't the issue and we need more information in future. (From OE-Core rev: 91b9e30e08695e715ef14c3df7471e8c99f9deb5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: Run depmod(wrapper) against each compiled kernelAndrei Gherzan2022-09-131-9/+19
| | | | | | | | | | | | | | | | | | | We run depmod (through depmodwrapper) at the end of the rootfs generation process. This part of the process assumes in its current implementation that the kernel package name is always 'kernel' and that there is only one set of kernel modules for which we need to generate the modules.dep and map files. The kernel package name can be configured via a variable (KERNEL_PACKAGE_NAME) and becomes a namespace that enables the build system to deal with multiple compiled kernel recipes. This patch checks for all the depmod pkgdata and runs depmod for each of the detected kernel versions/kernel package name. (From OE-Core rev: efa88e1c227d695319197f511701e0230d301f39) Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: qemurunner: Report UNIX Epoch timestamp on loginJoshua Watt2022-09-121-2/+2
| | | | | | | | | | | | | | Updates the log message printed when login banner is seen in QEMU to report the UNIX Epoch time in addition to the human readable time. This makes it much easier and accurate to correlate logs with the guest, in particular with the guest journalctl which prints log timestamps in human readable format and the oeqa SSH debug logging which prints the UNIX Epoch. (From OE-Core rev: 275b6f3c8d0eeafa3902c48a49655491a89c47bc) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: dont try to list installed packages for baremetal imagesAlejandro Hernandez Samaniego2022-09-091-0/+4
| | | | | | | | | | | | | | | Theres not a rootfs for baremetal images, hence we should avoid trying to list rootfs packages for them. This fixes an issue where some classes (e.g. license_image) rely on rootfs functionality when included for baremetal images even if its nonexistent (From OE-Core rev: 5a7e13f46083ce3b08aa762238c1e93b7626dda4) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemurunner: Update to match qmp changesRichard Purdie2022-09-091-3/+4
| | | | | | | | | | | | | Upstream made changes to the qmp module. We need to use the legacy one for now since that matches the interface we use, ultimately we likely need to update our code. Also fix the generic exception handler to show the actual exception which helps debugging when something does break. (From OE-Core rev: 6e90b0d909d3c8b1be5cb19f2411cd0e89735c84) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/debuginfod: don't re-use the databaseRoss Burton2022-09-091-4/+15
| | | | | | | | | | | | | | | | | | | | debuginfod writes the files it scans to a database in $HOME, which isn't ideal when the build trees that get scanned typically are deleted after the test has finished. This can result in debuginfod trying to return objects that no longer exist on disk: libc error: stat /home/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-1032306/tmp/deploy/rpm/core2_64/elfutils-dbg-0.187-r0.core2_64.rpm: No such file or directory libc error: stat /home/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-1113320/tmp/deploy/rpm/core2_64/elfutils-dbg-0.187-r0.core2_64.rpm: No such file or directory libc error: stat /home/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-1113320/tmp/deploy/rpm/core2_64/elfutils-dbg-0.187-r0.core2_64.rpm: No such file or directory Solve this, and save writing a database on disk at all, by using the special database path :memory: which keeps the database in memory only, so state can't leak between tests. (From OE-Core rev: d1c2aa3d241bd17d68e8e38d9399cbb0a3f3b912) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: Add lower layer test for overlayfs-etcVyacheslav Yurkov2022-09-091-22/+68
| | | | | | | | | | | | | Place a test file on the /etc by means of overlayfs-user recipe. Perform QA checks to make sure that: - When lower layer is exposed, that it's read-only to avoid undefined behavior - By default lower layer is not exposed (From OE-Core rev: 2fc742178675598208b400d9889a1681249d7eea) Signed-off-by: Vyacheslav Yurkov <v.yurkov@precitec.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: drop image_feature test from overlayfsVyacheslav Yurkov2022-09-091-12/+1
| | | | | | | | | | | The test checked the incorrect class use with INHERIT. This functionality is now covered by bitbake (From OE-Core rev: ec4799b7230ed7e99cf2b13fdf8f6d59a0e12795) Signed-off-by: Vyacheslav Yurkov <v.yurkov@precitec.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/cases/bblayers.py: build python3-jsonschema only onceAlexander Kanavin2022-09-081-1/+3
| | | | | | | | | | | setUpLocal runs before every testcase, setUpClass runs only once in the beginning. (From OE-Core rev: 0c23e711c277562cf32093851e43bf93a7cb61dc) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* parselogs.py: ignore systemd-logind warning messageChangqing Li2022-09-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | During upower.servie startup, it will send message "GetAll org.freedesktop.DBus.Properties" to systemd-logind.service. Property RebootToBootLoaderMenu and RebootToBootLoaderEntry will return warning message when env SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU, SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY are not set, and also efi boot is not used. The message just warning and not harmful. Since do_testimage run qemu, and use basic bios to boot, test_parselogs failed with error: ----------------------- Central error: Aug 8 02:53:59 qemuarm systemd-logind[383]: Failed to read LoaderConfigTimeoutOneShot variable, ignoring: Operation not supported *********************** So just ignore this error message so that parselogs.py test case does not fail. (From OE-Core rev: 4ecdd44f0d6b1577d6131f65291b96db9cd4a951) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/sdk: extend rust test to also use a build scriptPeter Bergin2022-09-031-0/+3
| | | | | | | | | | | The test for rust in the SDK is extended with the simplest possible build script. This will make use of the host toolchain for building build.rs before building the rust package for target. (From OE-Core rev: 85a676da586f9b1085e62ef1325c9a58168390ae) Signed-off-by: Peter Bergin <peter@berginkonsult.se> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/files/layers.schema.json: drop the layers propertyAlexander Kanavin2022-09-021-2/+1
| | | | | | | | | | | | | | | | | This is a leftover from one of the RFC iterations, where the property contained available machines, distros and templates. As all of those were dropped from the final version, there is no reason to list the layers either anymore. Normally this would be a backwards incompatible change, but as the layer setup itself was just merged, I think we can do a quick fixup :-) (From OE-Core rev: 64a774de0e154ef81f20853fec903b17d9985a72) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/bblayers: adjust the revision for the layer setup testAlexander Kanavin2022-09-011-2/+2
| | | | | | | | | | | Using a tag is not actually robust enough, e.g. poky-contrib checkouts do not come with any tags. So let's use a revision matching yocto-4.0, that ought to be present. (From OE-Core rev: 1246aa8e4c9e6fce2f7700cd8e8ad9566a21d6e3) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/bblayers: add a test for creating a layer setup and using it to ↵Alexander Kanavin2022-09-011-0/+22
| | | | | | | | | | | | restore the layers This does a basic run-through of the bitbake-layers plugin, and the resulting json layer config and the layer setup script that uses it. Only poky is actually fetched by the script. (From OE-Core rev: 84ddd6fc6effbb74499409da7e85c09c8a1ff9ea) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake-layers: add ability to save current layer repository configuration ↵Alexander Kanavin2022-09-012-0/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into a file This addresses a long standing gap in the core offering: there is no tooling to capture the currently configured layers with their revisions, or restore the layers from a configuration file (without using external tools, some of which aren't particularly suitable for the task). This plugin addresses the 'capture' part. Note that the actual writing is performed by a sub-plugin; one such sub-plugin is provided (for the json + python script format), but more can be added (e.g. kas, repo, etc.). How to save a layer configuration: a) Running with default choices: $ bitbake-layers create-layers-setup /srv/work/alex/meta-alex/ NOTE: Starting bitbake server... NOTE: Created /srv/work/alex/meta-alex/setup-layers.json NOTE: Created /srv/work/alex/meta-alex/setup-layers b) Command line options: NOTE: Starting bitbake server... usage: bitbake-layers create-layers-setup [-h] [--output-prefix OUTPUT_PREFIX] [--writer {oe-setup-layers}] [--json-only] destdir Writes out a configuration file and/or a script that replicate the directory structure and revisions of the layers in a current build. positional arguments: destdir Directory where to write the output (if it is inside one of the layers, the layer becomes a bootstrap repository and thus will be excluded from fetching). optional arguments: -h, --help show this help message and exit --output-prefix OUTPUT_PREFIX, -o OUTPUT_PREFIX File name prefix for the output files, if the default (setup-layers) is undesirable. --writer {oe-setup-layers}, -w {oe-setup-layers} Choose the output format (defaults to oe-setup-layers). Currently supported options are: oe-setup-layers - a self-contained python script and a json config for it. --json-only When using the oe-setup-layers writer, write only the layer configuruation in json format. Otherwise, also a copy of scripts/oe-setup-layers (from oe-core or poky) is provided, which is a self contained python script that fetches all the needed layers and sets them to correct revisions using the data from the json. (From OE-Core rev: 5606d1a123a3816ab45e49ee7707ed84c9c23c5c) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/files: add layer setup JSON schema and exampleJoshua Watt2022-09-011-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Defines a common schema for layer setup that can be consumed by tools to know how to fetch and assemble layers for end users. Also includes an example of the layer setup that constructs poky/meta-intel/imaginary product layer for reference. The schema can be used to validate a layer setup file with the commands: $ python3 -m pip install jsonschema $ jsonschema -i meta/files/layers.example.json meta/files/layers.schema.json (From OE-Core rev: 72740b5dd635579e373b4bfe6ccacfe6a02aa998) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Alex: I made the following modifications to Joshua's original commit: - moved the files from meta/lib to meta/files - the example json showcases a multi-repo, multi-layer setup instead of just poky - closer to a typical product - added oe-selftest that validates the example json against the schema using python3-jsonschema-native - the schema is modified so that: -- all lists (sources, layers, remotes) are replaced by objects keyed by 'name' properties of the list items. This allows using them as dicts inside Python, and makes the json more compact and readable. -- added 'contains_this_file' property to source object -- replaced 'remote' property with a 'oneOf' definition for git with a specific 'git-remote' property. 'oneOf' is problematic when schema validation fails: the diagnostic is only that none of oneOf variants matched, which is too non-specific. -- added 'describe' property to 'git-remote' object. -- removed description property for a layer source: it is not clear how to add that when auto-generating the json Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake-layers: add a command to save the active build configuration as a ↵Alexander Kanavin2022-09-012-0/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | template into a layer This is the reverse of setting up a build by pointing TEMPLATECONF to a directory with a template and running '. oe-init-build-env': this takes the config files from build/conf, replaces site-specific paths in bblayers.conf with ##OECORE##-relative paths, and copies the config files into a specified layer under a specified template name. In many or perhaps most cases such static prefabricated configurations (that require no further editing) are just enough, and I believe they should be offered by the official configuration management. On the other hand, generating build configurations with a sufficiently versatile tool is a far more complex problem, and one we should try to tackle once we see where and how static configs fall short. Tooling to discover and select these templates when setting up a build will be provided later on. How to use: alex@Zen2:/srv/work/alex/poky/build-layersetup$ bitbake-layers save-build-conf ../../meta-alex/ test-1 NOTE: Starting bitbake server... NOTE: Configuration template placed into /srv/work/alex/meta-alex/conf/templates/test-1 Please review the files in there, and particularly provide a configuration description in /srv/work/alex/meta-alex/conf/templates/test-1/conf-notes.txt You can try out the configuration with TEMPLATECONF=/srv/work/alex/meta-alex/conf/templates/test-1 . /srv/work/alex/poky/oe-init-build-env build-try-test-1 alex@Zen2:/srv/work/alex/poky/build-layersetup$ (From OE-Core rev: f319534dc8fc68dfe120d129154a509f0cd6a3b0) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: add test for debuginfodRoss Burton2022-08-301-0/+44
| | | | | | | | | | | | Add a new selftest to exercise the debuginfod support, by starting a debuginfod on DEPLOY_DIR and verifying that an image can fetch the symbols for a binary. (From OE-Core rev: d035fd394fd2747ab4b75867af6123f3efb1990f) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest: Add module for testing rootfs postcommandsAndrei Gherzan2022-08-251-0/+97
| | | | | | | | | | The initial implementation adds tests for 'tidy_shadowutils_files'. (From OE-Core rev: 9640ce00c986626573a748859129b6e2eeeafa35) Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfspostcommands.py: Cleanup subid backup files generated by shadow-utilsAndrei Gherzan2022-08-251-0/+2
| | | | | | | | | | | | When creating users, shadow-utils might create backup files for subordinate ID files (subid, subgid). Make sure we clean them up similarly to the other backup files shadow-utils creates. (From OE-Core rev: 4e4ea5adea8a00b4a78ffbe7cc60931deb74c161) Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfspostcommands.py: Restructure sort_passwd and related functionsAndrei Gherzan2022-08-251-17/+43
| | | | | | | | | | | | | | | | | | | | | | This change proposes a restructure of the functions in rootfspostcommandstests.py to clarify the purpose of each function and also, make it scalable for other use cases (for example adding support for removing subid backup files). The main function of interest here is 'tidy_shadowutils_files' which brings in the functionality of the old 'sort_passwd' making it clear that it doesn't only sort the passwd file: - delete backup files - it sorts passwd, group and the associated shadow files The other functions are also renamed for consistency and clarity and more documentation was added. (From OE-Core rev: 81a0a4dbfb0313b967a7a98eb7fd1e13edb1a9be) Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* parselogs: Ignore xf86OpenConsole errorPavel Zhukov2022-08-251-0/+1
| | | | | | | | | | | | | | | | [Yocto #13854] If VT argument was not specified Xorg server tries to bind to VT1, then VT2 and so on. In some cases (runqemu with nographics or serial options for example) VT1 can be taken by systemd getty service which generates error message. Do not fail on this message if Xorg is running. (covered by test_xorg_running test) (From OE-Core rev: d047f493e0c7f341dd307a4d8dd0db08a22824f1) Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: rewrite gdbserver testRoss Burton2022-08-231-114/+55
| | | | | | | | | | | The gdbserver test case didn't actually work and doesn't follow the documentation for how to use gdbserver in Yocto. Rewrite the test case to follow the documented process so if that breaks then we're aware. (From OE-Core rev: a8eddb71b16a2b958cde54d0dbd35f7a9467ddd2) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/commands: add support for running cross tools to runCmdRoss Burton2022-08-231-6/+13
| | | | | | | | | | | If native_sysroot is passed, also support the caller passing in the target_sys and add that to the path if so. This allows runCmd() to be used to invoke the cross tools. (From OE-Core rev: afa3d3ba00b40fd29e9852eeaa2c2c9b68f18659) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/qemurunner: add run_serial() commentRoss Burton2022-08-231-0/+2
| | | | | | | | | Add a comment explaining the non-obvious return codes. (From OE-Core rev: 6572baffa02ba6b8a686490d55af17cacb528920) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest: Add regression test for rpm filesnamesPavel Zhukov2022-08-211-0/+14
| | | | | | | | | | | | | | | Escaping globs and quoting in rpm spec files is tricky and requires a bit of dancing. In addition to that it changes from time to time. Adding (simple) regression test for different types of filename patterns. Cover brackets and parentheses in first iteration [Yocto #13746] (From OE-Core rev: 142432217c152970249884fad240f7441cb1a2ad) Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: do not leave behind source trees in workspace/sourcesAlexander Kanavin2022-08-211-2/+0
| | | | | | | | | | | | | | | | | | | | These are typically auto-extracted with modify/upgrade from recipes and can be easily recreated. On the rare occasions where they need to be reused, they are still available under workspace/attic (which is already used for old recipes and appends), so nothing gets lost. This avoids the annoyance of devtool refusing to proceed because there is a previous source tree in workspace/sources. For independent source trees behave as before: do nothing. Adjust the test that previously deleted those trees by hand. (From OE-Core rev: 9bfb95d070d68d5ab5adfe0ea096f5fbf9cad8b0) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/parselogs: add qemuarmv5 arm-charlcd maskingJon Mason2022-08-211-0/+1
| | | | | | | | | | | | | On qemuarmv5, arm-charlcd is logging an error because the device isn't present on the virtual machine. Mask it off, as that device could be present on the physical hardware (and we want to use the same kernel config as the real hardware). (From OE-Core rev: c03c33a4032f995a288f7287e79f43fcd3140aa1) Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: Don't use f-stringsErnst Sjöstrand2022-08-141-1/+1
| | | | | | | | | | | Since we're keeping cve-check aligned between the active branches, and dunfell is supported on Python 3.5, we can't use f-strings. (From OE-Core rev: 1821cf7464cbba521b55a9c128fe8812c0cc5eca) Signed-off-by: Ernst Sjöstrand <ernstp@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib: Add copyright statements to files without oneRichard Purdie2022-08-12178-0/+413
| | | | | | | | | Where there isn't a copyright statement, add one to make it explicit. Also add license identifiers as MIT if there isn't one. (From OE-Core rev: bb731d1f3d2a1d50ec0aed864dbca54cf795b040) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/runtime_test: Use testexport in IMAGE_CLASSES, not globallyRichard Purdie2022-08-121-2/+2
| | | | | | | | | testexport doesn't make sense outside the scope of SDKs and images so use via IMAGE_CLASSES instead of in the global scope. (From OE-Core rev: ffa7556ae58dd4d806bf1881f5e208d16a64b833) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/runtime_test/incompatible_lic: Use IMAGE_CLASSES for testimageRichard Purdie2022-08-122-6/+6
| | | | | | | | testimage should be included via IMAGE_CLASSES, not globally with INHERIT. (From OE-Core rev: 4cdb29c7342b16a6c9294268a674a1414eed88e5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gdbserver : add selftestYogesh Tyagi2022-08-101-0/+122
| | | | | | | | | | | | | | | The test runs gdbserver on qemu and connects the gdb client from host over TCP. It builds a cross gdb on the host and compiles the program to be debugged on the target, launches the gdbserver and tries to connect cross gdb to it. [YOCTO #13996] (From OE-Core rev: 37164f7e39eea3a1e594d8306d2569868438ba93) Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/wic: Tweak test case to not depend on kernel sizeRichard Purdie2022-08-081-1/+1
| | | | | | | | | | The current test assumes the kernel size leaves a certain amount of whitespace in the output. Improve this constraint so a slightly larger kernel doesn't fail the test. (From OE-Core rev: bd60c44bef4a1b5d3c8fe77a9e6d3a8f43b0dea4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa devtool: Add tests to cover devtool handling of various git URL stylesThomas Roos2022-08-081-1/+33
| | | | | | | | | | | Add two test cases for git URL styles that trigger reformat_git_url. [YOCTO #11394] (From OE-Core rev: 5593439a5efbb53fc46099650ae86943751b0c4e) Signed-off-by: Thomas Roos <throos@amazon.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>