aboutsummaryrefslogtreecommitdiffstats
path: root/classes/base.bbclass
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2010-07-03 21:07:32 -0700
committerKhem Raj <raj.khem@gmail.com>2010-07-05 14:16:20 -0700
commit5ac52371b09a25518b60e23e80c8c812cdea6e36 (patch)
treefde84a195cb872bfad8de361eccb4f3ab3ca7207 /classes/base.bbclass
parent58a3ac2a163ef62984cb2a9d68f9dad2f4e3283d (diff)
downloadopenembedded-5ac52371b09a25518b60e23e80c8c812cdea6e36.tar.gz
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.bbclass20
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)