subtree updates

- Remove systemd patches for object-manager due to upstream fix.

meta-arm: 3b7347cd67..d5f132b199:
  Abdellatif El Khlifi (2):
        kas: corstone1000: set branches to langdale
        arm-bsp/documentation: corstone1000: 2022.11.10 RC: update the user guide

  Anton Antonov (1):
        arm-bsp/fvp-base: Enable virtio-rng support and unset preferred 5.15 kernel

  Emekcan (2):
        arm-bsp/trusted-services: add checks for null attributes in smm gateway
        arm-bsp/trusted-services: Fix GetNextVariable max_name_len in smm gateway

  Jon Mason (3):
        arm/sbsa-acs: update to the latest version
        arm/hafnium: cleanup the patches
        arm/gn: update to the latest SHA

  Luca Fancellu (1):
        arm,arm-bsp/recipes-kernel: don't use PN in arm-ffa-transport.inc

  Peter Hoyes (5):
        arm/fvp: Join cli arguments in verbose logging
        arm/lib: Factor out asyncio in FVPRunner
        arm/lib: Decouple console parsing from the FVPRunner
        arm/oeqa: Log the FVP output in OEFVPSSHTarget
        runfvp: Fix verbose output when using --console

  Ross Burton (1):
        arm/linux-arm64-ack: fix buildpaths in the perf Python module

  Rui Miguel Silva (3):
        arm/trusted-services: check before applying patches
        arm-bsp/trusted-services: psa test setup corstone1000
        arm-bsp/trusted-firmware-m: adjust ps assets for corstone1000

  Vishnu Banavath (2):
        arm-bsp/documentation: corstone1000: 2022.11.10 RC: update the release notes
        arm-bsp/documentation: corstone1000: 2022.11.10 RC: update the change log

meta-raspberrypi: a305f4804b..93dadf336c:
  Andrei Gherzan (2):
        ci: Bump actions/checkout to v3
        ci: Fix dco-check job with newer git versions

  Martin Jansa (1):
        raspberrypi4-64: drop DEFAULTTUNE assignment

