diff mbox series

[v3] qemu: Add qemu-common package

Message ID 20230710103218.3834001-1-mingli.yu@eng.windriver.com
State New
Headers show
Series [v3] qemu: Add qemu-common package | expand

Commit Message

mingli.yu@eng.windriver.com July 10, 2023, 10:32 a.m. UTC
From: Mingli Yu <mingli.yu@windriver.com>

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

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
 meta/recipes-devtools/qemu/qemu.inc      | 23 ++++++++++++-----------
 meta/recipes-devtools/qemu/qemu_8.0.0.bb |  3 ++-
 2 files changed, 14 insertions(+), 12 deletions(-)

Comments

Alexandre Belloni July 10, 2023, 8:47 p.m. UTC | #1
Hello,

On 10/07/2023 18:32:18+0800, Yu, Mingli wrote:
> From: Mingli Yu <mingli.yu@windriver.com>
> 
> 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
> 
> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> ---

Please insert a changelog between your patch versions here, especially
since you are sending v3 while v2 is under tessting.

Also, don't put subsequent version in the same thread as v1, this may
cause your patches to be ignored as they appear in an old thread.

>  meta/recipes-devtools/qemu/qemu.inc      | 23 ++++++++++++-----------
>  meta/recipes-devtools/qemu/qemu_8.0.0.bb |  3 ++-
>  2 files changed, 14 insertions(+), 12 deletions(-)
> 
> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> index a5bdeef66d..94624163d0 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -226,15 +226,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-.*"
>  
> @@ -242,15 +245,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.0.bb b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> index 42e133967e..412c2bc7f0 100644
> --- a/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> +++ b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> @@ -8,7 +8,8 @@ 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"
> +RDEPENDS:${PN}-common:class-nativesdk += "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)}"
> -- 
> 2.25.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#184068): https://lists.openembedded.org/g/openembedded-core/message/184068
> Mute This Topic: https://lists.openembedded.org/mt/100054994/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Yu, Mingli July 12, 2023, 2:39 a.m. UTC | #2
On 7/11/23 04:47, Alexandre Belloni wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
> 
> Hello,
> 
> On 10/07/2023 18:32:18+0800, Yu, Mingli wrote:
>> From: Mingli Yu <mingli.yu@windriver.com>
>>
>> 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
>>
>> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
>> ---
> 
> Please insert a changelog between your patch versions here, especially
> since you are sending v3 while v2 is under tessting.

Will insert changelog next time.

> 
> Also, don't put subsequent version in the same thread as v1, this may
> cause your patches to be ignored as they appear in an old thread.

Got it.

Thanks,

> 
>>   meta/recipes-devtools/qemu/qemu.inc      | 23 ++++++++++++-----------
>>   meta/recipes-devtools/qemu/qemu_8.0.0.bb |  3 ++-
>>   2 files changed, 14 insertions(+), 12 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
>> index a5bdeef66d..94624163d0 100644
>> --- a/meta/recipes-devtools/qemu/qemu.inc
>> +++ b/meta/recipes-devtools/qemu/qemu.inc
>> @@ -226,15 +226,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-.*"
>>
>> @@ -242,15 +245,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.0.bb b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>> index 42e133967e..412c2bc7f0 100644
>> --- a/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>> +++ b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>> @@ -8,7 +8,8 @@ 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"
>> +RDEPENDS:${PN}-common:class-nativesdk += "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)}"
>> --
>> 2.25.1
>>
> 
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#184068): https://lists.openembedded.org/g/openembedded-core/message/184068
>> Mute This Topic: https://lists.openembedded.org/mt/100054994/3617179
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
> 
> 
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Alexandre Belloni July 16, 2023, 11:47 a.m. UTC | #3
Hello,

This causes the following meta-mingw error on the AB:

https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio

This is due to the added native-sdk dependency.

