poky: subtree update:488e39b623..c8075ed8f1

Alejandro Hernandez Samaniego (1):
      bitbake: fetch2/wget: Avoid crashing when connection drops mid checkstatus

Alexander Kanavin (17):
      webkit/wpe: only check even versions
      syslinux: use NO_INLINE_FUNCS in CFLAGS
      dosfstools: update 4.1 -> 4.2
      e2fsprogs: update 1.45.7 -> 1.46.1
      elfutils: update 0.182 -> 0.183
      meson: update 0.56.2 -> 0.57.1
      perl: update 5.32.0 -> 5.32.1
      openssl: address ptest failures caused by perl 5.32.1
      ptest-perl/run-ptest: address failures caused by perl 5.32.1
      pango: update 1.48.0 -> 1.48.2
      vulkan-samples: update to latest revision
      webkitgtk: update 2.30.4 -> 2.30.5
      libgcrypt: update 1.8.7 -> 1.9.2
      pinentry: update 1.1.0 -> 1.1.1
      libmd: add a recipe
      libbsd: udpate 0.10.0 -> 0.11.3
      scripts/lib/wic/partition.py: do not set FAT size

Charlie Davies (2):
      bitbake: bitbake: providers: fix incorrect return type bug
      bitbake: bitbake: providers: use pythonic empty list check

Colin Finck (1):
      dosfstools: Build --without-iconv

Diego Santa Cruz (4):
      packagegroup-base: use amixer instead of alsamixer
      packagegroup-base: do not force hdparm and e2fsprogs
      sysklogd: do not open any network sockets by default
      createrepo-c: set path to magic database for native and nativesdk

Dorinda (7):
      gdb-common.inc: add PACKAGECONFIG for debuginfod
      meta/recipes-bsp: Add HOMEPAGE / DESCRIPTION
      meta/recipes-connectivity: Add HOMEPAGE / DESCRIPTION
      meta/recipes-devtools: Add HOMEPAGE / DESCRIPTION
      meta/recipes-core: Add HOMEPAGE / DESCRIPTION
      scripts/oe-debuginfod: script that fetches package manager directory
      binutils: add PACKAGECONFIG for debuginfod

Florian Bezdeka (1):
      wic: Warn if an ext filesystem affected by the Y2038 problem is used

He Zhe (1):
      glibc: Disable CPU ISA level requirement check

Jan Brzezanski (1):
      bitbake: Force parser shutdown after catching an exception

Jan-Simon Moeller (1):
      Add core-image-weston to reproducible build tests

Jan-Simon Möller (2):
      reproducible_builds: SOURCE_DATE_EPOCH should not be 0
      oe-selftests: add rpm to reproducible build selftest

Jate Sujjavanich (1):
      iputils: Fix cap_net_raw for installed binaries

Joel Stanley (1):
      conf/machine-sdk: Add ppc64le SDK machine

Joshua Watt (2):
      bitbake: event: Fix broken builds when multiconfig has a hyphen in the name
      diffoscope: Add python3-rpm as dependency

Khem Raj (23):
      nettle: Upgrade to 3.7.1
      runqemu: Add new option to disable vga emulation
      linuxloader: Deal with little-endian ppc64 ldso name
      musl: Install /lib directory
      goarch.bbclass: Fix ppc64le detection
      bitbake.conf: Do not use lib64 for baselib on musl/ppc64
      glibc: Build for power9 cpu when using powerpc64le tunes
      tune-power9: Enable qemu-usermode
      selftest: Replace building dep tool with direnv
      goarch: Use softfloat instead of 387 for 386 goarch
      go: Upgrade compiler to 1.16 major release
      go: Enable CGO and pie buildmode on rv64
      go-helloworld: Turn into a go module enabled build
      binutils: Upgrade to 2.36.1 release
      llvm: Upgrade to 11.1.0 release
      oeqa/pam: Need shadow installed for the tests
      glibc: Fix rawmemchr
      rxvt-unicode: Do not use throw specifications
      llvm: Fix build with c++17
      dtc: Fix array-bounds error
      puzzles: Fix stringop-overflow warning
      igt-gpu-tools: Fix warnings with gcc 11
      kea: Fix configure test error with gcc11

