From 3abd781d34402cd5d605769f02fa0be2476a69cc Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Mon, 17 Jul 2023 15:11:14 +0800 Subject: qemu: Add qemu-common package We split the qemu package [1] to add support to make user can install one qemu arch emulation rpm to ease the concerns who care much about the rpm size in embedded device. But for the user who only install the qemu-*.rpm can't do anything except they install the qemu emulation rpm like qemu-system-x86-64-*.rpm explicitly. So add qemu-common package to package all thing into qemu-common when not split the package, and package only the basic into qemu-common and other arch related to each qemu arch emulation rpm when split the package to fix the backward compatibility. qenu-*.rpm which is meta package rdepends on qemu-common and the available qemu arch emulation rpm like qemu-system-x86-64-*.rpm and etc. [1] https://git.openembedded.org/openembedded-core/commit/?id=893846ead7ee54d53e9076150cd655e0c8bca5db (From OE-Core rev: 91c47aa06170081b64500471a39999b42cb1f400) Signed-off-by: Mingli Yu Signed-off-by: Richard Purdie --- meta/recipes-devtools/qemu/qemu.inc | 23 ++++++++++++----------- meta/recipes-devtools/qemu/qemu_8.0.3.bb | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 64bade86aa..eaabc0e706 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -220,15 +220,18 @@ PACKAGECONFIG[brlapi] = "--enable-brlapi,--disable-brlapi" PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack," PACKAGECONFIG[debuginfo] = "--enable-libdw,--disable-libdw,elfutils" -INSANE_SKIP:${PN} = "arch" +INSANE_SKIP:${PN}-common = "arch" FILES:${PN} += "${datadir}/icons" # For user who want to install all arch packages -PACKAGES =+ "${PN}-system-all ${PN}-user-all" +PACKAGES =+ "${PN}-common" +RDEPENDS:${PN} += "${PN}-common" -ALLOW_EMPTY:${PN}-system-all = "1" -ALLOW_EMPTY:${PN}-user-all = "1" +ALLOW_EMPTY:${PN} = "1" +FILES:${PN} = "" + +FILES:${PN}-common = "${bindir}/* ${includedir}/* ${libexecdir}/* ${datadir}/* ${localstatedir}" PACKAGES_DYNAMIC += "^${PN}-user-.* ^${PN}-system-.*" @@ -236,15 +239,13 @@ PACKAGESPLITFUNCS =+ "split_qemu_packages" python split_qemu_packages () { archdir = d.expand('${bindir}/') - syspackages = do_split_packages(d, archdir, r'^qemu-system-(.*)$', '${PN}-system-%s', 'QEMU full system emulation binaries(%s)' , prepend=True) - if syspackages: - d.setVar('RDEPENDS:' + d.getVar('PN') + '-system-all', ' '.join(syspackages)) + subpackages = do_split_packages(d, archdir, r'^qemu-system-(.*)$', '${PN}-system-%s', 'QEMU full system emulation binaries(%s)' , prepend=True, extra_depends='${PN}-common') - userpackages = do_split_packages(d, archdir, r'^qemu-((?!system|edid|ga|img|io|nbd|pr-helper|storage-daemon).*)$', '${PN}-user-%s', 'QEMU full user emulation binaries(%s)' , prepend=True) - if userpackages: - d.setVar('RDEPENDS:' + d.getVar('PN') + '-user-all', ' '.join(userpackages)) + subpackages += do_split_packages(d, archdir, r'^qemu-((?!system|edid|ga|img|io|nbd|pr-helper|storage-daemon).*)$', '${PN}-user-%s', 'QEMU full user emulation binaries(%s)' , prepend=True, extra_depends='${PN}-common') + if subpackages: + d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(subpackages)) mipspackage = d.getVar('PN') + "-user-mips" - if mipspackage in ' '.join(userpackages): + if mipspackage in ' '.join(subpackages): d.appendVar('RDEPENDS:' + mipspackage, ' ' + d.getVar("MLPREFIX") + 'bash') } diff --git a/meta/recipes-devtools/qemu/qemu_8.0.3.bb b/meta/recipes-devtools/qemu/qemu_8.0.3.bb index 42e133967e..5d3c47c3b0 100644 --- a/meta/recipes-devtools/qemu/qemu_8.0.3.bb +++ b/meta/recipes-devtools/qemu/qemu_8.0.3.bb @@ -8,7 +8,7 @@ DEPENDS:append:libc-musl = " libucontext" CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" -RDEPENDS:${PN}:class-target += "bash" +RDEPENDS:${PN}-common:class-target += "bash" EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}" EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" -- cgit v1.2.3-54-g00ecf