diff options
Diffstat (limited to 'dh_installmodules')
-rwxr-xr-x | dh_installmodules | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/dh_installmodules b/dh_installmodules index a8016306..dd75c72b 100755 --- a/dh_installmodules +++ b/dh_installmodules @@ -3,8 +3,19 @@ # Register modules with modutils. use Debian::Debhelper::Dh_Lib; +use File::Find; init(); +# Returns true if there are any .o 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); + return @results > 0; +} + foreach $PACKAGE (@{$dh{DOPACKAGES}}) { $TMP=tmpdir($PACKAGE); $file=pkgfile($PACKAGE,"modules"); @@ -18,10 +29,11 @@ foreach $PACKAGE (@{$dh{DOPACKAGES}}) { doit("install","-d","$TMP/etc/modutils"); doit("install","-m","0644",$file,"$TMP/etc/modutils/$PACKAGE"); } - - if (! $dh{NOSCRIPTS}) { + } + + if (! $dh{NOSCRIPTS} && + ($file || find_kernel_modules("$TMP/lib/modules"))) { autoscript($PACKAGE,"postinst","postinst-modules","s/#PACKAGE#/$PACKAGE/"); autoscript($PACKAGE,"postrm","postrm-modules","s/#PACKAGE#/$PACKAGE/"); - } } } |