diff options
-rw-r--r-- | lib/Iurt/DKMS.pm | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/Iurt/DKMS.pm b/lib/Iurt/DKMS.pm index 1e3f85b..2c564ab 100644 --- a/lib/Iurt/DKMS.pm +++ b/lib/Iurt/DKMS.pm @@ -77,10 +77,12 @@ sub search_dkms { my $files = $hdr->queryformat('[%{FILENAMES} ])'); my ($modulesourcedir) = $files =~ m, /usr/src/([^/ ]+),; my $script = $hdr->queryformat('%{POSTIN})'); + my ($realname) = $script =~ /\s+-m\s+(\S+)/; + $realname ||= $name; my ($realversion) = $script =~ /\s+-v\s+(\S+)/; $realversion ||= $version; - plog('NOTIFY', "dkms $name version $version source $modulesourcedir realversion $realversion"); - push @{$dkms{$media}}, [ $name, $version, $modulesourcedir, $realversion, "$path/$rpm" ]; + plog('NOTIFY', "dkms $name version $version source $modulesourcedir realname $realname realversion $realversion"); + push @{$dkms{$media}}, [ $name, $version, $modulesourcedir, $realname, $realversion, "$path/$rpm" ]; } elsif ($rpm =~ /^kernel-((?:[^-]+-)?[^-]+.*)-[^-]+-[^-]+\.[^.]+\.rpm/ && $rpm !~ /win4lin|latest|debug|stripped|BOOT|xen|doc/) { # we do not check for kernel in this media $kmedia_ok or next; @@ -109,7 +111,7 @@ sub search_dkms { my $nb; foreach my $media (keys %dkms) { foreach my $dkms (@{$dkms{$media}}) { - my ($module, $version, $modulesourcedir, $realversion, $file) = @$dkms; + my ($module, $version, $modulesourcedir, $realmodule, $realversion, $file) = @$dkms; foreach my $k (@kernel) { my ($kernel, $modulesdir) = @$k; plog("checking $module-kernel-$modulesdir-$realversion"); @@ -133,7 +135,7 @@ sub search_dkms { } plog("dkms module $module version $version should be compiled for kernel $kernel ($source)"); $nb++; - push @{$run->{dkms_todo}}, [ $module, $version, $modulesourcedir, $realversion, $file, $kernel, $modulesdir, @{$kernel_source{$source}}, $media ]; + push @{$run->{dkms_todo}}, [ $module, $version, $modulesourcedir, $realmodule, $realversion, $file, $kernel, $modulesdir, @{$kernel_source{$source}}, $media ]; } $modules{$module}{$version}{$modulesdir}++; } @@ -190,7 +192,7 @@ sub dkms_compile { -d $dkms_spool or mkdir $dkms_spool; for (my $i; $i < @{$run->{dkms_todo}}; $i++) { - my ($name, $version, $_modulesourcedir, $realversion, $file, $kernel, $modulesdir, $source, $sourcedir, $media) = @{$run->{dkms_todo}[$i]}; + my ($name, $version, $_modulesourcedir, $realname, $realversion, $file, $kernel, $modulesdir, $source, $sourcedir, $media) = @{$run->{dkms_todo}[$i]}; $done++; $media = $run->{dkms}{umedia} if $run->{dkms}{umedia}; |