poky: 482c493cf6..44bb88cc86:
  Alex Kiernan (1):
        rust: update 1.64.0 -> 1.65.0

  Alexander Kanavin (74):
        man-pages: upgrade 5.13 -> 6.01
        piglit: upgrade to latest revision
        lsof: upgrade 4.96.3 -> 4.96.4
        ffmpeg: upgrade 5.1.1 -> 5.1.2
        ccache: upgrade 4.6.3 -> 4.7.2
        python3-pip: upgrade 22.2.2 -> 22.3
        ltp: upgrade 20220527 -> 20220930
        alsa-utils: upgrade 1.2.7 -> 1.2.8
        alsa-ucm-conf: upgrade 1.2.7.2 -> 1.2.8
        libbsd: upgrade 0.11.6 -> 0.11.7
        libunistring: upgrade 1.0 -> 1.1
        puzzles: upgrade to latest revision
        libsoup: upgrade 3.2.0 -> 3.2.1
        linux-firmware: upgrade 20220913 -> 20221012
        python3-git: upgrade 3.1.28 -> 3.1.29
        xwayland: upgrade 22.1.3 -> 22.1.4
        strace: upgrade 5.19 -> 6.0
        python3-dtschema: upgrade 2022.8.3 -> 2022.9
        fontconfig: upgrade 2.14.0 -> 2.14.1
        python3-setuptools: upgrade 65.0.2 -> 65.5.0
        taglib: upgrade 1.12 -> 1.13
        nghttp2: upgrade 1.49.0 -> 1.50.0
        python3-wheel: upgrade 0.37.1 -> 0.38.0
        libffi: upgrade 3.4.2 -> 3.4.4
        libical: upgrade 3.0.15 -> 3.0.16
        mtd-utils: upgrade 2.1.4 -> 2.1.5
        repo: upgrade 2.29.3 -> 2.29.5
        libidn2: upgrade 2.3.3 -> 2.3.4
        makedepend: upgrade 1.0.6 -> 1.0.7
        diffoscope: upgrade 221 -> 224
        mmc-utils: upgrade to latest revision
        libsoup-2.4: upgrade 2.74.2 -> 2.74.3
        gdk-pixbuf: upgrade 2.42.9 -> 2.42.10
        harfbuzz: upgrade 5.3.0 -> 5.3.1
        netbase: upgrade 6.3 -> 6.4
        mpg123: upgrade 1.30.2 -> 1.31.1
        sudo: upgrade 1.9.11p3 -> 1.9.12
        alsa-lib: upgrade 1.2.7.2 -> 1.2.8
        pango: upgrade 1.50.10 -> 1.50.11
        pixman: upgrade 0.40.0 -> 0.42.2
        vulkan: upgrade 1.3.224.1 -> 1.3.231.1
        gstreamer1.0: upgrade 1.20.3 -> 1.20.4
        shaderc: upgrade 2022.2 -> 2022.3
        selftest: add a copy of previous mtd-utils version to meta-selftest
        python3: correctly adjust include paths in sysconfigdata
        vala: install vapigen-wrapper into /usr/bin/crosscripts and stage only that
        sanity.bbclass: do not check for presence of distutils
        pango: replace a recipe fix with an upstream submitted patch
        libpciaccess: update 0.16 -> 0.17
        libxinerama: update 1.1.4 -> 1.1.5
        libxkbfile: update 1.1.0 -> 1.1.1
        libxmu: update 1.1.3 -> 1.1.4
        libxrender: update 0.9.10 -> 0.9.11
        libxshmfence: update 1.3 -> 1.3.1
        libxtst: update 1.2.3 -> 1.2.4
        libxxf86vm: update 1.1.4 -> 1.1.5
        xcb-util: update to latest revisions
        xf86-input-vmmouse: update 13.1.0 -> 13.2.0
        gnomebase.bbclass: return the whole version for tarball directory if it is a number
        adwaita-icon-theme: update 42.0 -> 43
        libepoxy: convert to git
        libepoxy: update 1.5.9 -> 1.5.10
        rgb: update 1.0.6 -> 1.1.0
        meson: update 0.63.3 -> 0.64.0
        systemd: update 251.4 -> 251.8
        libxext: update 1.3.4 -> 1.3.5
        gettext: update 0.21 -> 0.21.1
        glib-2.0: update 2.72.3 -> 2.74.1
        glib-networking: update 2.72.2 -> 2.74.0
        readline: update 8.1.2 -> 8.2
        llvm: update 15.0.1 -> 15.0.4
        make: update 4.3 -> 4.4
        bash: update 5.1.16 -> 5.2.9
        mesa: do not rely on native llvm-config in target sysroot

  Atanas Bunchev (1):
        qemu.rst: audio: reference to Command-Line options

  Benjamin Szőke (1):
        image_types: Add 7-Zip support in conversion types and commands

  Changhyeok Bae (1):
        repo: upgrade 2.29.5 -> 2.29.9

  Chase Qi (1):
        libc-test: add libc testsuite for musl

  Christoph Lauer (1):
        populate_sdk_base: add zip options

  David Bagonyi (1):
        gpgme: Allow setuptools3-base to be excluded from the inherit list

  Diego Sueiro (1):
        kernel.bbclass: Include randstruct seed assets in STAGING_KERNEL_BUILDDIR

  Etienne Cordonnier (1):
        mirrors.bbclass: use shallow tarball for nativesdk-binutils

  Jordan Crouse (2):
        spirv-tools: Correctly set the prefix in exported cmake packages
        vulkan-loader: Allow headless targets to build the loader

  Jose Quaresma (3):
        sstatesig: skip the rm_work task signature
        rm_work: exclude the SSTATETASKS from the rm_work tasks sinature
        sstate: Allow optimisation of do_deploy_archives task dependencies

  Joshua Watt (2):
        classes: create-spdx: Move to version specific class
        scripts: convert-overrides: Allow command-line customizations

  Kai Kang (1):
        libuv: fixup SRC_URI

  Konrad Weihmann (1):
        create-spdx: default share_src for shared sources

  Lee Chee Yang (1):
        migration guides: add release notes for 4.0.5

  Leon Anavi (2):
        get_module_deps3.py: Check attribute '__file__'
        python3-manifest.json: Fix re in core

  Mark Asselstine (2):
        bitbake: data: drop unused __expand_var_regexp__ and __expand_python_regexp__
        bitbake: data_smart: allow python snippets to include a dictionary

  Markus Volk (4):
        webkitgtk: use libsoup-3.0 by default
        epiphany: use libsoup-3.0 by default
        gstreamer1.0-plugins-good: use libsoup-3.0 by default
        libinput: upgrade 1.19.4 -> 1.21.0

  Martin Jansa (1):
        cargo.bbclass: avoid calling which ${RUSTC} with undefined ${RUSTC}

  Michael Opdenacker (10):
        ref-manual: terms.rst: add SBOM and SPDX terms
        ref-manual: variables.rst: document spdx-create class variables
        dev-manual: common-tasks.rst: add section about SPDX / SBOM generation
        ref-manual: classes.rst: expand documentation of create-spdx class
        ref-manual: terms.rst: add reference to new SBOM/SPDX section in dev manual
        manuals: document "mime-xdg" class and MIME_XDG_PACKAGES
        manuals: add shortcut for Wikipedia links
        ref-manual/variables.rst: expand BB_NUMBER_THREADS description
        ref-manual/variables.rst: expand PARALLEL_MAKE description
        release-notes: use oe_git and yocto_git macros

  Nathan Rossi (4):
        oeqa/selftest/lic_checksum: Cleanup changes to emptytest include
        oeqa/selftest/minidebuginfo: Create selftest for minidebuginfo
        glibc-locale: Do not INHIBIT_DEFAULT_DEPS
        package: Fix handling of minidebuginfo with newer binutils

  Niko Mauno (1):
        systemd: Consider PACKAGECONFIG in RRECOMMENDS

  Paulo Neves (1):
        manuals: remove xterm requirements

  Pavel Zhukov (1):
        bitbake: gitsm: Fix regression in gitsm submodule path parsing

  Peter Kjellerstedt (1):
        pango: Make it build with ptest disabled

  Peter Marko (2):
        systemd: add group render to udev package
        meta-selftest/staticids: add render group for systemd

  Quentin Schulz (3):
        docs: ref-manual: classes: fix section name for github-releases
        docs: ref-manual: classes: add missing closing parenthesis
        docs: poky.yaml.in: remove pylint3 from Ubuntu/Debian host dependencies

  Richard Purdie (7):
        bitbake.conf: Drop export of SOURCE_DATE_EPOCH_FALLBACK
        gcc-shared-source: Fix source date epoch handling
        gcc-source: Fix gengtypes race
        gcc-source: Drop gengtype manipulation
        gcc-source: Ensure deploy_source_date_epoch sstate hash doesn't change
        sanity: Drop data finalize call
        bitbake: data/data_smart/build: Clean up datastore finalize/update_data references

  Robert Yang (1):
        bitbake: gitsm.py: process_submodules(): Set nobranch=1 for url

  Ross Burton (19):
        insane: add codeload.github.com to src-uri-bad check
        populate_sdk_ext: use ConfigParser instead of SafeConfigParser
        stress-ng: improve makefile use
        linux-firmware: don't put the firmware into the sysroot
        oeqa/qemurunner: update exception class for QMP API changes
        oeqa/core/decorator: add decorators to skip based on HOST_ARCH
        oeqa/selftest/buildoptions: skip test_read_only_image on qemuarm64
        oeqa/selftest/efibootpartition: improve test
        oeqa/selftest/imagefeatures: remove hardcoded MACHINE in test_image_gen_debugfs
        oeqa/selftest/imagefeatures: don't use wic images in test_hypervisor_fmts
        oeqa/selftest/imagefeatures: set a .wks in test_fs_types
        oeqa/selftest/overlayfs: overlayfs: skip x86-specific tests
        oeqa/selftest/package: generalise test_gdb_hardlink_debug()
        oeqa/selftest/package: improve test_preserve_ownership
        oeqa/selftest/runqemu: don't hardcode qemux86-64
        oeqa/selftest/runtime_test: only run the virgl tests on qemux86-64
        oeqa/selftest/wic: skip more tests on aarch64
        oeqa/selftest/wic: use skipIfNotArch instead of custom decorator
        classes/testexport: move to classes-recipe

  Sergei Zhmylev (1):
        wic: make ext2/3/4 images reproducible

  Tim Orling (4):
        python3-typing-extensions: upgrade 4.3.0 -> 4.4.0
        bitbake: toaster: fixtures/README: django 1.8 -> 3.2
        bitbake: toaster: fixtures/gen_fixtures.py: update branches
        bitbake: toaster: Add refreshed oe-core and poky fixtures

  Ulrich Ölmann (1):
        dev-manual: common-tasks.rst: fix typos

  Wang Mingyu (33):
        bind: upgrade 9.18.7 -> 9.18.8
        libedit: upgrade 20210910-3.1 -> 20221030-3.1
        mtools: upgrade 4.0.41 -> 4.0.42
        diffstat: upgrade 1.64 -> 1.65
        inetutils: upgrade 2.3 -> 2.4
        orc: upgrade 0.4.32 -> 0.4.33
        socat: upgrade 1.7.4.3 -> 1.7.4.4
        libxcrypt: upgrade 4.4.28 -> 4.4.30
        python3-babel: upgrade 2.10.3 -> 2.11.0
        python3-hatch-fancy-pypi-readme: upgrade 22.7.0 -> 22.8.0
        python3-hatchling upgrade: 1.11.0 -> 1.11.1
        gi-docgen: upgrade 2022.1 -> 2022.2
        libdrm: upgrade 2.4.113 -> 2.4.114
        mmc-utils: upgrade to latest revision
        mobile-broadband-provider-info: upgrade 20220725 -> 20221107
        libsdl2: upgrade 2.24.1 -> 2.24.2
        mesa: upgrade 22.2.2 -> 22.2.3
        python3-dtschema: upgrade 2022.9 -> 2022.11
        python3-flit-core: upgrade 3.7.1 -> 3.8.0
        python3-pip: update 22.3 -> 22.3.1
        python3-psutil: upgrade 5.9.3 -> 5.9.4
        python3-setuptools: upgrade 65.5.0 -> 65.5.1
        python3-sphinx-rtd-theme: upgrade 1.1.0 -> 1.1.1
        python3-subunit: upgrade 1.4.0 -> 1.4.1
        python3-wheel: upgrade 0.38.0 -> 0.38.4
        sed: update 4.8 -> 4.9
        sudo: upgrade 1.9.12 -> 1.9.12p1
        sysstat: upgrade 12.6.0 -> 12.6.1
        babeltrace: upgrade 1.5.8 -> 1.5.11
        iso-codes: upgrade 4.11.0 -> 4.12.0
        libsoup: upgrade 3.2.1 -> 3.2.2
        wayland-protocols: upgrade 1.27 -> 1.28
        xwayland: upgrade 22.1.4 -> 22.1.5

  zhengruoqin (5):
        python3-jsonschema: upgrade 4.16.0 -> 4.17.0
        python3-pyrsistent: upgrade 0.18.1 -> 0.19.2
        python3-numpy: upgrade 1.23.3 -> 1.23.4
        python3-sphinx-rtd-theme: upgrade 1.0.0 -> 1.1.0
        python3-pbr: upgrade 5.10.0 -> 5.11.0

