From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: bitbake-devel <bitbake-devel@lists.openembedded.org>
Subject: [PATCH] fetch2/local.py: Provide better debug output when fetch of a local file fails
Date: Thu, 02 Aug 2012 21:43:48 +0100 [thread overview]
Message-ID: <1343940228.9756.99.camel@ted> (raw)
When a fetch failure occurs for a local file, this patch ensures we print the
locations searched making it easier for the user to debug the problem.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/.gitignore b/.gitignore
index bd0acdc..0405bab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-bitbake
*.pyc
*.pyo
/*.patch
diff --git a/bitbake/lib/bb/fetch2/local.py b/bitbake/lib/bb/fetch2/local.py
index bfef079..3a34f2a 100644
--- a/bitbake/lib/bb/fetch2/local.py
+++ b/bitbake/lib/bb/fetch2/local.py
@@ -30,7 +30,8 @@ import urllib
import bb
import bb.utils
from bb import data
-from bb.fetch2 import FetchMethod
+from bb.fetch2 import FetchMethod, FetchError
+from bb.fetch2 import logger
class Local(FetchMethod):
def supports(self, url, urldata, d):
@@ -41,16 +42,15 @@ class Local(FetchMethod):
def urldata_init(self, ud, d):
# We don't set localfile as for this fetcher the file is already local!
- ud.basename = os.path.basename(urllib.unquote(ud.url.split("://")[1].split(";")[0]))
+ ud.decodedurl = urllib.unquote(ud.url.split("://")[1].split(";")[0])
+ ud.basename = os.path.basename(ud.decodedurl)
return
def localpath(self, url, urldata, d):
"""
Return the local filename of a given url assuming a successful fetch.
"""
- path = url.split("://")[1]
- path = path.split(";")[0]
- path = urllib.unquote(path)
+ path = urldata.decodedurl
newpath = path
if path[0] != "/":
filespath = data.getVar('FILESPATH', d, True)
@@ -76,7 +76,20 @@ class Local(FetchMethod):
def download(self, url, urldata, d):
"""Fetch urls (no-op for Local method)"""
# no need to fetch local files, we'll deal with them in place.
- return 1
+ if self.supports_checksum(urldata) and not os.path.exists(urldata.localpath):
+ locations = []
+ filespath = data.getVar('FILESPATH', d, True)
+ if filespath:
+ locations = filespath.split(":")
+ filesdir = data.getVar('FILESDIR', d, True)
+ if filesdir:
+ locations.append(filesdir)
+ locations.append(d.getVar("DL_DIR", True))
+
+ msg = "Unable to find file " + url + " anywhere. The paths that were searched were:\n " + "\n ".join(locations)
+ raise FetchError(msg)
+
+ return True
def checkstatus(self, url, urldata, d):
"""
reply other threads:[~2012-08-02 20:55 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1343940228.9756.99.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=bitbake-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox