summaryrefslogtreecommitdiffstats
path: root/perl-install/share/advertising
ModeNameSize
-rw-r--r--01-thanks.pl503logstatsplain
-rw-r--r--01-thanks.png66106logstatsplain
-rw-r--r--02-community.pl463logstatsplain
-rw-r--r--02-community.png19974logstatsplain
-rw-r--r--03-internet.pl439logstatsplain
-rw-r--r--03-internet.png114265logstatsplain
-rw-r--r--04-multimedia.pl469logstatsplain
-rw-r--r--04-multimedia.png104416logstatsplain
-rw-r--r--05-games.pl300logstatsplain
-rw-r--r--05-games.png125923logstatsplain
-rw-r--r--06-mcc.pl322logstatsplain
-rw-r--r--06-mcc.png52917logstatsplain
-rw-r--r--07-desktop.pl339logstatsplain
-rw-r--r--07-desktop.png81578logstatsplain
-rw-r--r--08-development.pl416logstatsplain
-rw-r--r--08-development.png80198logstatsplain
-rw-r--r--09-server.pl398logstatsplain
-rw-r--r--09-server.png52998logstatsplain
-rw-r--r--10-mnf.pl528logstatsplain
-rw-r--r--10-mnf.png68137logstatsplain
-rw-r--r--11-mdkstore.pl371logstatsplain
-rw-r--r--11-mdkstore.png56540logstatsplain
-rw-r--r--12-mdkstore.pl463logstatsplain
-rw-r--r--12-mdkstore.png54519logstatsplain
-rw-r--r--13-mdkcampus.pl704logstatsplain
-rw-r--r--13-mdkcampus.png34666logstatsplain
-rw-r--r--14-mdkexpert.pl521logstatsplain
-rw-r--r--14-mdkexpert.png49069logstatsplain
-rw-r--r--15-mdkexpert-corporate.pl473logstatsplain
-rw-r--r--15-mdkexpert-corporate.png34666logstatsplain
-rw-r--r--16-thanks.png66106logstatsplain
-rwxr-xr-x17-mdkclub.pl759logstatsplain
-rw-r--r--17-mdkclub.png34666logstatsplain
-rw-r--r--Makefile316logstatsplain
-rw-r--r--list270logstatsplain
>, 1, '' ], selectInstallClass => [ __("Select installation class"), 1, 1, '' ], setupSCSI => [ __("Hard drive detection"), 1, 0, '' ], selectMouse => [ __("Configure mouse"), 1, 1, '', "selectInstallClass" ], selectKeyboard => [ __("Choose your keyboard"), 1, 1, '', "selectInstallClass" ], #- miscellaneous => [ __("Miscellaneous"), 1, 1, '!$::expert' ], doPartitionDisks => [ __("Setup filesystems"), 1, 0, '', "selectInstallClass" ], formatPartitions => [ __("Format partitions"), 1, -1, '', "doPartitionDisks" ], choosePackages => [ __("Choose packages to install"), 1, -2, '!$::expert', "formatPartitions" ], installPackages => [ __("Install system"), 1, -1, '', ["formatPartitions", "selectInstallClass"] ], configureNetwork => [ __("Configure networking"), 1, 1, '', "formatPartitions" ], #- installCrypto => [ __("Cryptographic"), 1, 1, '!$::expert', "configureNetwork" ], summary => [ __("Summary"), 1, 0, '', "installPackages" ], configureServices => [ __("Configure services"), 1, 1, '!$::expert', "installPackages" ], setRootPassword => [ __("Set root password"), 1, 1, '', "installPackages" ], addUser => [ __("Add a user"), 1, 1, '', "installPackages" ], arch() !~ /alpha/ ? ( createBootdisk => [ __("Create a bootdisk"), 1, 0, '', "installPackages" ], ) : (), setupBootloader => [ __("Install bootloader"), 1, 1, '', "installPackages" ], configureX => [ __("Configure X"), 1, 1, '', ["formatPartitions", "setupBootloader"] ], exitInstall => [ __("Exit install"), 0, 0, '!$::expert && !$::live' ], ); for (my $i = 0; $i < @installSteps; $i += 2) { my %h; @h{@installStepsFields} = @{ $installSteps[$i + 1] }; $h{next} = $installSteps[$i + 2]; $h{entered} = 0; $h{onError} = $installSteps[$i + 2 * $h{onError}]; $h{reachable} = !$h{needs}; $installSteps{ $installSteps[$i] } = \%h; push @orderedInstallSteps, $installSteps[$i]; } $installSteps{first} = $installSteps[0]; } #-##################################################################################### #-INTERNAL CONSTANT #-##################################################################################### my @install_classes = qw(normal developer server); #-####################################################################################### #-$O #-the big struct which contain, well everything (globals + the interactive methods ...) #-if you want to do a kickstart file, you just have to add all the required fields (see for example #-the variable $default) #-####################################################################################### $o = $::o = { # bootloader => { linear => 0, lba32 => 1, message => 1, timeout => 5, restricted => 0 }, autoSCSI => 0, mkbootdisk => 1, #- no mkbootdisk if 0 or undef, find a floppy with 1, or fd1 #- packages => [ qw() ], partitioning => { clearall => 0, eraseBadPartitions => 0, auto_allocate => 0 }, #-, readonly => 0 }, security => 2, authentication => { md5 => 1, shadow => 1 }, lang => 'en_US', isUpgrade => 0, toRemove => [], toSave => [], #- simple_themes => 1, timezone => { #- timezone => "Europe/Paris", #- UTC => 1, }, #- superuser => { password => 'a', shell => '/bin/bash', realname => 'God' }, #- user => { name => 'foo', password => 'bar', home => '/home/foo', shell => '/bin/bash', realname => 'really, it is foo' }, #- keyboard => 'de', #- display => "192.168.1.19:1", steps => \%installSteps, orderedSteps => \@orderedInstallSteps, #- for the list of fields available for user and superuser, see @etc_pass_fields in install_steps.pm #- intf => { eth0 => { DEVICE => "eth0", IPADDR => '1.2.3.4', NETMASK => '255.255.255.128' } }, #-step : the current one #-prefix #-mouse #-keyboard #-netc #-autoSCSI drives hds fstab #-methods #-packages compss #-printer haveone entry(cf printer.pm) }; #-###################################################################################### #- Steps Functions #- each step function are called with two arguments : clicked(because if you are a #- beginner you can force the the step) and the entered number #-###################################################################################### #------------------------------------------------------------------------------ sub selectLanguage { $o->selectLanguage($_[1] == 1); addToBeDone { lang::write_langs($o->{prefix}, $o->{langs}); } 'formatPartitions' unless $::g_auto_install; addToBeDone { lang::write($o->{prefix}, $o->{lang}); keyboard::write($o->{prefix}, $o->{keyboard}, lang::lang2charset($o->{lang})); } 'installPackages' unless $::g_auto_install; } #------------------------------------------------------------------------------ sub selectMouse { require pkgs; my ($first_time) = $_[1] == 1; add2hash($o->{mouse} ||= {}, mouse::read($o->{prefix})) if $o->{isUpgrade} && $first_time; $o->selectMouse(!$first_time); addToBeDone { mouse::write($o->{prefix}, $o->{mouse}) } 'installPackages'; } #------------------------------------------------------------------------------ sub setupSCSI { my ($clicked) = @_; $o->{autoSCSI} ||= !$::expert; $o->setupSCSI($o->{autoSCSI} && !$clicked, $clicked); } #------------------------------------------------------------------------------ sub selectKeyboard { my ($clicked, $first_time) = ($_[0], $_[1] == 1); if ($o->{isUpgrade} && $first_time && $o->{keyboard_unsafe}) { my $keyboard = keyboard::read($o->{prefix}); $keyboard and $o->{keyboard} = $keyboard; } return if !$::expert && !$clicked; $o->selectKeyboard($clicked); } #------------------------------------------------------------------------------ sub selectInstallClass { my ($clicked) = @_; $o->selectInstallClass($clicked); if ($o->{steps}{choosePackages}{entered} >= 1 && !$o->{steps}{installPackages}{done}) { $o->setPackages(\@install_classes); $o->selectPackagesToUpgrade if $o->{isUpgrade}; } if ($o->{isUpgrade}) { @{$o->{orderedSteps}} = map { /setupSCSI/ ? ($_, "doPartitionDisks") : $_ } grep { !/doPartitionDisks/ } @{$o->{orderedSteps}}; my $s; foreach (@{$o->{orderedSteps}}) { $s->{next} = $_ if $s; $s = $o->{steps}{$_}; } } } #------------------------------------------------------------------------------ sub doPartitionDisks { $o->{steps}{formatPartitions}{done} = 0; $o->doPartitionDisksBefore; $o->doPartitionDisks; $o->doPartitionDisksAfter; } sub formatPartitions { $o->{steps}{choosePackages}{done} = 0; $o->choosePartitionsToFormat($o->{fstab}) unless $o->{isUpgrade}; $o->formatMountPartitions($o->{fstab}) unless $::testing; mkdir "$o->{prefix}/$_", 0755 foreach qw(dev etc etc/profile.d etc/rpm etc/sysconfig etc/sysconfig/console etc/sysconfig/network-scripts etc/sysconfig/console/consolefonts etc/sysconfig/console/consoletrans home mnt tmp var var/tmp var/lib var/lib/rpm var/lib/urpmi); mkdir "$o->{prefix}/$_", 0700 foreach qw(root root/tmp); any::rotate_logs($o->{prefix}); require raid; raid::prepare_prefixed($o->{raid}, $o->{prefix}); my $d = "/initrd/loopfs/lnx4win"; if (-d $d) { #- install_any::useMedium(0); install_any::getAndSaveFile("lnx4win/$_", "$d/$_") foreach qw(ctl3d32.dll loadlin.exe linux.pif lnx4win.exe lnx4win.ico rm.exe uninstall.bat uninstall.pif); } #- chdir "$o->{prefix}"; was for core dumps #-noatime option for ext2 fs on laptops (do not wake up the hd) #- Do not update inode access times on this #- file system (e.g, for faster access on the #- news spool to speed up news servers). $o->{pcmcia} and $_->{options} = "noatime" foreach grep { isTrueFS($_) } @{$o->{fstab}}; } #------------------------------------------------------------------------------ sub choosePackages { require pkgs; #- always setPackages as it may have to copy hdlist files and depslist file. $o->setPackages; $o->choosePackages($o->{packages}, $o->{compss}, $o->{compssUsers}, $_[1] == 1); #- check pre-condition where base backage has to be selected. pkgs::packageFlagSelected(pkgs::packageByName($o->{packages}, 'basesystem')) or die "basesystem package not selected"; #- check if there are package that need installation. $o->{steps}{installPackages}{done} = 0 if $o->{steps}{installPackages}{done} && pkgs::packagesToInstall($o->{packages}) > 0; } #------------------------------------------------------------------------------ sub installPackages { $o->readBootloaderConfigBeforeInstall if $_[1] == 1; $o->beforeInstallPackages; $o->installPackages; $o->afterInstallPackages; } #------------------------------------------------------------------------------ sub miscellaneous { $o->miscellaneousBefore($_[0]); $o->miscellaneous($_[0]); addToBeDone { setVarsInSh("$o->{prefix}/etc/sysconfig/system", { CLEAN_TMP => $o->{miscellaneous}{CLEAN_TMP}, CLASS => $::expert && 'expert' || 'beginner', SECURITY => $o->{security}, META_CLASS => $o->{meta_class} || 'PowerPack', }); my $f = "$o->{prefix}/etc/sysconfig/usb"; output $f, "USB=yes MOUSE=" . bool2yesno(detect_devices::usbMice()) . " KEYBOARD=" . bool2yesno(detect_devices::usbKeyboards()) . " STORAGE=" . bool2yesno(detect_devices::usbZips()) . " VISOR=no " if modules::get_alias("usb-interface") && ! -e $f; install_any::fsck_option($o); } 'installPackages'; } #------------------------------------------------------------------------------ sub summary { $o->summary($_[1] == 1) } #------------------------------------------------------------------------------ sub configureNetwork { #- get current configuration of network device. require network; eval { network::read_all_conf($o->{prefix}, $o->{netc} ||= {}, $o->{intf} ||= {}) }; $o->configureNetwork($_[1] == 1); } #------------------------------------------------------------------------------ sub installCrypto { $o->installCrypto } #------------------------------------------------------------------------------ sub configureServices { $o->configureServices($_[0]) } #------------------------------------------------------------------------------ sub setRootPassword { return if $o->{isUpgrade}; $o->setRootPassword($_[0]); addToBeDone { install_any::setAuthentication($o) } 'installPackages'; } #------------------------------------------------------------------------------ sub addUser { return if $o->{isUpgrade} && !$_[0]; $o->addUser($_[0]); } #------------------------------------------------------------------------------ sub createBootdisk { modules::write_conf($o->{prefix}); $o->createBootdisk($_[1] == 1); } #------------------------------------------------------------------------------ sub setupBootloader { return if $::g_auto_install; modules::write_conf($o->{prefix}); $o->setupBootloaderBefore if $_[1] == 1; $o->setupBootloader($_[1] - 1); local $ENV{DRAKX_PASSWORD} = $o->{bootloader}{password}; run_program::rooted($o->{prefix}, "/usr/sbin/msec", $o->{security}); } #------------------------------------------------------------------------------ sub configureX { my ($clicked) = @_; #- done here and also at the end of install2.pm, just in case... fs::write($o->{prefix}, $o->{fstab}, $o->{manualFstab}, $o->{useSupermount}); modules::write_conf($o->{prefix}); require pkgs; $o->configureX($clicked) if pkgs::packageFlagInstalled(pkgs::packageByName($o->{packages}, 'XFree86')) && !$o->{X}{disabled} || $clicked || $::testing; } #------------------------------------------------------------------------------ sub exitInstall { $o->exitInstall(getNextStep() eq "exitInstall") } #-###################################################################################### #- MAIN #-###################################################################################### sub main { $SIG{__DIE__} = sub { chomp(my $err = $_[0]); log::l("warning: $err") }; $SIG{SEGV} = sub { my $msg = "segmentation fault: seems like memory is missing as the install crashes"; print "$msg\n"; log::l($msg); $o->ask_warn('', $msg); setVirtual(1); require install_steps_auto_install; install_steps_auto_install::errorInStep(); }; $ENV{PERL_BADLANG} = 1; $::isInstall = 1; $::expert = $::g_auto_install = 0; #- c::unlimit_core() unless $::testing; my ($cfg, $patch, @auto); my %cmdline; map { my ($n, $v) = split '='; $cmdline{$n} = $v || 1; } split ' ', cat_("/proc/cmdline"); my $opt; foreach (@_) { if (/^--?(.*)/) { $cmdline{$opt} = 1 if $opt; $opt = $1; } else { $cmdline{$opt} = $_ if $opt; $opt = ''; } } $cmdline{$opt} = 1 if $opt; map_each { my ($n, $v) = @_; my $f = ${{ oem => sub { $::oem = $v }, lang => sub { $o->{lang} = $v }, flang => sub { $o->{lang} = $v ; push @auto, 'selectLanguage' }, method => sub { $o->{method} = $v }, pcmcia => sub { $o->{pcmcia} = $v },