meta-openembedded: 6ebff843cc..d04444509a:
  Armin Kuster (1):
        meta-oe][PATCH] gst-editing-services: fix typo in LICENSE field.

  Chen Pei (1):
        python3-brotli: Add new recipe for 1.0.9

  Kory Maincent (1):
        openocd: fix build error

  Leon Anavi (6):
        python3-automat: Upgrade 20.2.0 -> 22.10.0
        python3-asttokens: Upgrade 2.0.8 -> 2.1.0
        python3-zeroconf: Upgrade 0.39.2 -> 0.39.4
        python3-imageio: Upgrade 2.22.2 -> 2.22.3
        python3-httplib: Upgrade 0.20.4 -> 0.21.0
        python3-twisted: Upgrade 22.8.0 -> 22.10.0

  Markus Volk (6):
        pugixml: upgrade 1.12 -> 1.13
        geary: update 40.0 -> 43.0
        rest: upgrade 0.8.1 -> 0.9.0
        gnome-online-accounts: update 3.44.0 -> 3.46.0
        yelp: use libsoup-3.0 by default
        surf: use libsoup-3.0 by default

  Martin Jansa (1):
        monkey: use git fetcher

  Randy MacLeod (1):
        nftables: use automake ptest output format

  Sakib Sajal (1):
        minio: add recipe for minio client

  Tim Orling (5):
        libcompress-raw-bzip2-perl: upgrade 2.096 -> 2.201
        libcompress-raw-lzma-perl: upgrade 2.096 -> 2.201
        libcompress-raw-zlib-perl: upgrade 2.096 -> 2.202
        libio-compress-lzma-perl: upgrade 2.096 -> 2.201
        libio-compress-perl: upgrade 2.096 -> 2.201

  Wang Mingyu (43):
        python3-lazy-object-proxy: upgrade 1.7.1 -> 1.8.0
        python3-luma-oled: upgrade 3.8.1 -> 3.9.0
        python3-nmap: upgrade 1.5.4 -> 1.6.0
        python3-pint: upgrade 0.20 -> 0.20.1
        python3-protobuf: upgrade 4.21.8 -> 4.21.9
        python3-pytest-benchmark: upgrade 3.4.1 -> 4.0.0
        python3-pytest-html: upgrade 3.1.1 -> 3.2.0
        python3-pytest-xdist: upgrade 2.5.0 -> 3.0.2
        python3-requests-toolbelt: upgrade 0.10.0 -> 0.10.1
        python3-websockets: upgrade 10.3 -> 10.4
        fetchmail: Fix buildpaths warning.
        libxpresent: upgrade 1.0.0 -> 1.0.1
        xkbprint: upgrade 1.0.5 -> 1.0.6
        xmlsec1: upgrade 1.2.34 -> 1.2.36
        openwsman: Change download branch from master to main.
        hwdata: upgrade 0.363 -> 0.364
        lcms: upgrade 2.13.1 -> 2.14
        libdbd-sqlite-perl: upgrade 1.70 -> 1.72
        mosh: upgrade 1.3.2 -> 1.4.0
        xfstests: upgrade 2022.10.09 -> 2022.10.30
        ulogd2: upgrade 2.0.7 -> 2.0.8
        cli11: upgrade 2.3.0 -> 2.3.1
        ctags: upgrade 5.9.20221023.0 -> 5.9.20221106.0
        valijson: upgrade 0.7 -> 1.0
        openvpn: upgrade 2.5.7 -> 2.5.8
        poco: upgrade 1.12.3 -> 1.12.4
        poppler: upgrade 22.10.0 -> 22.11.0
        satyr: upgrade 0.39 -> 0.40
        ser1net: upgrade 4.3.8 -> 4.3.9
        stunnel: upgrade 5.66 -> 5.67
        wolfssl: upgrade 5.5.2 -> 5.5.3
        tio: upgrade 2.2 -> 2.3
        uhubctl: upgrade 2.4.0 -> 2.5.0
        zabbix: upgrade 6.2.3 -> 6.2.4
        python3-spidev: upgrade 3.5 -> 3.6
        python3-gevent: upgrade 22.10.1 -> 22.10.2
        python3-google-auth: upgrade 2.13.0 -> 2.14.0
        python3-greenlet: upgrade 1.1.3.post0 -> 2.0.0
        python3-robotframework: upgrade 6.0 -> 6.0.1
        python3-regex: upgrade 2022.9.13 -> 2022.10.31
        python3-pillow: upgrade 9.2.0 -> 9.3.0
        python3-paramiko: upgrade 2.11.0 -> 2.12.0
        python3-jsonref: upgrade 0.3.0 -> 1.0.1

  leimaohui (1):
        samba: Fix install conflict with multilib enabled.

  zhengrq.fnst@fujitsu.com (5):
        python3-sqlalchemy: upgrade 1.4.42 -> 1.4.43
        python3-websocket-client: upgrade 1.4.1 -> 1.4.2
        python3-termcolor: upgrade 2.0.1 -> 2.1.0
        python3-zopeinterface: upgrade 5.5.0 -> 5.5.1
        python3-tqdm: upgrade 4.64.0 -> 4.64.1

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I0a8f95b57a7b9433fe59a9055a4dae58694c1759
diff --git a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
index ee3e28d..01ea4dc 100644
--- a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -11,6 +11,7 @@
 import tempfile
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.selftest.cases.buildhistory import BuildhistoryBase
+from oeqa.core.decorator.data import skipIfMachine
 from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars
 import oeqa.utils.ftools as ftools
 
