summaryrefslogtreecommitdiffstats
path: root/meta/classes/sstate.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* sstate: fix typoSaul Wold2012-12-061-1/+1
| | | | | | | (From OE-Core rev: 17d27fd6e2750e6455f656159da56c3350c4b3cd) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: fix typoRichard Purdie2012-12-061-1/+1
| | | | | | (From OE-Core rev: 10cceb3854acd5c619d81011bac02da11ed580d2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: fetch .siginfo files from SSTATE_MIRRORSaul Wold2012-12-061-0/+2
| | | | | | | | | | | | | | This would be useful for doing siginfo compares to understand why a build is not reusing something when using SSTATE_MIRROR. No error will be reported if it fails to find the .siginfo file [YOCTO #2898] [RP: Small tweaks] (From OE-Core rev: 6d86690330f0d43839b904fced4b4b02cb27b8c6) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: fix detection of owners matching sstate filesMartin Jansa2012-12-051-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * without this patch: Python 2.7.3 >>> sstate_search_cmd = "grep -rl /OE/jansa-test/shr-core/tmp-eglibc/pkgdata/armv7a-vfp-neon-oe-linux-gnueabi/runtime-reverse/vim-common /OE/jansa-test/shr-core/tmp-eglibc/sstate-control --exclude=master.list | sed -e 's:^.*/::' -e 's:\.populate-sysroot::'" >>> cmd_array = sstate_search_cmd.split(' ') >>> search_output = subprocess.Popen(cmd_array, stdout=subprocess.PIPE).communicate()[0] grep: |: No such file or directory grep: sed: No such file or directory * Adding shell=True and using cmd string instead of array makes it work: >>> search_output = subprocess.Popen(sstate_search_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0] >>> print search_output manifest-armv7a-vfp-neon-gvim.package manifest-armv7a-vfp-neon-vim-tiny.package manifest-armv7a-vfp-neon-vim.package But still isn't 100% reliable, I guess it's caused by some other package being removed from sstate while grep is already running. So sometimes grep can show error on STDERR >>> search_output = subprocess.Popen(sstate_search_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0] grep: /OE/jansa-test/shr-core/tmp-eglibc/sstate-control/manifest-armv7a-vfp-neon-systemtap.package: No such file or directory (From OE-Core rev: d84f7d7a12b4271f7b2bfde9fb356d750abff15d) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: fixed file-conflict checkEnrico Scholz2012-12-051-1/+1
| | | | | | | | | | | The value of subprocess.Popen().communicate()[0] is a string. Checking for '!= None' will always match causing bogus warnings regarding already staged files. (From OE-Core rev: acdd76482efc3caf80e9e0b7359be7ca724ae09a) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* packagegroup/allarch: Convert to use allarch classRichard Purdie2012-11-261-1/+1
| | | | | | | | | | | | | | | | | Currently there is some odd behaviour of the packagegroup class in relation to sstate since it sets PACKAGE_ARCH = "all" but does not use the allarch class leading to it being undetected by sstate. Previously it was not possible to use allarch as the recipe couldn't "undo" settings made by the allarch class. Since this no longer happens when PACKAGE_ARCH != all, we can use the allarch class. This patch also fixes up one case we need to preserve TRANSLATED_TARGET_ARCH and ensures sstate only assumes allarch when PACKAGE_ARCH is "all". (From OE-Core rev: 591fa7c1ab9e9ff75fdce602c77ecdeda3a255d9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Explicitly define populate_sysroot task relationshipsRichard Purdie2012-11-241-9/+16
| | | | | | | | | | | Clean up and clarify the populate_sysroot task dependencies. Target sysroot packages do need their dependencies installed, as do some target/cross relationships. We can whitelist the *-initial dependencies as these are never needed indirectly. (From OE-Core rev: eeec307917234d97be2674beeadef71599fb1487) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Add a rule for target sysroot requirements from cross dependenciesRichard Purdie2012-11-241-0/+4
| | | | | | | | | For example gcc-cross depends on linux-libc-headers and needs it to be present to build/work correctly. (From OE-Core rev: 43ce7a1d86bf82d976ad241057a4207b1a340b3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Implement a setscene dependency validation routine to allow skipping ↵Richard Purdie2012-11-201-0/+52
| | | | | | | | | | | | | | | of some sstate installation This is a first attempt at logic to determine when a sstate dependency needs to be installed and when it does not. Its a start at the logic and errs on the side of caution, as it gets wider testing, we can refine the logic as needed. This code should allow a significant performance speedup to certain workflows, for example "bitbake xxx-image -c rootfs" will not populate the target sysroot. (From OE-Core rev: b43faba37816817edc5240a139361d16e07c6131) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Drop now unneeded python whitelist entriesRichard Purdie2012-11-181-2/+0
| | | | | | (From OE-Core rev: 2a9a3e5e3e9229eb11f20eeabef7929014bccd11) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Bump version number to deal with layout fixesRichard Purdie2012-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The recent preveeding sstate directory layout fixes made the code do what it was originally intended to do, as can be clearly seen from the code. Unfortunately this changed the contents and layout of the sstate files themselves since the bug was leading to a directory prefix being missing. This is now resulting in chaotic messages on the console since things are getting confused with the two different layouts. The simplest way to resolve this is to bump the version number, hence moving the new layout into its own new namespace. Its worth noting that whilst the failure messages are scary, the failure mode is relatively harmless since it will just fall back to building the data rather than installing from sstate. Usually I'd give more notice of a change like this but under the circumstances, I'm just going to push this in to resolve the failures people are seeing. Initially I thought the problem was limited to some of the -cross packages and therefore of low impact but that is clearly not the case. (From OE-Core rev: b53ea6687b6201c8c5ab5cb0d2a845ef7e7b2abe) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Fix various path manipulation issuesRichard Purdie2012-11-141-3/+5
| | | | | | | | | Fix missing parameter to endswith and pass paths through normpath to remove any duplicate "/" characters which would corrupt other calls like basename. (From OE-Core rev: 172a74c540378149eec493c37c030e9f42f9603d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Be consistent about sstate-inputdirs/outputdirs ending with '/'Richard Purdie2012-11-141-0/+4
| | | | | | | | | | The manifest file can become corrupted if sstate-inputdirs and sstate-outputdirs don't have matching endings. This patch ensures that even if set incorrectly, the code functions as intended, thereby handling manifest corruption safely. (From OE-Core rev: 0109a3623a19f9ae289952a4f054e53c3eca4eaa) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: add manifest info for shared file matchesSaul Wold2012-10-271-1/+7
| | | | | | | | | | | | | | Present the manifest file that contains the matches for files being installed to a location that already contains that file. This will help to determine which is the correct recipe to fix when this occurs. [YOCTO #3191] (From OE-Core rev: 56268f6e4ed1fc11143173bb1717a8be78c728a5) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Improve handling of machine specific manifestsRichard Purdie2012-10-221-7/+8
| | | | | | | | | | | | | | Now do_package isn't machine specific, we're only left with do_populate_sysroot as a machine specific task. This change marks only the machine specific manifests as machine specific, defaulting to PACKAGE_ARCH for everything else. This means we do less work where there are multiple machines using the same core package architecture and we can start to clean up the sstate duplicate files whitelist. (From OE-Core rev: febeaf3d1b8917b660c7279b008d8b03337568e9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: when warnings about sysroot overwrites, say what the recipe wasRoss Burton2012-10-181-1/+1
| | | | | | | (From OE-Core rev: 936e2868bb9973213630477ab9c880dbdf4aac09) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Use -m option to tar when unpacking sstateRichard Purdie2012-10-181-1/+1
| | | | | | | | | | | | | | | | We've noticed failures on the project autobuilders where a shared sstate directory is used across multiple builders and the clocks become skewed. Most of the time this causes harmless building but if this happens where an environment is changed (make install vs make in qt4-x11-free for example), the build can fail. This avoids modification times in the future and should make builds safer in shared environments sstate was designed for. (From OE-Core rev: 8f1bdb4f4afd7f5f4c121be8ba82f4675f73e300) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Also add datadir/sgl to sstate whitelist to avoid openjade warningRichard Purdie2012-10-081-1/+1
| | | | | | (From OE-Core rev: e0ff54db5a5ab171ee1d0dbcf7f267235c21e601) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Add extra entries to the sstate duplicate files whitelistRichard Purdie2012-10-051-2/+8
| | | | | | | | | | | | | | This avoids errors where gcc/binutils get installed to the native sysroot in the same location for multiple package architectures. Ultimately making these native recipes with ${PACKAGE_ARCH} appended to PN will resolve this but hide the warnings until this gets sorted out. Also hide the python and docbook catalog warnings since they're known about, nothing to worry about and we'll aim to clean them up properly in the 1.4 cycle. (From OE-Core rev: 5bae58a5b59c04d8947f4842f19837a914c29b52) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Normalise paths before comparing with the whitelistRichard Purdie2012-10-051-0/+1
| | | | | | | | | Without this, path components like // could break comparisions with the whitelist leading to warnings being displayed to the user unintentionally. (From OE-Core rev: d3c46ca56fab2f07bf16b61514f30765543a8747) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Relax the duplicate file whitelist for nowRichard Purdie2012-09-281-1/+5
| | | | | | | | | | | | | | | | | do_package is a machine specific task at the moment due to packagedata. This means do_package tasks and their dependencies rerun between different machines with various duplicate file installations. There are plans to fix this but they're too invasive before release. This patch relaxes the whitelist for sstate duplicate file detection to account for this. Post-release, we re-enable stricter settings once do_package is not machine specific. (From OE-Core rev: c858259ce1881c6284f1fc2790c225c81e4a751e) 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>
* sstate: Remove master manifest usageRichard Purdie2012-09-261-28/+3
| | | | | | | | | | | | | | This was added to allow detection of duplicate files being installed by sstate. There is a much simpler way, just check if the file already exists. This effectively uses the kernel VFS as the cache which is much more efficient. This resolves a significant performance bottleneck (lock contention on a single file) when running builds that are just being generated from sstate cache files. (From OE-Core rev: 603daf343ad3f18c8adb799e3625ae2a18d94f56) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Fix SSTATE_DUPWHITELIST variable usageRichard Purdie2012-09-261-1/+1
| | | | | | | | | | | | | We need to split this variable before using it. Otherwise a single "/" character in the list whitelists every overlapping sysroot file which was not the intention making the whole thing useless. We'll start seeing warnings about overlapping files now this is working correctly after this patch. (From OE-Core rev: 9e31c748327e92b809330f4ad7b6aaecb2edf559) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Append to EXTRASSTATEMAPS and add commentRichard Purdie2012-09-121-1/+2
| | | | | | | | | Appending to EXTRA_SSTATEMAPS is better than just hardcoding a value. Also add a comment about why this is necessary. (From OE-Core rev: d4f4a57b8d564d57256017d937ed2eabf94c36ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Remove hardcoded task mappingsRichard Purdie2012-09-021-10/+8
| | | | | | | | | | | | I've not idea why this got left in but as per the comment, it needs fixing and we shouldn't have hardcoded mappings like this. Lets remove it and dynamically generate the data instead. [YOCTO #3039] (From OE-Core rev: 2df064ad46c1510fa8a401c22db4ab3278c3c807) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Ensure master.list exists if it doesn't alreadyRichard Purdie2012-08-301-0/+4
| | | | | | | | | | This fixes builds where master.list doesn't already exist. This change was meant to be part of the previous sstate commit but ended up separated. (From OE-Core rev: c2109b765b24a7ffe4781257ad3fe4641a3b2a49) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Detect overwriting files in sstate controlled directoriesRichard Purdie2012-08-301-1/+44
| | | | | | | | | | | | | | | | | | | | We have a potential problem where two sstate packages try and touch the same file. This adds code which will print a warning whenever this happens. The implementation does but by maintaining a master file list and comparing file accesses against this. There are a number of places we have duplicate accesses which are harmless, mostly in the deploy directory so these are whitelisted. For now the code prints warnings, this could be strengthened in future to become error messages. Whilst working on this code on and off over the past few months various issues were uncovered, some serious. [YOCTO #238] (From OE-Core rev: 1f1b6f93d6b7aa8c9bd9bb5b1826997812e36932) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/classes: Various python whitespace fixesRichard Purdie2012-08-211-13/+13
| | | | | | | | | | | It was pointed out we have a number of weird indentations in the python functions. This patch cleans up 3, 7 and other weird indentations for the core bbclass files. It also fixes some wierd (odd) shell function indentation which my searches picked up. (From OE-Core rev: 8385d6d74624000d68814f4e3266d47bc8885942) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Add a string representing the lsb release to native/cross sstateRichard Purdie2012-07-281-5/+17
| | | | | | | | | | | | | | | | | | | This patch adds the lsb name and revision to the path used for sstate files. This means that reuse of sstate files between different distributions is restricted by default. The behaviour can be configured using mirror urls, for example: SSTATE_MIRRORS = "file://Ubuntu-11.10/(.*) file://Ubuntu/\1 \n" would map Ubuntu 11.10 to a more generic "Ubuntu" named sstate feed. Usually, more modern distros have increased libc versions for example so whilst more older native/cross sstate packages will usually work on newer distros, the opposite is not true. This patch allows development of policy to better handle this although no default policy is currently being used. (From OE-Core rev: 9360fc318cec5c873b17f59b817dd6312c81ee27) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Add a two character subdirectory to the sstate directory layoutRichard Purdie2012-07-281-12/+15
| | | | | | | | | | | | | Currently all sstate files are placed into one directory. This does not scale and causes a variety of filesystem issues. This patch adds a two character subdirectory to the layout (based on the first two characters of the hash) so that files can be split into several directories. This should help performance of sstate in most cases. (From OE-Core rev: 5d45c7b025f6635b2232d7bf92b7c1aba350396b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Set SSTAGE_PKGARCH for allarch packages to allow reuseRichard Purdie2012-07-221-0/+3
| | | | | | | | | allarch sstate packages could be marked as machine or package_arch specific. This change ensures they are not. (From OE-Core rev: f3104240ad5bb542c339ee29b2672523ad3ae50c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert tab indentation in python functions into four-spaceRichard Purdie2012-07-191-52/+52
| | | | | | (From OE-Core rev: 604d46c686d06d62d5a07b9c7f4fa170f99307d8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Move crosssdk before cross to ensure correct variables are setRichard Purdie2012-07-171-2/+2
| | | | | | | | | | | | | | | | There was a bug showing up where the crosssdk recipes were being installed as machine specific in the sstate-control directory. This turned out to be due to the architecture fields used by sstate being set incorrectly. The problem is that the crosssdk inherits the cross class. It therefore needs to be listed in this if statement block before the cross check, not after. This should resolve some package architecture issue of crosssdk sstate files. (From OE-Core rev: 79fe28e6033273f9632ca7549d1599d3fd1463ef) 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>
* meta: replace os.system with subprocess.callRobert Yang2012-05-301-3/+6
| | | | | | | | | | | | | | | Replace os.system with subprocess.call since the older function would fail (more or less) silently if the executed program cannot be found More info: http://docs.python.org/library/subprocess.html#subprocess-replacements [YOCTO #2454] (From OE-Core rev: a07d03cc6f67c88feb9813ae7deb6e4a93552dfe) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Make sure we don't have an empty fixmepath fileMark Hatle2012-05-181-5/+12
| | | | | | | | | | | | | | Jason Wessel noticed that a package without any fixmepath entries would generate a sed warning about no input files. This patch resolves that by ensuring that an empty fixmepath file never gets written into the sstate archive. Also we avoid a second message by only doing xargs if we got input. (From OE-Core rev: 326563d5a897ae2dba7cfd8d73579d3d979d72c8) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/classes/sstate.bbclass: ensure sstate files have group R/WJoshua Lock2012-05-171-0/+1
| | | | | | | | | In order to make sharing sstate files easier chmod them with 0664 permissions so that they are readable and writable by the user and any other members of their group. (From OE-Core rev: dae9ad8a0ba0343e3083694cdcb20f0d02927ad0) Signed-off-by: Joshua Lock <josh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Optimize the generation and install path fixupsMark Hatle2012-05-151-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fixmepath file that is generated contains a list of all of the files that need their paths fixed. In the previous version the fixmepath was generated to include all of the files that sed may have changed. In the new version, we first grep the files to see if they contain a path that needs to be changed, only then do we perform the sed operation on those files. This results in a modest performance increate in the creation of the sstate file. The following numbers include the do_package and do_populate_sysroot tasks on the perl recipe. Before the change: real 4m23.018s user 1m57.067s sys 1m33.327s After the change: real 4m13.083s user 1m54.062s sys 1m26.064s However, a more significnt performance gain is felt during the extraction/install of sstate cache files, as the fixmepaths file now has a significantly smaller list of files to modify. Before the change: real 0m39.798s user 0m11.158s sys 0m12.642s After the change: real 0m25.511s user 0m8.408s sys 0m5.077s (All numbers above were recorded with a cold filesystem cache on a machine with 12 GB of ram.) (From OE-Core rev: 46067264bedeff8248a2b2441733420fe6651f84) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Improve sstate_installpkg performanceMark Hatle2012-05-111-7/+21
| | | | | | | | | | | | | | | | | | | | | | | | | In a pathological case, lots of files to process, the sstate_installpkg performance was very poor. It interated over each file and ran 3 individual sed commands per file. Changing this to keep iterating but running only a single command took about 1/3 time time. However, when looking at the corresponding sstate_hardcode_path function, it was clear we could optimize this further. Using the same encoding logic to specify only the minimumal sed operation necessary, and using xargs to avoid the os.system call the install step was able to be performed in 13% of the original time. Example timing numbers for perl: 3m7s original code 1m20s single sed, but interating 0m26s using xargs and limited sed (From OE-Core rev: d9f655753fbdc8cbd8e705577430fed4f23732b3) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "bitbake.conf/sstate.bbclass: Change PATH when installing sstate ↵Richard Purdie2012-03-231-8/+0
| | | | | | | | | | | files to avoid issues" Reluctantly revert this since it breaks the tar-native workaround we have for old versions of tar :( This reverts commit 01218e29f963120c77885964702198d9bce77e11. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Remove possibility of file corruption and make package ↵Richard Purdie2012-03-231-2/+4
| | | | | | | | | | | | writing atomic There is currently a race window when creating sstate packages since we don't atomically write the files to SSTATE_DIR. This change ensures we do so by writing to a temporary file and then doing an atomic move. (From OE-Core rev: 52bf113e786a57123a9da98f64442afbc2f1471e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf/sstate.bbclass: Change PATH when installing sstate files to ↵Richard Purdie2012-03-211-0/+8
| | | | | | | | | | | | avoid issues This resolves issues related to pigz-native when installing from sstate that people have been seeing. It also gives us a way to solve issues like the gzip-native race during sstate package creation covered in Yocto #1774. (From OE-Core rev: 518dffe20178f5969dddccb17d6ab347afb72beb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Replace bb.data.expand(xxx, d) -> d.expand(xxx)Richard Purdie2012-03-051-15/+15
| | | | | | | | sed \ -e 's:bb.data.\(expand([^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -i `grep -ril bb.data.expand *` Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Remove unecessary bb.data.expand()Richard Purdie2012-03-051-7/+7
| | | | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/classes: Convert to use appendVar and appendVarFlagsRichard Purdie2012-03-051-6/+2
| | | | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: improve performance of sstate package creationMartin Jansa2012-02-241-23/+16
| | | | | | | | | | | | * also fixes replacing paths for perl where cmd line was probably too long for os.system(cmd) (it had 560410 characters because a lot of files from sstate_scan_cmd). * also print those 2 commands so we can find them in log.do_package (From OE-Core rev: 94c52d68fc2ce258bcc5b0978ac73413480a1a93) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: add *_config to SSTATE_SCAN_FILESMartin Jansa2012-02-231-1/+1
| | | | | | | | | * e.g. mysql5 has mysql_config not mysql-config (From OE-Core rev: aebdffc93ba8446bbd4e20263f0f75d4d4460c47) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Optimise sstate_hardcode_pathRichard Purdie2012-02-101-11/+16
| | | | | | | | | | | | | | The sstate_hardcode_path() function triggered large numbers of exec() calls when processing packages with large numbers of file relocations (e.g. perl). This patch optimises those calls into longer single commands which make the code significantly more efficient. This reduced the do_package time for perl by 2 minutes (from 4.75 minutes) for me. (From OE-Core rev: 4159ff761cf29a03aeb56c7686a4e7af02b52219) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate.bbclass: Add support for sstate preinst functionsRichard Purdie2012-01-271-0/+5
| | | | | | (From OE-Core rev: f2b0a71b3100a0d2ceb80300d7f3823a31eb907a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Add SSTATE_SCAN_FILESRichard Purdie2011-12-151-1/+2
| | | | | | | | | | | | | | | | We process all files in the native/cross cases for finding and fixing relocation issues. In the target case we've only processed .la and binconfig files. Since there are other files which are in need of this processing, this change allows recipes to specify files that may be outside the normal set. This means hardcoded paths that need to be fixmepathed to work correctly are handled and addresses some sstate relocation bugs that have been seen. Based on a patch from Saul Wold <sgw@linux.intel.com> (From OE-Core rev: 6ffdcd9120b572fa41659029c3bda7bf00ebcb77) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* getVar/setVar cleanupsRichard Purdie2011-11-271-7/+7
| | | | | | | | | Complete the bb.data.getVar/setVar replacements with accesses directly to the data store object. (From OE-Core rev: 2864ff6a4b3c3f9b3bbb6d2597243cc5d3715939) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>