<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/bitbake/lib/bb/data_smart.py, branch honister-3.4</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=honister-3.4</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=honister-3.4'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2021-09-21T22:44:08+00:00</updated>
<entry>
<title>bitbake: data_smart: Don't add None to ExpansionError varlist</title>
<updated>2021-09-21T22:44:08+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-09-20T17:01:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=81ace08c7fa717337aa46e25d6f746965a8dca1e'/>
<id>urn:sha1:81ace08c7fa717337aa46e25d6f746965a8dca1e</id>
<content type='text'>
If a "None" value gets into the varlist, it doesn't display properly.
Ensure we don't add one to have the exception display properly.

(Bitbake rev: ee26e258888114143e66330c256b5bfe7d071c53)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: bitbake: adjust parser error check for python 3.10 compatibility</title>
<updated>2021-09-17T06:26:24+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2021-09-16T20:22:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=97dc3ef38631627fa0a12c398ea708ed1b5bf759'/>
<id>urn:sha1:97dc3ef38631627fa0a12c398ea708ed1b5bf759</id>
<content type='text'>
The change was introduced in
https://github.com/python/cpython/commit/a698d52c3975c80b45b139b2f08402ec514dce75

(Bitbake rev: 8d3c6cbbe6ee734495713ae3b99c609527842506)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: bitbake: correct the collections vs collections.abc deprecation</title>
<updated>2021-09-17T06:26:23+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2021-09-16T20:22:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=5c24982cc935488535251237f9e2fd097a134112'/>
<id>urn:sha1:5c24982cc935488535251237f9e2fd097a134112</id>
<content type='text'>
This becomes a hard error in python 3.10.

(Bitbake rev: ae219e1f7460077f4492b31ac91cef4cf9b17277)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: data_smart: Improve error display for handled exceptions</title>
<updated>2021-09-11T21:39:19+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-09-10T13:49:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=d0389d202c9f14a21d83ec322a42448fcd663087'/>
<id>urn:sha1:d0389d202c9f14a21d83ec322a42448fcd663087</id>
<content type='text'>
We don't need tracebacks for BBHandledException. Reduces confusing output like:

ERROR: /meta/recipes-core/images/core-image-tiny-initramfs.bb: Circular task dependencies as do_image_complete depends itself via the chain do_image_complete -&gt; do_packageswu -&gt; do_image_qa -&gt; do_image -&gt; do_image_cpio
ERROR: ExpansionError during parsing /meta/recipes-core/images/core-image-tiny-initramfs.bb
Traceback (most recent call last):
  File "/bitbake/lib/bb/build.py", line 1050, in follow_chain(task='do_image_qa', endtask='do_build', chain=['do_image_complete', 'do_packageswu', 'do_image_qa', 'do_image', 'do_image_cpio']):
                     if task in deps:
    &gt;                    follow_chain(othertask, endtask, chain)
             chain.pop()
  File "/bitbake/lib/bb/build.py", line 1050, in follow_chain(task='do_image', endtask='do_build', chain=['do_image_complete', 'do_packageswu', 'do_image_qa', 'do_image', 'do_image_cpio']):
                     if task in deps:
    &gt;                    follow_chain(othertask, endtask, chain)
             chain.pop()
  File "/bitbake/lib/bb/build.py", line 1050, in follow_chain(task='do_image_cpio', endtask='do_build', chain=['do_image_complete', 'do_packageswu', 'do_image_qa', 'do_image', 'do_image_cpio']):
                     if task in deps:
    &gt;                    follow_chain(othertask, endtask, chain)
             chain.pop()
  File "/bitbake/lib/bb/build.py", line 1038, in follow_chain(task='do_image_complete', endtask='do_build', chain=['do_image_complete', 'do_packageswu', 'do_image_qa', 'do_image', 'do_image_cpio']):
             if task in chain:
    &gt;            bb.fatal("Circular task dependencies as %s depends itself via the chain %s?!" % (task, " -&gt; ".join(chain)))
             chain.append(task)
  File "/bitbake/lib/bb/__init__.py", line 165, in fatal:
         mainlogger.critical(''.join(args), extra=kwargs)
    &gt;    raise BBHandledException()

to the real error:

ERROR: /media/build1/poky/meta/recipes-core/images/core-image-tiny-initramfs.bb: Circular task dependencies as do_image_complete depends itself via the chain do_image_complete -&gt; do_packageswu -&gt; do_image_qa -&gt; do_image -&gt; do_image_cpio

(Bitbake rev: 551d4c0576a0a0c3406000029df9238b312f2263)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: data_smart: Make ExpansionErrors more readable</title>
<updated>2021-09-11T21:39:19+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-09-10T13:20:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=3a737a783cedd128ae8c8b1c4f55642b9a5691ae'/>
<id>urn:sha1:3a737a783cedd128ae8c8b1c4f55642b9a5691ae</id>
<content type='text'>
This adds context to ExpansionError messages which show the variable chain for which
expansion is being attempted. This should allow users to debug the issues more easily
than the current message (the first line alone below). Example output from a
SRC_URI which references ${S}:

