summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/install_any.pm125
1 files changed, 67 insertions, 58 deletions
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm
index 0821cef2e..7e586caec 100644
--- a/perl-install/install_any.pm
+++ b/perl-install/install_any.pm
@@ -333,20 +333,6 @@ sub setPackages {
if (!$o->{packages} || is_empty_hash_ref($o->{packages}{names})) {
$o->{packages} = pkgs::psUsingHdlists($o->{prefix}, $o->{method});
- push @{$o->{default_packages}}, "nfs-utils-clients" if $o->{method} eq "nfs";
- push @{$o->{default_packages}}, "numlock" if $o->{miscellaneous}{numlock};
- push @{$o->{default_packages}}, "kernel-enterprise" if !$::oem && (availableRamMB() > 800) && (arch() !~ /ia64/);
- push @{$o->{default_packages}}, "kernel22" if !$::oem && c::kernel_version() =~ /^\Q2.2/;
- push @{$o->{default_packages}}, "kernel-smp" if detect_devices::hasSMP();
- push @{$o->{default_packages}}, "raidtools" if !is_empty_array_ref($o->{all_hds}{raids});
- push @{$o->{default_packages}}, "lvm" if !is_empty_array_ref($o->{all_hds}{lvms});
- push @{$o->{default_packages}}, "usbd", "hotplug" if modules::get_alias("usb-interface");
- push @{$o->{default_packages}}, "reiserfsprogs" if grep { isThisFs("reiserfs", $_) } @{$o->{fstab}};
- push @{$o->{default_packages}}, "xfsprogs" if grep { isThisFs("xfs", $_) } @{$o->{fstab}};
- push @{$o->{default_packages}}, "jfsprogs" if grep { isThisFs("jfs", $_) } @{$o->{fstab}};
- push @{$o->{default_packages}}, "alsa", "alsa-utils" if modules::get_alias("sound-slot-0") =~ /^snd-card-/;
- push @{$o->{default_packages}}, "imwheel" if $o->{mouse}{nbuttons} > 3;
-
pkgs::getDeps($o->{prefix}, $o->{packages});
pkgs::selectPackage($o->{packages},
pkgs::packageByName($o->{packages}, 'basesystem') || die("missing basesystem package"), 1);
@@ -358,50 +344,8 @@ sub setPackages {
pkgs::read_rpmsrate($o->{packages}, getFile("Mandrake/base/rpmsrate"));
($o->{compssUsers}, $o->{compssUsersSorted}) = pkgs::readCompssUsers($o->{meta_class});
- if ($::auto_install && $o->{compssUsersChoice}{ALL}) {
- $o->{compssUsersChoice}{$_} = 1 foreach map { @{$o->{compssUsers}{$_}{flags}} } @{$o->{compssUsersSorted}};
- }
- if (!$o->{compssUsersChoice} && !$o->{isUpgrade}) {
- #- by default, choose:
- $o->{compssUsersChoice}{$_} = 1 foreach 'GNOME', 'KDE', 'CONFIG', 'X';
- $o->{compssUsersChoice}{$_} = 1
- foreach map { @{$o->{compssUsers}{$_}{flags}} } 'Workstation|Office Workstation', 'Workstation|Internet station';
- }
- $o->{compssUsersChoice}{uc($_)} = 1 foreach grep { modules::get_that_type($_) } ('tv', 'scanner', 'photo', 'sound');
- $o->{compssUsersChoice}{uc($_)} = 1 foreach map { $_->{driver} =~ /Flag:(.*)/ } detect_devices::probeall();
- $o->{compssUsersChoice}{SYSTEM} = 1;
- $o->{compssUsersChoice}{BURNER} = 1 if detect_devices::burners();
- $o->{compssUsersChoice}{DVD} = 1 if detect_devices::dvdroms();
- $o->{compssUsersChoice}{PCMCIA} = 1 if detect_devices::hasPCMCIA();
- $o->{compssUsersChoice}{HIGH_SECURITY} = 1 if $o->{security} > 3;
- $o->{compssUsersChoice}{'3D'} = 1 if
- detect_devices::matching_desc('Matrox.* G[245][05]0') ||
- detect_devices::matching_desc('Riva.*128') ||
- detect_devices::matching_desc('Rage X[CL]') ||
- detect_devices::matching_desc('Rage Mobility [PL]') ||
- detect_devices::matching_desc('3D Rage (?:LT|Pro)') ||
- detect_devices::matching_desc('Voodoo [35]') ||
- detect_devices::matching_desc('Voodoo Banshee') ||
- detect_devices::matching_desc('8281[05].* CGC') ||
- detect_devices::matching_desc('Rage 128') ||
- detect_devices::matching_desc('Radeon ') ||
- detect_devices::matching_desc('[nN]Vidia.*T[nN]T2') || #- TNT2 cards
- detect_devices::matching_desc('[nN]Vidia.*NV[56]') ||
- detect_devices::matching_desc('[nN]Vidia.*Vanta') ||
- detect_devices::matching_desc('[nN]Vidia.*GeForce') || #- GeForce cards
- detect_devices::matching_desc('[nN]Vidia.*NV1[15]') ||
- detect_devices::matching_desc('[nN]Vidia.*Quadro');
-
-
- foreach (map { substr($_, 0, 2) } lang::langs($o->{langs})) {
- pkgs::packageByName($o->{packages}, "locales-$_") or next;
- push @{$o->{default_packages}}, "locales-$_";
- $o->{compssUsersChoice}{qq(LOCALES"$_")} = 1; #- mainly for zh in case of zh_TW.Big5
- }
- foreach (lang::langsLANGUAGE($o->{langs})) {
- $o->{compssUsersChoice}{qq(LOCALES"$_")} = 1;
- }
- $o->{compssUsersChoice}{'CHARSET"' . lang::lang2charset($o->{lang}) . '"'} = 1;
+ #- preselect default_packages and compssUsersChoices.
+ setDefaultPackages($o);
} else {
#- this has to be done to make sure necessary files for urpmi are
#- present.
@@ -409,6 +353,71 @@ sub setPackages {
}
}
+sub setDefaultPackages {
+ my ($o) = @_;
+
+ delete $o->{$_} foreach qw(default_packages compssUsersChoice); #- clean modified variables.
+
+ push @{$o->{default_packages}}, "nfs-utils-clients" if $o->{method} eq "nfs";
+ push @{$o->{default_packages}}, "numlock" if $o->{miscellaneous}{numlock};
+ push @{$o->{default_packages}}, "kernel-enterprise" if !$::oem && (availableRamMB() > 800) && (arch() !~ /ia64/);
+ push @{$o->{default_packages}}, "kernel22" if !$::oem && c::kernel_version() =~ /^\Q2.2/;
+ push @{$o->{default_packages}}, "kernel-smp" if detect_devices::hasSMP();
+ push @{$o->{default_packages}}, "raidtools" if !is_empty_array_ref($o->{all_hds}{raids});
+ push @{$o->{default_packages}}, "lvm" if !is_empty_array_ref($o->{all_hds}{lvms});
+ push @{$o->{default_packages}}, "usbd", "hotplug" if modules::get_alias("usb-interface");
+ push @{$o->{default_packages}}, "reiserfsprogs" if grep { isThisFs("reiserfs", $_) } @{$o->{fstab}};
+ push @{$o->{default_packages}}, "xfsprogs" if grep { isThisFs("xfs", $_) } @{$o->{fstab}};
+ push @{$o->{default_packages}}, "jfsprogs" if grep { isThisFs("jfs", $_) } @{$o->{fstab}};
+ push @{$o->{default_packages}}, "alsa", "alsa-utils" if modules::get_alias("sound-slot-0") =~ /^snd-card-/;
+ push @{$o->{default_packages}}, "imwheel" if $o->{mouse}{nbuttons} > 3;
+
+ if ($::auto_install && $o->{compssUsersChoice}{ALL}) {
+ $o->{compssUsersChoice}{$_} = 1 foreach map { @{$o->{compssUsers}{$_}{flags}} } @{$o->{compssUsersSorted}};
+ }
+ if (!$o->{compssUsersChoice} && !$o->{isUpgrade}) {
+ #- by default, choose:
+ $o->{compssUsersChoice}{$_} = 1 foreach 'GNOME', 'KDE', 'CONFIG', 'X';
+ $o->{compssUsersChoice}{$_} = 1
+ foreach map { @{$o->{compssUsers}{$_}{flags}} } 'Workstation|Office Workstation', 'Workstation|Internet station';
+ }
+ $o->{compssUsersChoice}{uc($_)} = 1 foreach grep { modules::get_that_type($_) } ('tv', 'scanner', 'photo', 'sound');
+ $o->{compssUsersChoice}{uc($_)} = 1 foreach map { $_->{driver} =~ /Flag:(.*)/ } detect_devices::probeall();
+ $o->{compssUsersChoice}{SYSTEM} = 1;
+ $o->{compssUsersChoice}{BURNER} = 1 if detect_devices::burners();
+ $o->{compssUsersChoice}{DVD} = 1 if detect_devices::dvdroms();
+ $o->{compssUsersChoice}{PCMCIA} = 1 if detect_devices::hasPCMCIA();
+ $o->{compssUsersChoice}{HIGH_SECURITY} = 1 if $o->{security} > 3;
+ $o->{compssUsersChoice}{'3D'} = 1 if
+ detect_devices::matching_desc('Matrox.* G[245][05]0') ||
+ detect_devices::matching_desc('Riva.*128') ||
+ detect_devices::matching_desc('Rage X[CL]') ||
+ detect_devices::matching_desc('Rage Mobility [PL]') ||
+ detect_devices::matching_desc('3D Rage (?:LT|Pro)') ||
+ detect_devices::matching_desc('Voodoo [35]') ||
+ detect_devices::matching_desc('Voodoo Banshee') ||
+ detect_devices::matching_desc('8281[05].* CGC') ||
+ detect_devices::matching_desc('Rage 128') ||
+ detect_devices::matching_desc('Radeon ') ||
+ detect_devices::matching_desc('[nN]Vidia.*T[nN]T2') || #- TNT2 cards
+ detect_devices::matching_desc('[nN]Vidia.*NV[56]') ||
+ detect_devices::matching_desc('[nN]Vidia.*Vanta') ||
+ detect_devices::matching_desc('[nN]Vidia.*GeForce') || #- GeForce cards
+ detect_devices::matching_desc('[nN]Vidia.*NV1[15]') ||
+ detect_devices::matching_desc('[nN]Vidia.*Quadro');
+
+
+ foreach (map { substr($_, 0, 2) } lang::langs($o->{langs})) {
+ pkgs::packageByName($o->{packages}, "locales-$_") or next;
+ push @{$o->{default_packages}}, "locales-$_";
+ $o->{compssUsersChoice}{qq(LOCALES"$_")} = 1; #- mainly for zh in case of zh_TW.Big5
+ }
+ foreach (lang::langsLANGUAGE($o->{langs})) {
+ $o->{compssUsersChoice}{qq(LOCALES"$_")} = 1;
+ }
+ $o->{compssUsersChoice}{'CHARSET"' . lang::lang2charset($o->{lang}) . '"'} = 1;
+}
+
sub unselectMostPackages {
my ($o) = @_;
pkgs::unselectAllPackages($o->{packages});