Klaus Heinrich Kiwi (1):
      kernel-fitimage: Don't use unit addresses on FIT

Martin Jansa (3):
      sstatesig.py: show an error instead of warning when sstate manifest isn't found
      glib-2.0: replace THISDIR instead of COREBASE in find_meson_cross_files --cross-file paths
      coreutils: use u-a for base32

Meh Mbeh Ida Delphine (7):
      licenses: Update license file to match current SPDX names
      recipes-gnome: Add missing HOMEPAGE and DESCRIPTION for recipes
      recipes-graphics: Add missing HOMEPAGE and DESCRIPTION for recipes.
      recipes-kernel: Add missing HOMEPAGE and DESCRIPTION for recipes.
      recipes-multimedia: Add missing HOMEPAGE and DESCRIPTION for recipes.
      recipes-sato: Add missing HOMEPAGE and DESCRIPTION for recipes
      recipes-support: Add missing HOMEPAGE and DESCRIPTION for recipes

Michael Halstead (2):
      releases: update to include 3.2.2
      releases: update to include 3.1.6

Mike Crowe (2):
      externalsrc: Pass through npmsw URIs in SRC_URI
      gcc-sanitizers: Move content from gcclibdir into libdir

Milan Shah (1):
      report-error.bbclass: Add layer and bitbake version info to error report

Mingli Yu (1):
      python3: Fix python interpreter line length for nativesdk

Oleksandr Kravchuk (4):
      python3: update to 3.9.2
      ell: update to 0.38
      net-tools: update to 2.10
      busybox: update 1.33.0

Peter Kjellerstedt (1):
      asciidoc: Switch to using the main branch

Randy MacLeod (3):
      Add libgit2, libssh2 from meta-oe for rust
      libssh2: pull in additional commits from meta-oe
      libgit2: pull in updates from meta-oe

Richard Purdie (61):
      maintainers: Update email address for Victor
      figures/yp-how-it-works-new-diagram.png: Fix spelling error underline
      recipes: Update common-licenses references to match new names
      licenses.conf: Add missing 'or-later' mappings
      licenses: Fix canonical license for 'or-later' handling
      licenses: Update INCOMPATIBLE_LICENSE for 'or-later' handling
      license_image: Don't canonicalise INCOMPATIBLE_LICENSE
      selftest/incompatible_lic: Update the tests after the 'or-later' license handling changes
      gma500-gfx-check: Update licence to match changes in OE-Core
      diffoscope: Upgrade 166 -> 167
      linux-firmware: upgrade 20201218 -> 20210208
      python3-pycryptodome/pycryptodomex: upgrade 3.9.9 -> 3.10.1
      apt: Upgrade 1.8.2.1 -> 1.8.2.2
      python3-magic: upgrade 0.4.18 -> 0.4.20
      libproxy: Avoid /etc/sysconfig determinism issue
      rsync: Fix a file sorting determinism issue
      rsync: Fix group name determinism issue
      libcap-ng: Fix python bindings determinism issue
      libcap-ng: Replace python patch with a better fix
      libevdev: Update patch status to backport
      ca-certificates: Clean up two patches and submit upstream
      libpcre: Drop old/stale patch
      diffoscope: Ensure the correct magic file is used
      babeltrace2: Fix reproducibility
      reproducible: Improve SOURCE_DATE_EPOCH_FALLBACK handling
      selftest/reproducible: Remove exclusions for recipes which now reproduce
      diffoscope: Ensure rpm is configured correctly
      package/package_rpm: Disable font_provides configuration for reproducibilty
      fonts: Bump HASHEQUIV_HASH_VERSION after rpmdeps change
      reproduce: Fix exclusion list for rpm
      maintainers: add entries libssh2 libgit2
      cups: Fix reproducibility issues
      gcr: Fix reproducibility issue
      rsync: Update patch status
      gtk-doc: Fix reproducibility issue
      epiphany: Fix reproducibility issue
      epiphany: Fix distributor contamination from /etc/os-release
      gst-devtools: Fix reproducibility issue
      parted: Fix reproducibility issue
      libsecret: Improve determimism
      libhandy: Fix reproducibility issue
      selftest/reproducible: Don't call sync between each file compare
      image: Add directories to PSEUDO_IGNORE_PATHS
      populate_sdk: Add directories to PSEUDO_IGNORE_PATHS
      bitbake.conf/image: Move image specific PSEUDO_IGNORE_PATHS to image class
      bitbake.conf: Split PSEUDO_IGNORE_PATHS to be more readable
      bootchart2: Fix manpage reproducibility issue
      igt-gpu-tools: Fix reproducibility issue
      libid3tag: Fix reproducibility issue
      apr-util: Fix CFLAGS used in build
      gstreamer1.0-python: Set internal python library path correcty
      diffoscope: Upgrade 167 -> 168
      syslinux: Fix reproducibility issues
      swig: Fix reproducibility issue
      efivar: Fix reproducibility issue
      systemd-bootchart: Disable LTO to fix reproducibility
      selftest/reproducible: Add ability to pull some objects from sstate
      qemu: Determinism fixes
      lttng: Fix reproducibility issues
      ltp: Fixing determinism issues
      python3-cython: Remove build paths from debug sources