On 10/07/2023 18:32:18+0800, Yu, Mingli wrote:
> From: Mingli Yu <mingli.yu@windriver.com>
> 
> 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
> 
> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> ---
>  meta/recipes-devtools/qemu/qemu.inc      | 23 ++++++++++++-----------
>  meta/recipes-devtools/qemu/qemu_8.0.0.bb |  3 ++-
>  2 files changed, 14 insertions(+), 12 deletions(-)
> 
> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> index a5bdeef66d..94624163d0 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -226,15 +226,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-.*"
>  
> @@ -242,15 +245,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.0.bb b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> index 42e133967e..412c2bc7f0 100644
> --- a/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> +++ b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> @@ -8,7 +8,8 @@ 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"
> +RDEPENDS:${PN}-common:class-nativesdk += "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)}"
> -- 
> 2.25.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#184068): https://lists.openembedded.org/g/openembedded-core/message/184068
> Mute This Topic: https://lists.openembedded.org/mt/100054994/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Yu, Mingli July 17, 2023, 7:10 a.m. UTC | #4
Hi Alex,

On 7/16/23 19:47, Alexandre Belloni wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
> 
> Hello,
> 
> This causes the following meta-mingw error on the AB:
> 
> https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio

I didn't find the core-image-mingw-sdktest recipe which I noticed in the 
above log, so I cannot reproduce the issue as you mentioned.

Thanks,

> 
> This is due to the added native-sdk dependency.
> 
> On 10/07/2023 18:32:18+0800, Yu, Mingli wrote:
>> From: Mingli Yu <mingli.yu@windriver.com>
>>
>> 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
>>
>> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
>> ---
>>   meta/recipes-devtools/qemu/qemu.inc      | 23 ++++++++++++-----------
>>   meta/recipes-devtools/qemu/qemu_8.0.0.bb |  3 ++-
>>   2 files changed, 14 insertions(+), 12 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
>> index a5bdeef66d..94624163d0 100644
>> --- a/meta/recipes-devtools/qemu/qemu.inc
>> +++ b/meta/recipes-devtools/qemu/qemu.inc
>> @@ -226,15 +226,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-.*"
>>
>> @@ -242,15 +245,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.0.bb b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>> index 42e133967e..412c2bc7f0 100644
>> --- a/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>> +++ b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>> @@ -8,7 +8,8 @@ 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"
>> +RDEPENDS:${PN}-common:class-nativesdk += "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)}"
>> --
>> 2.25.1
>>
> 
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#184068): https://lists.openembedded.org/g/openembedded-core/message/184068
>> Mute This Topic: https://lists.openembedded.org/mt/100054994/3617179
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
> 
> 
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Alexandre Belloni July 17, 2023, 12:46 p.m. UTC | #5
On 17/07/2023 15:10:35+0800, Yu, Mingli wrote:
> Hi Alex,
> 
> On 7/16/23 19:47, Alexandre Belloni wrote:
> > CAUTION: This email comes from a non Wind River email account!
> > Do not click links or open attachments unless you recognize the sender and know the content is safe.
> > 
> > Hello,
> > 
> > This causes the following meta-mingw error on the AB:
> > 
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
> 
> I didn't find the core-image-mingw-sdktest recipe which I noticed in the
> above log, so I cannot reproduce the issue as you mentioned.

As stated above, this is part of meta-mingw:

https://git.yoctoproject.org/meta-mingw/tree/recipes-core/images?h=master-next

