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 <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2016-01-25 15:08:23 +00:00 committed by Richard Purdie
parent 99958140a2
commit cac47db9c5
1 changed files with 8 additions and 4 deletions

View File

@ -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))