<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/meta/classes/sstate.bbclass, branch uninative-2.10</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=uninative-2.10</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=uninative-2.10'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2020-11-24T15:53:07+00:00</updated>
<entry>
<title>uninative: Don't use single sstate for pseudo-native</title>
<updated>2020-11-24T15:53:07+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2020-11-21T16:16:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=3ecf5d9692fec97b37af6a4e6c747a4e2c2ca292'/>
<id>urn:sha1:3ecf5d9692fec97b37af6a4e6c747a4e2c2ca292</id>
<content type='text'>
pseudo-native is a bit special. It conditionally compiles in support for
xattr, statx and statvfs amongst other options. If a pseudo-native binary is
used on a system where these functions are present but it wasn't compiled in
we see hard to debug permissions problems.

An example is the devtool.DevtoolExtractTests.test_devtool_deploy_target
oe-selftest which shows a cryptic error:

  File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/meta/lib/oeqa/selftest/cases/devtool.py", line 1388, in test_devtool_deploy_target
    self.assertEqual(filelist1, filelist2)
  File "/usr/lib64/python3.9/unittest/case.py", line 831, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/usr/lib64/python3.9/unittest/case.py", line 1037, in assertListEqual
    self.assertSequenceEqual(list1, list2, msg, seq_type=list)
  File "/usr/lib64/python3.9/unittest/case.py", line 1019, in assertSequenceEqual
    self.fail(msg)
  File "/usr/lib64/python3.9/unittest/case.py", line 670, in fail
    raise self.failureException(msg)

AssertionError: Lists differ: ['-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8'] != ['-rwxr-xr-x root root /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8']

First differing element 0:
'-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor'
'-rwxr-xr-x root root /etc/init.d/mdmonitor'

This is due to a version of pseudo without statx being used on a system where
ls uses statx, hence the files are displayed as 6000.6000 instead of root.root.

Avoid this by always building pseudo-native for the specific distro in question rather
than using a universal sstate feed.

This hopefully fixes one of the mysterious AB-INT issues.

(From OE-Core rev: 6e3785a3f1f3cf68f5fe101cd6bebe91db165973)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate: set mode explicitly when creating directories in sstate-cache</title>
<updated>2020-09-30T14:01:51+00:00</updated>
<author>
<name>Ross Burton</name>
<email>ross@burtonini.com</email>
</author>
<published>2020-09-28T16:19:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=20d9825ed61bd682ad9a11dc85bc15f767b19eb1'/>
<id>urn:sha1:20d9825ed61bd682ad9a11dc85bc15f767b19eb1</id>
<content type='text'>
When creating directories in the sstate-cache, explicitly set the mode
passed to mkdir to 0775 so that the directories are group writable, as
otherwise they cannot be shared with other users.

(From OE-Core rev: 1b0624dffe1b8496533c86dfed873112c8c0a01b)

Signed-off-by: Ross Burton &lt;ross.burton@arm.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: Check file ownership before doing 'touch -a'</title>
<updated>2020-09-28T13:15:48+00:00</updated>
<author>
<name>Norman Stetter</name>
<email>norman.stetter@garz-fricke.com</email>
</author>
<published>2020-09-25T11:49:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=0679d0b8592113c1c1b2804f4ce2de03bb7bb68b'/>
<id>urn:sha1:0679d0b8592113c1c1b2804f4ce2de03bb7bb68b</id>
<content type='text'>
In contrast to 'touching' a file without parameters 'touch -a' can only be
performed by the file owner. In case of a shared sstate-cache served
locally (e.g. over NFS),  where the user running bitbake is not the
owner of sstate-cache files, even if he has write access on group level,
the sstate_unpack_package task will fail.
Checking if the file is owned by the user before attempting to run
'touch -a' on it solves this.

(From OE-Core rev: f1554e8bd40c640fd58daac18ecf7b458e754109)

Signed-off-by: Norman Stetter &lt;norman.stetter@garz-fricke.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: When siginfo or sig files are missing, stop fetcher errors</title>
<updated>2020-05-30T11:32:48+00:00</updated>
<author>
<name>Mark Hatle</name>
<email>mark.hatle@xilinx.com</email>
</author>
<published>2020-05-13T16:12:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=73f35492b7d8120429b9ff842105c03c5a0b11db'/>
<id>urn:sha1:73f35492b7d8120429b9ff842105c03c5a0b11db</id>
<content type='text'>
Prior to fetching, the system checks if the sstate file is present
either locally or on the mirror.  If it is, then it goes to the fetch
stage.  Up to three files can be fetched, sstate, sstate.siginfo and
sstate.sig (if signature validation is enabled).

The previous pstaging_fetch function would iterate over these, and if
a download error occurred would spew forth a great amount of fetcher
failure messages as well as stop fetching the next item in the set.

This was resolved by adding a fetcher.checkstatus() call prior to
the download.  If the file isn't present, then the exception will
be triggered, and no fetcher failure messages will reach the user.

The exception handler is then modified to be a pass so that it will
loop and pull the rest of the files that that are requested.

Additionally, a check for the existance of the .sig file was added
to the sstate_installpkg to avoid an error trying to load the .sig
if it wasn't downloaded.

(From OE-Core rev: a9085140434e2d26c0bb75bb53fcb7f7c19ef86d)