> 
> Thanks,
> 
> > 
> > This is due to the added native-sdk dependency.
> > 
> > On 10/07/2023 18:32:18+0800, Yu, Mingli wrote:
> > > From: Mingli Yu <mingli.yu@windriver.com>
> > > 
> > > 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
> > > 
> > > Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> > > ---
> > >   meta/recipes-devtools/qemu/qemu.inc      | 23 ++++++++++++-----------
> > >   meta/recipes-devtools/qemu/qemu_8.0.0.bb |  3 ++-
> > >   2 files changed, 14 insertions(+), 12 deletions(-)
> > > 
> > > diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> > > index a5bdeef66d..94624163d0 100644
> > > --- a/meta/recipes-devtools/qemu/qemu.inc
> > > +++ b/meta/recipes-devtools/qemu/qemu.inc
> > > @@ -226,15 +226,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-.*"
> > > 
> > > @@ -242,15 +245,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.0.bb b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> > > index 42e133967e..412c2bc7f0 100644
> > > --- a/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> > > +++ b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
> > > @@ -8,7 +8,8 @@ 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"
> > > +RDEPENDS:${PN}-common:class-nativesdk += "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)}"
> > > --
> > > 2.25.1
> > > 
> > 
> > > 
> > > 
> > > 
> > 
> > 
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#184431): https://lists.openembedded.org/g/openembedded-core/message/184431
> Mute This Topic: https://lists.openembedded.org/mt/100054994/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Yu, Mingli July 19, 2023, 9:10 a.m. UTC | #6
Hi Alex,

On 7/17/23 20:46, Alexandre Belloni wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
> 
> On 17/07/2023 15:10:35+0800, Yu, Mingli wrote:
>> Hi Alex,
>>
>> On 7/16/23 19:47, Alexandre Belloni wrote:
>>> CAUTION: This email comes from a non Wind River email account!
>>> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>>>
>>> Hello,
>>>
>>> This causes the following meta-mingw error on the AB:
>>>
>>> https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
>>
>> I didn't find the core-image-mingw-sdktest recipe which I noticed in the
>> above log, so I cannot reproduce the issue as you mentioned.
> 
> As stated above, this is part of meta-mingw:
> 
> https://git.yoctoproject.org/meta-mingw/tree/recipes-core/images?h=master-next

Thanks for your pointer!

BTW, the below error which in 
https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio 
seems irrelevant to the added nativesdk dependency though I have removed 
the nativesdk dependency in 
https://patchwork.yoctoproject.org/project/oe-core/patch/20230717071114.2734859-1-mingli.yu@eng.windriver.com/.

