From cac47db9c5d66801107e42462f2e5a8e4dc4724b Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 25 Jan 2016 15:08:23 +0000 Subject: uninative: handle UNINATIVE_URL being file:/// 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. (From OE-Core rev: a13b0a0b79cf4db9f247facf71c03344b60be890) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/uninative.bbclass | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'meta') diff --git a/meta/classes/uninative.bbclass b/meta/classes/uninative.bbclass index 3383e01cda..38c05dfc0a 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)) -- cgit v1.2.3-54-g00ecf