@@ -49,6 +50,8 @@
             loglines = "".join(f.readlines())
         self.assertIn("ccache", loglines, msg="No match for ccache in %s log.do_compile. For further details: %s" % (recipe , log_compile))
 
+    # https://bugzilla.yoctoproject.org/show_bug.cgi?id=14962
+    @skipIfMachine("qemuarm64", "fails on qemuarm64 (uses SERIAL_CONSOLES_CHECK)")
     def test_read_only_image(self):
         distro_features = get_bb_var('DISTRO_FEATURES')
         if not ('x11' in distro_features and 'opengl' in distro_features):
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index 142932e..0cb7403 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -954,7 +954,7 @@
 
     def test_devtool_update_recipe_git(self):
         # Check preconditions
-        testrecipe = 'mtd-utils'
+        testrecipe = 'mtd-utils-selftest'
         bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
         recipefile = bb_vars['FILE']
         src_uri = bb_vars['SRC_URI']
@@ -1075,7 +1075,7 @@
 
     def test_devtool_update_recipe_append_git(self):
         # Check preconditions
-        testrecipe = 'mtd-utils'
+        testrecipe = 'mtd-utils-selftest'
         bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
         recipefile = bb_vars['FILE']
         src_uri = bb_vars['SRC_URI']
diff --git a/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py b/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py
index 26de3a0..e17da9f 100644
--- a/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py
+++ b/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py
@@ -5,42 +5,29 @@
 # SPDX-License-Identifier: MIT
 #
 
-import re
-
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import bitbake, runqemu, get_bb_var
+from oeqa.utils.commands import bitbake, runqemu
+from oeqa.core.decorator.data import skipIfNotMachine
+import oe.types
 
 class GenericEFITest(OESelftestTestCase):
     """EFI booting test class"""
+    @skipIfNotMachine("qemux86-64", "test is qemux86-64 specific currently")
+    def test_boot_efi(self):
+        cmd = "runqemu nographic serial wic ovmf"
+        if oe.types.qemu_use_kvm(self.td['QEMU_USE_KVM'], self.td["TARGET_ARCH"]):
+            cmd += " kvm"
+        image = "core-image-minimal"
 
-    cmd_common = "runqemu nographic serial wic ovmf"
-    efi_provider = "systemd-boot"
-    image = "core-image-minimal"
-    machine = "qemux86-64"
-    recipes_built = False
-
-    @classmethod
-    def setUpLocal(self):
-        super(GenericEFITest, self).setUpLocal(self)
-
-        self.write_config(self,
-"""
-EFI_PROVIDER = "%s"
+        self.write_config("""
+EFI_PROVIDER = "systemd-boot"
 IMAGE_FSTYPES:pn-%s:append = " wic"
-MACHINE = "%s"
 MACHINE_FEATURES:append = " efi"
 WKS_FILE = "efi-bootdisk.wks.in"
 IMAGE_INSTALL:append = " grub-efi systemd-boot kernel-image-bzimage"
 """
-% (self.efi_provider, self.image, self.machine))
-        if not self.recipes_built:
-            bitbake("ovmf")
-            bitbake(self.image)
-            self.recipes_built = True
+% (image))
 
-    @classmethod
-    def test_boot_efi(self):
-        """Test generic boot partition with qemu"""
-        cmd = "%s %s" % (self.cmd_common, self.machine)
-        with runqemu(self.image, ssh=False, launch_cmd=cmd) as qemu:
+        bitbake(image + " ovmf")
+        with runqemu(image, ssh=False, launch_cmd=cmd) as qemu:
             self.assertTrue(qemu.runner.logged, "Failed: %s" % cmd)
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index d3fd528..af38150 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -136,7 +136,7 @@
         img_types = [ 'vmdk', 'vdi', 'qcow2' ]
         features = ""
         for itype in img_types:
-            features += 'IMAGE_FSTYPES += "wic.%s"\n' % itype
+            features += 'IMAGE_FSTYPES += "ext4.%s"\n' % itype
         self.write_config(features)
 
         image_name = 'core-image-minimal'
@@ -145,7 +145,7 @@
         deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
         link_name = get_bb_var('IMAGE_LINK_NAME', image_name)
         for itype in img_types:
-            image_path = os.path.join(deploy_dir_image, "%s.wic.%s" %
+            image_path = os.path.join(deploy_dir_image, "%s.ext4.%s" %
                                       (link_name, itype))
 
             # check if result image file is in deploy directory
@@ -206,9 +206,12 @@
         skip_image_types = set(('container', 'elf', 'f2fs', 'multiubi', 'tar.zst', 'wic.zst', 'squashfs-lzo'))
         img_types = all_image_types - skip_image_types
 
-        config = 'IMAGE_FSTYPES += "%s"\n'\
-                 'MKUBIFS_ARGS ?= "-m 2048 -e 129024 -c 2047"\n'\
-                 'UBINIZE_ARGS ?= "-m 2048 -p 128KiB -s 512"' % ' '.join(img_types)
+        config = """
+IMAGE_FSTYPES += "%s"
+WKS_FILE = "wictestdisk.wks"
+MKUBIFS_ARGS ?= "-m 2048 -e 129024 -c 2047"
+UBINIZE_ARGS ?= "-m 2048 -p 128KiB -s 512"
+""" % ' '.join(img_types)
         self.write_config(config)
 
         bitbake(image_name)
@@ -271,7 +274,6 @@
         image_name = 'core-image-minimal'
         features = 'IMAGE_GEN_DEBUGFS = "1"\n'
         features += 'IMAGE_FSTYPES_DEBUGFS = "tar.bz2"\n'
-        features += 'MACHINE = "genericx86-64"\n'
         self.write_config(features)
 
         bitbake(image_name)
diff --git a/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py b/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py
index 5897a39..2d0b805 100644
--- a/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py
+++ b/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py
@@ -28,6 +28,7 @@
 SRC_URI = "file://%s;md5=d41d8cd98f00b204e9800998ecf8427e"
 """ % (urllib.parse.quote(lic_path), urllib.parse.quote(lic_path)))
         result = bitbake(bitbake_cmd)
+        self.delete_recipeinc('emptytest')
 
 
     # Verify that changing a license file that has an absolute path causes
@@ -53,5 +54,6 @@
             f.write("data")
 
         result = bitbake(bitbake_cmd, ignore_status=True)
