<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/meta/classes/sstate.bbclass, branch 1.3_M3</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=1.3_M3</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=1.3_M3'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2012-07-28T08:20:53+00:00</updated>
<entry>
<title>sstate.bbclass: Add a string representing the lsb release to native/cross sstate</title>
<updated>2012-07-28T08:20:53+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-07-26T12:56:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=72ab2866e1727c373c3c651f98b1e5b5f3d47e8f'/>
<id>urn:sha1:72ab2866e1727c373c3c651f98b1e5b5f3d47e8f</id>
<content type='text'>
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 &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate: Add a two character subdirectory to the sstate directory layout</title>
<updated>2012-07-28T08:20:53+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-07-24T12:37:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=2045338ab4eda5dfab79c21fea3c4fc7b9732ec9'/>
<id>urn:sha1:2045338ab4eda5dfab79c21fea3c4fc7b9732ec9</id>
<content type='text'>
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 &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate: Set SSTAGE_PKGARCH for allarch packages to allow reuse</title>
<updated>2012-07-22T10:42:23+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-07-20T15:52:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=e18ae61b60c620dd88883ba4a5336be19437b5ca'/>
<id>urn:sha1:e18ae61b60c620dd88883ba4a5336be19437b5ca</id>
<content type='text'>
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 &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Convert tab indentation in python functions into four-space</title>
<updated>2012-07-19T09:24:50+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-07-11T17:33:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=bfd279de3275abbfaf3e630383ec244131e0375f'/>
<id>urn:sha1:bfd279de3275abbfaf3e630383ec244131e0375f</id>
<content type='text'>
(From OE-Core rev: 604d46c686d06d62d5a07b9c7f4fa170f99307d8)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: Move crosssdk before cross to ensure correct variables are set</title>
<updated>2012-07-17T09:53:57+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-07-12T15:18:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=72df57b3a5fee4e82d2428c164f39c00fdfdc9c2'/>
<id>urn:sha1:72df57b3a5fee4e82d2428c164f39c00fdfdc9c2</id>
<content type='text'>
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 &lt;richard.purdie@linuxfoundation.org&gt;
Signed-off-by: Saul Wold &lt;sgw@linux.intel.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>meta: replace os.system with subprocess.call</title>
<updated>2012-05-30T11:04:45+00:00</updated>
<author>
<name>Robert Yang</name>
<email>liezhi.yang@windriver.com</email>
</author>
<published>2012-05-29T14:53:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=e40995e569289598a1d9d71e19734402f2b54718'/>
<id>urn:sha1:e40995e569289598a1d9d71e19734402f2b54718</id>
<content type='text'>
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 &lt;liezhi.yang@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: Make sure we don't have an empty fixmepath file</title>
<updated>2012-05-18T14:25:13+00:00</updated>
<author>
<name>Mark Hatle</name>
<email>mark.hatle@windriver.com</email>
</author>
<published>2012-05-18T14:18:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=f24d8df3af52e2a2911233746ad69f8899bbdf93'/>
<id>urn:sha1:f24d8df3af52e2a2911233746ad69f8899bbdf93</id>
<content type='text'>
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 &lt;mark.hatle@windriver.com&gt;
Signed-off-by: Jason Wessel &lt;jason.wessel@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>meta/classes/sstate.bbclass: ensure sstate files have group R/W</title>
<updated>2012-05-17T20:13:08+00:00</updated>
<author>
<name>Joshua Lock</name>
<email>josh@linux.intel.com</email>
</author>
<published>2012-05-12T01:22:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=441c1f8faa82a5ff410a395d9086578f6ac8a93b'/>
<id>urn:sha1:441c1f8faa82a5ff410a395d9086578f6ac8a93b</id>
<content type='text'>
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 &lt;josh@linux.intel.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: Optimize the generation and install path fixups</title>
<updated>2012-05-15T18:06:06+00:00</updated>
<author>
<name>Mark Hatle</name>
<email>mark.hatle@windriver.com</email>
</author>
<published>2012-05-11T17:17:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=75fcc7c806004176dd6a981d9e318e220d605a7d'/>
<id>urn:sha1:75fcc7c806004176dd6a981d9e318e220d605a7d</id>
<content type='text'>
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 &lt;mark.hatle@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: Improve sstate_installpkg performance</title>
<updated>2012-05-11T17:00:27+00:00</updated>
<author>
<name>Mark Hatle</name>
<email>mark.hatle@windriver.com</email>
</author>
<published>2012-05-10T23:13:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=b85bbc52d33e9fd7435ad217eddc750cb132053f'/>
<id>urn:sha1:b85bbc52d33e9fd7435ad217eddc750cb132053f</id>
<content type='text'>
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 &lt;mark.hatle@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