bb.data_smart.ExpansionError: Failure expanding variable PV, expression was 0.1+git${SRCPV} which triggered exception RecursionError: maximum recursion depth exceeded while calling a Python object
The variable dependency chain for the failure is: PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV -&gt; PV -&gt; WORKDIR -&gt; S -&gt; SRC_URI -&gt; SRCPV
-&gt; PV -&gt; BP -&gt; FILESPATH

which is more useful that no output. We could truncate at repetition but I suspect
this makes this clearer as it stands so there is little value in complicating the code.

(Bitbake rev: 699634bec47964fa7ab18689dc23db6f0bc22fb3)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: data_smart: Fix inactive overide accidental variable value corruption</title>
<updated>2021-08-04T09:38:43+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-08-02T15:33:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=92d8bd0eb5f7fc14c7e77d7f8e09f94929a15337'/>
<id>urn:sha1:92d8bd0eb5f7fc14c7e77d7f8e09f94929a15337</id>
<content type='text'>
Setting something like:

  BAR:append:unusedoverride

should cause BAR to be None, not "" which was what the datastore was
returning. This caused problems when mixing variables like:

  RDEPENDS:${PN}:inactiveoverride
  RDEPENDS:${BPN}

since key expansion would report key overlap when there was none. This
is a bug in the datastore. Fix it and add a test too.

[YOCTO #14088]

(Bitbake rev: 699e36c270d863258502d315ed00a1b940bfbf96)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: bitbake: Switch to using new override syntax</title>
<updated>2021-08-02T14:44:10+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-07-25T21:23:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=2abf8a699edd513405befbd1a0eafc8f55d6b514'/>
<id>urn:sha1:2abf8a699edd513405befbd1a0eafc8f55d6b514</id>
<content type='text'>
This change updates the datastore to use the new override syntax using
colons instead of underscores exclusively. It is expected layers would
have to be converted to work with bitbake after this change.

Supporting mixed syntax isn't possible, it is only feasible to have
one internal representation of overrides.

Whilst we can't warn for every possible override that may be set in the
old format, show errors for _append/_prepend/_remove since those should
never be present.

(Bitbake rev: 7dcf317cc141dc980634f8c18bfa84f83e57206a)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: data_smart: Allow colon in variable expansion regex</title>
<updated>2021-07-29T22:21:24+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-07-28T10:52:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=d41af446febd516f14f26db53e6572d9eae35b1e'/>
<id>urn:sha1:d41af446febd516f14f26db53e6572d9eae35b1e</id>
<content type='text'>
Now that ":" is a valid character in variable key names, it needs to be
allowed by the variable expansion code too, to match.

(Bitbake rev: 019251649a38754d5877759d13b664e28dea77de)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: data_smart/parse: Allow ':' characters in variable/function names</title>
<updated>2021-07-20T17:59:18+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2021-07-18T11:59:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=75fad23fc06c008a03414a1fc288a8614c6af9ca'/>
<id>urn:sha1:75fad23fc06c008a03414a1fc288a8614c6af9ca</id>
<content type='text'>
It is becomming increasingly clear we need to find a way to show what
is/is not an override in our syntax. We need to do this in a way which
is clear to users, readable and in a way we can transition to.

The most effective way I've found to this is to use the ":" charater
to directly replace "_" where an override is being specified. This
includes "append", "prepend" and "remove" which are effectively special
override directives.

This patch simply adds the character to the parser so bitbake accepts
the value but maps it back to "_" internally so there is no behaviour
change.

This change is simple enough it could potentially be backported to older
version of bitbake meaning layers using the new syntax/markup could
work with older releases. Even if other no other changes are accepted
at this time and we don't backport, it does set us on a path where at
some point in future we could
require a more explict syntax.

I've tested this patch by converting oe-core/meta-yocto to the new
syntax for overrides (9000+ changes) and then seeing that builds
continue to work with this patch.

(Bitbake rev: 0dbbb4547cb2570d2ce607e9a53459df3c0ac284)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: data_smart: Ensure hash reflects vardepvalue flags correctly</title>
<updated>2020-12-19T17:18:07+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2020-12-16T23:38:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=65e67f40280aee4aa5ec454dbdeeac54fae0adf9'/>
<id>urn:sha1:65e67f40280aee4aa5ec454dbdeeac54fae0adf9</id>
<content type='text'>
The get_hash() function is used to decide if the base configuration has changed
and hence whether a reparse is required. The vardepvalue flag's value was not
expanded but it is often used in contexts like:

METADATA_REVISION = "${@base_detect_revision(d)}"
METADATA_REVISION[vardepvalue] = "${METADATA_REVISION}"

which in it's unexpanded form means reparsing doesn't happen when it should
as the data appears unchanged. Update get_hash to expand the values of
vardepvalue so reparsing works as expected. This avoids basehash mismatch
errors such as the one recently caused by using METADATA_REVISION in poky.conf's
DISTRO_VERSION variable. The issue there could be exposed by a recipe using
DISTRO_VERSION with the sequence:

bitbake os-release
&lt;change the revision of the metadata with a dummy commit&gt;
bitbake os-release -C install

which was caused because METADATA_REVISION changed but the metadata didn't reparse.

(Bitbake rev: 26ccf1575aef2d6e2d7717d3bd10b1ed0d5a777d)

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