package.bbclass: Prevent perform_packagecopy from removing /sysroot-only

The files in /sysroot-only are intended to make it into the
recipes sysroot output, but not into the package. However, if
do_package is run before do_populate_sysroot, the files are
removed.

Use a smaller hammer to avoid copying the files into the package so
they are still around when do_populate_sysroot runs.

(From OE-Core rev: acc0a31305cb1f799e8a6b3ea2d2c5ac5a9f67ee)

Signed-off-by: Russ Dill <russ.dill@nikolamotor.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
(cherry picked from commit 493145c6f1bc92ab2b7a23e181641b09df87c9ff)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Russ Dill
2022-04-20 09:03:29 -07:00
committed by Richard Purdie
parent 80adcbf1f4
commit ef36e735ae

View File

@@ -422,7 +422,6 @@ def splitstaticdebuginfo(file, dvar, dv, d):
# return a mapping of files:debugsources
import stat
import shutil
src = file[len(dvar):]
dest = dv["staticlibdir"] + os.path.dirname(src) + dv["staticdir"] + "/" + os.path.basename(src) + dv["staticappend"]
@@ -807,15 +806,10 @@ python perform_packagecopy () {
dest = d.getVar('D')
dvar = d.getVar('PKGD')
# Remove ${D}/sysroot-only if present
sysroot_only = os.path.join(dest, 'sysroot-only')
if cpath.exists(sysroot_only) and cpath.isdir(sysroot_only):
shutil.rmtree(sysroot_only)
# Start by package population by taking a copy of the installed
# files to operate on
# Preserve sparse files and hard links
cmd = 'tar -cf - -C %s -p -S . | tar -xf - -C %s' % (dest, dvar)
cmd = 'tar --exclude=./sysroot-only -cf - -C %s -p -S . | tar -xf - -C %s' % (dest, dvar)
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
# replace RPATHs for the nativesdk binaries, to make them relocatable