On Fri, Jun 13, 2014 at 03:02:05PM -0400, Bruce Ashfield wrote: > On Fri, Jun 13, 2014 at 11:46 AM, Richard Purdie > <[email protected]> wrote: > > The current module_autoload_* and module_conf_* variables are error > > both ugly and error prone. They aren't registered in the task checksums > > so changes to them aren't reflected in the build. This turns out to > > be near impossible to fix with the current variable format in any > > sensible way :(. > > > > This patch replace module_autoload with the list of variables in > > KERNEL_MODULE_AUTOLOAD which is a much simpler and usable API. An > > error is printed if an old style variable is encountered. It should > > be simple to convert to this. > > > > module_conf_* are harder to deal with since there is data associated > > with it, it isn't simply a flag. We need a list of variables that are set > > in order to be able to correctly handle the task checksum so we add > > KERNEL_MODULE_PROBECONF for this purpose and error if the user hasn't > > added a module to it when they should have. > > Looks reasonable to me. In my experience, there aren't a lot of users of > the module_* variables, so the transition to the new names and semantics > shouldn't be a big issue.
Right, only BSP/Distro maintainers should care... :) BTW, how about a documentation patch? :) -- Denys > > [YOCTO #5786] > > > > Signed-off-by: Richard Purdie <[email protected]> > > > > diff --git a/meta/classes/kernel-module-split.bbclass > > b/meta/classes/kernel-module-split.bbclass > > index d43f743..e38a6f6 100644 > > --- a/meta/classes/kernel-module-split.bbclass > > +++ b/meta/classes/kernel-module-split.bbclass > > @@ -130,8 +130,11 @@ python split_kernel_module_packages () { > > > > # If autoloading is requested, output > > /etc/modules-load.d/<name>.conf and append > > # appropriate modprobe commands to the postinst > > + autoloadlist = (d.getVar("KERNEL_MODULE_AUTOLOAD", True) or > > "").split() > > autoload = d.getVar('module_autoload_%s' % basename, True) > > if autoload: > > + bb.error("KERNEL_MODULE_AUTOLOAD has replaced > > module_autoload_%s, please replace it!" % basename) > > + if basename in autoloadlist: > > name = '%s/etc/modules-load.d/%s.conf' % (dvar, basename) > > f = open(name, 'w') > > for m in autoload.split(): > > @@ -144,12 +147,15 @@ python split_kernel_module_packages () { > > d.setVar('pkg_postinst_%s' % pkg, postinst) > > > > # Write out any modconf fragment > > + modconflist = (d.getVar("KERNEL_MODULE_PROBECONF", True) or > > "").split() > > modconf = d.getVar('module_conf_%s' % basename, True) > > - if modconf: > > + if modconf and basename in modconflist: > > name = '%s/etc/modprobe.d/%s.conf' % (dvar, basename) > > f = open(name, 'w') > > f.write("%s\n" % modconf) > > f.close() > > + elif modconf: > > + bb.error("Please ensure module %s is listed in > > KERNEL_MODULE_PROBECONF since module_conf_%s is set" % (basename, basename)) > > > > files = d.getVar('FILES_%s' % pkg, True) > > files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % > > (files, basename, basename) > > @@ -185,3 +191,5 @@ python split_kernel_module_packages () { > > if len(os.listdir(dir)) == 0: > > os.rmdir(dir) > > } > > + > > +do_package[vardeps] += '${@" ".join(map(lambda s: "module_conf_" + s, > > (d.getVar("KERNEL_MODULE_PROBECONF", True) or "").split()))}' > > > > > > > > -- > "Thou shalt not follow the NULL pointer, for chaos and madness await > thee at its end" > -- > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
