base.bbclass: fix bug with absolute file:// uris
authorChris Larson <chris_larson@mentor.com>
Mon, 30 Aug 2010 23:43:31 +0000 (16:43 -0700)
committerChris Larson <chris_larson@mentor.com>
Tue, 31 Aug 2010 15:46:25 +0000 (08:46 -0700)
The code which used host/path from the url to construct the destination of the
copy was using os.path.join.  os.path.join treats a "/" in an element as an
indication to drop all previous elements, so the full path resulted in a
destination exactly the same as the source, resulting in a no-op unpack.
Fixed by using oe.path.join instead.

The previous fix missed two instances of os.path.join -- there's code
duplication in oe_unpack_file, really need to resurrect my do_unpack cleanup
branch.

Signed-off-by: Chris Larson <chris_larson@mentor.com>
classes/base.bbclass

index afc30da..438327c 100644 (file)
@@ -226,14 +226,14 @@ def oe_unpack_file(file, data, url = None):
                                        dest = host + os.path.dirname(path) or "."
                        else:
                                dest = "."
-                       bb.mkdirhier("%s" % os.path.join(os.getcwd(),dest))
-                       cmd = 'cp %s %s' % (file, os.path.join(os.getcwd(), dest))
+                       bb.mkdirhier("%s" % oe.path.join(os.getcwd(),dest))
+                       cmd = 'cp %s %s' % (file, oe.path.join(os.getcwd(), dest))
        if not cmd:
                return True
        if not host:
-               dest = os.path.join(os.getcwd(), path)
+               dest = oe.path.join(os.getcwd(), path)
        else:
-               dest = os.path.join(os.getcwd(), os.path.join(host, path))
+               dest = oe.path.join(os.getcwd(), oe.path.join(host, path))
        if os.path.exists(dest):
                if os.path.samefile(file, dest):
                        return True