diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2004-06-25 07:03:58 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2004-06-25 07:03:58 +0000 |
commit | e4032517c581164bacfbe47ce82386456a2133cb (patch) | |
tree | c83a9a85406d74652e0aa1ab957a82f0df99e97e /perl-install/bootloader.pm | |
parent | 538f23f08ac464d4eeb9f427b7b0c461088c7e5c (diff) | |
download | drakx-e4032517c581164bacfbe47ce82386456a2133cb.tar drakx-e4032517c581164bacfbe47ce82386456a2133cb.tar.gz drakx-e4032517c581164bacfbe47ce82386456a2133cb.tar.bz2 drakx-e4032517c581164bacfbe47ce82386456a2133cb.tar.xz drakx-e4032517c581164bacfbe47ce82386456a2133cb.zip |
when adding a new kernel, have a nicer new name for conflicting entry
Diffstat (limited to 'perl-install/bootloader.pm')
-rw-r--r-- | perl-install/bootloader.pm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index 180edf28f..2b076a969 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -84,8 +84,9 @@ sub vmlinuz2kernel_str { }; } sub kernel_str2label { - my ($kernel) = @_; - $kernel->{use_long_name} ? sanitize_ver("linux-$kernel->{version}") : + my ($kernel, $o_use_long_name) = @_; + $o_use_long_name || $kernel->{use_long_name} ? + sanitize_ver("linux-$kernel->{version}") : $kernel->{ext} ? "linux$kernel->{ext}" : 'linux'; } @@ -310,7 +311,8 @@ sub add_entry { my ($bootloader, $v) = @_; my $to_add = $v; - foreach my $label ($v->{label}, map { 'old' . $_ . '_' . $v->{label} } ('', 2..10)) { + my $label = $v->{label}; + for (my $i = 0; $i < 10;) { my $conflicting = get_label($label, $bootloader); $to_add->{label} = $label; @@ -328,6 +330,9 @@ sub add_entry { return $v; } $to_add = $conflicting; + + my $new_label = $v->{label} eq 'linux' && kernel_str2label(vmlinuz2kernel_str($to_add->{kernel_or_dev}), 'use_long_name'); + $label = $new_label && $label ne $new_label ? $new_label : 'old' . ($i++ ? $i : '') . "_$label"; } die 'add_entry'; } |