diff options
Diffstat (limited to 'poky/bitbake/lib/bb')
-rw-r--r-- | poky/bitbake/lib/bb/cooker.py | 10 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/event.py | 4 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/fetch2/wget.py | 8 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/providers.py | 4 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc-1.conf (renamed from poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf) | 0 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc_2.conf (renamed from poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf) | 0 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb | 2 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc1.bb | 4 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc2.bb | 4 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/runqueue.py | 38 |
10 files changed, 41 insertions, 33 deletions
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index 0e492b9be..f4ab797ed 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -2211,18 +2211,18 @@ class CookerParser(object): except bb.BBHandledException as exc: self.error += 1 logger.error('Failed to parse recipe: %s' % exc.recipe) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except ParsingFailure as exc: self.error += 1 logger.error('Unable to parse %s: %s' % (exc.recipe, bb.exceptions.to_string(exc.realexception))) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except bb.parse.ParseError as exc: self.error += 1 logger.error(str(exc)) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except bb.data_smart.ExpansionError as exc: self.error += 1 @@ -2231,7 +2231,7 @@ class CookerParser(object): tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback)) logger.error('ExpansionError during parsing %s', value.recipe, exc_info=(etype, value, tb)) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except Exception as exc: self.error += 1 @@ -2243,7 +2243,7 @@ class CookerParser(object): # Most likely, an exception occurred during raising an exception import traceback logger.error('Exception during parse: %s' % traceback.format_exc()) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False self.current += 1 diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py index ff8995946..23e1f3187 100644 --- a/poky/bitbake/lib/bb/event.py +++ b/poky/bitbake/lib/bb/event.py @@ -234,7 +234,7 @@ def register(name, handler, mask=None, filename=None, lineno=None, data=None): if data and data.getVar("BB_CURRENT_MC"): mc = data.getVar("BB_CURRENT_MC") - name = '%s%s' % (mc, name) + name = '%s%s' % (mc.replace('-', '_'), name) # already registered if name in _handlers: @@ -286,7 +286,7 @@ def remove(name, handler, data=None): if data: if data.getVar("BB_CURRENT_MC"): mc = data.getVar("BB_CURRENT_MC") - name = '%s%s' % (mc, name) + name = '%s%s' % (mc.replace('-', '_'), name) _handlers.pop(name) if name in _catchall_handlers: diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py index 78a49676f..6d82f3af0 100644 --- a/poky/bitbake/lib/bb/fetch2/wget.py +++ b/poky/bitbake/lib/bb/fetch2/wget.py @@ -332,6 +332,14 @@ class Wget(FetchMethod): # debug for now to avoid spamming the logs in e.g. remote sstate searches logger.debug2("checkstatus() urlopen failed: %s" % e) return False + except ConnectionResetError as e: + if try_again: + logger.debug2("checkstatus: trying again") + return self.checkstatus(fetch, ud, d, False) + else: + # debug for now to avoid spamming the logs in e.g. remote sstate searches + logger.debug2("checkstatus() urlopen failed: %s" % e) + return False return True def _parse_path(self, regex, s): diff --git a/poky/bitbake/lib/bb/providers.py b/poky/bitbake/lib/bb/providers.py index 0c87dfd4b..b5a6cd009 100644 --- a/poky/bitbake/lib/bb/providers.py +++ b/poky/bitbake/lib/bb/providers.py @@ -248,9 +248,9 @@ def _filterProviders(providers, item, cfgData, dataCache): preferred_versions[pn] = findLatestProvider(pn, cfgData, dataCache, sortpkg_pn[pn][0]) eligible.append(preferred_versions[pn][1]) - if len(eligible) == 0: + if not eligible: logger.error("no eligible providers for %s", item) - return 0 + return eligible # If pn == item, give it a slight default preference # This means PREFERRED_PROVIDER_foobar defaults to foobar if available diff --git a/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf b/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc-1.conf index f34b8dccc..f34b8dccc 100644 --- a/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf +++ b/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc-1.conf diff --git a/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf b/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc_2.conf index c3360fc5c..c3360fc5c 100644 --- a/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf +++ b/poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc_2.conf diff --git a/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb b/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb index d45a4cff5..7b8fc592a 100644 --- a/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb +++ b/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb @@ -1 +1 @@ -do_install[mcdepends] = "mc:mc1:mc2:a1:do_build" +do_install[mcdepends] = "mc:mc-1:mc_2:a1:do_build" diff --git a/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc1.bb b/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc1.bb index 17a181fff..eed69c805 100644 --- a/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc1.bb +++ b/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc1.bb @@ -1,5 +1,5 @@ python () { - if d.getVar("BB_CURRENT_MC") == "mc1": - bb.fatal("Multiconfig is mc1") + if d.getVar("BB_CURRENT_MC") == "mc-1": + bb.fatal("Multiconfig is mc-1") } diff --git a/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc2.bb b/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc2.bb index cc69e7b82..3c172ef97 100644 --- a/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc2.bb +++ b/poky/bitbake/lib/bb/tests/runqueue-tests/recipes/fails-mc/fails-mc2.bb @@ -1,4 +1,4 @@ python () { - if d.getVar("BB_CURRENT_MC") == "mc2": - bb.fatal("Multiconfig is mc2") + if d.getVar("BB_CURRENT_MC") == "mc_2": + bb.fatal("Multiconfig is mc_2") } diff --git a/poky/bitbake/lib/bb/tests/runqueue.py b/poky/bitbake/lib/bb/tests/runqueue.py index d3d62b98f..3d51779d6 100644 --- a/poky/bitbake/lib/bb/tests/runqueue.py +++ b/poky/bitbake/lib/bb/tests/runqueue.py @@ -216,66 +216,66 @@ class RunQueueTests(unittest.TestCase): def test_multiconfig_setscene_optimise(self): with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: extraenv = { - "BBMULTICONFIG" : "mc1 mc2", + "BBMULTICONFIG" : "mc-1 mc_2", "BB_SIGNATURE_HANDLER" : "basic" } - cmd = ["bitbake", "b1", "mc:mc1:b1", "mc:mc2:b1"] + cmd = ["bitbake", "b1", "mc:mc-1:b1", "mc:mc_2:b1"] setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene', 'populate_sysroot_setscene', 'package_qa_setscene'] sstatevalid = "" tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv) expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + \ - ['mc1:b1:' + x for x in setscenetasks] + ['mc1:a1:' + x for x in setscenetasks] + \ - ['mc2:b1:' + x for x in setscenetasks] + ['mc2:a1:' + x for x in setscenetasks] + \ - ['mc1:b1:build', 'mc2:b1:build'] - for x in ['mc1:a1:package_qa_setscene', 'mc2:a1:package_qa_setscene', 'a1:build', 'a1:package_qa']: + ['mc-1:b1:' + x for x in setscenetasks] + ['mc-1:a1:' + x for x in setscenetasks] + \ + ['mc_2:b1:' + x for x in setscenetasks] + ['mc_2:a1:' + x for x in setscenetasks] + \ + ['mc-1:b1:build', 'mc_2:b1:build'] + for x in ['mc-1:a1:package_qa_setscene', 'mc_2:a1:package_qa_setscene', 'a1:build', 'a1:package_qa']: expected.remove(x) self.assertEqual(set(tasks), set(expected)) def test_multiconfig_bbmask(self): # This test validates that multiconfigs can independently mask off # recipes they do not want with BBMASK. It works by having recipes - # that will fail to parse for mc1 and mc2, then making each multiconfig + # that will fail to parse for mc-1 and mc_2, then making each multiconfig # build the one that does parse. This ensures that the recipes are in # each multiconfigs BBFILES, but each is masking only the one that # doesn't parse with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: extraenv = { - "BBMULTICONFIG" : "mc1 mc2", + "BBMULTICONFIG" : "mc-1 mc_2", "BB_SIGNATURE_HANDLER" : "basic", "EXTRA_BBFILES": "${COREBASE}/recipes/fails-mc/*.bb", } - cmd = ["bitbake", "mc:mc1:fails-mc2", "mc:mc2:fails-mc1"] + cmd = ["bitbake", "mc:mc-1:fails-mc2", "mc:mc_2:fails-mc1"] self.run_bitbakecmd(cmd, tempdir, "", extraenv=extraenv) def test_multiconfig_mcdepends(self): with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: extraenv = { - "BBMULTICONFIG" : "mc1 mc2", + "BBMULTICONFIG" : "mc-1 mc_2", "BB_SIGNATURE_HANDLER" : "TestMulticonfigDepends", "EXTRA_BBFILES": "${COREBASE}/recipes/fails-mc/*.bb", } - tasks = self.run_bitbakecmd(["bitbake", "mc:mc1:f1"], tempdir, "", extraenv=extraenv, cleanup=True) - expected = ["mc1:f1:%s" % t for t in self.alltasks] + \ - ["mc2:a1:%s" % t for t in self.alltasks] + tasks = self.run_bitbakecmd(["bitbake", "mc:mc-1:f1"], tempdir, "", extraenv=extraenv, cleanup=True) + expected = ["mc-1:f1:%s" % t for t in self.alltasks] + \ + ["mc_2:a1:%s" % t for t in self.alltasks] self.assertEqual(set(tasks), set(expected)) # A rebuild does nothing - tasks = self.run_bitbakecmd(["bitbake", "mc:mc1:f1"], tempdir, "", extraenv=extraenv, cleanup=True) + tasks = self.run_bitbakecmd(["bitbake", "mc:mc-1:f1"], tempdir, "", extraenv=extraenv, cleanup=True) self.assertEqual(set(tasks), set()) # Test that a signature change in the dependent task causes # mcdepends to rebuild - tasks = self.run_bitbakecmd(["bitbake", "mc:mc2:a1", "-c", "compile", "-f"], tempdir, "", extraenv=extraenv, cleanup=True) - expected = ["mc2:a1:compile"] + tasks = self.run_bitbakecmd(["bitbake", "mc:mc_2:a1", "-c", "compile", "-f"], tempdir, "", extraenv=extraenv, cleanup=True) + expected = ["mc_2:a1:compile"] self.assertEqual(set(tasks), set(expected)) rerun_tasks = self.alltasks[:] for x in ("fetch", "unpack", "patch", "prepare_recipe_sysroot", "configure", "compile"): rerun_tasks.remove(x) - tasks = self.run_bitbakecmd(["bitbake", "mc:mc1:f1"], tempdir, "", extraenv=extraenv, cleanup=True) - expected = ["mc1:f1:%s" % t for t in rerun_tasks] + \ - ["mc2:a1:%s" % t for t in rerun_tasks] + tasks = self.run_bitbakecmd(["bitbake", "mc:mc-1:f1"], tempdir, "", extraenv=extraenv, cleanup=True) + expected = ["mc-1:f1:%s" % t for t in rerun_tasks] + \ + ["mc_2:a1:%s" % t for t in rerun_tasks] self.assertEqual(set(tasks), set(expected)) @unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required') |