]> code.ossystems Code Review - openembedded-core.git/commit
package: Build pkgdata specific to the current recipe
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 28 Jun 2019 15:45:53 +0000 (16:45 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 30 Jun 2019 13:50:06 +0000 (14:50 +0100)
commit1951132576bfb95675b4879287f8b3b7c47524fa
tree7399cf7f549e27d0b270d0fb15de96abc1db7cbf
parent288b04c8a31fcf257219a57e23663b74178c75f2
package: Build pkgdata specific to the current recipe

This switches the code to build pkgdata specific to the current recipe
which means that its filtered to the recipes dependencies and can perform
better as we can drop the lockfile.

It uses a similar method to the staging code to do this, using BB_TASKDEPDATA
to construct a list of packagedata task output which this recipe should "see".

The original pkgdata store is left unaltered so existing code works.

The lock file was there to prevent files disappearing as they were read or as
directories were listed. Since we have a copy of the data and only access output
from completed tasks (as per their manifests), we can remove the lock.

The lock was causing starvation issues on systems with parallelism.

There was also a potential determinism problem as the current code could "see"
data from recipes which it doesn't depend upon.

[YOCTO #13412]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package.bbclass
meta/classes/package_pkgdata.bbclass [new file with mode: 0644]
scripts/lib/recipetool/create.py