| 
/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld: 
../obj_s/lib_kernel.o:lib_kernel.c:(.text+0x5c): undefined reference to 
`_nc_mingw_tcflush'
| 
/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld: 
../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0x2c): undefined reference 
to `_nc_mingw_tcgetattr'
| 
/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld: 
../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0xbb): undefined reference 
to `_nc_mingw_tcsetattr'

Thanks,

> 
>>
>> Thanks,
>>
>>>
>>> This is due to the added native-sdk dependency.
>>>
>>> On 10/07/2023 18:32:18+0800, Yu, Mingli wrote:
>>>> From: Mingli Yu <mingli.yu@windriver.com>
>>>>
>>>> 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
>>>>
>>>> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
>>>> ---
>>>>    meta/recipes-devtools/qemu/qemu.inc      | 23 ++++++++++++-----------
>>>>    meta/recipes-devtools/qemu/qemu_8.0.0.bb |  3 ++-
>>>>    2 files changed, 14 insertions(+), 12 deletions(-)
>>>>
>>>> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
>>>> index a5bdeef66d..94624163d0 100644
>>>> --- a/meta/recipes-devtools/qemu/qemu.inc
>>>> +++ b/meta/recipes-devtools/qemu/qemu.inc
>>>> @@ -226,15 +226,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-.*"
>>>>
>>>> @@ -242,15 +245,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.0.bb b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>>>> index 42e133967e..412c2bc7f0 100644
>>>> --- a/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>>>> +++ b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
>>>> @@ -8,7 +8,8 @@ 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"
>>>> +RDEPENDS:${PN}-common:class-nativesdk += "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)}"
>>>> --
>>>> 2.25.1
>>>>
>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Alexandre Belloni, co-owner and COO, Bootlin
>>> Embedded Linux and Kernel engineering
>>> https://bootlin.com
> 
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#184431): https://lists.openembedded.org/g/openembedded-core/message/184431
>> Mute This Topic: https://lists.openembedded.org/mt/100054994/3617179
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
> 
> 
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Alexandre Belloni July 19, 2023, 9:20 a.m. UTC | #7
On 19/07/2023 17:10:37+0800, Yu, Mingli wrote:
> Hi Alex,
> 
> On 7/17/23 20:46, Alexandre Belloni wrote:
> > CAUTION: This email comes from a non Wind River email account!
> > Do not click links or open attachments unless you recognize the sender and know the content is safe.
> > 
> > On 17/07/2023 15:10:35+0800, Yu, Mingli wrote:
> > > Hi Alex,
> > > 
> > > On 7/16/23 19:47, Alexandre Belloni wrote:
> > > > CAUTION: This email comes from a non Wind River email account!
> > > > Do not click links or open attachments unless you recognize the sender and know the content is safe.
> > > > 
> > > > Hello,
> > > > 
> > > > This causes the following meta-mingw error on the AB:
> > > > 
> > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
> > > 
> > > I didn't find the core-image-mingw-sdktest recipe which I noticed in the
> > > above log, so I cannot reproduce the issue as you mentioned.
> > 
> > As stated above, this is part of meta-mingw:
> > 
> > https://git.yoctoproject.org/meta-mingw/tree/recipes-core/images?h=master-next
> 
> Thanks for your pointer!
> 
> BTW, the below error which in https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
> seems irrelevant to the added nativesdk dependency though I have removed the
> nativesdk dependency in https://patchwork.yoctoproject.org/project/oe-core/patch/20230717071114.2734859-1-mingli.yu@eng.windriver.com/.
> 
> | /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
> ../obj_s/lib_kernel.o:lib_kernel.c:(.text+0x5c): undefined reference to
> `_nc_mingw_tcflush'
> | /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
> ../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0x2c): undefined reference to
> `_nc_mingw_tcgetattr'
> | /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
> ../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0xbb): undefined reference to
> `_nc_mingw_tcsetattr'
> 

