archiver: don't change directory when generating tarball

Message ID 1481232723-12285-1-git-send-email-ross.burton@intel.com
State Accepted
Commit d0b282bce34db44dde4dd7f53a64dfaafe6789de
Headers show

Commit Message

Ross Burton Dec. 8, 2016, 9:32 p.m.
There's no need to chdir() as tarfile.add() can be told what name to use in the
archive.

Signed-off-by: Ross Burton <ross.burton@intel.com>

---
 meta/classes/archiver.bbclass | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

-- 
2.8.1

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index 9239983..3543ca9 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -125,7 +125,7 @@  python () {
 # (e.g. git repositories) is "unpacked" and then put into a tarball.
 python do_ar_original() {
 
-    import shutil, tarfile, tempfile
+    import shutil, tempfile
 
     if d.getVarFlag('ARCHIVER_MODE', 'src', True) != "original":
         return
@@ -261,13 +261,9 @@  def create_tarball(d, srcdir, suffix, ar_outdir):
         filename = '%s.tar.gz' % d.getVar('PF', True)
     tarname = os.path.join(ar_outdir, filename)
 
-    srcdir = srcdir.rstrip('/')
-    dirname = os.path.dirname(srcdir)
-    basename = os.path.basename(srcdir)
-    os.chdir(dirname)
     bb.note('Creating %s' % tarname)
     tar = tarfile.open(tarname, 'w:gz')
-    tar.add(basename)
+    tar.add(srcdir, arcname=os.path.basename(srcdir))
     tar.close()
 
 # creating .diff.gz between source.orig and source