On Mon, Aug 23, 2021 at 9:18 AM Böszörményi Zoltán <zbos...@pr.hu> wrote:
>
> 2021. 08. 23. 14:55 keltezéssel, Bruce Ashfield írta:
> > On Mon, Aug 23, 2021 at 8:23 AM Zoltan Boszormenyi via
> > lists.openembedded.org <zboszor=pr...@lists.openembedded.org> wrote:
> >>
> >> From: Zoltán Böszörményi <zbos...@gmail.com>
> >>
> >> For some use cases, a monolithic kernel-modules package containing
> >> all modules built from the kernel sources may be preferred.
> >> For one, download time is shorter and installation time is faster.
> >>
> >
> > There's still an outstanding issue though. Unless you generate the
> > provides/rdepends along with the monolithic package, any existing
> > rdepends on kernel modules break.
>
> The next patch in the thread does it.

That's what my follow up said ;)

See my second reply though, this gap in functionality created by this
commit, should be documented in the commit that it will be restored in
future ones.

Cheers,

Bruce

>
> >
> > While that likely isn't something you hit in your use case, it would
> > be something that would have to be covered to make this part of core.
> >
> > About 7 years ago, I was most of the way through a similar change,
> > that created on large package with all the rprovides generated (I'm
> > not sure I can track it down now, but I could have a look), since
> > doing an on target update with thousands of kernel module package is
> > very painful.
>
> Well, yes. In our defconfig, about 1500 kernel-module-* subpackages
> were created and had to be upgraded at once. It was *very* painful
> with over 50 minutes to download and upgrade the kernel.
>
> >
> > Cheers,
> >
> > Bruce
> >
> >> Set KERNEL_SPLIT_MODULES="0" for this.
> >>
> >> The default is one subpackage per module.
> >>
> >> Signed-off-by: Zoltán Böszörményi <zbos...@gmail.com>
> >> ---
> >>   meta/classes/kernel-module-split.bbclass | 17 +++++++++++++----
> >>   1 file changed, 13 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/meta/classes/kernel-module-split.bbclass 
> >> b/meta/classes/kernel-module-split.bbclass
> >> index 6c1de4c992..a29c294810 100644
> >> --- a/meta/classes/kernel-module-split.bbclass
> >> +++ b/meta/classes/kernel-module-split.bbclass
> >> @@ -28,6 +28,7 @@ do_install:append() {
> >>          install -d ${D}${sysconfdir}/modules-load.d/ 
> >> ${D}${sysconfdir}/modprobe.d/
> >>   }
> >>
> >> +KERNEL_SPLIT_MODULES ?= "1"
> >>   PACKAGESPLITFUNCS:prepend = "split_kernel_module_packages "
> >>
> >>   KERNEL_MODULES_META_PACKAGE ?= "${@ d.getVar("KERNEL_PACKAGE_NAME") or 
> >> "kernel" }-modules"
> >> @@ -156,18 +157,26 @@ python split_kernel_module_packages () {
> >>       kernel_package_name = d.getVar("KERNEL_PACKAGE_NAME") or "kernel"
> >>       kernel_version = d.getVar("KERNEL_VERSION")
> >>
> >> +    metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
> >> +    splitmods = d.getVar('KERNEL_SPLIT_MODULES')
> >> +    postinst = d.getVar('pkg_postinst:modules')
> >> +    postrm = d.getVar('pkg_postrm:modules')
> >> +
> >> +    if splitmods != '1':
> >> +        etcdir = d.getVar('sysconfdir')
> >> +        d.appendVar('FILES:' + metapkg, '%s/modules-load.d/ 
> >> %s/modprobe.d/ %s/modules/' % (etcdir, etcdir, 
> >> d.getVar("nonarch_base_libdir")))
> >> +        d.appendVar('pkg_postinst:%s' % metapkg, postinst)
> >> +        d.prependVar('pkg_postrm:%s' % metapkg, postrm);
> >> +        return
> >> +
> >>       module_regex = r'^(.*)\.k?o(?:\.(gz|xz|zst))?$'
> >>
> >>       module_pattern_prefix = d.getVar('KERNEL_MODULE_PACKAGE_PREFIX')
> >>       module_pattern_suffix = d.getVar('KERNEL_MODULE_PACKAGE_SUFFIX')
> >>       module_pattern = module_pattern_prefix + kernel_package_name + 
> >> '-module-%s' + module_pattern_suffix
> >>
> >> -    postinst = d.getVar('pkg_postinst:modules')
> >> -    postrm = d.getVar('pkg_postrm:modules')
> >> -
> >>       modules = do_split_packages(d, 
> >> root='${nonarch_base_libdir}/modules', file_regex=module_regex, 
> >> output_pattern=module_pattern, description='%s kernel module', 
> >> postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, 
> >> extra_depends='%s-%s' % (kernel_package_name, kernel_version))
> >>       if modules:
> >> -        metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
> >>           d.appendVar('RDEPENDS:' + metapkg, ' '+' '.join(modules))
> >>
> >>       # If modules-load.d and modprobe.d are empty at this point, remove 
> >> them to
> >> --
> >> 2.31.1
> >>
> >>
> >>
> >>
> >
> >
> >
> >
> > 
> >
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155158): 
https://lists.openembedded.org/g/openembedded-core/message/155158
Mute This Topic: https://lists.openembedded.org/mt/85083968/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to