| Submitter | Saul Wold |
|---|---|
| Date | Jan. 30, 2013, 11:05 p.m. |
| Message ID | <1359587149-27928-1-git-send-email-sgw@linux.intel.com> |
| Download | mbox | patch |
| Permalink | /patch/43723/ |
| State | Accepted |
| Commit | 977aee43868499ab87a098f3798e90d6978836b9 |
| Headers | show |
Comments
On 01/30/2013 03:05 PM, Saul Wold wrote: > This patch will allow recipes that provide kernel modules to package > the module or modules in specific packages. That list is contained in > MODULE_PACKAGES, this defaults to to preserve the current behavior. s/to to preserve/to preserving/ > The package can also define MODULE_FILES to specify files. So, for example, the hello-mod recipe in meta-skeleton can remain unchanged? It will then get /lib/modules/*/hello.ko in FILES_hello-mod and MODULE_PACKAGES will be set to hello-mod. If I wanted to, hello-mod could create to modules, and package them separately by specifying two values in MODULE_PACKAGES and creating the appropriate MODULE_FILES_foo|bar entries? Right, seems to make sense to me. What testing has this seen? Have you verified it with hello-mod? -- Darren > > [YOCTO #3803] > > Signed-off-by: Saul Wold <sgw@linux.intel.com> > --- > meta/classes/module.bbclass | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass > index c933d32..e2174a1 100644 > --- a/meta/classes/module.bbclass > +++ b/meta/classes/module.bbclass > @@ -1,4 +1,3 @@ > -RDEPENDS_${PN} += "kernel-image" > DEPENDS += "virtual/kernel" > > inherit module-base > @@ -25,7 +24,7 @@ module_do_install() { > modules_install > } > > -pkg_postinst_${PN}_append () { > +module_pkg_postinst () { > if [ -z "$D" ]; then > depmod -a ${KERNEL_VERSION} > else > @@ -33,7 +32,7 @@ else > fi > } > > -pkg_postrm_${PN}_append () { > +module_pkg_postrm () { > if [ -z "$D" ]; then > depmod -a ${KERNEL_VERSION} > else > @@ -43,4 +42,16 @@ fi > > EXPORT_FUNCTIONS do_compile do_install > > -FILES_${PN} = "/etc /lib/modules" > +MODULE_PACKAGES ?= "${PN}" > + > +python __anonymous() { > + for package in d.getVar("MODULE_PACKAGES", True).split(): > + d.appendVar("RDEPENDS_%s" % package, " kernel-image") > + files = d.getVar("MODULE_FILES_%s" % package, True) or "/etc /lib/modules" > + d.appendVar("FILES_%s" % package, " " + files) > + d.appendVar('pkg_postinst_%s' % package, " " + d.getVar('module_pkg_postinst', True)) > + d.appendVar('pkg_postrm_%s' % package, " " + d.getVar('module_pkg_postrm', True)) > + if not package in d.getVar("PACKAGES", True): > + d.prependVar("PACKAGES", package + " ") > +} > + >
On 01/30/2013 04:03 PM, Darren Hart wrote: > On 01/30/2013 03:05 PM, Saul Wold wrote: >> This patch will allow recipes that provide kernel modules to package >> the module or modules in specific packages. That list is contained in >> MODULE_PACKAGES, this defaults to to preserve the current behavior. > > s/to to preserve/to preserving/ > Fixed in my MUT branch >> The package can also define MODULE_FILES to specify files. > > So, for example, the hello-mod recipe in meta-skeleton can remain unchanged? Correct, the default for MODULE_PACKAGES is "${PN}" so no changes are required. > It will then get /lib/modules/*/hello.ko in FILES_hello-mod and > MODULE_PACKAGES will be set to hello-mod. If I wanted to, hello-mod > could create to modules, and package them separately by specifying two > values in MODULE_PACKAGES and creating the appropriate > MODULE_FILES_foo|bar entries? > Correct, 2 packages would be created and the files specified would be packaged into foo and bar. > Right, seems to make sense to me. What testing has this seen? Have you > verified it with hello-mod? > I verified it with lttng-module and added MODULE_PACKAGES = "module-test" and MODULE_FILES_module-test = "/etc" and then verified packages and variables. Sau! > -- > Darren > >> >> [YOCTO #3803] >> >> Signed-off-by: Saul Wold <sgw@linux.intel.com> >> --- >> meta/classes/module.bbclass | 19 +++++++++++++++---- >> 1 file changed, 15 insertions(+), 4 deletions(-) >> >> diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass >> index c933d32..e2174a1 100644 >> --- a/meta/classes/module.bbclass >> +++ b/meta/classes/module.bbclass >> @@ -1,4 +1,3 @@ >> -RDEPENDS_${PN} += "kernel-image" >> DEPENDS += "virtual/kernel" >> >> inherit module-base >> @@ -25,7 +24,7 @@ module_do_install() { >> modules_install >> } >> >> -pkg_postinst_${PN}_append () { >> +module_pkg_postinst () { >> if [ -z "$D" ]; then >> depmod -a ${KERNEL_VERSION} >> else >> @@ -33,7 +32,7 @@ else >> fi >> } >> >> -pkg_postrm_${PN}_append () { >> +module_pkg_postrm () { >> if [ -z "$D" ]; then >> depmod -a ${KERNEL_VERSION} >> else >> @@ -43,4 +42,16 @@ fi >> >> EXPORT_FUNCTIONS do_compile do_install >> >> -FILES_${PN} = "/etc /lib/modules" >> +MODULE_PACKAGES ?= "${PN}" >> + >> +python __anonymous() { >> + for package in d.getVar("MODULE_PACKAGES", True).split(): >> + d.appendVar("RDEPENDS_%s" % package, " kernel-image") >> + files = d.getVar("MODULE_FILES_%s" % package, True) or "/etc /lib/modules" >> + d.appendVar("FILES_%s" % package, " " + files) >> + d.appendVar('pkg_postinst_%s' % package, " " + d.getVar('module_pkg_postinst', True)) >> + d.appendVar('pkg_postrm_%s' % package, " " + d.getVar('module_pkg_postrm', True)) >> + if not package in d.getVar("PACKAGES", True): >> + d.prependVar("PACKAGES", package + " ") >> +} >> + >> >
On 01/30/2013 04:19 PM, Saul Wold wrote: > On 01/30/2013 04:03 PM, Darren Hart wrote: >> On 01/30/2013 03:05 PM, Saul Wold wrote: >>> This patch will allow recipes that provide kernel modules to package >>> the module or modules in specific packages. That list is contained in >>> MODULE_PACKAGES, this defaults to to preserve the current behavior. >> >> s/to to preserve/to preserving/ >> > Fixed in my MUT branch > >>> The package can also define MODULE_FILES to specify files. >> >> So, for example, the hello-mod recipe in meta-skeleton can remain unchanged? > Correct, the default for MODULE_PACKAGES is "${PN}" so no changes are > required. > >> It will then get /lib/modules/*/hello.ko in FILES_hello-mod and >> MODULE_PACKAGES will be set to hello-mod. If I wanted to, hello-mod >> could create to modules, and package them separately by specifying two >> values in MODULE_PACKAGES and creating the appropriate >> MODULE_FILES_foo|bar entries? >> > Correct, 2 packages would be created and the files specified would be > packaged into foo and bar. > >> Right, seems to make sense to me. What testing has this seen? Have you >> verified it with hello-mod? >> > I verified it with lttng-module and added MODULE_PACKAGES = > "module-test" and MODULE_FILES_module-test = "/etc" and then verified > packages and variables. > > Sau! > >> -- >> Darren >> >>> >>> [YOCTO #3803] >>> >>> Signed-off-by: Saul Wold <sgw@linux.intel.com> Acked-by: Darren Hart <dvhart@linux.intel.com> Thanks Saul!
Patch
diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass index c933d32..e2174a1 100644 --- a/meta/classes/module.bbclass +++ b/meta/classes/module.bbclass @@ -1,4 +1,3 @@ -RDEPENDS_${PN} += "kernel-image" DEPENDS += "virtual/kernel" inherit module-base @@ -25,7 +24,7 @@ module_do_install() { modules_install } -pkg_postinst_${PN}_append () { +module_pkg_postinst () { if [ -z "$D" ]; then depmod -a ${KERNEL_VERSION} else @@ -33,7 +32,7 @@ else fi } -pkg_postrm_${PN}_append () { +module_pkg_postrm () { if [ -z "$D" ]; then depmod -a ${KERNEL_VERSION} else @@ -43,4 +42,16 @@ fi EXPORT_FUNCTIONS do_compile do_install -FILES_${PN} = "/etc /lib/modules" +MODULE_PACKAGES ?= "${PN}" + +python __anonymous() { + for package in d.getVar("MODULE_PACKAGES", True).split(): + d.appendVar("RDEPENDS_%s" % package, " kernel-image") + files = d.getVar("MODULE_FILES_%s" % package, True) or "/etc /lib/modules" + d.appendVar("FILES_%s" % package, " " + files) + d.appendVar('pkg_postinst_%s' % package, " " + d.getVar('module_pkg_postinst', True)) + d.appendVar('pkg_postrm_%s' % package, " " + d.getVar('module_pkg_postrm', True)) + if not package in d.getVar("PACKAGES", True): + d.prependVar("PACKAGES", package + " ") +} +
This patch will allow recipes that provide kernel modules to package the module or modules in specific packages. That list is contained in MODULE_PACKAGES, this defaults to to preserve the current behavior. The package can also define MODULE_FILES to specify files. [YOCTO #3803] Signed-off-by: Saul Wold <sgw@linux.intel.com> --- meta/classes/module.bbclass | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-)