summaryrefslogtreecommitdiffstats
path: root/meta/lib
Commit message (Collapse)AuthorAgeFilesLines
* wic/selftest: test_permissions also test bitbake imageLee Chee Yang2021-02-051-0/+16
| | | | | | | | | | | | | existing test case test_permissions use Wic command as standalone tools to create wic image and check that wic image for permissions. add extra steps to the test case to also check against image build using bitbake do_image_wic. (From OE-Core rev: 551ce73a90757ba43501fe5cf9ac84a7b77de549) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/usb_hid.py : add test to check the usb/human interface device status ↵Teoh Jay Shen2021-02-031-0/+22
| | | | | | | | | | | after suspend state This test mimic the Test_if_usb_hid_device_works_well_after_resume_from_suspend_state manual test case from oeqa/manual/bsp-hw.json. (From OE-Core rev: 23a3dc370a52907ee3261746405fb9b2af9e9a11) Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Add descriptive error message to getpwuid/getgrgid "uid/gid not ↵Tomasz Dziendzielski2021-02-031-2/+4
| | | | | | | | | | | | | | | | | | | | found" KeyError If path is not owned by any user installed on target it gives insufficient error "getpwuid(): uid not found" which may be misleading. This exception occurs if uid/gid of path was not found in PSEUDO_PASSWD files, which simply means the path is owned by host user and there is host user contamination. Add more information to the exception message to make it easier for user to debug. [YOCTO #14031] (From OE-Core rev: 38540b59ed4ec8632e30a5fd6364b010d9da8470) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch.py: Ignore scissors line on applying patchTomasz Dziendzielski2021-02-031-1/+1
| | | | | | | | | | | | | The "devtool modify" could remove message body before scissors line, so patches re-generated from git tree were incorrectly modified. Adding --no-scissors to "git am" invocation to prevent this behaviour. [YOCTO #12674] (From OE-Core rev: 13ea33fbd197b9ee3cf913d9995617115f22798f) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch.py: Don't return command stderr from runcmd functionTomasz Dziendzielski2021-01-301-5/+9
| | | | | | | | | | | | | | | | | | | | | If a function returns any stderr it will be passed to extractPatches and used as path to patch. For example subprocess command output can be: | sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) | /tmp/oepatchhuqle8fj/0001-foo.patch | /tmp/oepatchhuqle8fj/0002-bar.patch that will result in: | FileNotFoundError: [Errno 2] No such file or directory: 'sh:' To fix this I separated output, made the function return stdout and print stderr only in case of command error. (From OE-Core rev: 482589e2cc7c3ddeefb0a0fb98d97a9cbb18c9ec) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve_check: add CVE_VERSION_SUFFIX to indicate suffix in versioningLee Chee Yang2021-01-302-20/+31
| | | | | | | | | | | | | | | | | | add CVE_VERSION_SUFFIX to indicate the version suffix type, currently works in two value, "alphabetical" if the version string uses single alphabetical character suffix as incremental release, blank to not consider the unidentified suffixes. This can be expand when more suffix pattern identified. refactor cve_check.Version class to use functools and add parameter to handle suffix condition. Also update testcases to cover new changes. (From OE-Core rev: 5dfd5ad5144708b474ef31eaa89a846c57be8ac0) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/ethernet_ip_connman : add test for network connectionsTeoh Jay Shen2021-01-281-0/+36
| | | | | | | | | | This test mimic the ethernet_static_ip_set_in_connman and ethernet_get_IP_in_connman_via_DHCP test case from oeqa/manual/bsp-hw.json. The ethernet_static_ip_set_in_connman and ethernet_get_IP_in_connman_via_DHCP manual test case should be remove from oeqa/manual/bsp-hw.json if this patch get merged. (From OE-Core rev: aaabc94dbe353b12297ba4a237f6817b2c6d4a31) Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/package_manager: Do not pass stderr to package manager as an argumentTomasz Dziendzielski2021-01-271-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | The cmd redirected stderr to stdout that was then assigned to variable with pkgs to install. Then this variable was passed to package manager that then tried to install it and generated confusing warnings. For example this variable could contain: | ['(en_US.UTF-8)', 'LC_ALL:', 'bash:', 'cannot', 'change', 'locale', 'setlocale:', 'warning:'] and the warning was: | WARNING: addon-bci-1.0-r0 do_populate_sdk: Unable to install packages. | Command 'PATH/usr/bin/opkg ... install (en_US.UTF-8) LC_ALL: bash: | cannot change locale setlocale: warning:' returned 255: | Collected errors: | * opkg_prepare_url_for_install: Couldn't find anything to satisfy '(en_US.UTF-8)'. In this change I remove stderr redirection to stdout and pass it to bb.note instead. (From OE-Core rev: 70d8ced3d7f53f988c02ff03d8dfa448f088fdf1) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/devtool: Add modify_localfiles_only test checking symlink pathTomasz Dziendzielski2021-01-271-0/+37
| | | | | | | | | | | | | If recipe uses only file:// fetcher devtool unpacks sources under oe-local-files/ and adds symlink in source root directory. We need to verify if the symlink in subdirectory has correct path. See [YOCTO #13738] for details. (From OE-Core rev: 044c90d152bfd1b2a23272df39327ba4cd862dff) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/package_manager: ensure repodata is wipedRoss Burton2021-01-231-0/+3
| | | | | | | | | | | | | | | When building package indexes for RPM feeds, delete repodata first to be absolutely sure that the indexes are up to date. We've seen some mysterious failures where the repodata doesn't match the repository, so hopefully this will stop that happening. [ YOCTO #14190 ] (From OE-Core rev: 88cd40c08109bf732934fa4c8d602c701c1eb2a0) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: replace Looseversion with custom version classLee Chee Yang2021-01-232-0/+85
| | | | | | | | | | | | | | | | | | | | | | | | The way distutils.version.LooseVersion compare version are tricky, it treat all these ( "1.0-beta2", "1.0-rc1", "1.0A", "1.0p2" and "1.0pre1") as greater version than "1.0". This might be right for "1.0A" and "1.0p1" but not for the rest, also these version could be confusing, the "p" in "1.0p1" can be "pre" or "patched" version or even other meaning. Replace Looseversion with custom class, it uses regex to capture common version format like "1.1.1" or tag format using date like "2020-12-12" as release section, check for following known string/tags ( beta, rc, pre, dev, alpha, preview) as pre-release section, any other trailing characters are difficult to understand/define so ignore them. Compare release section and pre-release section saperately. included selftest for the version class. [YOCTO#14127] (From OE-Core rev: 6ced85e9ddd3569240f1e8b82130d1ac0fffbc40) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/cases/tinfoil.py: increase timeout 10->60s test_wait_eventYi Fan Yu2021-01-231-2/+4
| | | | | | | | | | | | | | | The test would timeout on autobuilders. This patch increases the timeout to 60s The test will now also exit as soon as we receive the 2 expected events Expected runtime is around 1s if successful Bug 14158 (From OE-Core rev: be02aa9283f805de718badd5ea12c4968da8774f) Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: binutils-cross-x86_64 -> libgcc-initialRobert Yang2021-01-201-1/+1
| | | | | | | | | The binutils-cross-x86_64 is not avaliable for non x86-64 machines. (From OE-Core rev: 02385b180bc4a1af7120e85a9998566bfcb85977) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* runtime_test.py: correct output check for bash 5.1Alexander Kanavin2021-01-201-1/+1
| | | | | | | | | | | | | Bash 5.1 inserts escape sequences into its output (specifically disabling bracketed paste mode via \x1b[?2004l). I am not sure if somehow terminal detection isn't working correctly there, but in any case the marker is still in the output, but needs to be checked by 'in' rather than exact equivalence. (From OE-Core rev: c25a1b16cc50e51ecf040c2c1db128e1dfceddec) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/imagefeatures: adding fitImage initramfs bundle testcaseAbdellatif El Khlifi2021-01-201-0/+132
| | | | | | | | | | | | | | | | | | | | | | This commit provides a testcase for the initramfs bundle support implemented in kernel-fitimage.bbclass The testcase verifies the content of the initramfs bundle node in the FIT Image Tree Source (its). The testcase is self-contained and the configurations are set by the test case itself. To verify the initramfs bundle support, the testcase uses beaglebone-yocto machine. This testcase can be run through the following command: oe-selftest -r fitimage.FitImageTests.test_initramfs_bundle Change-Id: I8ab8abf2c150ea515fd439784eb20c6b092bfbc5 (From OE-Core rev: 1119d577756b386507f33669fe29dafb5579a1a7) Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ccache.bbclass: Use ccache-native and disable ccache for native recipesRobert Yang2021-01-201-5/+6
| | | | | | | | | | | | Since host's ccache is not reliable, so disable ccache for native recipes and use ccache-native for other types of recipes. We need disable ccache for native recipes is because ccache-native now depends on cmake-native which causes circular dependencies, and it's not easy to break the circular. (From OE-Core rev: 631bbd4896882ba2acbe5bc85bc90ab7abc794ef) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "ccache.bbclass: use ccache from host distribution"Robert Yang2021-01-201-4/+4
| | | | | | | | | | | This reverts commit f5b29367af4d8e5daea5771264774aa49519f9a8. Will use ccache-native which is more reliable. (From OE-Core rev: 1b659623430e1a6e6dd266e65bab7ca8155a7138) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/ptest: print a warning if ptests failedAlexander Kanavin2021-01-201-0/+1
| | | | | | | | | | This allows spotting ptest regressions without having hard ptest failures (for that full ptest stability should be achieved). (From OE-Core rev: 79b54d902df2788b0822b6c9cc14705ab00e6a5b) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: do not insert feed uris if apt not installedHongxu Jia2021-01-161-4/+9
| | | | | | | | | | | | | | | | | | | | | - The dir /etc/apt was created in package apt, if package apt was not installed, there is no need to insert package feed. Otherwise, it will fail with no such dir - Output the result of apt install - Explicitly trust the deb package repository from build This could avoid apt install warning: ... WARNING: The following packages cannot be authenticated! ... - Also trust the inserted deb package repository from PACKAGE_FEED_URIS (From OE-Core rev: 9ec65b77c9a4a0ba240117edee0e84208c58328e) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs: add option to allow delayed postinsts on read-only rootfsAnton Kachalov2021-01-161-0/+3
| | | | | | | | | | | | | | Example use case in OpenBMC: rootfs is squashfs and the system has either overlayfs for whole rootfs or for some parts (e.g. /etc). This option will allow to create migration one-shot postinsts using "pkg_postinst_ontarget_${PN}" routines defined in recipes to fix files under upper workdir in overlayfs. (From OE-Core rev: 0977204e16279b117811b5d5cdac5918287e95ac) Signed-off-by: Anton D. Kachalov <rnouse@google.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/utils: Return empty string in parallel_makeTomasz Dziendzielski2021-01-161-1/+1
| | | | | | | | | | | | | In cmake.bbclass we set CMAKE_BUILD_PARALLEL_LEVEL using parallel_make function and if PARALLEL_MAKE is set to empty string then this variable is exported as "None" causing cmake to fail with: "'CMAKE_BUILD_PARALLEL_LEVEL' environment variable invalid number 'None' given." (From OE-Core rev: 2f790ded554a52ac18d1c28002142f9c62abec8b) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs_ipk: allow do_populate_sdk in parallel to do_rootfsMichael Ho2021-01-131-0/+6
| | | | | | | | | | | | | | | Switch do_populate_sdk for the ipk package manager to use a separate target opkg config file and separate the lockfiles restricting do_rootfs and do_populate_sdk from running in parallel. This way if an image recipe includes a dependency to do_populate_sdk by default then it will run in parallel to do_rootfs saving time compared to the sequential execution. (From OE-Core rev: 8c210407d07483075a70c8b97ad52b5eae062c9c) Signed-off-by: Michael Ho <Michael.Ho@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest: Add argument to keep build dirPaul Barker2021-01-081-4/+13
| | | | | | | | | | | | | The oe-selftest code already keeps the selftest build directory in place if any tests failed. By default the build directory is deleted if all tests pass but there may be cases where it's desirable to keep this directory around, for example to compare intermediate files between passing and failing test runs. (From OE-Core rev: 67aa7069dbe8f5f5f186eb67708ece5c4bd42976) Signed-off-by: Paul Barker <pbarker@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-pkgdata-util: Added a test to verify oe-pkgdata-util without parametersMilan Shah2021-01-051-0/+6
| | | | | | | | | | | | | A test is implemented on poky/meta/lib/oeqa/selftest/pkgdata.py to test the scenario when oe-pkgdata-util is executed without parameters and help is displayed. See [YOCTO #10726] for detailed bug information. (From OE-Core rev: 6b4e2eafa6eb71ca94ccc8a18d05b473b352367c) Signed-off-by: Milan Shah <mshah@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/suspend : add test for suspend stateTeoh Jay Shen2020-12-311-0/+33
| | | | | | | | | This test case is checking the command and LAN device behaviour before and after suspend state. The Test_if_LAN_device_works_well_after_resume_from_suspend_state and standby manual test cases from oeqa/manual/bsp-hw can be replace by this runtime test. (From OE-Core rev: 10728035a606483ea67f6cb8ba5779558856593a) Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ccache.bbclass: use ccache from host distributionAlexander Kanavin2020-12-311-4/+4
| | | | | | | | | | | | | | | ccache 4.x has hard dependencies on cmake-native (used as build system) and zstd, which means inserting ccache-native as DEPENDS into everything creates circular dependencies which are impossible to break. ccache 3.x did not have this problem as it used plain makefiles and an in-tree copy of zlib. (From OE-Core rev: f5b29367af4d8e5daea5771264774aa49519f9a8) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/reproducible: Add useradd-staticids to reproducible builds testsRichard Purdie2020-12-301-0/+4
| | | | | | | | | Its surprising we've made it this far without this, add in some specific uid/gid settings to ensure these don't cause false positives to the tests. (From OE-Core rev: 77397bace64dfd03e704400fea918d93f00d0bf7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest-chown: add test for fifosTrevor Woerner2020-12-301-1/+2
| | | | | | | | | Verify that fifos are properly handled by the build system. (From OE-Core rev: 53988b6389ce618d4cff52bd09ae91108beca354) Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/cases/devtool.py: fix typo in ignore_patterns callSteve Sakoman2020-12-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Causes intermittent autobuilder errors: 2020-12-21 19:34:23,035 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/selftest/cases/devtool.py", line 68, in setUpModule bb.utils.edit_bblayers_conf(bblayers_conf, None, None, bblayers_edit_cb) File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1460, in edit_bblayers_conf (updated, newlines) = edit_metadata(newlines, ['BBLAYERS'], handle_bblayers) File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1290, in edit_metadata if handle_var_end(): File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1215, in handle_var_end (newvalue, newop, indent, minbreak) = varfunc(in_var, full_value, op, newlines) File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/utils.py", line 1425, in handle_bblayers res = edit_cb(layer, canonicalise_path(layer)) File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/selftest/cases/devtool.py", line 60, in bblayers_edit_cb shutil.copytree(pth, destdir, ignore=ignore_patterns('*.pyc', '__pycache__')) NameError: name 'ignore_patterns' is not defined (From OE-Core rev: c2d9612279fce9cbcb738913b2042949f692c4a5) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/terminal : improve the test caseTeoh Jay Shen2020-12-211-2/+5
| | | | | | | | | | | -Improve this test case to fulfill the requirements of replacing the click_terminal_icon_on_X_desktop manual test case from oeqa/manual/bsp-hw : 1) verify that the terminal window is working without problem 2) verify that there's only 1 terminal window is launched (From OE-Core rev: 824713174fae0617240a236d1bbfd2929bf4b24f) Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/commands: Ensure sync can be found regardless of PATHRichard Purdie2020-12-211-0/+3
| | | | | | | | | Avoid command not found errors shown in selftest logs due to changes to PATH settings which also risks intermittent problems due to IO load. (From OE-Core rev: 40bcae01b0be2f293dea9ab42c6b7f8f47827cf5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/qa: handle the 'no specific instruction set' ELF e_machine valueRoss Burton2020-12-202-1/+2
| | | | | | | | [RP: Update OEQA selftest to match change] (From OE-Core rev: b7cfc0f51cc0b4866f913f6eae4fcc6f72d2578c) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: fitimage: add test for signing FIT imagesPaul Eggleton2020-12-201-0/+146
| | | | | | | | | | | Add a new test to verify signing FIT images. Also includes testing for the newly introduced FIT_SIGN_INDIVIDUAL, UBOOT_MKIMAGE, UBOOT_MKIMAGE_SIGN, and UBOOT_MKIMAGE_SIGN_ARGS variables. (From OE-Core rev: 3c054762278fd8c5dd827dbac15f4fa066e6c19e) Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: fitimage: Test for FIT_DESCPaul Eggleton2020-12-201-1/+4
| | | | | | | | | Add verification of FIT_DESC to the existing test for kernel-fitimage. (From OE-Core rev: 1d75a67efe968f1d9161b64e2b7b2d3cf482c968) Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: move FIT image tests to their own modulePaul Eggleton2020-12-202-74/+84
| | | | | | | | | | | I'm about to add an additional test, and on the assumption that we might also add more in future it seems reasonable to have the tests in their own module. (From OE-Core rev: 89f620cc142df9b4af6d49a13db96452ec838139) Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf: Prevent pyc file generation in pseudo contextPaul Barker2020-12-201-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | This also effectively reverts commit b6d30c21b0: bitbake.conf: Extend PSEUDO_IGNORE_PATHS to ${COREBASE}/meta The contents of ${COREBASE}/meta were ignored as pyc files could be generated for the contents of the lib subdirectory if python modules were imported within a pseudo context. However this doesn't protect us from pyc files being generated in the lib directories for other layers. It's far better to tell python not to produce pyc files when running under pseudo (by setting the PYTHONDONTWRITEBYTECODE variable) as this will cover any location where pyc files could possibly be created. This variable is set in FAKEROOTBASEENV so that it applies to the bitbake-worker instance for fakeroot tasks, preventing pyc files from being generated for imports in python tasks themselves. Also add a test case to ensure that pyc files are not created in tasks which are executed under pseudo. (From OE-Core rev: 73d538f20743017a44cea4c20dbe09a0327cfc71) Signed-off-by: Paul Barker <pbarker@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/path: Add canonicalize()Peter Kjellerstedt2020-12-201-0/+21
| | | | | | | | | | | | oe.path.canonicalize() is used to canonicalize paths (i.e., remove symbolic links and "..", and make them absolute). It takes a string with paths separated by commas, and returns the canonicalized path in the same format. (From OE-Core rev: 282b19c0e27488ec119f00fb2542ffdc1af54e2a) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Introduce empty plugin to create unformatted empty partitionsDiego Sueiro2020-12-151-0/+20
| | | | | | | | | | | | | | | | | | The empty wic plugin is used to create unformatted empty partitions for wic images. To use it you must pass "empty" as argument for the "--source" parameter in the wks file. For example: part foo --source empty --ondisk sda --size="1024" --align 1024 Also adds a selftest for this plugin where the 'Fstype' column from 'wic ls' should be empty for the second partition as listed in test_empty_plugin.wks. (From OE-Core rev: 77d174fc80663403ef76c5b808aafc1117d3545c) Signed-off-by: Diego Sueiro <diego.sueiro@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/reproducible: add an exclusion list for items that are not yet ↵Alexander Kanavin2020-12-151-3/+79
| | | | | | | | | | | | | | | reproducible Hopefully over time this list will be reduced to an empty one. Non-reproducible excluded packages are not given to diffoscope and do not cause a failure, but still saved side-by-side with non-reproducible failing ones to make investigation easier. (From OE-Core rev: 406bd0d48d8f90e2c836f7d3e204f21d5f13c833) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/reproducible: enable world reproducibility testAlexander Kanavin2020-12-151-1/+3
| | | | | | | | | | Add systemd and pam distro features, and commercial license flag to include more recipes into the world set. (From OE-Core rev: ed8f94942c07784f9f6eef5c00b75aa9b398ea5e) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib/oe/reproducible.py: gitsm:// works just as fine as git:// for ↵Alexander Kanavin2020-12-091-1/+1
| | | | | | | | | | | | timestamps This in particular addresses vulkan-samples reproducibility which made me scratch my head for a while. (From OE-Core rev: 4a2936126f12eeacecced051fa339c32c1f16576) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib/oeqa/manual/oe-core.json: Update test_bitbake_devshellsangeeta jain2020-12-061-1/+1
| | | | | | | | | | Update command used for cross compilation to include ${CONFIGUREOPTS} to ensure right arguments are passed for cross compiling on any host. (From OE-Core rev: e995e67bc7a3d30adf9f8d0d2f4df92a941baeae) Signed-off-by: sangeeta jain <sangeeta.jain@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/containerimage: update for improved cleanupRoss Burton2020-12-061-5/+1
| | | | | | | | | | ldconfig/aux-cache isn't generated anymore, and the opkg directories are correctly removed now. (From OE-Core rev: 5bfe5dfeb0603f748e95378be150fc02d021666f) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/ipk: improve remove_packaging_dataRoss Burton2020-12-061-2/+2
| | | | | | | | | | /var/cache/opkg wasn't being deleted, and /var/lib/opkg doesn't need to exist as there are no lockfiles that write into it after this step. (From OE-Core rev: 2209cef2cbe5fbdd5562f13f84ae2a3935f4fb61) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/ipk: neaten OPKGLIBDIR logicRoss Burton2020-12-031-6/+1
| | | | | | | | | oe.path.join handles path components starting with / for us. (From OE-Core rev: ff003e076511fdbe9a6e775e987726dae43e2003) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/devtool: use Yocto mirror for pv-1.5.3 tarballRoss Burton2020-12-031-1/+1
| | | | | | | | | | | Some of the selftests failed over the weekend with "access denied" errors fetching this tarball. Instead of relying on upstream when fetching the tarball, use the Yocto source mirrors instead. (From OE-Core rev: 988e0ff4131f46dfed14516ff5f61d72b9fb6941) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Don't use single sstate for pseudo-nativeRichard Purdie2020-11-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pseudo-native is a bit special. It conditionally compiles in support for xattr, statx and statvfs amongst other options. If a pseudo-native binary is used on a system where these functions are present but it wasn't compiled in we see hard to debug permissions problems. An example is the devtool.DevtoolExtractTests.test_devtool_deploy_target oe-selftest which shows a cryptic error: File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/meta/lib/oeqa/selftest/cases/devtool.py", line 1388, in test_devtool_deploy_target self.assertEqual(filelist1, filelist2) File "/usr/lib64/python3.9/unittest/case.py", line 831, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib64/python3.9/unittest/case.py", line 1037, in assertListEqual self.assertSequenceEqual(list1, list2, msg, seq_type=list) File "/usr/lib64/python3.9/unittest/case.py", line 1019, in assertSequenceEqual self.fail(msg) File "/usr/lib64/python3.9/unittest/case.py", line 670, in fail raise self.failureException(msg) AssertionError: Lists differ: ['-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8'] != ['-rwxr-xr-x root root /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8'] First differing element 0: '-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor' '-rwxr-xr-x root root /etc/init.d/mdmonitor' This is due to a version of pseudo without statx being used on a system where ls uses statx, hence the files are displayed as 6000.6000 instead of root.root. Avoid this by always building pseudo-native for the specific distro in question rather than using a universal sstate feed. This hopefully fixes one of the mysterious AB-INT issues. (From OE-Core rev: 6e3785a3f1f3cf68f5fe101cd6bebe91db165973) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package management: Allow dynamic loading of PMFredrik Gustafsson2020-11-2415-93/+55
| | | | | | | | | | | | | | | | | | | | | Dynamic loading of package managers will allow other layers to simply add their package manager code in package_manager/ and have bitbake find it according to the package manager configuration. This is useful for adding new (faster) package managers to Open Embedded while not increasing the test scope or require Open Embedded to support more package managers. How this is tested: * Build core-image-minimal with all three package managers * Build the sdk with all three package managers. dpkg fails, but it fails on master as well. * Run the complete test suite, all tests passed except 16 * Run those 16 tests on master and verify that they fail there as well * Fix errors making tests works on master but not with this patch. (From OE-Core rev: 02670501dea192879ddf9f8048eea57a94719fc1) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/commands: Fix compatibility with python 3.9Richard Purdie2020-11-241-2/+2
| | | | | | | | Python 3.9 dropped isAlive() so use the preferred is_alive(). (From OE-Core rev: 9bb06428cbb2ac0f3d98a1696f050d3393385503) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cases/bbtests.py: ensure PACKAGE_CLASSES is set to RPM for ↵Chris Laplante2020-11-241-0/+1
| | | | | | | | | | | | bbtests.BitbakeTests.test_force_task_1 This is because the test expects to find "do_package_write_rpm" in the bitbake output. (From OE-Core rev: fbc75aa226e33c5ef5d3696b1c9c0f6652f23a98) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>