<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/bitbake/lib/bb/tinfoil.py, branch scarthgap-5.0.13</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=scarthgap-5.0.13</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=scarthgap-5.0.13'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2025-01-24T15:59:38+00:00</updated>
<entry>
<title>bitbake: cooker: Make cooker 'skiplist' per-multiconfig/mc</title>
<updated>2025-01-24T15:59:38+00:00</updated>
<author>
<name>Chris Laplante</name>
<email>chris.laplante@agilent.com</email>
</author>
<published>2025-01-07T21:54:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=7aa8128bf1744dc0dd4c68065d19e12c86443c46'/>
<id>urn:sha1:7aa8128bf1744dc0dd4c68065d19e12c86443c46</id>
<content type='text'>
Previously, the cooker skiplist was shared across multiconfigs
(including default ''). If you had a recipe that was incompatible with
several multiconfigs for different reasons, then the displayed reason
(i.e. the "ERROR: Nothing PROVIDES" and "* was skipped" messages) might
vary across invocations of bitbake. This was caused by the random order
in which recipes are parsed under different multiconfig contexts, with
each skip reason overwriting the previously assigned reason.

I hit this specificially when using COMPATIBLE_MACHINE, but
COMPATIBLE_HOST (or anything using bb.parse.SkipRecipe) would have done it too.

(Bitbake rev: 7dde14582bfd104c6da26e3f5ecf2ef37a1494ce)

Signed-off-by: Chris Laplante &lt;chris.laplante@agilent.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
Signed-off-by: Steve Sakoman &lt;steve@sakoman.com&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil: Do not fail when logging is disabled and full config is used</title>
<updated>2023-09-26T09:37:17+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>peter.kjellerstedt@axis.com</email>
</author>
<published>2023-09-25T02:18:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=c7f99d688cd62b9bdfb1724368b96200e98f0426'/>
<id>urn:sha1:c7f99d688cd62b9bdfb1724368b96200e98f0426</id>
<content type='text'>
If Tinfoil is initialized with setup_logging = False and
Tinfoil.prepare() is called with config_only = False, then it fails
because self.localhandlers is only initialized when
setup_logging = True.

This is seen with, e.g., `bitbake-getvar -q -r busybox MACHINE`:

  Traceback (most recent call last):
    File ".../bitbake/bin/bitbake-getvar", line 41, in &lt;module&gt;
      tinfoil.prepare(quiet=2)
    File ".../bitbake/lib/bb/tinfoil.py", line 390, in prepare
      for handler in self.localhandlers:
  AttributeError: 'Tinfoil' object has no attribute 'localhandlers'.
  Did you mean: 'oldhandlers'?

(Bitbake rev: 616101ddb630e2c9975022068b52a87c4cf647f6)

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>bitbake: lib: Drop inotify support and replace with mtime checks</title>
<updated>2023-09-18T10:35:05+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2023-09-16T17:20:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=37c31a5adc26fc947a447ca9eae0983a654d1a33'/>
<id>urn:sha1:37c31a5adc26fc947a447ca9eae0983a654d1a33</id>
<content type='text'>
With the flush in serverlog() removed and a memory resident bitbake with a
60s timeout, the following could fail in strange ways:

rm bitbake-cookerdaemon.log
bitbake-layers add-layer ../meta-virtualization/
bitbake-layers add-layer ../meta-openembedded/meta-oe/
bitbake -m

specifically that it might error adding meta-oe with an error related to meta-virt.

This clearly shows that whilst bblayers.conf was modified, bitbake was not
recognising that. This would fit with the random autobuilder issues seen when
the serverlog flush() call was removed.

The issue appears to be that you have no way to "sync()" the inotify events with
the command stream coming over the socket. There is no way to know if there are
changes in the IO queue which bitbake needs to wait for before proceeding with
the next command.

I did experiment with os.sync() and fsync on the inotify fd, however nothing
addressed the issue. Since it is extremely important we have accurate cache data,
the only realistic thing to do is to switch to stat() calls and check mtime.

For bitbake commands, this is straightforward since we can revalidate the cache
upon new connections/commands. For tinfoil this is problematic and we need to
introduce and explict command "revalidateCaches" that the code can use to force
bitbake to re-check it's cache validity. I've exposed this through tinfoil with
a new "modified_files" function.

So, this patch:

a) drops inotify support within bitbake's cooker/server and switch to using mtime
b) requires a new function call in tinfoil when metadata has been modified