It is relevant, this is because of the dependency that this gets built
and fails. I've seen v4 but didn't have the time to test it yet.
Richard Purdie July 19, 2023, 9:24 a.m. UTC | #8
On Wed, 2023-07-19 at 11:20 +0200, Alexandre Belloni via
lists.openembedded.org wrote:
> On 19/07/2023 17:10:37+0800, Yu, Mingli wrote:
> > Hi Alex,
> > 
> > On 7/17/23 20:46, Alexandre Belloni wrote:
> > > CAUTION: This email comes from a non Wind River email account!
> > > Do not click links or open attachments unless you recognize the sender and know the content is safe.
> > > 
> > > On 17/07/2023 15:10:35+0800, Yu, Mingli wrote:
> > > > Hi Alex,
> > > > 
> > > > On 7/16/23 19:47, Alexandre Belloni wrote:
> > > > > CAUTION: This email comes from a non Wind River email account!
> > > > > Do not click links or open attachments unless you recognize the sender and know the content is safe.
> > > > > 
> > > > > Hello,
> > > > > 
> > > > > This causes the following meta-mingw error on the AB:
> > > > > 
> > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
> > > > 
> > > > I didn't find the core-image-mingw-sdktest recipe which I noticed in the
> > > > above log, so I cannot reproduce the issue as you mentioned.
> > > 
> > > As stated above, this is part of meta-mingw:
> > > 
> > > https://git.yoctoproject.org/meta-mingw/tree/recipes-core/images?h=master-next
> > 
> > Thanks for your pointer!
> > 
> > BTW, the below error which in https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
> > seems irrelevant to the added nativesdk dependency though I have removed the
> > nativesdk dependency in https://patchwork.yoctoproject.org/project/oe-core/patch/20230717071114.2734859-1-mingli.yu@eng.windriver.com/.
> > 
> > > /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
> > ../obj_s/lib_kernel.o:lib_kernel.c:(.text+0x5c): undefined reference to
> > `_nc_mingw_tcflush'
> > > /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
> > ../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0x2c): undefined reference to
> > `_nc_mingw_tcgetattr'
> > > /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
> > ../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0xbb): undefined reference to
> > `_nc_mingw_tcsetattr'
> > 
> 
> It is relevant, this is because of the dependency that this gets built
> and fails. I've seen v4 but didn't have the time to test it yet.

I've still not seen an answer to Ross' question or mine about why we
can't just add a couple of dependencies and resolve things that way.

Cheers,

Richard
Yu, Mingli July 19, 2023, 9:39 a.m. UTC | #9
Hi Richard and Ross,

On 7/19/23 17:24, Richard Purdie wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
> 
> On Wed, 2023-07-19 at 11:20 +0200, Alexandre Belloni via
> lists.openembedded.org wrote:
>> On 19/07/2023 17:10:37+0800, Yu, Mingli wrote:
>>> Hi Alex,
>>>
>>> On 7/17/23 20:46, Alexandre Belloni wrote:
>>>> CAUTION: This email comes from a non Wind River email account!
>>>> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>>>>
>>>> On 17/07/2023 15:10:35+0800, Yu, Mingli wrote:
>>>>> Hi Alex,
>>>>>
>>>>> On 7/16/23 19:47, Alexandre Belloni wrote:
>>>>>> CAUTION: This email comes from a non Wind River email account!
>>>>>> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> This causes the following meta-mingw error on the AB:
>>>>>>
>>>>>> https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
>>>>>
>>>>> I didn't find the core-image-mingw-sdktest recipe which I noticed in the
>>>>> above log, so I cannot reproduce the issue as you mentioned.
>>>>
>>>> As stated above, this is part of meta-mingw:
>>>>
>>>> https://git.yoctoproject.org/meta-mingw/tree/recipes-core/images?h=master-next
>>>
>>> Thanks for your pointer!
>>>
>>> BTW, the below error which in https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/7501/steps/12/logs/stdio
>>> seems irrelevant to the added nativesdk dependency though I have removed the
>>> nativesdk dependency in https://patchwork.yoctoproject.org/project/oe-core/patch/20230717071114.2734859-1-mingli.yu@eng.windriver.com/.
>>>
>>>> /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
>>> ../obj_s/lib_kernel.o:lib_kernel.c:(.text+0x5c): undefined reference to
>>> `_nc_mingw_tcflush'
>>>> /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
>>> ../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0x2c): undefined reference to
>>> `_nc_mingw_tcgetattr'
>>>> /home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/i686-nativesdk-mingw32-w64-mingw32/nativesdk-ncurses/6.4-r0/recipe-sysroot-native/usr/bin/i686-w64-mingw32/../../libexec/i686-w64-mingw32/gcc/i686-w64-mingw32/13.1.1/ld:
>>> ../obj_s/lib_ttyflags.o:lib_ttyflags.c:(.text+0xbb): undefined reference to
>>> `_nc_mingw_tcsetattr'
>>>
>>
>> It is relevant, this is because of the dependency that this gets built
>> and fails. I've seen v4 but didn't have the time to test it yet.
> 
> I've still not seen an answer to Ross' question or mine about why we
> can't just add a couple of dependencies and resolve things that way.

Sorry for delayed respond!

Have added qemu-common to make qemu as meta package to keep backward 
compatibility. For user who install qemu rpm such as 
qemu-7.2.0-r0.corei7_64.rpm, it still pull in all of things as before. 
For user who cares the rpm size, can just choose to install the needed 
qemu arch rpms such as qemu-system-aarch64-7.2.0-r0.corei7_64.rpm.

Thanks,