+        self.delete_recipeinc('emptytest')
         if error_msg not in result.output:
             raise AssertionError(result.output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/minidebuginfo.py b/poky/meta/lib/oeqa/selftest/cases/minidebuginfo.py
new file mode 100644
index 0000000..7947c38
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/minidebuginfo.py
@@ -0,0 +1,43 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+import os
+import subprocess
+import tempfile
+import shutil
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake, get_bb_var, runCmd
+
+
+class Minidebuginfo(OESelftestTestCase):
+    def test_minidebuginfo(self):
+        target_sys = get_bb_var("TARGET_SYS")
+        binutils = "binutils-cross-{}".format(get_bb_var("TARGET_ARCH"))
+
+        self.write_config("""
+PACKAGE_MINIDEBUGINFO = "1"
+IMAGE_FSTYPES = "tar.bz2"
+""")
+        bitbake("core-image-minimal {}:do_addto_recipe_sysroot".format(binutils))
+
+        deploy_dir = get_bb_var("DEPLOY_DIR_IMAGE")
+        native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", binutils)
+        readelf = get_bb_var("READELF", "core-image-minimal")
+
+        # confirm that executables and shared libraries contain an ELF section
+        # ".gnu_debugdata" which stores minidebuginfo.
+        with tempfile.TemporaryDirectory(prefix = "unpackfs-") as unpackedfs:
+            filename = os.path.join(deploy_dir, "core-image-minimal-{}.tar.bz2".format(self.td["MACHINE"]))
+            shutil.unpack_archive(filename, unpackedfs)
+
+            r = runCmd([readelf, "-W", "-S", os.path.join(unpackedfs, "bin", "busybox")],
+                    native_sysroot = native_sysroot, target_sys = target_sys)
+            self.assertIn(".gnu_debugdata", r.output)
+
+            r = runCmd([readelf, "-W", "-S", os.path.join(unpackedfs, "lib", "libc.so.6")],
+                    native_sysroot = native_sysroot, target_sys = target_sys)
+            self.assertIn(".gnu_debugdata", r.output)
+
diff --git a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
index 57a8c8b..dfd9f14 100644
--- a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
+++ b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
@@ -7,6 +7,7 @@
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake, runqemu
 from oeqa.core.decorator import OETestTag
+from oeqa.core.decorator.data import skipIfNotMachine
 
 def getline_qemu(out, line):
     for l in out.split('\n'):
@@ -333,6 +334,8 @@
         self.assertTrue("overlayfs-etc" in res.output, msg=res.output)
         self.assertTrue("package-management" in res.output, msg=res.output)
 
+    # https://bugzilla.yoctoproject.org/show_bug.cgi?id=14963
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_image_feature_is_missing(self):
         """
         Summary:   Overlayfs-etc class is not applied when image feature is not set
@@ -368,9 +371,11 @@
             line = getline_qemu(output, "upperdir=/data/overlay-etc/upper")
             self.assertFalse(line, msg=output)
 
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_sbin_init_preinit(self):
         self.run_sbin_init(False)
 
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_sbin_init_original(self):
         self.run_sbin_init(True)
 
@@ -419,6 +424,7 @@
             line = getline_qemu(output, testFile)
             self.assertTrue(line and line.startswith(testFile), msg=output)
 
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_lower_layer_access(self):
         """
         Summary:   Test that lower layer of /etc is available read-only when configured
diff --git a/poky/meta/lib/oeqa/selftest/cases/package.py b/poky/meta/lib/oeqa/selftest/cases/package.py
index 2d1b48a..4f7cd10 100644
--- a/poky/meta/lib/oeqa/selftest/cases/package.py
+++ b/poky/meta/lib/oeqa/selftest/cases/package.py
@@ -135,8 +135,10 @@
                     self.logger.error("No debugging symbols found. GDB result:\n%s" % output)
                     return False
 
-                # Check debugging symbols works correctly
-                elif re.match(r"Breakpoint 1.*hello\.c.*4", l):
+                # Check debugging symbols works correctly. Don't look for a
+                # source file as optimisation can put the breakpoint inside
+                # stdio.h.
+                elif "Breakpoint 1 at" in l:
                     return True
 
             self.logger.error("GDB result:\n%d: %s", status, output)
@@ -151,25 +153,25 @@
                     self.fail('GDB %s failed' % binary)
 
     def test_preserve_ownership(self):
-        import os, stat, oe.cachedpath
         features = 'IMAGE_INSTALL:append = " selftest-chown"\n'
         self.write_config(features)
         bitbake("core-image-minimal")
 
-        sysconfdir = get_bb_var('sysconfdir', 'selftest-chown')
-        def check_ownership(qemu, gid, uid, path):
+        def check_ownership(qemu, expected_gid, expected_uid, path):
             self.logger.info("Check ownership of %s", path)
-            status, output = qemu.run_serial(r'/bin/stat -c "%U %G" ' + path, timeout=60)
-            output = output.split(" ")
-            if output[0] != uid or output[1] != gid :
-                self.logger.error("Incrrect ownership %s [%s:%s]", path, output[0], output[1])
-                return False
-            return True
+            status, output = qemu.run_serial('stat -c "%U %G" ' + path)
+            self.assertEqual(status, 1, "stat failed: " + output)
+            try:
+                uid, gid = output.split()
+                self.assertEqual(uid, expected_uid)
+                self.assertEqual(gid, expected_gid)
+            except ValueError:
+                self.fail("Cannot parse output: " + output)
 
+        sysconfdir = get_bb_var('sysconfdir', 'selftest-chown')
         with runqemu('core-image-minimal') as qemu:
             for path in [ sysconfdir + "/selftest-chown/file",
                           sysconfdir + "/selftest-chown/dir",
                           sysconfdir + "/selftest-chown/symlink",
                           sysconfdir + "/selftest-chown/fifotest/fifo"]:
-                if not check_ownership(qemu, "test", "test", path):
-                    self.fail('Test ownership %s failed' % path)
+                check_ownership(qemu, "test", "test", path)
diff --git a/poky/meta/lib/oeqa/selftest/cases/runqemu.py b/poky/meta/lib/oeqa/selftest/cases/runqemu.py
index c1d277a..58a4526 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runqemu.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runqemu.py
@@ -9,6 +9,7 @@
 import time
 import oe.types
 from oeqa.core.decorator import OETestTag
+from oeqa.core.decorator.data import skipIfNotArch, skipIfNotMachine
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake, runqemu, get_bb_var, runCmd
 
@@ -22,23 +23,25 @@
     def setUpLocal(self):
         super(RunqemuTests, self).setUpLocal()
         self.recipe = 'core-image-minimal'
-        self.machine =  'qemux86-64'
-        self.fstypes = "ext4 iso hddimg wic.vmdk wic.qcow2 wic.vdi"
-        self.cmd_common = "runqemu nographic"
+        self.machine =  self.td['MACHINE']
 
-        kvm = oe.types.qemu_use_kvm(get_bb_var('QEMU_USE_KVM'), 'x86_64')
+        self.fstypes = "ext4"
+        if self.td["HOST_ARCH"] in ('i586', 'i686', 'x86_64'):
+            self.fstypes += " iso hddimg"
+        if self.machine == "qemux86-64":
+            self.fstypes += " wic.vmdk wic.qcow2 wic.vdi"
+
+        self.cmd_common = "runqemu nographic"
+        kvm = oe.types.qemu_use_kvm(get_bb_var('QEMU_USE_KVM'), self.td["TARGET_ARCH"])
         if kvm:
             self.cmd_common += " kvm"
 
         self.write_config(
 """
-MACHINE = "%s"
 IMAGE_FSTYPES = "%s"
 # 10 means 1 second
 SYSLINUX_TIMEOUT = "10"
-"""
-% (self.machine, self.fstypes)
-        )
+""" % self.fstypes)
 
         if not RunqemuTests.image_is_ready:
             RunqemuTests.deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
@@ -59,6 +62,7 @@
             with open(qemu.qemurunnerlog) as f:
                 self.assertIn('rootfs.ext4', f.read(), "Failed: %s" % cmd)
 
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_boot_machine_iso(self):
         """Test runqemu machine iso"""
         cmd = "%s %s iso" % (self.cmd_common, self.machine)
@@ -73,7 +77,8 @@
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue(qemu.runner.logged, "Failed: %s, %s" % (cmd, f.read()))
 
-
+    # https://bugzilla.yoctoproject.org/show_bug.cgi?id=14963
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_boot_recipe_image_vmdk(self):
         """Test runqemu recipe-image vmdk"""
         cmd = "%s %s wic.vmdk" % (self.cmd_common, self.recipe)
@@ -81,6 +86,7 @@
             with open(qemu.qemurunnerlog) as f:
                 self.assertIn('format=vmdk', f.read(), "Failed: %s" % cmd)
 
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_boot_recipe_image_vdi(self):
         """Test runqemu recipe-image vdi"""
         cmd = "%s %s wic.vdi" % (self.cmd_common, self.recipe)
@@ -96,6 +102,7 @@
                 self.assertTrue(qemu.runner.logged, "Failed: %s, %s" % (cmd, f.read()))
 
 
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_boot_deploy_hddimg(self):
         """Test runqemu deploy_dir_image hddimg"""
         cmd = "%s %s hddimg" % (self.cmd_common, self.deploy_dir_image)
@@ -110,6 +117,7 @@
             with open(qemu.qemurunnerlog) as f:
                 self.assertIn(' -netdev user', f.read(), "Failed: %s" % cmd)
 
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_boot_machine_slirp_qcow2(self):
         """Test runqemu machine slirp qcow2"""
         cmd = "%s slirp wic.qcow2 %s" % (self.cmd_common, self.machine)
diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
index fe83b24..ae79724 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -10,7 +10,7 @@
 import os
 import tempfile
 import oe.lsb
-from oeqa.core.decorator.data import skipIfNotQemu
+from oeqa.core.decorator.data import skipIfNotQemu, skipIfNotMachine
 
 class TestExport(OESelftestTestCase):
 
@@ -202,6 +202,8 @@
         bitbake('core-image-full-cmdline socat')
         bitbake('-c testimage core-image-full-cmdline')
 
+    # https://bugzilla.yoctoproject.org/show_bug.cgi?id=14966
+    @skipIfNotMachine("qemux86-64", "test needs qemux86-64")
     def test_testimage_virgl_gtk_sdl(self):
         """
         Summary: Check host-assisted accelerate OpenGL functionality in qemu with gtk and SDL frontends
@@ -243,6 +245,7 @@
         bitbake('core-image-minimal')
         bitbake('-c testimage core-image-minimal')
 
+    @skipIfNotMachine("qemux86-64", "test needs qemux86-64")
     def test_testimage_virgl_headless(self):
         """
         Summary: Check host-assisted accelerate OpenGL functionality in qemu with egl-headless frontend
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index 0d664d7..ca1abb9 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -15,33 +15,14 @@
 
 from glob import glob
 from shutil import rmtree, copy
-from functools import wraps, lru_cache
 from tempfile import NamedTemporaryFile
 
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.core.decorator import OETestTag
+from oeqa.core.decorator.data import skipIfNotArch
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu
 
 
-@lru_cache()
-def get_host_arch():
-    return get_bb_var('HOST_ARCH')
-
-
-def only_for_arch(archs):
-    """Decorator for wrapping test cases that can be run only for specific target
-    architectures. A list of compatible architectures is passed in `archs`.
-    """
-    def wrapper(func):
-        @wraps(func)
-        def wrapped_f(*args, **kwargs):
-            arch = get_host_arch()
-            if archs and arch not in archs:
-                raise unittest.SkipTest("Testcase arch dependency not met: %s" % arch)
-            return func(*args, **kwargs)
-        return wrapped_f
-    return wrapper
-
 def extract_files(debugfs_output):
     """
     extract file names from the output of debugfs -R 'ls -p',
@@ -171,14 +152,14 @@
         runCmd(cmd)
         self.assertEqual(1, len(glob(os.path.join (self.resultdir, "wictestdisk-*.direct"))))
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_gpt_image(self):
         """Test creation of core-image-minimal with gpt table and UUID boot"""
         cmd = "wic create directdisk-gpt --image-name core-image-minimal -o %s" % self.resultdir
         runCmd(cmd)
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "directdisk-*.direct"))))
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_iso_image(self):
         """Test creation of hybrid iso image with legacy and EFI boot"""
         config = 'INITRAMFS_IMAGE = "core-image-minimal-initramfs"\n'\