(Bitbake rev: da3ec3801bdb80180b3f1ac24edb27a698415ff7)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil: Don't wait for events indefinitely</title>
<updated>2023-01-11T23:14:48+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2023-01-11T14:31:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=92c0dba45611e33e6e929c5032e35a202a5c32b6'/>
<id>urn:sha1:92c0dba45611e33e6e929c5032e35a202a5c32b6</id>
<content type='text'>
If for some reason the bitbake server dies, we shouldn't loop indefinitely
waiting for events within tinfoil. Add a ping test and exit if things
have somehow failed.

(Bitbake rev: 32da768ae67cfe0b2d154ce4667a7cfdfa5bf4b0)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil: Ensure CommandExit is handled</title>
<updated>2022-12-29T12:49:54+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2022-12-29T11:57:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=4dc7967cf9afdc27e96c05a5ed44870bb70f311a'/>
<id>urn:sha1:4dc7967cf9afdc27e96c05a5ed44870bb70f311a</id>
<content type='text'>
By inspection, tinfoil handles two of the three command exit cases but
one is missing. Add the CommandExit case in case this is the cause of
one of our recipetool/devtool hangs. Regardless, the fix is necessary.

(Bitbake rev: eadddd94835b6b6a8517dfed3d29e6dbb2d35988)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil: Allow run_command not to wait on events</title>
<updated>2022-03-26T09:27:43+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2022-03-24T17:30:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=a10ac380b781073fc995a3ee245d570f7b49055d'/>
<id>urn:sha1:a10ac380b781073fc995a3ee245d570f7b49055d</id>
<content type='text'>
There are some commands where we want to see the events returned so allow
the caller to request this. This also allows us to fix an infamous bug in
the tinfoil testsuite in OE-Core.

(Bitbake rev: 0e8421c41d97d5d50a553d70c8f775d521f1a199)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil: Fix typo "receive" and "something"</title>
<updated>2022-02-20T16:45:25+00:00</updated>
<author>
<name>Zygmunt Krynicki</name>
<email>zygmunt.krynicki@huawei.com</email>
</author>
<published>2022-02-19T16:40:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=aacc9176468c4399a2e34dbfd10f381bbc976a78'/>
<id>urn:sha1:aacc9176468c4399a2e34dbfd10f381bbc976a78</id>
<content type='text'>
(Bitbake rev: 2e0407f6d8fbea22a4bfde124f7665a912482401)

Signed-off-by: Zygmunt Krynicki &lt;zygmunt.krynicki@huawei.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil/data_smart: Allow variable history emit() to function remotely</title>
<updated>2021-04-18T10:38:22+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-04-16T14:45:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=d08d362cf98e9f3b6e99f4f9e33638e1fceffbaf'/>
<id>urn:sha1:d08d362cf98e9f3b6e99f4f9e33638e1fceffbaf</id>
<content type='text'>
We can't access the emit() function of varhistory currently as the datastore parameter
isn't handled correctly, nor is the output stream. Add a custom wrapper for this
function which handles the two details correctly.

(Bitbake rev: ba0fa084ccd2b1ade96425d158fd31e49e42f286)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil: Honor quiet when parsing recipes</title>
<updated>2021-03-11T14:04:45+00:00</updated>
<author>
<name>Manuel Leonhardt</name>
<email>mleonhardt@arri.de</email>
</author>
<published>2021-03-01T19:24:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=e6ec2b4dcc21b89f9c0e80d50c3e0405fb3ecda2'/>
<id>urn:sha1:e6ec2b4dcc21b89f9c0e80d50c3e0405fb3ecda2</id>
<content type='text'>
When using parse_recipes, honor quiet so that scripts and custom plugins
for recipetool are able to mute progress bars from bitbake that would
otherwise print to STDOUT.

(Bitbake rev: ab9d26c4847a062cadaae5fb8caac0ead5f958db)

Signed-off-by: Manuel Leonhardt &lt;mleonhardt@arri.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: tinfoil: When sending commands we need to process events</title>
<updated>2020-10-10T12:37:56+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2020-10-09T16:40:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=ebaa3e3f5140d99ae1d42a69021edda0b6f379e1'/>
<id>urn:sha1:ebaa3e3f5140d99ae1d42a69021edda0b6f379e1</id>
<content type='text'>
The server may be displaying useful information for the user through log
messages so we should display anything that has been sent. Its either this
or expecting every UI to implement this code around every command call
which isn't good API.

[YOCTO #14054]

(Bitbake rev: 64ae9d7e2fad804dd9e12706c6d76b4b22f9586b)

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