summaryrefslogtreecommitdiffstats
path: root/meta/lib
Commit message (Collapse)AuthorAgeFilesLines
* oeqa/selftest: fix test_incremental_image_generation for changes in log outputYi Zhao2014-12-311-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | test_incremental_image_generation case failed because the log output chanaged: FAIL: test_incremental_image_generation (oeqa.selftest.buildoptions.ImageOptionsTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/buildarea3/yzhao1/poky-build/meta/lib/oeqa/utils/decorators.py", line 90, in wrapped_f return func(*args) File "/buildarea3/yzhao1/poky-build/meta/lib/oeqa/selftest/buildoptions.py", line 25, in test_incremental_image_generation self.assertEqual(0, res.status, msg="No match for openssh-sshd in log.do_rootfs") AssertionError: 0 != 1 : No match for openssh-sshd in log.do_rootfs ---------------------------------------------------------------------- Using re search instead grep (From OE-Core rev: 1872a9430cec0c61f1ec349df198160addd430de) Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/parselogs: Add harmless failure warning introduced by new qemu version ↵Richard Purdie2014-12-311-0/+1
| | | | | | | | on qemuppc (From OE-Core rev: d9f49e0e6b377c402e01de631edca73bb6537ab9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: fix test_force_task so it doesn't taint the entire buildPaul Eggleton2014-12-251-0/+1
| | | | | | | | | | | | | Using -C sets a taint on the specified task, and m4-native is in the dependency chain for just about everything, which means that everything gets forced to rebuild. We don't need the influence of this test to extend outside of the test itself, so ensure that the taint gets cleared at the end of the test. (From OE-Core rev: 24b41a1e3f2496e38a6ae9c47dfe85887f3d7d6e) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: populate pkgdata/shlibs in test_recipetool_create_gitPaul Eggleton2014-12-251-0/+2
| | | | | | | | | | Build some recipes so that we have the needed data in the sysroot for recipetool to refer to when scanning for dependencies. (From OE-Core rev: 67bf1dac68d76c7e6a4d95e5bdd1eba468331f01) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: improve failure messages for devtool testsPaul Eggleton2014-12-251-10/+10
| | | | | | | | | | | assertTrue prints "False is not True" if it fails, which is pretty much useless. Use a more appropriate assertion test where practical and add a message where it isn't. (From OE-Core rev: 0e0dd2575bb2a1b6f6c5eba1f8cfb0d81cc1b091) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: skip test_incremental_image_generation if not using rpmPaul Eggleton2014-12-251-0/+3
| | | | | | | | | | We have just implemented incremental ipk image generation, but at the moment this test doesn't support that, so skip it if not using rpm. (From OE-Core rev: e920c1a62705524be71dc5f9e4527b396ca83dca) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: fix test_event_handler for changes in bitbake outputPaul Eggleton2014-12-251-1/+1
| | | | | | | (From OE-Core rev: 3b3c6aa09301c0c19e7fc8720cd3d1b036c5b103) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils: fix testcase decorator to allow calling tests individuallyPaul Eggleton2014-12-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, running tests individually failed with a traceback: $ oe-selftest --run-test buildoptions.ImageOptionsTests.test_incremental_image_generation 2014-12-23 14:40:37,636 - selftest - INFO - Checking that everything is in order before running the tests 2014-12-23 14:40:38,408 - selftest - INFO - Running bitbake -p 2014-12-23 14:40:40,235 - selftest - INFO - Loading tests from: oeqa.selftest.buildoptions.ImageOptionsTests.test_incremental_image_generation Traceback (most recent call last): File "/home/user/poky/scripts/oe-selftest", line 179, in <module> ret = main() File "/home/user/poky/scripts/oe-selftest", line 164, in main suite.addTests(loader.loadTestsFromName(test)) File "/usr/lib64/python2.7/unittest/loader.py", line 91, in loadTestsFromName module = __import__('.'.join(parts_copy)) File "/home/user/poky/meta/lib/oeqa/selftest/buildoptions.py", line 12, in <module> class ImageOptionsTests(oeSelfTest): File "/home/user/poky/meta/lib/oeqa/selftest/buildoptions.py", line 14, in ImageOptionsTests @testcase(761) NameError: global name 'func' is not defined (From OE-Core rev: 8e3fbb0bb2c0eabfb39752c25e7c3f5d77881f64) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils: replace some tabs with spacesPaul Eggleton2014-12-252-47/+47
| | | | | | | | | Python code should use spaces only for indentation. (From OE-Core rev: a1e22121e521aabf454a850cd7c8be60b7b1adc3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/image.py: Handle compressed IMAGE_TYPEDEP valuesOtavio Salvador2014-12-251-2/+16
| | | | | | | | | | | | When computing the dependency graph for the image generation, we need to take into account the compression type and identify the base type it relates to. This allow for a more robust graph generation even when using composed image types. (From OE-Core rev: 6e7d1de6cc99ed2def346dc40310573f5f0ce5ca) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: add QA testsPaul Eggleton2014-12-231-0/+239
| | | | | | | | | | | Add some QA tests for devtool (and recipetool). These aren't comprehensive but at least they are a start, and have already helped me catch and fix a number of regressions. (From OE-Core rev: 79486a8aea7af138535e139e696fbdbd5d57581b) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils: make get_bb_var() more reliablePaul Eggleton2014-12-231-2/+2
| | | | | | | | | | * Enable querying exported variables * Use strip() to remove quotes so any internal quotes are not disturbed (From OE-Core rev: 418cdf1ca37e06165ebaec86a0098d4750208539) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe: add recipeutils modulePaul Eggleton2014-12-211-0/+279
| | | | | | | | | | | | | | Add a module to help provide utility functions for dealing with recipes. This would typically be used by external tools. Substantial portions of this module were borrowed from the OE Layer index code; other functions originally contributed by Markus Lehtonen <markus.lehtonen@intel.com>. (From OE-Core rev: fd970c3b42b39601f379300d83354d42d5a536ba) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch: add support for extracting patches from git treePaul Eggleton2014-12-211-30/+82
| | | | | | | | | | | | When patches from a recipe have been written out to a git tree, we also want to be able to do the reverse so we can update the patches next to the recipe. This is implemented by adding a comment to each commit message (using git hooks) which we can extract later on. (From OE-Core rev: 765b7bad50eae5b79d13a3f4988dc440c3d9787f) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch.py: abort "git am" if it failsPaul Eggleton2014-12-211-0/+6
| | | | | | | | | | If we don't do this, you may still be in the git am resolution mode at the end of applying patches, which is not desirable. (From OE-Core rev: 630a393d01950a0d00b5d30ac376472911e50ff9) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch: use --keep-cr with git amPaul Eggleton2014-12-211-1/+1
| | | | | | | | | Preserving carriage returns is important where the patch contains them. (From OE-Core rev: 1cfcae0cd0bc776f5bb91a75bb8ffdad3d7bf200) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch: auto-commit when falling back from git amPaul Eggleton2014-12-211-0/+86
| | | | | | | | | | | | | | When PATCHTOOL = "git", if we're not able to use "git am" to apply a patch and fall back to "git apply" or "patch", it is desirable to actually commit the changes, attempting to preserve (and interpret) the patch header as part of the commit message if present. As a bonus, the code for extracting the commit message is callable externally in case it is useful elsewhere. (From OE-Core rev: 8c522846093809a8deb866079e73fa317266c80e) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch: fall back to patch if git apply failsPaul Eggleton2014-12-211-1/+5
| | | | | | | | | | | When PATCHTOOL = "git", git apply doesn't support fuzzy application, so if a patch requires that it's better to be able to apply it rather than just failing. (From OE-Core rev: a8143f33d3104adcd10968e3b05df2024e723f5a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: move read_shlib_providers() to a common unitPaul Eggleton2014-12-211-0/+26
| | | | | | | | | This allows us to use this function elsewhere in the code. (From OE-Core rev: 657cff8a0f0e5db171b2ed9388a790ee0b135842) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py: fix arguments to string formatRoss Burton2014-12-051-3/+3
| | | | | | | | | | | Multiple arguments to string formats need to be in a tuple. Reported by Lorenz <lqb.list@gmail.com>. (From OE-Core rev: e30a4650beabac215b6d867070b7acdb3601a4d7) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py: check the result of create_indexHongxu Jia2014-12-031-4/+16
| | | | | | | | | | | | | | | | | | While invoking create_index failed, there was no error output and didn't break the build until the package installation. ... |ERROR: run-postinsts not found in the base feeds (qemux86 i586 x86 noarch any all). ... The reason is we used multiprocessing to execute create_index, and did not check its invoking result. (From OE-Core rev: d8921e4ea68647dfcf02ae046c9e09bf59f3e6e4) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime: Added some new filters for the log parser Including custom ↵Lucian Musat2014-11-251-7/+29
| | | | | | | | | | filters for edgerouter, minnow and jasperforest. (From OE-Core rev: 20310e68a2930dd1ddc6d0d9fc577fffa5a2777f) Signed-off-by: Lucian Musat <george.l.musat@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classextend: Do not extend for that already have multilib prefixJackie Huang2014-11-121-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a BSP supports two or more multilibs, for example: MULTILIBS = "multilib:lib32 multilib:lib64" and a variable is already extended to include multilib variants, for example in populate_sdk_base: commit 396371588c7fd2d691ca9c39cd02287e43cb665b Author: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Thu Jul 24 22:09:09 2014 +0100 populate_sdk_base: Extend TOOLCHAIN_TARGET_TASK to include multilib variants Most people expect the toolchain from a multilib build to contain multilib components. This change makes that happen and is easy for users to override should they want something different. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> The mapping clsextend.map_depends_variable("TOOLCHAIN_TARGET_TASK") ends up with a wrong double extended package name like: lib32-lib64-packagegroup-core-standalone-sdk-target This patch avoid such issues. (From OE-Core rev: c4e9b2aa894d59fe951038b3b73795b6891df70a) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager: DpkgPM fix populate_sdkAníbal Limón2014-11-091-1/+1
| | | | | | | | | | | | | | DpkgPM change all_arch_list variable set from PACKAGE_ARCHS to passed archs variable because is different when is executed from rootfs.py and sdk.py. Credits to: Ricardo Ribalda <ricardo.ribalda@gmail.com> (From OE-Core rev: f6fb8c16f49fd9a2b124ad55f5c4fed82d7e6dca) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-buildinfo.bbclass: new class, writes build information to imageAlejandro Hernandez2014-11-091-0/+4
| | | | | | | | | | | | | | | | Writes build information to target filesystem on /etc/build such as enabled layers, their current status and commit. squashspaces was moved to oe/utils.py to make it available to different classes and avoid code duplication. [YOCTO #6770] (From OE-Core rev: c9cc652e88ddedddf8a2f23fb9b8c024616526d7) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: tweak inner warn message catchingHongxu Jia2014-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | The fix filters out irrelevant messages, and makes the catching more accurate, the inner warn message in do_rootfs usually comes from the output of complementary install, and pattern the format to catch it. Here is the example of irrelevant messages: ... |WARNING: log_check: There is a warn message in the logfile |WARNING: log_check: Matched keyword: [warn] |WARNING: log_check: `tmp/deploy/rpm/core2_64/pam-plugin-warn -1.1.6-r5.0.core2_64.rpm' -> `tmp/work/intel_x86_64-wrs-linux/ wrlinux-image-installer/1.0-r0/rootfs/Packages.intel/./core2_64/ pam-plugin-warn-1.1.6-r5.0.core2_64.rpm' ... (From OE-Core rev: 4ceb3b5f928af7f631294c83b83e3a3c89cbf890) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager: Fix BAD_RECOMMENDATIONS for opkgPaul Barker2014-11-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In package_manager.py, when using opkg as the packager, the command 'opkg <args> info <pkg>' is called to get information about each pkg in BAD_RECOMMENDATIONS in a format that can be written to the status file. The 'Status: ...' line is modified and all other lines are passed through. Changing the verbosity level argument for this command will change what it written into the status file. Crucially, with the default verbosity level, no blank lines are being printed by the opkg command and so no blank lines are being written to the status file to separate each package entry. The package parsing code in opkg expects package entries in the status file to be separated by at least one blank line. If no blank line is seen, the next package entry is interpreted as a continuation of the last package entry, but the new values overwrite the old values. So with the default verbosity level, a blank line follows some package entries and these are parsed. The others are dropped due to the lack of blank lines. As the verbosity increases, more debugging messages add blank lines and more packages are parsed. The solution to ensure that this works correctly regardless of the verbosity level is simply add a blank line after the output of 'opkg info' is written to the status file, ensuring that the next package is separated from the current package. [YOCTO #6816] (From OE-Core rev: 3fa24eee41c26fecd5e4f680082288ec772d2de9) Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Cc: Chris Carr <chris.carr@ge.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* multilib.bbclass/package_manager.py: fix <multilib>-meta-toolchain build failureHongxu Jia2014-11-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a failure to build lib32-meta-toolchain: ... |ERROR: lib32-packagegroup-core-standalone-sdk-target not found in the base feeds (qemux86_64 x86 noarch any all). ... In package_manager.py, the variable 'DEFAULTTUNE_virtclass-multilib-lib32' is used to process multilib image/toolchain. But for the build of lib32- meta-toolchain, the value of 'DEFAULTTUNE_virtclass-multilib-lib32' is deleted. In 'bitbake lib32-meta-toolchain -e', we got: ... |# $DEFAULTTUNE_virtclass-multilib-lib32 [2 operations] |# set? /home/jiahongxu/yocto/build-20141010-yocto/conf/local.conf:237 |# "x86" |# del data_smart.py:406 [finalize] |# "" |# pre-expansion value: |# "None" ... The commit 899d45b90061eb3cf3e71029072eee42cd80930c in oe-core deleted it at DataSmart.finalize ... Author: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Tue May 31 23:52:50 2011 +0100 bitbake/data_smart: Change overrides behaviour to remove expanded variables from the datastore ... We add an internal variable 'DEFAULTTUNE_ML_<multilib>', assign it with the value of 'DEFAULTTUNE_virtclass-multilib-lib32' before deleting. For rpm backend in package_manager.py, we use DEFAULTTUNE_virtclass-multilib -lib32 first, if it is not available, and try to use DEFAULTTUNE_ML_<multilib> [YOCTO #6842] (From OE-Core rev: 9c59d3d8b538d3a98ff4b5e5b189a4a23a85da2d) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.py: Fix error in graph sortingPascal Bach2014-10-301-1/+1
| | | | | | | | | | | | | The graph sorting algorithm for image dependencies does a look for an occurrence of a searched string instead of comparing the chunk to the searched string. This leads to the problem that ubifs is recognized as ubi aswell. This fixes this by splitting up the string into chunks. (From OE-Core rev: cec9725c540c2d54c27092e40d159694cea75b5f) Signed-off-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python-smartpm: Add checking for "rpm-ignoresize" optionChong Lu2014-10-241-0/+1
| | | | | | | | | | | | | | | | | The do_rootfs takes a very long time when build host has mounted many NFS devices. syscall lstat() was being called on every filesystem mounted on the build host during building. The reason for the lstat() is that rpm is verifying that enough free disk space is available to do the install. However, since the install is into the target rootfs it should not matter how much free space there is in the host mounts. Add checking for "rpm-ignoresize", by it, smart can make whether RPM skip checking for diskspace when install a rpm package. (From OE-Core rev: fc0668a019eca422540ceab3efcd2b2a27dd79e0) Signed-off-by: Chong Lu <Chong.Lu@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk.py: fix write target sdk manifest failed based on ipkHongxu Jia2014-10-101-1/+1
| | | | | | | | | | | | | | | | | bitbake meta-toolchain ls tmp/deploy/sdk/poky-glibc-x86_64-meta-toolchain-i586-toolchain-1.7.manifest -al ... |-rw-rw-r-- 1 root root 0 Oct 10 15:05 tmp/deploy/sdk/poky-glibc-x86_64- meta-toolchain-i586-toolchain-1.7.manifest ... The manifest is empty, the reason is target's ipk config path is d.getVar('IPKGCONF_TARGET') rather than d.getVar('IPKGCONF_Target') (From OE-Core rev: 81b3cc448f040dcb4c2f2b05983231ac53270663) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/dmesg: Whitelist usbhid failuresRichard Purdie2014-10-021-1/+1
| | | | | | | | | We fixed these in parselog but not here. This test really can just be deleted now really. (From OE-Core rev: c598dbdbaebf95cc26e95138b4c3fcb15af67a88) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/parselogs: Ignore qemu usbhid errorsRichard Purdie2014-10-021-1/+3
| | | | | | | | These are harmless from the USB pointer device we install, ignore them. (From OE-Core rev: f5bdf41e78ff378fe23d8ba1543917bc64def62f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb_packaging: Added support for multilibAnibal Limon2014-09-301-9/+26
| | | | | | | | | | | | | | | The Package Manager implementation for deb didn't take a look about multilib enabled variants. Changes are made for generate apt.conf, sources.list and debian repo index Release and Packages files. [YOCTO #1502] (From OE-Core rev: b5fb879b351cc23977f3e441f758101551297566) Signed-off-by: Anibal Limon <anibal.ezau.limon.belmares@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: catch inner warn messageHongxu Jia2014-09-301-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | Package managements (smart/apt-get/opkg-cl) generate some warn messages to stdout, and we need to catch them and output by bb.warn. Here is an example, while invoking smart to attempt install doc packages, if install failed, it generates warn message to stdout. ... |warning: Can't install util-linux-doc-2.24.2-r1@i586: Can't install util-linux-doc-2.24.2-r1@i586: no package provides info ... The fix catches it and outputs: ... |WARNING: log_check: There is a warn message in the logfile |WARNING: log_check: Matched keyword: [warn] |WARNING: log_check: warning: Can't install util-linux-doc-2.24.2-r1@ i586: Can't install util-linux-doc-2.24.2-r1@i586: no package provides info ... (From OE-Core rev: f8d725f49f2be4b854f523a5ee3a5c4357e67e30) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils: Added filter to LogResults decorator to enforce custom log level.Lucian Musat2014-09-291-0/+6
| | | | | | | | (From OE-Core rev: 65c97d4abd26f38917cd89b5f50f7299221b2123) Signed-off-by: Lucian Musat <georgex.l.musat@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: Added decorators to buildoptions.pyLucian Musat2014-09-221-0/+9
| | | | | | | (From OE-Core rev: ea393e90055ea13b0c5a6950dbd388e826a66623) Signed-off-by: Lucian Musat <georgex.l.musat@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: fix overrides behaviour to remove SIGGEN_LOCKEDSIGS_i586Hongxu Jia2014-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Require a sig file which SIGGEN_LOCKEDSIGS_i586 is not null, but the actual SIGGEN_LOCKEDSIGS_i586 is null. Invoking 'bitbake -e' and we got: ... 3935 # $SIGGEN_LOCKEDSIGS_i586 [2 operations] 3936 # set /path/to/locked-sigs.inc:8576 3938 # del data_smart.py:406 [finalize] 3939 # "" ... It was caused by the following commit: ... (Bitbake rev: 899d45b90061eb3cf3e71029072eee42cd80930c) Author: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Tue May 31 23:52:50 2011 +0100 bitbake/data_smart: Change overrides behaviour to remove expanded variables from the datastore ... We add prefix 't-' to type to workaround the overrides behaviour. (From OE-Core rev: f6a39cc957bf85ff43513f0b76afc3b2c9c906b6) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig.py: Replace '_'s with '-'s in SSTATE_LOCKEDSIGS* names.Randy Witt2014-09-171-0/+1
| | | | | | | | | | | | | | | | Using underscores in the "types" parts of the variable names can cause unexpected issues with overrides. For example, if you have both SSTATE_LOCKEDSIGS_x86_64 and SSTATE_LOCKEDSIGS_x86_64_i586, and i586 is in OVERRIDES, then you lose all of the contents in SSTATE_LOCKEDSIGS_x86_64 and thus don't get some of the locked sstate. Using '-'s in the variable names instead, eliminates these issues. (From OE-Core rev: 6662c412a949a9f6b602c848e6303b19db7e5272) (From OE-Core rev: 65f558a6f762fb13224091dc22903b58eeb9b392) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Improve the support for locked down sstate cache usageHongxu Jia2014-09-171-16/+27
| | | | | | | | | | | | | | | | | | | | | Add code in the sstate hash validation code to ensure it really did install these from sstate since if it didn't should to warn/abort the build. The judgment condition is: 1) If a build is replaced by locked sstate-cache, it will triger a warn/error; 2) If objects are not used from the locked cache, it will triger a warn/error; 3) Use SIGGEN_LOCKEDSIGS_CHECK_LEVEL variable controls whether this is just a warning or a fatal error or nothing to report. [YOCTO #6639] (From OE-Core rev: 305912dce61c4fed0cbf631aa98a9e6f29db88e4) (From OE-Core rev: 1683815695f39d4bad352348913f927ac8a1bcf5) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Improve to handle locking of multiple machinesRichard Purdie2014-09-171-13/+28
| | | | | | | | | | | | | | | | | Instead of a single monolithic SIGGEN_LOCKEDSIGS, split this into separate variables, one per sstate package architecture. Add in a new SIGGEN_LOCKEDSIGS_TYPES variable which lists the package architectures to load in. SIGGEN_LOCKEDSIGS_TYPES is made machine specific using overrides. Also sort the hashes in the lists by PN to make diffing them easier. (From OE-Core rev: d8b0ce35981931a39e7db9d8e78de6e009b34688) (From OE-Core rev: b42f305ce38b9e0f1a2b7cb9586bbabcd2d27429) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig/sstate: Add support for locked down sstate cache usageRichard Purdie2014-09-171-0/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've been giving things some thought, specifically why sstate doesn't get used more and why we have people requesting external toolchains. I'm guessing the issue is that people don't like how often sstate can change and the lack of an easy way to lock it down. Locking it down is actually quite easy so patch implements some basics of how you can do this (for example to a specific toolchain). With an addition like this to local.conf (or wherever): SIGGEN_LOCKEDSIGS = "\ gcc-cross:do_populate_sysroot:a8d91b35b98e1494957a2ddaf4598956 \ eglibc:do_populate_sysroot:13e8c68553dc61f9d67564f13b9b2d67 \ eglibc:do_packagedata:bfca0db1782c719d373f8636282596ee \ gcc-cross:do_packagedata:4b601ff4f67601395ee49c46701122f6 \ " the code at the end of the email will force the hashes to those values for the recipes mentioned. The system would then find and use those specific objects from the sstate cache instead of trying to build anything. Obviously this is a little simplistic, you might need to put an override against this to only apply those revisions for a specific architecture for example. You'd also probably want to put code in the sstate hash validation code to ensure it really did install these from sstate since if it didn't you'd want to abort the build. This patch also implements support to add to bitbake -S which dumps the locked sstate checksums for each task into a ready prepared include file locked-sigs.inc (currently placed into cwd). There is a function, bb.parse.siggen.dump_lockedsigs() which can be called to trigger the same functionality from task space. A warning is added to sstate.bbclass through a call back into the siggen class to warn if objects are not used from the locked cache. The SIGGEN_ENFORCE_LOCKEDSIGS variable controls whether this is just a warning or a fatal error. A script is provided to generate sstate directory from a locked-sigs file. (From OE-Core rev: 7e14784f2493a19c6bfe3ec3f05a5cf9797a2f22) (From OE-Core rev: 884d4fa3e77cf32836f14a113c11489076f4a84d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime: Automatic test for ptestLucian Musat2014-09-101-0/+124
| | | | | | | | | | | For images without ptest the packages are automatically installed alongside ptest-runner. Log results are saved in ./results folder. No cleanup is done for packages after the test is finished. (From OE-Core rev: f8e99fa8baa020c6414da19428b73c1fd30c9523) Signed-off-by: Lucian Musat <georgex.l.musat@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils/logparser.py: results based log parser utilityLucian Musat2014-09-101-0/+125
| | | | | | | | | | | | | A module for parsing results based logs like ptest, compliance and performance. Supports breaking the logs into multiple sections and also provides a result object to use the parser with. The parser is initialized with the regex required to identify results and section statements in the target log file. (From OE-Core rev: 72308d030fc98982e88b121b052cd2438f6b031c) Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com> Signed-off-by: Lucian Musat <georgex.l.musat@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: Added package installer to oetest to aid in future automatic install ↵Lucian Musat2014-09-101-0/+7
| | | | | | | | | | of packages (From OE-Core rev: e0af8a3c751f938faf7deb60b51f42450ae58e27) Signed-off-by: Lucian Musat <georgex.l.musat@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py: use RPM_PREFER_ELF_ARCHRobert Yang2014-09-102-7/+7
| | | | | | | | | | | | | Use RPM_PREFER_ELF_ARCH to instead of RPM_PREFER_COLOR as rpm upstream suggested, and use "4" to instead of "3" since it is a bit mask (not enumeration), so we need "4" here. (From OE-Core rev: 8dcfa7143a6690455c3bd5772621f142f2d9e559) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager: RpmPkgsList: determine rpm versionKévin THIERRY2014-09-101-12/+11
| | | | | | | | | | | | | | Do not set the rpm_version to 5 if it is not provided, instead determine the real rpm version. (From OE-Core rev: 48beaee2e5b2b4ae35c596c19f8a38e0ff4427e9) (From OE-Core rev: fe4ad726d0dc63be73f885598e216b8eb927668a) Signed-off-by: Kévin THIERRY <kevin.thierry@open.eurogiciel.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager: Add rpm v4 supportRichard Purdie2014-09-031-40/+70
| | | | | | | | | | | | Currently the package manager code only supports rpm v5. To be useful outside of OE or with OE layers using v4, it makes sense to add in rpm v4 support. This takes a patch from "Bartosh, Eduard" <eduard.bartosh@intel.com> and enhances it to also include versions of the workarounds from poky-eurogiciel to allow rpm v4 usage with the class for image construction. (From OE-Core rev: fe21804c296bbb8b2b8b0c29e6e4890bc17f07fc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: sstatetests should now look for glibc-initialKhem Raj2014-09-011-5/+5
| | | | | | | (From OE-Core rev: ddc8e7394051c6a2a9cfdab6a9cd39699b7d61a7) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py: enable smart non-interactive modeEd Bartosh2014-08-311-1/+1
| | | | | | | | | | | | | | | Added --quiet option to smart command line. Without this option smart 1.4.1 turns into interactive mode, i.e. start asking questions and expecting answers. Internally within smart, this changes the default UI to one which just prints to stderr, the naming of the parameter is a little odd but does what we need. (From OE-Core rev: 7a8d88b73d35ac86198a1092c49b33c378416a03) Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
OpenPOWER on IntegriCloud