[bitbake-devel,master] fetch2: fix unpack of .xz files

Submitted by André Draszik on July 30, 2013, 12:56 p.m. | Patch ID: 54791


Message ID 1375188982-12532-1-git-send-email-andre.draszik@linaro.org
State Accepted
Commit 2cd2d0a48e12ab4358fb967eaf7a56c17993f48d
Headers show

Commit Message

André Draszik July 30, 2013, 12:56 p.m.
If a file ends with .xz, it currently gets overwritten during unpack:
The decompress command for .xz files is:
  'xz -dc %s > %s' % (file, efile)
and as efile == file, we end up overwriting file (the source).

Fix this by adding .xz to the list of suffixes that that need to
be removed from a file name for an extract command, leaving the
bare file name. Now, for a given file foo.xz,
file == foo.xz and efile == foo, similar to how .gz .bz2 and .Z
files are treated.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
 lib/bb/fetch2/__init__.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 6211cd7..451d104 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -1157,7 +1157,7 @@  class FetchMethod(object):
                      (file, urldata.parm.get('unpack')))
         dots = file.split(".")
-        if dots[-1] in ['gz', 'bz2', 'Z']:
+        if dots[-1] in ['gz', 'bz2', 'Z', 'xz']:
             efile = os.path.join(rootdir, os.path.basename('.'.join(dots[0:-1])))
             efile = file