[OE-core] [PATCH 3/3] uninative: handle UNINATIVE_URL being file:///

Ross Burton ross.burton at intel.com
Mon Jan 25 15:35:57 UTC 2016


If the local fetcher is used then files are not actually fetched into DL_DIR, so
check if this happened and if required add a symlink to the real file.

Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/classes/uninative.bbclass | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/meta/classes/uninative.bbclass b/meta/classes/uninative.bbclass
index 3383e01..38c05df 100644
--- a/meta/classes/uninative.bbclass
+++ b/meta/classes/uninative.bbclass
@@ -16,11 +16,13 @@ python uninative_eventhandler() {
     loader = e.data.getVar("UNINATIVE_LOADER", True)
     tarball = d.getVar("UNINATIVE_TARBALL", True)
     tarballdir = d.getVar("UNINATIVE_DLDIR", True)
+    tarballpath = os.path.join(tarballdir, tarball)
+
     if not os.path.exists(loader):
         import subprocess
 
         olddir = os.getcwd()
-        if not os.path.exists(os.path.join(tarballdir, tarball)):
+        if not os.path.exists(tarballpath):
             # Copy the data object and override DL_DIR and SRC_URI
             localdata = bb.data.createCopy(d)
 
@@ -32,13 +34,15 @@ python uninative_eventhandler() {
                 bb.fatal("Uninative selected but not configured correctly, please set UNINATIVE_CHECKSUM[%s]" % d.getVar("BUILD_ARCH", True))
 
             srcuri = d.expand("${UNINATIVE_URL}${UNINATIVE_TARBALL};md5sum=%s" % chksum)
-            dldir = localdata.expand(tarballdir)
-            localdata.setVar('FILESPATH', dldir)
-            localdata.setVar('DL_DIR', dldir)
+            localdata.setVar('FILESPATH', tarballdir)
+            localdata.setVar('DL_DIR', tarballdir)
             bb.note("Fetching uninative binary shim from %s" % srcuri)
             fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False)
             try:
                 fetcher.download()
+                localpath = fetcher.localpath(srcuri)
+                if localpath != tarballpath and os.path.exists(localpath) and not os.path.exists(tarballpath):
+                    os.symlink(localpath, tarballpath)
             except Exception as exc:
                 bb.fatal("Unable to download uninative tarball: %s" % str(exc))
 
-- 
2.6.4




More information about the Openembedded-core mailing list