mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 17:19:20 +00:00
package: Fix race between do_package and do_packagedata
do_package has PKGDESTWORK as a cleandir and do_packagedata has it as an sstate-input dir. This means do_package wipes out the directory at both do_package and do_package_setscene. do_package_setscene and do_packagedata_setscene can run in parallel when installing from sstate which means they can wipe out parts of each other leading to interesting build failures. We therefore have to add in a hardlink copy so that the directories can work independently of each other. (From OE-Core rev: 692b2046bb60806ee6bbde6ba15bd1637b00efb1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -2252,14 +2252,18 @@ python do_package_setscene () {
|
||||
}
|
||||
addtask do_package_setscene
|
||||
|
||||
do_packagedata () {
|
||||
:
|
||||
# Copy from PKGDESTWORK to tempdirectory as tempdirectory can be cleaned at both
|
||||
# do_package_setscene and do_packagedata_setscene leading to races
|
||||
python do_packagedata () {
|
||||
src = d.expand("${PKGDESTWORK}")
|
||||
dest = d.expand("${WORKDIR}/pkgdata-pdata-input")
|
||||
oe.path.copyhardlinktree(src, dest)
|
||||
}
|
||||
|
||||
addtask packagedata before do_build after do_package
|
||||
|
||||
SSTATETASKS += "do_packagedata"
|
||||
do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}"
|
||||
do_packagedata[sstate-inputdirs] = "${WORKDIR}/pkgdata-pdata-input"
|
||||
do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}"
|
||||
do_packagedata[stamp-extra-info] = "${MACHINE_ARCH}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user