@@ -192,21 +173,21 @@
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "HYBRID_ISO_IMG-*.direct"))))
         self.assertEqual(1, len(glob(os.path.join (self.resultdir, "HYBRID_ISO_IMG-*.iso"))))
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_qemux86_directdisk(self):
         """Test creation of qemux-86-directdisk image"""
         cmd = "wic create qemux86-directdisk -e core-image-minimal -o %s" % self.resultdir
         runCmd(cmd)
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "qemux86-directdisk-*direct"))))
 
-    @only_for_arch(['i586', 'i686', 'x86_64', 'aarch64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64', 'aarch64'])
     def test_mkefidisk(self):
         """Test creation of mkefidisk image"""
         cmd = "wic create mkefidisk -e core-image-minimal -o %s" % self.resultdir
         runCmd(cmd)
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "mkefidisk-*direct"))))
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_bootloader_config(self):
         """Test creation of directdisk-bootloader-config image"""
         config = 'DEPENDS:pn-core-image-minimal += "syslinux"\n'
@@ -217,7 +198,7 @@
         runCmd(cmd)
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "directdisk-bootloader-config-*direct"))))
 
-    @only_for_arch(['i586', 'i686', 'x86_64', 'aarch64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64', 'aarch64'])
     def test_systemd_bootdisk(self):
         """Test creation of systemd-bootdisk image"""
         config = 'MACHINE_FEATURES:append = " efi"\n'
