diff options
author | Khem Raj <raj.khem@gmail.com> | 2010-07-03 21:07:32 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2010-07-05 14:16:20 -0700 |
commit | 5ac52371b09a25518b60e23e80c8c812cdea6e36 (patch) | |
tree | fde84a195cb872bfad8de361eccb4f3ab3ca7207 /classes/base.bbclass | |
parent | 58a3ac2a163ef62984cb2a9d68f9dad2f4e3283d (diff) |
base.bbclass: Fix oe_unpack_file to unpack files to match new bitbake bb.decodeurl()
* This patch now uses the path which essentially is the path and
filename relative to recipe dir. It will create the directories
as expected. Suppose if the is says file://pam.d/login in the
SRC_URI then it will be copied to $WORKDIR/pam.d/login as it
was happening before the fix to decodeurl in bitbake.
* Do not copy the .patch and .diff files into $WORKDIR
they are already symlinked in patches/ dir which will
be used by quilt.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Roman I Khimov <khimov@altell.ru>
Acked-by: Chris Larson <clarson@kergoth.com>
Diffstat (limited to 'classes/base.bbclass')
-rw-r--r-- | classes/base.bbclass | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index 3995ac894a..2da0b7a67d 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -177,6 +177,7 @@ def oe_unpack_file(file, data, url = None): else: efile = file cmd = None + (type, host, path, user, pswd, parm) = bb.decodeurl(url) if file.endswith('.tar'): cmd = 'tar x --no-same-owner -f %s' % file elif file.endswith('.tgz') or file.endswith('.tar.gz') or file.endswith('.tar.Z'): @@ -193,10 +194,12 @@ def oe_unpack_file(file, data, url = None): cmd = 'xz -dc %s > %s' % (file, efile) elif file.endswith('.zip') or file.endswith('.jar'): cmd = 'unzip -q -o' - (type, host, path, user, pswd, parm) = bb.decodeurl(url) if 'dos' in parm: cmd = '%s -a' % cmd cmd = "%s '%s'" % (cmd, file) + elif (type == "file" and file.endswith('.patch') or file.endswith('.diff')) and parm.get('apply') != 'no': + # patch and diff files are special and need not be copied to workdir + cmd = "" elif os.path.isdir(file): destdir = "." filespath = bb.data.getVar("FILESPATH", data, 1).split(":") @@ -212,28 +215,23 @@ def oe_unpack_file(file, data, url = None): cmd = 'cp -pPR %s %s/%s/' % (file, os.getcwd(), destdir) else: - (type, host, path, user, pswd, parm) = bb.decodeurl(url) if not 'patch' in parm and parm.get('apply') != 'yes': # The "destdir" handling was specifically done for FILESPATH # items. So, only do so for file:// entries. if type == "file": - destdir = bb.decodeurl(url)[1] or "." + dest = os.path.dirname(path) or "." else: - destdir = "." - bb.mkdirhier("%s/%s" % (os.getcwd(), destdir)) - cmd = 'cp %s %s/%s/' % (file, os.getcwd(), destdir) - + dest = "." + bb.mkdirhier("%s" % os.path.join(os.getcwd(),dest)) + cmd = 'cp %s %s' % (file, os.path.join(os.getcwd(), dest)) if not cmd: return True - - dest = os.path.join(os.getcwd(), os.path.basename(file)) + dest = os.path.join(os.getcwd(), path) if os.path.exists(dest): if os.path.samefile(file, dest): return True - # Change to subdir before executing command save_cwd = os.getcwd(); - parm = bb.decodeurl(url)[5] if 'subdir' in parm: newdir = ("%s/%s" % (os.getcwd(), parm['subdir'])) bb.mkdirhier(newdir) |