X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installmodules;h=9b3fc2038feac733c6de8f73dcd2fdc404fa8daa;hb=e2a6d4cec4a7ee952cf6a7f250d80f1d75a38f95;hp=be2efad560951509a6da5231278fd83fa01af89f;hpb=3ccdc50eabcdcea497fec06c481bce39f8fa32b4;p=debhelper.git diff --git a/dh_installmodules b/dh_installmodules index be2efad..9b3fc20 100755 --- a/dh_installmodules +++ b/dh_installmodules @@ -17,19 +17,29 @@ B [S>] [B<-n>] [B<--name=>I] =head1 DESCRIPTION -dh_installmodules is a debhelper program that is responsible for +B is a debhelper program that is responsible for registering kernel modules. -Files named debian/package.modules will be installed as -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. - Kernel modules are searched for in the package build directory and if -found, postinst and postrm commands are automatically generated to -run depmod and register the modules when the package is installed. See -L for an explanation of how this works. +found, F, F and F commands are automatically generated to +run B and register the modules when the package is installed. +These commands are inserted into the maintainer scripts by +L. + +=head1 FILES + +=over 4 + +=item debian/I.modprobe + +Installed to etc/modprobe.d/I.conf in the package build directory. + +=item debian/I.modules + +These files were installed for use by modutils, but are now not used +and B will warn if these files are present. + +=back =head1 OPTIONS @@ -37,20 +47,19 @@ L for an explanation of how this works. =item B<-n>, B<--noscripts> -Do not modify postinst/postrm scripts. +Do not modify F/F/F scripts. =item B<--name=>I -When this parameter is used, dh_installmodules looks for and -installs files named debian/package.name.modules and -debian/package.name.modprobe instead of the usual -debian/package.modules and debian/package.modprobe +When this parameter is used, B looks for and +installs files named debian/I.I.modprobe instead +of the usual debian/I.modprobe =back =head1 NOTES -Note that this command is not idempotent. "dh_clean -k" should be called +Note that this command is not idempotent. L should be called between invocations of this command. Otherwise, it may cause multiple instances of the same text to be added to maintainer scripts. @@ -67,7 +76,7 @@ sub find_kernel_modules { return unless -d $searchdir; find(sub { if (/\.k?o$/) { - my $kvers=$File::Find::dir=~m!lib/modules/([^/]+)/!; + my ($kvers)=$File::Find::dir=~m!lib/modules/([^/]+)/!; if (! defined $kvers || ! length $kvers) { warning("Cannot determine kernel version for module $File::Find::name"); } @@ -90,23 +99,24 @@ foreach my $package (@{$dh{DOPACKAGES}}) { } if ($modutils_file) { - if (! -e "$tmp/etc/modutils") { - doit("install","-d","$tmp/etc/modutils"); - } - doit("install","-m","0644",$modutils_file,"$tmp/etc/modutils/".pkgfilename($package)); + warning("ignoring $modutils_file, since modutils is no longer in Debian"); } 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)); + my $old="/etc/modprobe.d/".pkgfilename($package); + my $new=$old.".conf"; + doit("install","-m","0644",$modprobe_file,"$tmp/$new"); + autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#PACKAGE#!$package!g"); + autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$new!g"); } if (! $dh{NOSCRIPTS}) { foreach my $kvers (find_kernel_modules("$tmp/lib/modules")) { - autoscript($package,"postinst","postinst-modules","s/#KVERS#/$kvers/"); - autoscript($package,"postrm","postrm-modules","s/#KVERS#/$kvers/"); + autoscript($package,"postinst","postinst-modules","s/#KVERS#/$kvers/g"); + autoscript($package,"postrm","postrm-modules","s/#KVERS#/$kvers/g"); } } }