mirror of
https://git.yoctoproject.org/poky
synced 2026-02-14 20:53:03 +01:00
As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. (From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
78 lines
2.1 KiB
Plaintext
78 lines
2.1 KiB
Plaintext
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
inherit package
|
|
|
|
IMAGE_PKGTYPE ?= "tar"
|
|
|
|
python do_package_tar () {
|
|
import subprocess
|
|
|
|
oldcwd = os.getcwd()
|
|
|
|
workdir = d.getVar('WORKDIR')
|
|
if not workdir:
|
|
bb.error("WORKDIR not defined, unable to package")
|
|
return
|
|
|
|
outdir = d.getVar('DEPLOY_DIR_TAR')
|
|
if not outdir:
|
|
bb.error("DEPLOY_DIR_TAR not defined, unable to package")
|
|
return
|
|
|
|
dvar = d.getVar('D')
|
|
if not dvar:
|
|
bb.error("D not defined, unable to package")
|
|
return
|
|
|
|
packages = d.getVar('PACKAGES')
|
|
if not packages:
|
|
bb.debug(1, "PACKAGES not defined, nothing to package")
|
|
return
|
|
|
|
pkgdest = d.getVar('PKGDEST')
|
|
|
|
bb.utils.mkdirhier(outdir)
|
|
bb.utils.mkdirhier(dvar)
|
|
|
|
for pkg in packages.split():
|
|
localdata = bb.data.createCopy(d)
|
|
root = "%s/%s" % (pkgdest, pkg)
|
|
|
|
overrides = localdata.getVar('OVERRIDES', False)
|
|
localdata.setVar('OVERRIDES', '%s:%s' % (overrides, pkg))
|
|
|
|
bb.utils.mkdirhier(root)
|
|
basedir = os.path.dirname(root)
|
|
tarfn = localdata.expand("${DEPLOY_DIR_TAR}/${PKG}-${PKGV}-${PKGR}.tar.gz")
|
|
os.chdir(root)
|
|
dlist = os.listdir(root)
|
|
if not dlist:
|
|
bb.note("Not creating empty archive for %s-%s-%s" % (pkg, localdata.getVar('PKGV'), localdata.getVar('PKGR')))
|
|
continue
|
|
args = "tar -cz --exclude=CONTROL --exclude=DEBIAN -f".split()
|
|
ret = subprocess.call(args + [tarfn] + dlist)
|
|
if ret != 0:
|
|
bb.error("Creation of tar %s failed." % tarfn)
|
|
|
|
os.chdir(oldcwd)
|
|
}
|
|
|
|
python () {
|
|
if d.getVar('PACKAGES') != '':
|
|
deps = ' tar-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot'
|
|
d.appendVarFlag('do_package_write_tar', 'depends', deps)
|
|
d.setVarFlag('do_package_write_tar', 'fakeroot', "1")
|
|
}
|
|
|
|
|
|
python do_package_write_tar () {
|
|
bb.build.exec_func("read_subpackage_metadata", d)
|
|
bb.build.exec_func("do_package_tar", d)
|
|
}
|
|
do_package_write_tar[dirs] = "${D}"
|
|
addtask package_write_tar before do_build after do_packagedata do_package
|