bitbake: runqueue.py: Allow recrdeptasks that have self references
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 2 Jul 2012 12:29:53 +0000 (13:29 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 4 Jul 2012 13:48:14 +0000 (14:48 +0100)
commita232b16b7dbcc9ccaf0f0274f8e072a9f4453a1b
tree7ce01d055d52939caefa150221632bf22293a548
parent87b065bdd997f31a8d6c9dbddcf1e9a708119b5c
bitbake: runqueue.py: Allow recrdeptasks that have self references

In some cases we want to pull in DEPENDS and RDEPENDS of recrdeptask
dependencies but we need a way to trigger or avoid this behaviour
depending on context. The logical syntax to trigger such behaviour
would be a self referencing recrdeptask:

do_a[recrdeptask] = "do_a do_b"

The dependency chains already recurse this kind of expression correctly, the
missing piece is to avoid any circular reference errors. Since the dependencies
have already been recursively resolved, simply removing any recrdeptask
references is enough to break the circular references.

This patch therefore removes any circular references using the set
difference_update() operator. There will be metadata tweaks required to
add any references needed to the extra taskname.

(Bitbake rev: a5324da9b8a0c9307a6c511ea9009f34be70c92b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/runqueue.py