On Wed, 2023-06-07 at 11:09 +0800, Yu, Mingli wrote:
> Hi Richard and Bruce,
>
> On 6/2/23 21:19, 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 Fri, 2023-06-02 at 09:08 -0400, Bruce Ashfield wrote:
> > > On Thu, Jun 1, 2023 at 10:37 PM Yu, Mingli <[email protected]>
> > > wrote:
> > > >
> > > > From: Mingli Yu <[email protected]>
> > > >
> > > > Currently all files as below packaged into one package such as
> > > > qemu-7.2.0-*.rpm. After the qemu package installed on the target,
> > > > it will take up about 464M which includes not only the one matches
> > > > the arch of the target but aslo all available built qemu targets
> > > > which set by QEMU_TARGETS.
> > > >
> > > > # ls tmp-glibc/work/core2-64-wrs-linux/qemu/7.2.0-r0/image/usr/bin/
> > > > qemu-aarch64 qemu-img qemu-mips64el qemu-ppc64
> > > > qemu-sh4 qemu-system-loongarch64 qemu-system-ppc
> > > > qemu-system-x86_64
> > > > qemu-arm qemu-io qemu-mipsel qemu-ppc64le
> > > > qemu-storage-daemon qemu-system-mips qemu-system-ppc64
> > > > qemu-x86_64 qemu-edid qemu-loongarch64 qemu-mips.real
> > > > qemu-pr-helper qemu-system-aarch64 qemu-system-mips64
> > > > qemu-system-riscv32 qemu-ga qemu-mips qemu-nbd
> > > > qemu-riscv32 qemu-system-arm qemu-system-mips64el
> > > > qemu-system-riscv64 qemu-i386 qemu-mips64 qemu-ppc
> > > > qemu-riscv64 qemu-system-i386 qemu-system-mipsel
> > > > qemu-system-sh4
> > > >
> > > > Split the qemu package into qemu-7.2.0-*.rpm,
> > > > qemu-system-aarch64-7.2.0*.rpm,
> > > > qemu-system-x86_64-7.2.0*.rpm and etc. And let user can only choose the
> > > > corresponding qemu arch package they want to install should ease the
> > > > concerns
> > > > who cares much about the size in embedded device as it decreases the
> > > > qemu rpm
> > > > (qemu-7.2.0*.rpm) size from about 65M to about 19M and the size of the
> > > > extracted qemu RPM decreased from about 464M to about 248M.
> > > >
> > > > Signed-off-by: Mingli Yu <[email protected]>
> > > > ---
> > > > meta/recipes-devtools/qemu/qemu.inc | 5 +++++
> > > > 1 file changed, 5 insertions(+)
> > > >
> > > > diff --git a/meta/recipes-devtools/qemu/qemu.inc
> > > > b/meta/recipes-devtools/qemu/qemu.inc
> > > > index a87dee5c99..c6fd39aab6 100644
> > > > --- a/meta/recipes-devtools/qemu/qemu.inc
> > > > +++ b/meta/recipes-devtools/qemu/qemu.inc
> > > > @@ -230,6 +230,11 @@ INSANE_SKIP:${PN} = "arch"
> > > >
> > > > FILES:${PN} += "${datadir}/icons"
> > > >
> > > > +python populate_packages:prepend() {
> > > > + archdir = d.expand('${bindir}/')
> > > > + do_split_packages(d, archdir, r'^qemu-system-(.*)$',
> > > > '${PN}-system-%s', 'QEMU full system emulation binaries(%s)' ,
> > > > prepend=True)
> > > > +}
> > >
> > > I don't see a v3 changelog, but that does look like the unnecessary
> > > default runtime dependency is gone, but what would be the method of
> > > installing the packages if I have an image where I'd like the old
> > > non-split functionality ?
> > >
> > > Either a meta packages (qemu-system-all ?) or a way to override the
> > > functionality (a variable around the do_split call ?) are options to
> > > enable that sort of thing. As I mentioned before, there's a different
> > > expected split of the packages in some scenarios, and it would be
> > > ideal to not break those use cases.
> >
> > This is quite a common need for things which call do_split_packages,
> > I'm starting to wonder if it should support some kind of "common"
> > package as a parameter which it would add dependencies to?
>
> I'm trying to improve the package method to try to meet the need for
> both the user who cares about the rpm size and the user who want the old
> non-split functionality.
>
> And I just did a little search for the packages which use
> do_split_packages and didn't see there is any package which keep both
> split and no-split functionality and just only split.
>
> So I don't quite understand "This is quite a common need for things
> which call do_split_packages".
>
> BTW, if we still use the old non-split, is there any suitable method for
> the user who cares about the rpm size? Any suggestions?
I said we should create a package which behaves the same as the old
situation, not that we should have the same binaries in both. By that I
mean a package you can install with dependencies such that all the qemu
binaries are pulled in together. This is something which many users of
do_split_packages already do.
Taking meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-
packaging.inc for example, it has some python which is commented as:
"""
# Go through all generated packages (excluding the main package and
# the -meta package itself) and add them to the -meta package as RDEPENDS.
"""
You can see alsa-plugins does:
packages = " ".join(do_split_packages(d, plugindir,
r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s',
extra_depends=''))
d.setVar("RDEPENDS:alsa-plugins", packages)
i.e. it sets the alsa-plugins package to have dependencies on all the
split packages by using the return value.
Similarly, wpa-supplicant:
split_packages = do_split_packages(d, libdir, r'^(.*)\.so', '${PN}-plugin-%s',
'wpa_supplicant %s plugin', prepend=True)
split_dbg_packages = do_split_packages(d, dbglibdir, r'^(.*)\.so',
'${PN}-plugin-%s-dbg', 'wpa_supplicant %s plugin - Debugging files',
prepend=True, extra_depends='${PN}-dbg')
if split_packages:
pn = d.getVar('PN')
d.setVar('RRECOMMENDS:' + pn + '-plugins', ' '.join(split_packages))
d.appendVar('RRECOMMENDS:' + pn + '-dbg', ' ' + '
'.join(split_dbg_packages))
So we have two options. Either we decide the return value is good
enough and just use that to create this package, or we add a new
parameter to do_split_packages so you could call something like:
do_split_packages(d, libdir, [xxx], append_split_packages_var='RRECOMMENDS:' +
pn + '-plugins')
directly. We might need a better name for the new parameter but you get
the idea.
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#182461):
https://lists.openembedded.org/g/openembedded-core/message/182461
Mute This Topic: https://lists.openembedded.org/mt/99279217/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-