aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Iurt/DKMS.pm
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2008-02-29 20:10:41 +0000
committerOlivier Blin <oblin@mandriva.com>2008-02-29 20:10:41 +0000
commitb44a56488dc457b466bb301a2cf990ae6592dda7 (patch)
tree98bdb952baf010ea41a956673dc331c46a690f1b /lib/Iurt/DKMS.pm
parent3ec45fd372b27b4f250c41615ef6e916e5b09b6d (diff)
downloadiurt-b44a56488dc457b466bb301a2cf990ae6592dda7.tar
iurt-b44a56488dc457b466bb301a2cf990ae6592dda7.tar.gz
iurt-b44a56488dc457b466bb301a2cf990ae6592dda7.tar.bz2
iurt-b44a56488dc457b466bb301a2cf990ae6592dda7.tar.xz
iurt-b44a56488dc457b466bb301a2cf990ae6592dda7.zip
compute "real" name from scripts and pass it
Diffstat (limited to 'lib/Iurt/DKMS.pm')
-rw-r--r--lib/Iurt/DKMS.pm12
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};