]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installmodules
r1805: releasing version 5.0.0
[debhelper.git] / dh_installmodules
index f17780a3b8d33eb7583501f4794ea5fdd34c562d..132857a0f5e33736675a37c6f9a0df43424deee6 100755 (executable)
@@ -13,7 +13,7 @@ use File::Find;
 
 =head1 SYNOPSIS
 
-  dh_installmodules [debhelper options] [-n]
+B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]
 
 =head1 DESCRIPTION
 
@@ -21,13 +21,16 @@ dh_installmodules is a debhelper program that is responsible for
 registering kernel modules with modutils.
 
 Files named debian/package.modules will be installed as
-etc/modutils/package in the package build directory.
+etc/modutils/package in the package build directory. This is for use by
+modutils. Files named debian/package.modprobe will be installed in
+etc/modprobe.d/package in the package build directory, to be used by
+module-init-tools's version of modprobe.
 
 Then postinst and postrm commands are automatically generated to register
 the modules when the package is installed. See L<dh_installdeb(1)> for an
 explanation of how this works. Note that this will be done for any
-package this program acts on which has either the above-mentioned file, or
-has .o files in /lib/modules.
+package this program acts on which has either a package.modules file, or
+has .o or .ko files in /lib/modules.
 
 =head1 OPTIONS
 
@@ -37,6 +40,13 @@ has .o files in /lib/modules.
 
 Do not modify postinst/postrm scripts.
 
+=item B<--name=>I<name>
+
+Use "name" as the filename the modules file is installed in
+etc/modutils/. When this parameter is used, dh_installmodules looks for and
+installs files named debian/package.name.modules instead of the usual
+debian/package.modules.
+
 =back
 
 =head1 NOTES
@@ -49,33 +59,41 @@ instances of the same text to be added to maintainer scripts.
 
 init();
 
-# Returns true if there are any .o files in the passed directory.
+# Returns true if there are any .o or .ko files in the passed directory.
 sub find_kernel_modules {
        my $searchdir=shift;
        my @results=();
 
        return unless -d $searchdir;
-       find(sub { push @results, $_ if /\.o$/ }, $searchdir);
+       find(sub { push @results, $_ if /\.k?o$/ }, $searchdir);
        return @results > 0;
 }
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
-       my $file=pkgfile($package,"modules");
+       my $modutils_file=pkgfile($package,"modules");
+       my $modprobe_file=pkgfile($package,"modprobe");
 
        if (! -e $tmp) {
                doit("install","-d",$tmp);
        }
 
-       if ($file) {
+       if ($modutils_file) {
                if (! -e "$tmp/etc/modutils") {
                        doit("install","-d","$tmp/etc/modutils");
                }
-               doit("install","-m","0644",$file,"$tmp/etc/modutils/$package");
+               doit("install","-m","0644",$modutils_file,"$tmp/etc/modutils/".pkgfilename($package));
        }
 
+       if ($modprobe_file) {
+               if (! -e "$tmp/etc/modprobe.d") {
+                       doit("install","-d","$tmp/etc/modprobe.d");
+               }
+               doit("install","-m","0644",$modprobe_file,"$tmp/etc/modprobe.d/".pkgfilename($package));
+       }
+       
        if (! $dh{NOSCRIPTS} &&
-           ($file || find_kernel_modules("$tmp/lib/modules"))) {
+           ($modutils_file || find_kernel_modules("$tmp/lib/modules"))) {
                        autoscript($package,"postinst","postinst-modules","s/#PACKAGE#/$package/");
                        autoscript($package,"postrm","postrm-modules","s/#PACKAGE#/$package/");
        }
@@ -83,7 +101,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
 
 =head1 SEE ALSO
 
-L<debhelper(1)>
+L<debhelper(7)>
 
 This program is a part of debhelper.