> 
> Cheers,
> 
> Richard
Richard Purdie July 19, 2023, 10:08 a.m. UTC | #10
On Wed, 2023-07-19 at 17:39 +0800, Yu, Mingli wrote:
> On 7/19/23 17:24, Richard Purdie wrote:
> > > 
> > > It is relevant, this is because of the dependency that this gets built
> > > and fails. I've seen v4 but didn't have the time to test it yet.
> > 
> > I've still not seen an answer to Ross' question or mine about why we
> > can't just add a couple of dependencies and resolve things that way.
> 
> Sorry for delayed respond!
> 
> Have added qemu-common to make qemu as meta package to keep backward 
> compatibility. For user who install qemu rpm such as 
> qemu-7.2.0-r0.corei7_64.rpm, it still pull in all of things as before. 
> For user who cares the rpm size, can just choose to install the needed 
> qemu arch rpms such as qemu-system-aarch64-7.2.0-r0.corei7_64.rpm.

So why not just add:

RRECOMMENDS:${PN} += "${PN}-system-all ${PN}-user-all"

as I think we've then covered all the options we need?

Cheers,

Richard
Yu, Mingli July 20, 2023, 2:39 a.m. UTC | #11
Hi Richard,

On 7/19/23 18:08, Richard Purdie wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
> 
> On Wed, 2023-07-19 at 17:39 +0800, Yu, Mingli wrote:
>> On 7/19/23 17:24, Richard Purdie wrote:
>>>>
>>>> It is relevant, this is because of the dependency that this gets built
>>>> and fails. I've seen v4 but didn't have the time to test it yet.
>>>
>>> I've still not seen an answer to Ross' question or mine about why we
>>> can't just add a couple of dependencies and resolve things that way.
>>
>> Sorry for delayed respond!
>>
>> Have added qemu-common to make qemu as meta package to keep backward
>> compatibility. For user who install qemu rpm such as
>> qemu-7.2.0-r0.corei7_64.rpm, it still pull in all of things as before.
>> For user who cares the rpm size, can just choose to install the needed
>> qemu arch rpms such as qemu-system-aarch64-7.2.0-r0.corei7_64.rpm.
> 
> So why not just add:
> 
> RRECOMMENDS:${PN} += "${PN}-system-all ${PN}-user-all"
> 
> as I think we've then covered all the options we need?

If just add RRECOMMENDS:${PN} += "${PN}-system-all ${PN}-user-all" by 
default, then how about the user who want only install 
qemu-system-aarch64-7.2.0-r0.corei7_64.rpm still install all qemu 
binaries as qemu-system-aarch64 rdepends on qemu which RRECOMMENDS 
qemu-system-all and 
qemu-user-all(https://git.openembedded.org/openembedded-core/commit/?id=893846ead7ee54d53e9076150cd655e0c8bca5db).

So it's better make qemu as meta package to keep backward compatibility 
for user who install qemu can install all qemu binaries as before and 
also can meet the need for user who want just install qemu arm64 
emulation rpm such as 
qemu-system-aarch64-7.2.0-r0.corei7_64.rpm(https://patchwork.yoctoproject.org/project/oe-core/patch/20230717071114.2734859-1-mingli.yu@eng.windriver.com/) 
via adding IMAGE_INSTALL:append = " qemu-system-aarch64" into 
conf/local.conf.

Thanks,

> 
> Cheers,
> 
> Richard
diff mbox series

Patch

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index a5bdeef66d..94624163d0 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -226,15 +226,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-.*"
 
@@ -242,15 +245,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.0.bb b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
index 42e133967e..412c2bc7f0 100644
--- a/meta/recipes-devtools/qemu/qemu_8.0.0.bb
+++ b/meta/recipes-devtools/qemu/qemu_8.0.0.bb
@@ -8,7 +8,8 @@  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"
+RDEPENDS:${PN}-common:class-nativesdk += "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)}"