summaryrefslogtreecommitdiffstats
path: root/perl-install/bootloader.pm
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2005-09-25 12:01:54 +0000
committerMystery Man <unknown@mandriva.org>2005-09-25 12:01:54 +0000
commite24d09373c1f81a46f75f297e0753399b13cf810 (patch)
treef08d3f7c7ae1470fdd33f4049350cf45457b5924 /perl-install/bootloader.pm
parentfb954c3dc41336a56a3ede45f2a41ed9c807f6b7 (diff)
downloaddrakx-backup-do-not-use-e24d09373c1f81a46f75f297e0753399b13cf810.tar
drakx-backup-do-not-use-e24d09373c1f81a46f75f297e0753399b13cf810.tar.gz
drakx-backup-do-not-use-e24d09373c1f81a46f75f297e0753399b13cf810.tar.bz2
drakx-backup-do-not-use-e24d09373c1f81a46f75f297e0753399b13cf810.tar.xz
drakx-backup-do-not-use-e24d09373c1f81a46f75f297e0753399b13cf810.zip
This commit was manufactured by cvs2svn to create branch
'MDK-2006_0-update'.
Diffstat (limited to 'perl-install/bootloader.pm')
-rw-r--r--perl-install/bootloader.pm42
1 files changed, 19 insertions, 23 deletions
diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm
index 8e177c93c..916eb31eb 100644
--- a/perl-install/bootloader.pm
+++ b/perl-install/bootloader.pm
@@ -86,7 +86,7 @@ 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($base, $kernel) :
+ sanitize_ver("$base-$kernel->{version}") :
$kernel->{ext} ? "$base-$kernel->{ext}" : $base;
}
@@ -728,30 +728,29 @@ sub get_kernel_labels {
@kernels_str;
}
+# sanitize_ver: long function when it could be shorter but we are sure
+# to catch everything and can be readable if we want to
+# add new scheme name.
+# DUPLICATED from /usr/share/loader/common.pm
sub sanitize_ver {
- my ($name, $kernel_str) = @_;
+ my ($string) = @_;
- $name = '' if $name eq 'linux';
+ my ($name, $main_version, undef, $extraversion, $rest) =
+ $string =~ m!^(.*?-)(\d+(?:\.\d+)*)(-((?:pre|rc)\d+))?(.*)$!;
- my ($v, $ext) = ($kernel_str->{version_no_ext}, $kernel_str->{ext});
- if ($v =~ s/-\d+\.mm\././) {
- $name = join(' ', grep { $_ } $name, 'multimedia');
+ if (my ($mdkver, $cpu, $nproc, $mem) = $rest =~ m|-(.+)-(.+)-(.+)-(.+)|) {
+ $rest = "$cpu$nproc$mem-$mdkver";
}
+ $name = '' if $name eq 'linux-';
- $v =~ s!mdk$!!;
- $v =~ s!-0\.(pre|rc)(\d+)\.!$1$2-!;
+ my $return = "$name$main_version$extraversion$rest";
- my $short_ext = {
- 'i586-up-1GB' => 'i586',
- 'i686-up-4GB' => '4GB',
- }->{$ext};
- $ext = $short_ext if $short_ext;
-
- my $return = join(' ', grep { $_ } $name, $ext, $v);
-
- length($return) < 30 or $return =~ s!secure!sec!;
- length($return) < 30 or $return =~ s!enterprise!ent!;
- length($return) < 30 or $return =~ s!multimedia!mm!;
+ $return =~ s|\.||g;
+ $return =~ s|mdk||;
+ $return =~ s|64GB|64G|;
+ $return =~ s|4GB|4G|;
+ $return =~ s|secure|sec|;
+ $return =~ s|enterprise|ent|;
$return;
}
@@ -1088,10 +1087,7 @@ sub when_config_changed_cromwell {
}
sub make_label_lilo_compatible {
- my ($label) = @_;
-
- length($label) < 31 or $label =~ s/\.//g;
-
+ my ($label) = @_;
$label = substr($label, 0, 31); #- lilo does not handle more than 31 char long labels
$label =~ s/ /_/g; #- lilo does not support blank character in image names, labels or aliases
qq("$label");