Ross Burton (1):
      grub: shuffle packaging for aarch64 builds

Scott Murray (1):
      screen: fix CVE-2021-26937

Stefan Ghinea (2):
      wpa-supplicant: fix CVE-2021-0326
      cups: fix CVE-2020-10001

Tomasz Dziendzielski (1):
      bitbake.conf: Introduce FAKEROOTLOGS variable used by bitbake to print pseudo.log

Vivien Didelot (1):
      systemd: Fix importd requirements comment

Wang Mingyu (12):
      util-linux: upgrade 2.36.1 -> 2.36.2
      xkeyboard-config: upgrade 2.31 -> 2.32
      liburcu: upgrade 0.12.1 -> 0.12.2
      lttng-ust: upgrade 2.12.0 -> 2.12.1
      openssl: upgrade 1.1.1i -> 1.1.1j
      bluez5: upgrade 5.55 -> 5.56
      libxcrypt: upgrade 4.4.17 -> 4.4.18
      nfs-utils: upgrade 2.5.2 -> 2.5.3
      ccache: upgrade 4.1 -> 4.2
      eudev: upgrade 3.2.9 -> 3.2.10
      glslang: upgrade 11.1.0 -> 11.2.0
      iproute2: upgrade 5.10.0 -> 5.11.0

Yi Fan Yu (3):
      libnl: add ptest support
      gdb: Remove "ALLOW_EMPTY_gdbserver" on riscv
      valgrind: Increase timeout duration 30 -> 90 s

zhengruoqin (8):
      glibc-package.inc: Fix arm multlib header issue with struct_stat.h
      glibc: Unify wordsize.h with arm multilibs
      libxcrypt-compat: upgrade 4.4.17 -> 4.4.18
      log4cplus: upgrade 2.0.5 -> 2.0.6
      python3-cython: upgrade 0.29.21 -> 0.29.22
      python3-git: upgrade 3.1.13 -> 3.1.14
      sysvinit: upgrade 2.98 -> 2.99
      python3-magic: upgrade 0.4.20 -> 0.4.22

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I69b5102d327da636a9c36642b46841e4341368d8
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 0e492b9..f4ab797 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -2211,18 +2211,18 @@
         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 @@
             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 @@
                 # 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 ff89959..23e1f31 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -234,7 +234,7 @@
 
     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 @@
     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 78a4967..6d82f3a 100644
--- a/poky/bitbake/lib/bb/fetch2/wget.py
+++ b/poky/bitbake/lib/bb/fetch2/wget.py
@@ -332,6 +332,14 @@
                 # 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 0c87dfd..b5a6cd0 100644
--- a/poky/bitbake/lib/bb/providers.py
+++ b/poky/bitbake/lib/bb/providers.py
@@ -248,9 +248,9 @@
         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
similarity index 100%
rename from poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf
rename to 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
similarity index 100%
rename from poky/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf
rename to 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 d45a4cf..7b8fc59 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 17a181f..eed69c8 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 cc69e7b..3c172ef 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 d3d62b9..3d51779 100644
--- a/poky/bitbake/lib/bb/tests/runqueue.py
+++ b/poky/bitbake/lib/bb/tests/runqueue.py
@@ -216,66 +216,66 @@
     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')