summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/sstatesig.py
Commit message (Collapse)AuthorAgeFilesLines
* multiconfig: Adapt to bitbake switch 'multiconfig' -> 'mc'Richard Purdie2019-06-101-1/+1
| | | | | | (From OE-Core rev: 8a6f7c1e455156966f467008645fef14db679ccf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib+scripts: Convert to SPDX license headersRichard Purdie2019-05-091-0/+3
| | | | | | | | | | | | | | | | | | | | | | | This adds SPDX license headers in place of the wide assortment of things currently in our script headers. We default to GPL-2.0-only except for the oeqa code where it was clearly submitted and marked as MIT on the most part or some scripts which had the "or later" GPL versioning. The patch also drops other obsolete bits of file headers where they were encoountered such as editor modelines, obsolete maintainer information or the phrase "All rights reserved" which is now obsolete and not required in copyright headers (in this case its actually confusing for licensing as all rights were not reserved). More work is needed for OE-Core but this takes care of the bulk of the scripts and meta/lib directories. The top level LICENSE files are tweaked to match the new structure and the SPDX naming. (From OE-Core rev: f8c9c511b5f1b7dbd45b77f345cb6c048ae6763e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/sstate: Update output hashJoshua Watt2019-01-221-3/+136
| | | | | | | | | | | | | | | | | Updates the output hash calculation for determining if tasks are equivalent. The new algorithm does the following based on feedback: 1) The output hash function was moved to the OE library. 2) All files are printed in a single line tabular format 3) Prints the file type and mode in a user-friendly ls-like format 4) Includes the file owner and group (by name, not ID). These are only included if the task is run under pseudo since that is the only time they can be consistently determined. 5) File size is included for regular files (From OE-Core rev: 4bd297dfe92851f3b44f6b5560bac9d8f9ccf9f2) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/sstatesig: Update to longer sha256 hash lengthRichard Purdie2019-01-141-1/+1
| | | | | | | | Update the code to match the recent switch to sha256 hashes (From OE-Core rev: 910a8f3e8e350ff5d316faf5e07fb40c6c51f45e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Implement hash equivalence sstateJoshua Watt2019-01-081-0/+167
| | | | | | | | | | | | | | | | | | | | | Converts sstate so that it can use a hash equivalence server to determine if a task really needs to be rebuilt, or if it can be restored from a different (equivalent) sstate object. The unique hashes are cached persistently using persist_data. This has a number of advantages: 1) Unique hashes can be cached between invocations of bitbake to prevent needing to contact the server every time (which is slow) 2) The value of each tasks unique hash can easily be synchronized between different threads, which will be useful if bitbake is updated to do on the fly task re-hashing. [YOCTO #13030] (From OE-Core rev: d889acb4f8f06f09cece80fa12661725e6e5f037) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* multiconfig: Enable multiconfig dependencies on oe-coreAlejandro Enedino Hernandez Samaniego2018-08-011-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables multiconfig dependencies (mcdepends) to be used on recipes using the following format: task[mcdepends] = "multiconfig:FROM-MC:TO-MC:PN:task-to-depend-on" For the sake of simplicity consider the following example: Assuming we have set up multiconfig builds, one for qemux86 and one for qemuarm, named x86 and arm respectively. Adding the following line to an image recipe (core-image-sato): do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs" Would state that core-image-sato:do_image from x86 will depend on core-image-minimal:do_rootfs from arm so it can be executed. This patch makes modifications to bitbake.conf to enable mcdepends, and to sstatesig and staging.bbclass to avoid conflicts between packages from different multiconfigs. [YOCTO #10681] (From OE-Core rev: f71bfe833c657244d2fd07b3b71e86081d7d1c04) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Remove trailing whitespaceJoshua Watt2018-07-061-1/+1
| | | | | | | (From OE-Core rev: 2067172e2e5f90cb321ca124f4f9065ae8ad680f) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sstatesig: Fix task mappings from multilib<->non-multilib contextsRichard Purdie2018-07-021-0/+6
| | | | | | | | | | | | | | | | | If we're in a multilib context already and want a non-multilib context this function returned incorrect values. Try and retain optimisations for the common case not needing to request a datastore but allow the different multilib/non-multilib combinations to work too. This fixes bugs where rootfs generation of a multilib image would write into incorrect locations, or be unable to find sstate manifest files due to incorrect data stores being used to expand data. (From OE-Core rev: af7cd7823a8cc95c9f849498b2416cdb0d4d103e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Move hardcoded native toolsJoshua Watt2018-03-011-5/+0
| | | | | | | | | | Now that SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS supports the wildcard syntax, these exclusions no longer need to be hardcoded (From OE-Core rev: 891ca3c891f2ed5476442442bd9784ba10b9a94d) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Add recipe wildcardJoshua Watt2018-03-011-0/+4
| | | | | | | | | | The special string "*" on the left hand side of the dependency specification matches all recipes except the one on the right hand side. (From OE-Core rev: 526855f6573317ced913f39e878beac1d5d294de) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Ignore icecc-create-env in task sigsJoshua Watt2018-03-011-1/+1
| | | | | | | | | | Changes to the icecc-create-env recipe should not cause all recipes to rebuild just because the have inherited icecc. (From OE-Core rev: b088a9c34c34c4bda54d93907e04972d3f8ba5a1) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig/staging/package_manager: Create common sstate manifest codeRichard Purdie2018-03-011-0/+35
| | | | | | | | | Create a common function for locating task manifest files rather than several implementations with missing pieces. (From OE-Core rev: 68150bac7444f089f19c789e9f6602d59f605d7a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sstatesig: fix wildcard matching wrong task signature filesPaul Eggleton2017-11-051-1/+1
| | | | | | | | | | | | | | | | | | With a '*' as a wildcard for the signature here we can also match a portion of the task name with the result that we may match a sigdata file for the wrong task. Luckily the signature is always the same length - 32 characters - so we can simply use 32 '?' characters instead. (A regex would have been another alternative, but the wildcard should be effective and I felt like a regex would complicate the code more than this solution). Fixes [YOCTO #11763]. (From OE-Core rev: 73c6f85457361cd82d44838946aa81ba9bd1662a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sstatesig: exclude ccache-native from signature hashesRoss Burton2017-07-171-1/+1
| | | | | | | | | | | | | | | | Enabling ccache should not cause a complete rebuild, so filter out ccache-native from the dependencies the same way we do for quilt-native (so the world doesn't repatch if quilt changes). This doesn't effect the actual dependencies, just the dependencies that impact the hash. [ YOCTO #11417 ] (From OE-Core rev: ffeca7dcc1abe82cad8374a31bf72b36a472fa1b) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: do not cause kernel rebuildsPatrick Ohly2017-05-181-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Adding or removing archiver.bbclass from a build configuration causes rebuilds of linux-yocto-based kernels because of the do_kernel_configme->do_unpack_and_patch task dependency. This particular dependency can be ignored for the do_kernel_configme sstate signature calculcation. Idea for the fix from Richard Purdie. Note that building the kernel and adding archiver.bbclass later to archive sources leads to do_unpack_and_patch running after do_kernel_configme (because that already ran in the first build), which might be problematic. This is independent of the change here. The use case in YOCTO #11441 is to removed archiver.bbclass between a production build with archiving enabled and builds via oe-selftests without archiving. That direction is fine. Fixes: YOCTO #11441 (From OE-Core rev: fed0ed82928e6a7846fbad233ac657bd17bcefc7) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildhistory-diff: add option to compare task signature listPaul Eggleton2017-04-111-3/+3
| | | | | | | | | | | | Having added writing out of the task signature list to buildhistory (when BUILDHISTORY_FEATURES includes "task"), we now need a way to compare the list. This just shows which tasks have been added / changed signature / removed. (From OE-Core rev: 63bd7e9f780a98dda458d612877495756bcc5463) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/buildhistory: write out task signatures on every buildPaul Eggleton2017-04-111-0/+10
| | | | | | | | | | | | | | | | | If we want to determine what changed since the last build, one angle from which to look at it is to check the signatures. However, if we don't actually have the signatures from the last build we don't have anywhere to start. Save the signatures on each build in order to give us the starting point. NOTE: you need to set your BUILDHISTORY_FEATURES value to include "task" to enable collection of these signatures as it is is disabled by default. (From OE-Core rev: 11f68f65c46c5bc26ddeeade3021e83b3a7f895a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sstatesig: avoid reporting duplicate siginfo files from sstatePaul Eggleton2017-04-101-6/+14
| | | | | | | | | | | | | | | | | | | | In find_siginfo(), which is used by bitbake-diffsigs among other things, avoid adding a siginfo file from the sstate-cache where we've already collected a sigdata file from the stamps directory with the same hash. This avoids the possibility that the top two files (as picked by default using the bitbake-diffsigs -t option) are for the same signature and thus the tool would report no differences. In order to do that, just use the hashfiles dict that we already have - we just need to change the code to populate that even if we're collecting matching files without looking for a fixed set of hashes (i.e. taskhashlist isn't set). This replaces previous code in bitbake-diffsigs that attempted to filter these out with limited success. (From OE-Core rev: 5b69eef40868180c59400624096d7ebbbbea446b) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sstatesig: fix finding native siginfo files in sstate-cachePaul Eggleton2017-04-101-16/+9
| | | | | | | | | | | | | | | | | | When comparing signatures with bitbake-diffsigs -t or bitbake -S printdiff, we use this find_siginfo() function implemented in this module to find the siginfo/sigdata files corresponding to the tasks we're looking for. However, native sstate files go into a NATIVELSBSTRING subdirectory and there was no handling for this when asking about native recipes. I'm not even sure why we were walking SSTATE_DIR in order to find this - we don't need to, we just need to run glob.glob() on the filespec we calculate, which should be a little bit more efficient. (From OE-Core rev: 8cb472e4ed25e56ec0d9cf6d8d101d1ab6687a5b) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe.sstatesig: make locked sig file consistentJianxun Zhang2017-01-091-2/+3
| | | | | | | | | | | | Sort keys of dict 'types' prior to dumping, in order to have identical output every time. This could make it a little easier to diff these human-readable dumps. (From OE-Core rev: 8abbaba1931e2cb2b87aa733aa9a3e8eb359b500) Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove True option to getVarFlag callsJoshua Lock2016-12-161-1/+1
| | | | | | | | | | | | | | | getVarFlag() now defaults to expanding by default, thus remove the True option from getVarFlag() calls with a regex search and replace. Search made with the following regex: getVarFlag ?\(( ?[^,()]*, ?[^,()]*), True\) (From OE-Core rev: 2dea9e490a98377010b3d4118d054814c317a735) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-15/+15
| | | | | | | | | | | | | getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) (From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sstatesig: print locked sigs file message only when explicitly calledPaul Eggleton2016-07-081-6/+4
| | | | | | | | | | | If we're building the extensible SDK we don't need to see the "Writing locked sigs" message; it's only necessary when the user explicitly runs bitbake -S none <target>. (From OE-Core rev: 440a351ee13920045c9d3e51882908f7b3f01d35) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib: Update to explictly create lists where neededRichard Purdie2016-06-021-1/+1
| | | | | | | | | Iterators now return views, not lists in python3. Where we need lists, handle this explicitly. (From OE-Core rev: caebd862bac7eed725e0f0321bf50793671b5312) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib: Update to match python3 iter requirementsRichard Purdie2016-06-021-1/+1
| | | | | | | | | python3 standardises its use of iteration operations. Update the code to match the for python3 requires. (From OE-Core rev: 2476bdcbef591e951d11d57d53f1315848758571) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig.py: Add a method to "unlock" recipesRandy Witt2016-04-091-1/+23
| | | | | | | | | | | | | | | | | | | | | | In order to support workflows using devtool where a user might want to modify tasks that exist in locked-sigs.inc, there must be a way to unlock recipes. This patch adds that support by allowing the user to add recipes to SIGGEN_UNLOCKED_RECIPES. Recipes that exist in that variable will have all their tasks unlocked, as well as any tasks that depend on that recipe. For example if foo->bar->baz, if you unlock baz, it will also unlock bar so that foo can be rebuilt without explicitly specifying bar as being unlocked. [YOCTO #9195] (From OE-Core rev: 8a8fc54d824767a6a94d12a4ace98b0bdbb1aa25) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig.py: Improve the SIGGEN_LOCKEDSIGS_TASKSIG_CHECK messageRandy Witt2016-04-091-5/+7
| | | | | | | | | | | | | | | | | | | | The previous message when signatures didn't match between the metadata and the locked signatures file, the message output was a bit confusing. Now the message should be of the form: The zlib-native:do_install sig is computed to be 53531910a2a7848432da89def942a91a, but the sig is locked to d25ba9035f7ccb308e51bbe1066e8d27 in SIGGEN_LOCKEDSIGS_t-x86-64 which will hopefully be more useful in understanding the problem. [YOCTO #9195] (From OE-Core rev: 49eeabfff8bbea69401db41f7219e29acf47af73) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig.py: Split single locked sigs check into multiple checksRandy Witt2016-04-091-6/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add the SIGGEN_LOCKEDSIGS_TASKSIG_CHECK and SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK variables to replace SIGGEN_LOCKEDSIGS_CHECK_LEVEL. SIGGEN_LOCKEDSIGS_TASKSIG_CHECK will no control whether there is a warning or error if a task's hash in the locked signature file doesn't match the computed hash from the current metadata. SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK will control whther there is a warning or error if a task that supports sstate is in the locked signature file, but no sstate exists for the task. Previously you could only have warning/errors for both controlled by SIGGEN_LOCKEDSIGS_CHECK_LEVEL. This was an issue in the extensible sdk, because we know sstate won't exist for certain items in the reverse dependencies list for tasks. However, we still want to error if task signatures don't match. [YOCTO #9195] (From OE-Core rev: 0fe2a5e5ffd01e926d0f3d4c78ad9910296e2d1a) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Ensure we keep native depends for allarch recipesRichard Purdie2016-03-291-1/+1
| | | | | | | | | | | Without this, do_package_write_rpm doesn't depend on rpm-native which it really should since that is needed to build rpms. [YOCTO #8047] (From OE-Core rev: 3fab4f9920d004fe13fb01434d4c7f3b8bbd7895) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/sstatesig: skip shared_workdir when checking locked sigsJoshua Lock2016-03-091-0/+2
| | | | | | | | | | do_shared_workdir is not a proper sstate task, it always reruns if needed, so special-case it in warnings when checking locked sigs. (From OE-Core rev: 4b08f982a2b15bff9092f60f7957301bb2d2108b) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Handle special case of gcc-source shared-workdir for printdiffRichard Purdie2016-01-111-0/+4
| | | | | | | | | | | | | | | | Often, bitbake -S printdiff would show that there was a checksum not found which would turn out to be from gcc-source. This is due to it being a shared-workdir recipe. For now, hardcode the special case into the sstatesig code to stop people (including me) puzzling over this. If/as/when we add any other shared workdir recipes, we'll need to rethink this. (From OE-Core rev: f11342f0c838b520828927c9d69f7c17309c1b48) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sstate: Add tasks_resolved handler for virtual/xxx mappingsRichard Purdie2015-10-011-0/+20
| | | | | | | | | | | | | | In SIGGEN_EXCLUDERECIPES_ABISAFE and SIGGEN_EXCLUDE_SAFE_RECIPE_DEP we really need to be able to use virtual/xxx namespaces but this currently doesn't work. To make this work, we need to translate them into the resolved providers. After such a hook was added to bitbake, we can add this translation here. (From OE-Core rev: 0a6d0d040ab7f885b667a34f4ddcc775d135c07c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/sstate: break out function to get sstate manifest filenamePaul Eggleton2015-09-121-0/+12
| | | | | | | | | | | | It is useful in a few different contexts to see which files have been written out by an sstate task; break out a function that lets us get the path to the manifest file easily. (From OE-Core rev: 090196dd2d8f4306b34b239e78c39d37cc86034c) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe.sstatesig: align swspec handling with sstate.bbclassChristopher Larson2015-04-081-4/+4
| | | | | | | | | | | | | | | | | The logic tries to remove the -native suffix from pn to handle this (though it doesn't succeed, as it doesn't assign the new pn to the variable), but we need to do more for the swspec tasks than just not set the extrapath, we also need to change from SSTATE_PKGSPEC to SSTATE_SWSPEC. Alter to correct the spec for these cases, and also add preconfigure to align with the current logic in sstate.bbclass, which includes that task as well in the list of tasks to adjust to use swspec. [YOCTO #7563] (From OE-Core rev: c9105597763be4bf5bc0ec97cc999566d0f10678) Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Add ability to filter list of tasks for locked-sigs.incPaul Eggleton2015-02-241-1/+4
| | | | | | | (From OE-Core rev: ed4287a60b33cb597eb7fa13b3855a528315b3b0) Signed-off-by: Paul Eggleton <paul.eggleton@linux.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>
* sstatesig: Only squash dependencies for allarch packagegroupsRichard Purdie2014-08-251-2/+5
| | | | | | | | | | | The idea of squashing packagegroup dependencies was to avoid allarch packages rebuilding upon tune/arch changes. Now that the allarch class inclusion is conditional, we can narrow down the packagegroup squashing to be specifically applied to allarch recipes. (From OE-Core rev: bd8018792155ae842952432900c8431feeaffe30) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Add try/except around the stat callsRichard Purdie2014-06-191-2/+8
| | | | | | | | | | Its possible sstate symlinks to other sstate mirrors which then my get removed/cleaned. If we find invalid symlinks, skip over them rather than error with a backtrace. (From OE-Core rev: 5ed9bb42abf93aa084dd23ca68cc996a94a51a10) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Move saferecipedeps handling to be earlierRichard Purdie2014-05-291-4/+4
| | | | | | | | | | | | | | | | We want to use the saferecipedeps handling code to allow gcc-cross-* to work on multiple different tunes. Its currently in target only code so it needs to be earlier to allow it to work on native-> target dependencies. This change has no effect on existing uses but makes gcc-cross become shared as desired. (From OE-Core rev: 9e03db2dfab0b534b86fd48c9190b2d7d0d21238) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib/oe: Fix cross/crosssdk referencesRichard Purdie2014-05-111-2/+2
| | | | | | | | | | | | | | | | With the renaming of the cross packages, its no longer possible to use endswith("-cross") and similar to detect cross packages. Replace these references with other techniques. This resolves certain build from sstate failures which were due to the system believing cross packages were target packages and therefore dependency handling was altered. (From OE-Core rev: 91edf4cac223298e50a4b8e59dd19f1b272e3418) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Anchor inherits class testsRichard Purdie2014-03-301-3/+3
| | | | | | | | | | | | There was a nasty sstate hash corruption issue occurring where the fact the testimage bbclass was inherited meant that the checksum changed due to testimage.bbclass being confused with image.bbclass. This patch anchors the bbclass names to avoid this confusion. (From OE-Core rev: 943a75a4f3b6877e4092dae14b59b7afef8cad3d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: include native/cross/nativesdk deps in target signaturesMartin Jansa2014-01-211-4/+0
| | | | | | | | | | | | | | | | | | | | * I don't have any real evidence or good statistics for this, but when comparing signature dumps from my big bitbake world builds I usually see a lot of rebuilds caused by changes in .bbclasses and only very rare would be the case where oe-core upgrade brings changes in -native recipes and no change in .bbclasses used from target recipes * changing the default to include them shouldn't cause significant increase in rebuilds and sstate reuse a bit safer * people working on toolchain (e.g. using gcc from AUTOREV) can easily extend sstate_rundepfilter to ignore them again (it's easier than removing existing filter), example how add own signature handler in your layer is here: https://github.com/openwebos/meta-webos/commit/9ac3a7c803e7793b3274e4998f167b6278db8042 (From OE-Core rev: 336a7897e39b9e42dcfcba9e2520ea96b0c6a8d6) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate/sstatesig: Add populate_lic to list of arch invariant sstate tasksRichard Purdie2013-12-201-0/+3
| | | | | | | | | | | | | Like fetch, unpack and patch, populate_lic doesn't vary between different archs so we should mark it as such. This means better sstate cache reuse with fewer duplicate files as well as less confusing sstate debugging. sstatesig also needs to account for the fact BPN is used for sstate files in these cases. (From OE-Core rev: 3d59d0bed756f64d0092caa3892239c779c4a341) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Correctly handle matches spanning stamps and sstatedirRichard Purdie2013-12-201-1/+0
| | | | | | | | | | | | | | | By resetting filesdates at this point, we lose matches from stamps which may not have been in sstatedir. When we don't have hashes specicifed, its better to return all matches and have the caller decide which are relavent and which are not since this function has no ability to decide. There will almost always be one match from stamps we need to keep and refer to. (From OE-Core rev: f4c1c9ad2c7e944d4926d0629611da97f9df6a9a) (From OE-Core rev: 8629844640a5a4c6a9d9375e7b637bcbf3451c4c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Update for the removal of sstate-nameRichard Purdie2013-12-201-3/+1
| | | | | | | | | | | | We've dropped sstate-name so we can remove this code. The fallback was incorrect since we use taskname without the do_ prefix so this patch updates to account for that too. (From OE-Core rev: 72ff58124081333d46d37f31f2d1bf40d715e3bd) (From OE-Core rev: dbc1426ee75bcf2f6d8b18312522a9b823e23173) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Ensure we return all matches for find_sigdataRichard Purdie2013-12-201-1/+1
| | | | | | | | | | | | | When the hashes to find isn't specified we need to return matches from both the sstate cache and the local stamps directory regardless of how many we've found so far. If we don't do this, we can miss stamps and the comparison is less accurate/incorrect. (From OE-Core rev: 08a074e11e2d517b81ca71fd9bda65297bb015a7) (From OE-Core rev: 04fc682af7c1657b1c9f37b66a78c4ffc8066e24) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>