diff options
author | Dengke Du <dengke.du@windriver.com> | 2016-11-21 17:31:28 +0800 |
---|---|---|
committer | Dengke Du <dengke.du@windriver.com> | 2016-11-24 10:30:38 +0800 |
commit | 7221ce1bca413a4e650d5d5882b1e496476e4ebc (patch) | |
tree | 855dd2d932e4931c5ae3d58de79403a52aa2dd65 | |
parent | 12a0ee049e453b6d0d2ce2f3fa981d1b6e02bd78 (diff) | |
download | openembedded-core-contrib-7221ce1bca413a4e650d5d5882b1e496476e4ebc.tar.gz |
archiver.bbclass: fix can't create diff tarballdengke/fix-can-not-create-diff-tarball
When enable:
ARCHIVER_MODE[src] = "configured"
ARCHIVER_MODE[diff] = "1"
There is no "diff" tarball created, just "configured" tarball created, in log
file: log.do_unpack_and_patch, it said that directory doesn't exist.
This is because when enable "diff" and "configured", system use create_diff_gz and
do_ar_configured function respectively.
In do_ar_configured function, it use create_tarball function, and the create_tarball
use the function:
bb.utils.mkdirhier(ar_outdir)
So when creating "configured" tarball, there was no "directory doesn't exist" problem
and it was created successfully.
In create_diff_gz function, it didn't create the directory "ar_outdir", so it can't create
"diff" tarball, and throw the problem that directory doesn't exit.
So we should add the
bb.utils.mkdirhier(ar_outdir)
to function create_diff_gz in archiver.bbclass.
Signed-off-by: Dengke Du <dengke.du@windriver.com>
-rw-r--r-- | meta/classes/archiver.bbclass | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass index 9239983e8f..abe6f2b3cf 100644 --- a/meta/classes/archiver.bbclass +++ b/meta/classes/archiver.bbclass @@ -290,6 +290,7 @@ def create_diff_gz(d, src_orig, src, ar_outdir): dirname = os.path.dirname(src) basename = os.path.basename(src) os.chdir(dirname) + bb.utils.mkdirhier(ar_outdir) out_file = os.path.join(ar_outdir, '%s-diff.gz' % d.getVar('PF', True)) diff_cmd = 'diff -Naur %s.orig %s.patched | gzip -c > %s' % (basename, basename, out_file) subprocess.call(diff_cmd, shell=True) |