* 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 <[email protected]>
---
 classes/base.bbclass |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/classes/base.bbclass b/classes/base.bbclass
index 3995ac8..d0b0b1c 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 file.endswith('.patch') or file.endswith('.diff'):
+       # 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,24 @@ 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 =  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.dirname(os.path.join(os.getcwd(),dest)))
+                       cmd = 'cp %s %s/%s' % (file, 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)
-- 
1.7.1


_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to