Signed-off-by: Mark Hatle &lt;mark.hatle@xilinx.com&gt;
Signed-off-by: Mark Hatle &lt;mark.hatle@kernel.crashing.org&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: Do not fail if files cannot be touched</title>
<updated>2020-05-09T17:57:21+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>peter.kjellerstedt@axis.com</email>
</author>
<published>2020-04-30T17:49:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1f1650e5d879fde962fdfb5786784a8e9b21a3b1'/>
<id>urn:sha1:1f1650e5d879fde962fdfb5786784a8e9b21a3b1</id>
<content type='text'>
It may be that a file is not allowed to be touched, e.g., if it is a
symbolic link into a global sstate cache served over NFS.

(From OE-Core rev: 462e3f505217c9b9e0d2c1cbdafb0c8910bb6a59)

Signed-off-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate: Drop obsolete check in hash validation</title>
<updated>2020-03-06T17:14:04+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2020-03-05T15:27:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=67511eda71affb6a0c9bfab37f59a53d35ac30c0'/>
<id>urn:sha1:67511eda71affb6a0c9bfab37f59a53d35ac30c0</id>
<content type='text'>
Now this function has a summary parameter we can drop this check.

It could well be why the mysterious "locked sigs" selftest fails
intermittently if this function were called with a single hash
to check.

[YOCTO #13605] (with luck)

(From OE-Core rev: 02aabe0e59f73bf206d9bada1e7089832ceed254)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: fix issue while handling long sstate filenames</title>
<updated>2020-02-08T13:20:02+00:00</updated>
<author>
<name>Jaewon Lee</name>
<email>jaewon.lee@xilinx.com</email>
</author>
<published>2020-02-06T21:45:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=ed4bdd0f9149ba24fac375fd3af8bb2a06423105'/>
<id>urn:sha1:ed4bdd0f9149ba24fac375fd3af8bb2a06423105</id>
<content type='text'>
When moving to python3, divison using '/' now returns float instead of
an integer. In upstream commit b8025e972081b70960ffcbcbe43a7118041556a1
sstate filenames longer than the limit are changed to just include
necessary info + 3 fields just for information. The space left over
after the necessary info is divided into 3 for each of the fields.
Using '//' instead to do the division to solve the following error
message:

avail = (254 - len(hash + "_" + taskname + extension) -
len(components[0]) - len(components[1]) - len(components[5]) -
len(components[6]) - 7) / 3
    &gt;        components[2] = components[2][:avail]
             components[3] = components[3][:avail]
TypeError: slice indices must be integers or None or have an __index__
method

(From OE-Core rev: 2acfee61a062c6520a413b2a797544d968bb0c76)

Signed-off-by: Jaewon Lee &lt;jaewon.lee@xilinx.com&gt;
Signed-off-by: Mark Hatle &lt;mark.hatle@xilinx.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate.bbclass: Only show sstate mirror progress bar for &gt;= 100 objects</title>
<updated>2020-01-27T16:48:08+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>pkj@axis.com</email>
</author>
<published>2020-01-11T03:28:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1444b8a2ae226829e719d3d184fca27e5940ae0d'/>
<id>urn:sha1:1444b8a2ae226829e719d3d184fca27e5940ae0d</id>
<content type='text'>
With the introduction of the hash equivalence server, the progress bar
for "Checking sstate mirror object availability" is shown
repeatedly. Most of the times the number of objects scanned is very
low and the progress bar completes almost immediately. To avoid all
these unnecessary progress bars, set the minimum number of objects to
100 before the progress bar is shown.

(From OE-Core rev: 114340e8d393cf60d0a596cb0800cf1b7fd198df)

Signed-off-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Signed-off-by: Ross Burton &lt;ross.burton@intel.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate: Improve move into place op and touch file</title>
<updated>2020-01-13T13:07:01+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2019-12-12T22:58:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=3a83fec8142741d79c3462255847e5aa0e5d47fd'/>
<id>urn:sha1:3a83fec8142741d79c3462255847e5aa0e5d47fd</id>
<content type='text'>
Depending on the kernel and coreutils version, mv operations test for existence
of files and can potentially race. It also leads to the file always changing which
leads to potential problems if using and NFS share and there are other readers.

Using ln instead means we don't overwrite the file if it already exists meaning
other readers aren't disrupted and should work more reliably on NFS which is used
for sstate on the autobuilder.

Since we're not overwriting files, touch the file to show activity as would have
been done it it were reused from sstate.

(From OE-Core rev: d8e9a22a4e23616ad01627c1e472296b1e26f13c)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sstate: Avoid races over rewritten siginfo files</title>
<updated>2020-01-06T23:54:39+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2020-01-06T10:08:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=3b3ef106a29296fecf888e573787281a193c6b6f'/>
<id>urn:sha1:3b3ef106a29296fecf888e573787281a193c6b6f</id>
<content type='text'>
Try and avoid errors like:

Exception: bb.process.ExecutionError: Execution of 'build/tmp/work/x86_64-linux/libxslt-native/1.1.34-r0/temp/run.sstate_unpack_package.12343' failed with exit code 1:
touch: setting times of 'build/sstate_devtool/80/4d/sstate:libxslt-native::1.1.34:r0::3:804d33f3f8d032b01ae92207669dd0a8f95a84917d563d122a77df19e786d73c_populate_lic.tgz.siginfo': Stale file handle
WARNING: exit code 1 from a shell command.

by not overwriting existing files.

(From OE-Core rev: b2a389ad5111d587db3f95c6ce13fc2eafc22f27)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
