From: Paul Eggleton Date: Mon, 24 Feb 2014 16:05:45 +0000 (+0000) Subject: classes/package_tar: fix conflicts with package_deb / package_ipk X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ae1265809503494f4c5da21c8335cedc3569ba62;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git classes/package_tar: fix conflicts with package_deb / package_ipk Avoid tar noticing that the directory is changing when do_package_write_deb or do_package_write_ipk are running at the same time as do_package_write_tar (because DEBIAN and CONTROL are being added and removed while tar is running so the directory changes). Fixes [YOCTO #5652] (From OE-Core rev: d000761acdb2645ac879d8d9d6b022770545f644) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- diff --git a/meta/classes/package_tar.bbclass b/meta/classes/package_tar.bbclass index 2d6fc8fe215..fed2c28b690 100644 --- a/meta/classes/package_tar.bbclass +++ b/meta/classes/package_tar.bbclass @@ -41,11 +41,12 @@ python do_package_tar () { basedir = os.path.dirname(root) tarfn = localdata.expand("${DEPLOY_DIR_TAR}/${PKG}-${PKGV}-${PKGR}.tar.gz") os.chdir(root) - from glob import glob - if not glob('*'): + dlist = os.listdir(root) + if not dlist: bb.note("Not creating empty archive for %s-%s-%s" % (pkg, localdata.getVar('PKGV', True), localdata.getVar('PKGR', True))) continue - ret = subprocess.call("tar -czf %s %s" % (tarfn, '.'), shell=True) + 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) }