From 2cfecdf41dcddc3a47ee5ff14142cc10dd85bc0e Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Wed, 4 Aug 2004 03:03:15 +0000 Subject: handle win4lin kernels --- perl-install/bootloader.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'perl-install/bootloader.pm') diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index 2bcd76798..22df2c805 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -24,7 +24,7 @@ use modules; #-##################################################################################### #- Functions #-##################################################################################### -my $vmlinuz_regexp = 'vmlinuz'; +my $vmlinuz_regexp = 'vmlinuz|win4lin'; my $decompose_vmlinuz_name = qr/((?:$vmlinuz_regexp).*)-(\d+\.\d+.*)/; sub expand_vmlinuz_symlink { @@ -86,9 +86,10 @@ sub vmlinuz2kernel_str { } sub kernel_str2label { my ($kernel, $o_use_long_name) = @_; + my $base = $kernel->{basename} eq 'vmlinuz' ? 'linux' : $kernel->{basename}; $o_use_long_name || $kernel->{use_long_name} ? - sanitize_ver("linux-$kernel->{version}") : - $kernel->{ext} ? "linux$kernel->{ext}" : 'linux'; + sanitize_ver("$base-$kernel->{version}") : + $kernel->{ext} ? "$base$kernel->{ext}" : $base; } sub get { @@ -558,14 +559,15 @@ sub get_kernels_and_labels { sub sanitize_ver { my ($string) = @_; - my ($main_version, undef, $extraversion, $rest) = - $string =~ m!(\d+\.\d+\.\d+)(-((?:pre|rc)\d+))?(.*)!; + my ($name, $main_version, undef, $extraversion, $rest) = + $string =~ m!(.*)(\d+\.\d+\.\d+)(-((?:pre|rc)\d+))?(.*)!; if (my ($mdkver, $cpu, $nproc, $mem) = $rest =~ m|-(.+)-(.+)-(.+)-(.+)|) { $rest = "$cpu$nproc$mem-$mdkver"; } + $name = '' if $name eq 'linux-'; - my $return = "$main_version$extraversion$rest"; + my $return = "$name$main_version$extraversion$rest"; $return =~ s|\.||g; $return =~ s|mdk||; -- cgit v1.2.1