@@ -248,7 +229,7 @@
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "sdimage-bootpart-*direct"))))
 
     # TODO this doesn't have to be x86-specific
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_default_output_dir(self):
         """Test default output location"""
         for fname in glob("directdisk-*.direct"):
@@ -261,7 +242,7 @@
         runCmd(cmd)
         self.assertEqual(1, len(glob("directdisk-*.direct")))
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_build_artifacts(self):
         """Test wic create directdisk providing all artifacts."""
         bb_vars = get_bb_vars(['STAGING_DATADIR', 'RECIPE_SYSROOT_NATIVE'],
@@ -353,7 +334,7 @@
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "wictestdisk-*.direct"))))
 
     # TODO this doesn't have to be x86-specific
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_rootfs_indirect_recipes(self):
         """Test usage of rootfs plugin with rootfs recipes"""
         runCmd("wic create directdisk-multi-rootfs "
@@ -364,7 +345,7 @@
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "directdisk-multi-rootfs*.direct"))))
 
     # TODO this doesn't have to be x86-specific
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_rootfs_artifacts(self):
         """Test usage of rootfs plugin with rootfs paths"""
         bb_vars = get_bb_vars(['STAGING_DATADIR', 'RECIPE_SYSROOT_NATIVE'],
@@ -817,7 +798,8 @@
                                       self.resultdir))
         self.assertEqual(1, len(glob(os.path.join(self.resultdir, "wictestdisk-*direct"))))
 
-    @only_for_arch(['i586', 'i686', 'x86_64', 'aarch64'])
+    # TODO this test could also work on aarch64
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_wic_image_type(self):
         """Test building wic images by bitbake"""
         config = 'IMAGE_FSTYPES += "wic"\nWKS_FILE = "wic-image-minimal"\n'\
@@ -837,7 +819,7 @@
             self.assertTrue(os.path.isfile(os.path.realpath(path)))
 
     # TODO this should work on aarch64
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     @OETestTag("runqemu")
     def test_qemu(self):
         """Test wic-image-minimal under qemu"""
@@ -858,7 +840,7 @@
             self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output))
             self.assertEqual(output, 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/media\text4\tdefaults\t0\t0')
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     @OETestTag("runqemu")
     def test_qemu_efi(self):
         """Test core-image-minimal efi image under qemu"""
@@ -1042,7 +1024,8 @@
             size = int(size[:-3])
             self.assertGreaterEqual(size, 204800)
 
-    @only_for_arch(['i586', 'i686', 'x86_64', 'aarch64'])
+    # TODO this test could also work on aarch64
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     @OETestTag("runqemu")
     def test_rawcopy_plugin_qemu(self):
         """Test rawcopy plugin in qemu"""
@@ -1109,7 +1092,7 @@
         result = runCmd("wic ls %s -n %s | awk -F ' ' '{print $1 \" \" $5}' | grep '^2' | wc -w" % (image_path, sysroot))
         self.assertEqual('1', result.output)
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     @OETestTag("runqemu")
     def test_biosplusefi_plugin_qemu(self):
         """Test biosplusefi plugin in qemu"""
@@ -1142,7 +1125,7 @@
             self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output))
             self.assertEqual(output, '*')
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_biosplusefi_plugin(self):
         """Test biosplusefi plugin"""
         # Wic generation below may fail depending on the order of the unittests
@@ -1169,7 +1152,7 @@
             self.assertEqual(1, len(out))
 
     # TODO this test could also work on aarch64
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     @OETestTag("runqemu")
     def test_efi_plugin_unified_kernel_image_qemu(self):
         """Test efi plugin's Unified Kernel Image feature in qemu"""
@@ -1287,7 +1270,7 @@
             out = glob(os.path.join(self.resultdir, "%s-*direct" % wksname))
             self.assertEqual(1, len(out))
 
-    @only_for_arch(['i586', 'i686', 'x86_64'])
+    @skipIfNotArch(['i586', 'i686', 'x86_64'])
     @OETestTag("runqemu")
     def test_expand_mbr_image(self):
         """Test wic write --expand command for mbr image"""