Openembedded Bitbake Development
 help / color / mirror / Atom feed
* [PATCH 0/2] Error handling fixes
@ 2014-05-29 17:17 Paul Eggleton
  2014-05-29 17:17 ` [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes Paul Eggleton
  2014-05-29 17:17 ` [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing Paul Eggleton
  0 siblings, 2 replies; 3+ messages in thread
From: Paul Eggleton @ 2014-05-29 17:17 UTC (permalink / raw)
  To: bitbake-devel

The following changes since commit 0e7b594ccbceb3149f38776cea204807031ef69f:

  fetch2/hg: Fix missing proto param for hg checkout with user and pw (2014-05-28 08:28:17 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib paule/bb-errors
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=paule/bb-errors

Paul Eggleton (2):
  fetch2: improve handling of two classes of URL parameter mistakes
  utils: avoid printing traceback on ExpansionError during parsing

 lib/bb/fetch2/__init__.py | 14 ++++++++++----
 lib/bb/utils.py           |  2 ++
 2 files changed, 12 insertions(+), 4 deletions(-)

-- 
1.9.3



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes
  2014-05-29 17:17 [PATCH 0/2] Error handling fixes Paul Eggleton
@ 2014-05-29 17:17 ` Paul Eggleton
  2014-05-29 17:17 ` [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing Paul Eggleton
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Eggleton @ 2014-05-29 17:17 UTC (permalink / raw)
  To: bitbake-devel

Handle the following situations in a URL (e.g. in SRC_URI):

* Trailing semicolon in a URL - this is now ignored.
* Parameter specified with no value (no equals sign). This still
  produces an error, but at least it is MalformedUrl with a proper
  message rather than "ValueError: need more than 1 value to unpack".

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 lib/bb/fetch2/__init__.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index f571fc4..dcada12 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -56,8 +56,11 @@ class BBFetchException(Exception):
 
 class MalformedUrl(BBFetchException):
     """Exception raised when encountering an invalid url"""
-    def __init__(self, url):
-         msg = "The URL: '%s' is invalid and cannot be interpreted" % url
+    def __init__(self, url, message=''):
+         if message:
+             msg = message
+         else:
+             msg = "The URL: '%s' is invalid and cannot be interpreted" % url
          self.url = url
          BBFetchException.__init__(self, msg)
          self.args = (url,)
@@ -371,8 +374,11 @@ def decodeurl(url):
     p = {}
     if parm:
         for s in parm.split(';'):
-            s1, s2 = s.split('=')
-            p[s1] = s2
+            if s:
+                if not '=' in s:
+                    raise MalformedUrl(url, "The URL: '%s' is invalid: parameter %s does not specify a value (missing '=')" % (url, s))
+                s1, s2 = s.split('=')
+                p[s1] = s2
 
     return type, host, urllib.unquote(path), user, pswd, p
 
-- 
1.9.3



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing
  2014-05-29 17:17 [PATCH 0/2] Error handling fixes Paul Eggleton
  2014-05-29 17:17 ` [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes Paul Eggleton
@ 2014-05-29 17:17 ` Paul Eggleton
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Eggleton @ 2014-05-29 17:17 UTC (permalink / raw)
  To: bitbake-devel

If an ExpansionError occurs during better_exec() we should just raise it
instead of printing the traceback, so that recipe errors (such as broken
URLs in SRC_URI) are more easily comprehensible.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 lib/bb/utils.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index 1be1874..ead5f36 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -357,6 +357,8 @@ def better_exec(code, context, text = None, realfile = "<code>"):
     except bb.BBHandledException:
         # Error already shown so passthrough
         raise
+    except bb.data_smart.ExpansionError:
+        raise
     except Exception as e:
         (t, value, tb) = sys.exc_info()
 
-- 
1.9.3



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-05-29 17:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-29 17:17 [PATCH 0/2] Error handling fixes Paul Eggleton
2014-05-29 17:17 ` [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes Paul Eggleton
2014-05-29 17:17 ` [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing Paul Eggleton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox