diff options
Diffstat (limited to 'rescue/tree/etc')
| -rw-r--r-- | rescue/tree/etc/fstab | 4 | ||||
| -rw-r--r-- | rescue/tree/etc/group | 1 | ||||
| -rw-r--r-- | rescue/tree/etc/host.conf | 2 | ||||
| -rw-r--r-- | rescue/tree/etc/hosts | 1 | ||||
| -rw-r--r-- | rescue/tree/etc/inittab | 14 | ||||
| -rw-r--r-- | rescue/tree/etc/issue | 27 | ||||
| -rwxr-xr-x | rescue/tree/etc/oem | 1031 | ||||
| -rw-r--r-- | rescue/tree/etc/passwd | 3 | ||||
| -rw-r--r-- | rescue/tree/etc/profile | 24 | ||||
| -rwxr-xr-x | rescue/tree/etc/rc.reboot | 8 | ||||
| -rwxr-xr-x | rescue/tree/etc/rc.sysinit | 46 | ||||
| -rw-r--r-- | rescue/tree/etc/resolv.conf | 2 | 
12 files changed, 0 insertions, 1163 deletions
diff --git a/rescue/tree/etc/fstab b/rescue/tree/etc/fstab deleted file mode 100644 index fbafb7801..000000000 --- a/rescue/tree/etc/fstab +++ /dev/null @@ -1,4 +0,0 @@ -/dev/ram3 / ext2 defaults 1 1 -/dev/fd0 /mnt/floppy auto defaults,noauto 0 0 -none /proc proc defaults,noauto,ro 0 0 -/dev/cdrom /mnt/cdrom auto defaults,noauto 0 0 diff --git a/rescue/tree/etc/group b/rescue/tree/etc/group deleted file mode 100644 index 5ba713c83..000000000 --- a/rescue/tree/etc/group +++ /dev/null @@ -1 +0,0 @@ -root::0:root diff --git a/rescue/tree/etc/host.conf b/rescue/tree/etc/host.conf deleted file mode 100644 index 1a8c1e151..000000000 --- a/rescue/tree/etc/host.conf +++ /dev/null @@ -1,2 +0,0 @@ -order hosts,bind -multi on diff --git a/rescue/tree/etc/hosts b/rescue/tree/etc/hosts deleted file mode 100644 index a9bbdee7f..000000000 --- a/rescue/tree/etc/hosts +++ /dev/null @@ -1 +0,0 @@ -127.0.0.1		mandrake-rescue diff --git a/rescue/tree/etc/inittab b/rescue/tree/etc/inittab deleted file mode 100644 index 0348c66f4..000000000 --- a/rescue/tree/etc/inittab +++ /dev/null @@ -1,14 +0,0 @@ -#Inittab for Mandrake Rescue Disk -#Author: Daouda Lo <daouda@mandrakesoft.com> -id:3:initdefault: - -si::sysinit:/etc/rc.sysinit -re:6:wait:/etc/rc.reboot -ca:12345:ctrlaltdel:/sbin/fakeshutdown - -1:12345:respawn:/bin/bash --login -2:23:respawn:/sbin/mingetty tty2 -3:23:respawn:/sbin/mingetty tty3 -4:23:respawn:/sbin/mingetty tty4 -5:23:respawn:/sbin/mingetty tty5 -6:23:respawn:/sbin/mingetty tty6 diff --git a/rescue/tree/etc/issue b/rescue/tree/etc/issue deleted file mode 100644 index a38b2f1a3..000000000 --- a/rescue/tree/etc/issue +++ /dev/null @@ -1,27 +0,0 @@ -[40m[40m -[2J[0;0H -[0;1;30;44m         [40m      [44m       [40m -[1;44m        [40m        [44m      [2C[47m  [5C      [1C  [3C  [1C  [2C  [1C  [2C  [40m -[1;30;44m        [40m [47m  [40m [47m  [40m  [44m      [2C[47m  [7C  [3C   [2C  [1C  [2C  [2C    [40m -[1;30;44m        [40m [47m [40m   [47m [40m   [44m     [2C[47m  [7C  [3C    [1C  [1C  [2C  [3C  [40m -[1;30;44m        [40m  [43m    [40m   [44m     [2C[47m  [7C  [3C  [1C    [1C  [2C  [2C    [40m -[1;30;44m        [40m [0;30;43m`----'[40m  [1;44m     [2C[47m      [1C      [1C  [3C  [2C    [2C  [2C  [40m -[1;30;44m        [40m [47m [37m    [30m [40m   [44m    [40m -[1;30;44m       [40m [47m        [40m    [44m  [40m[2C[1;37;40m[0m -[1;30;44m       [40m [47m         [40m    [44m [40m[2[1;37;4[0m -[1;30;44m       [40m [47m         [40m    [30;44m [40m[2C[1;37;40m[0m -[1;30;44m      [40m [47m          [40m     [2C[1;37;40m[0m -[1;30;44m     [40m  [47m          [40m     [2C[1;37;40mMandrake Linux Rescue Disk[0m -[1;30;44m     [43m   [30;47m        [43m   [40m   [2C[1;37;40m[0m -[1;30;44m   [43m     [47m        [43m    [40m  [2C -[1;30;44m [43m       [47m        [43m      [40m[2C -[1;30;44m [43m       [40m [47m      [40m [43m      [40m[2C -[0m[255D - -Mandrake Linux release 8.2 (Cooker) - -Use [1;33;40mloadkeys[0m to change your keyboard layout (eg: loadkeys fr) -Use [1;33;40mmodprobe[0m to load modules (eg: modprobe snd-card-fm801) -Use [1;33;40mdrvinst[0m to install drivers according to detected devices -Use [1;33;40mlsparts[0m to list your partitions with types - diff --git a/rescue/tree/etc/oem b/rescue/tree/etc/oem deleted file mode 100755 index aee0cd14b..000000000 --- a/rescue/tree/etc/oem +++ /dev/null @@ -1,1031 +0,0 @@ -#!/usr/bin/perl - -if (shift(@ARGV) ne '-f') { -    print "Call it with option -f, but don't fear loosing all your data, this command is dangerous!"; -    print " -usage: /etc/oem -f [options] -where [options] are: -    server                          : allow server installalation -    boot_entries=entry1,...,entryN  : set boot entries to use, -                                      the first one is the default one -    no<option>                      : disable options <option> -"; -    exit 1; -} -my (%options, $yes, $hd, $hdp, $cd); - -#- avoid globing as it is not available in rescue ramdisk. -foreach my $device (split ' ', `/bin/ls -d /proc/ide/hd*`) { -    open F, "$device/media" or next; -    foreach (<F>) { -	/disk/  and do { $hd ||= $device; $hd =~ s,/proc/ide/,,; }; -	/cdrom/ and do { $cd ||= $device; $cd =~ s,/proc/ide/,,; }; -    } -    close F; -} -#- examine available SCSI devices (avoid SCSI floppies like LS-120 or ZIP disk or generic floppies). -eval { -    system "/usr/bin/drvinst"; #- load scsi drivers else it wont do anything. - -    my ($driveNum, $cdromNum) = (0, 0); -    open F, "/proc/scsi/scsi" or die "no scsi available"; -    local $_ = <F>; /^Attached devices:/ or die "to attached devices found"; -    while ($_ = <F>) { -	my ($id) = /^Host:.*?Id: (\d+)/ or die "no host found"; -	$_ = <F>; my ($vendor, $model) = /^\s*Vendor:\s*(.*?)\s+Model:\s*(.*?)\s+Rev:/ or die "no vendor nor model found"; -	$_ = <F>; my ($type) = /^\s*Type:\s*(.*)/; -	if ($type =~ /Direct-Access/ && $model !~ /ZIP\s+\d+|LS-?120|144MB|[Ff]loppy/) { -	    $hd ||= "sd" . chr($driveNum++ + ord('a')); -	} elsif ($type =~ /CD-ROM/) { -	    $cd ||= "scd" . $cdromNum++; -	} -    } -    close F; -}; -#- examine DAC960 device. -#- there is a problem as there is no more than 7 partitions available, this means no /home and no /var. -unless ($hd) { -    local $_; -    open F, "dmesg |"; -    while (<F>) { -	m|/dev/(rd/.*?): .*?,| and $hd ||= $1, last; -    } -    close F; -    if ($hd) { -	my ($c_id, $d_id) = $hd =~ m|rd/c(\d+)d(\d+)|; -	-d "/dev/rd" or mkdir "/dev/rd"; -	system "mknod", "/dev/$hd", "b", 48+$c_id, 8*$d_id; -	foreach (1..7) { -	    system "mknod", "/dev/${hd}p$_", "b", 48+$c_id, 8*$d_id+$_; -	} -	$hdp = $hd . 'p'; -    } -} -#- examine Compaq Smart Array device. -unless ($hd) { -    foreach ('array/ida', 'cpqarray/ida', 'cciss/cciss') { -	my $prefix = "/proc/driver/$_"; #- kernel 2.4 places it here -	$prefix = "/proc/$_" if !-e "${prefix}0"; #- kernel 2.2 - -	my ($name) = m|/(.*)|; -	for (my $i = 0; -r ($f = "${prefix}$i"); $i++) { -	    local $_; -	    open F, $f; -	    while (<F>) { -		if (m|^\s*($name/.*?):|) { -		    $hd ||= $1; -		} -	    } -	    close F; -	} -    } -    if ($hd) { -	my ($type, $c_id, $d_id) = $hd =~ m,(ida|cciss)/c(\d+)d(\d+),; -	-d "/dev/$type" or mkdir "/dev/$type"; -	system "mknod", "/dev/$hd", "b", ($type eq 'ida' ? 72 : 104)+$c_id, 16*$d_id; -	foreach (1..15) { -	    system "mknod", "/dev/${hd}p$_", "b", ($type eq 'ida' ? 72 : 104)+$c_id, 16*$d_id+$_; -	} -	$hdp = $hd . 'p'; -    } -} -$hd && -e "/dev/$hd" or die "unable to access hard disk"; -print "hd: $hd\ncd: $cd\n"; -$hdp ||= $hd; - -#- try to free any reference to hard disk which will be used (as in rescue mode it has already loaded -#- existing partition in /mnt. -open F, "/proc/mounts"; -while (<F>) { -    /$hdp(\d*)\s+(\S+)/ and $already_mounted{$2} = "$hdp$1"; -} -foreach (sort { $b cmp $a } keys %already_mounted) { -    print "umounting $already_mounted{$_} from $_\n";  -    system "umount", $_; -} -     -#- find a cdrom (like) image, normally a true cdrom but if nfs install is running, use it instead. -mkdir "/cdrom"; -open F, "/proc/cmdline"; -while (<F>) { -    /automatic=method:nfs,.*server:([^\s,]*),.*directory:([^\s,]*)/ -      and system "mount", "-r", "-t", "nfs", "$1:$2", "/cdrom", "-o", "nolock"; -} -close F; -unless (-e "/cdrom/VERSION") { -    -e "/dev/$cd" or die "unable to access local cdrom"; -    system "mount", "-r", "-t", "iso9660", "/dev/$cd", "/cdrom"; -} - -#- detect language used and default options. -my ($lang, $flang, $charset); -open F, "/cdrom/VERSION" or die "no installation cdrom found on $cd"; -while (<F>) { -    /[\s-]fr/ and $options{lang} = 'fr'; -    /\[lang[=:]([^]]*)\]/ and $options{lang} = $1; -    /\[server\]/ and $options{server} = ''; -    /\[boot_entries[=:]([^]]*)\]/ and $options{boot_entries} = $1; -} -close F; -foreach (@ARGV) { /^([^=:]*)[=:]?(.*)/ and $options{$1} = $2; /^no([^=:]*)/ and delete $options{$1} } - -#- default language fall to english ? -foreach ($options{lang} || 'en') { -    /fr/ and ($lang, $flang, $charset) = ('fr', 'fr_FR@euro', 'iso-8859-15'); -    /en/ and ($lang, $flang, $charset) = ('en', 'en_US', 'iso-8859-1'); -    /de/ and ($lang, $flang, $charset) = ('de', 'de_DE@euro', 'iso-8859-15'); -    /it/ and ($lang, $flang, $charset) = ('it', 'it_IT@euro', 'iso-8859-15'); -    /es/ and ($lang, $flang, $charset) = ('es', 'es_ES@euro', 'iso-8859-15'); -} -foreach (keys %options) { -    print "Using option [$_" . ($options{$_} && "=$options{$_}") . "]\n"; -} - -#- check for already existing partition table, if none are found -#- create 3 partitions (one for install, one for swap and one for root). -#- if only a fat partition is found, resize it do include the above partition. -#- other combination are really dangerous and are not supported, ask -#- the user that all data on the disk will be erased and go on. -my ($heads, $sectors, $cylinders, $hd_size, @hd_parts); -sub correct_start_end { -    my ($rstart, $end, $keep_start) = @_; -    my ($cylinder_size, $c_start, $c_end) = ($sectors*$heads*512/1024/1024, undef, undef); -    if (abs($cylinder_size*$cylinders-$hd_size)/$hd_size < 0.01) { -	$c_start = $$rstart+($keep_start ? 0 : $cylinder_size/$heads); -	$c_end = $cylinder_size*int(1/2+$end/$cylinder_size); -	$c_end > $hd_size and $c_end = $hd_size; -	$$rstart = $c_end; -    } else { -	$c_start = $$rstart; -	$c_end = $end; -	$c_end > $hd_size and $c_end = $hd_size; -	$$rstart = $c_end+5; #- fall back to use a problable safe method. -    } -    $c_start >= $c_end and die "no space left for partitionning\n"; -    ($c_start, $c_end); -} -open F, "fdisk -l /dev/$hd |"; -while (<F>) { -    /(\d+)\s*heads/ and $heads = $1; -    /(\d+)\s*sectors/ and $sectors = $1; -    /(\d+)\s*cylinders/ and $cylinders = $1; -} -if ($heads == 1 && $cylinders == 1) { -    $cylinders = $sectors / 255 / 63; -    $heads = 255; -    $sectors = 63; -} -close F; -for (1..2) { -    open F, "parted /dev/$hd -s print |"; -    while (<F>) { -	/^Disk geometry [^:]*:\s*([\d\.]+)-([\d\.]+)/ and do { $hd_size = $2 - $1 - 1 }; -	#/^Disk label type:\s*msdos/ and do { $hd_type = 'msdos' }; -	/^(\d+)\s+([\d\.]+)\s+([\d\.]+)\s+(primary|logical|extended)\s*(\S*)/ and do { -	    #- this automatically drops extended partition here! -	    push @hd_parts, { minor => $1, start => $2, end => $3, type => $4, fstype => $5 }; -	}; -    } -    close F; -    $hd_size and last; -    print "Unable to detect partition on disk, trying with new label\n"; -    do { -	print " - -I'm going to install the OEM version on your hard drive -[1;31;40m!!ALL DATA WILL BE LOST!![0m - -Type \`\`yes'' and [enter] to go on\n" -    } while (($yes = <STDIN>) !~ /^\s*yes\s*$/i); -    system "parted", "/dev/$hd", "mklabel", "msdos"; -} -my ($min_size, $def_size, $trigger_size, $inst_size, $swap_size) = (2100, 2700, 4000, 200, 128); -$hd_size > $min_size or die "hard disk is too small to contain oem install (${hd_size}MB found, need $min_size at least)"; - -my ($fat_pos, $resize_fat_size, $root_size); -if (@hd_parts == 1 && $hd_parts[$fat_pos = 0]{fstype} eq 'FAT' || -    @hd_parts == 2 && $hd_parts[0]{type} eq 'primary' && $hd_parts[$fat_pos = 1]{fstype} eq 'FAT' || -    @hd_parts == 3 && $hd_parts[0]{type} eq 'primary' && $hd_parts[1]{type} eq 'primary' && $hd_parts[$fat_pos = 2]{fstype} eq 'FAT' || -    @hd_parts == 2 && $hd_parts[0]{type} eq 'extended' && $hd_parts[$fat_pos = 1]{fstype} eq 'FAT' || -    @hd_parts == 3 && $hd_parts[0]{type} eq 'extended' && $hd_parts[1]{type} eq 'primary' && $hd_parts[$fat_pos = 5]{fstype} eq 'FAT') { -    if ($hd_size - $hd_parts[$fat_pos]{end} > $min_size) { -	#- check first if there are some available space left on the disk. -	#- so we are using it, root_size is fixed to match hard disk size. -	$resize_fat_size = 0; -	$root_size = $hd_size - $hd_parts[$fat_pos]{end} - $inst_size - $swap_size; -	$root_size > $trigger_size and $root_size = $def_size; -    } elsif ($hd_size > 2*$min_size) { -	#- resize this fat partition. -	$resize_fat_size = 0.5 * $hd_size; -	$root_size = $hd_size - $resize_fat_size - $inst_size - $swap_size; -	$root_size > $trigger_size and $root_size = $def_size; -    } -} -unless ($root_size) { -    #- there have not been defined above, so remove everything and start from -    #- a blank partition. -    $resize_fat_size = undef; -    $root_size = $hd_size - $resize_fat_size - $inst_size - $swap_size; -    $root_size > $trigger_size and $root_size = $def_size; -} - -#- launch parted to edit partition table, start at minor. -#- point define where we start. -my $minor = defined $resize_fat_size && $hd_parts[0]{type} eq 'extended' ? 6 : 5; -my $point = 0.0; - -if (defined $resize_fat_size) { -    do { -	print " - -[1;31;40m!!An existing Windows partition has been found and will be kept. -Additional Linux partitions will be created!![0m - -Type \`\`yes'' and [enter] to go on\n" -    } while (($yes = <STDIN>) !~ /^\s*yes\s*$/i); -    #- keep the current partition table, and try to resize the fat partition -    #- if the size is not 0. -    #- KEEP IN MIND there is only one partition defined. -    open F, "| parted -s /dev/$hd"; -    if ($resize_fat_size) { -	$point = $hd_parts[$fat_pos]{start}; -	printf F "resize %d %s %s\n", $hd_parts[$fat_pos]{minor}, correct_start_end(\$point, $point+$resize_fat_size, 'keepstart'); -    } else { -	$point = $hd_parts[$fat_pos]{end}; -    } -    $point+=9; #- keep blank space between partitions if parted cannot handle partition table correctly. -} else { -    unless (defined $yes) { -	do { -	    print " - -I'm going to install the OEM version on your hard drive -[1;31;40m!!ALL DATA WILL BE LOST!![0m - -Type \`\`yes'' and [enter] to go on\n" -        } while (($yes = <STDIN>) !~ /^\s*yes\s*$/i); -    } -    #- build a new disk label here. -    open F, "| parted -s /dev/$hd"; -    print F "mklabel msdos\n"; -} - -#- at this point, the partition are created. -my ($instz, $inst, $swap, $root, $var, $home) = ($minor-1, $minor, $minor+1, $minor+2, undef, undef); - -#- all linux partition are stored inside an extended partition, this is easier to manipulate after. -if ($minor == 5) { -    print F "mkpart extended $point $hd_size\n"; -} else { -    $hd_parts[0]{type} eq 'extended' or die "first partition assumed to be extended"; -    $point = $hd_parts[0]{start}; -    print F "resize $hd_parts[0]{minor} $point $hd_size\n"; -} -printf F "mkpart logical ext2 %s %s\n", correct_start_end(\$point, $point+$inst_size); -printf F "mkpart logical linux-swap %s %s\n", correct_start_end(\$point, $point+$swap_size); -printf F "mkpart logical ext2 %s %s\n", correct_start_end(\$point, $point+$root_size); -if (exists $options{server} && $hd !~ /^rd\//) { -    my $var_size = ($hd_size - $point) / 2; -    if ($var_size > 1500) { -	$var = $root+1; -	printf F "mkpart logical ext2 %s %s\n", correct_start_end(\$point, $point+$var_size); -    } -} -if ($hd_size - $point > 100 && $hd !~ /^rd\//) { -    $home = ($var || $root) + 1; -    printf F "mkpart logical ext2 %s %s\n", correct_start_end(\$point, $hd_size); -} -print F "quit\n"; -close F or die "unable to partition the disk $hd"; - -#- we have to build swap and mount it. -print "Setting swap\n"; -system "mkswap", "/dev/$hdp$swap"; -system "swapon", "/dev/$hdp$swap"; - -#- we have  -print "Formatting /dev/$hdp$inst partition\n"; -system "mkfs.ext2", "/dev/$hdp$inst"; -print "Formatting /dev/$hdp$root partition\n"; -system "mkfs.ext2", "/dev/$hdp$root"; -if ($var) { -    print "Formatting /dev/$hdp$var partition\n"; -    system "mkfs.ext2", "/dev/$hdp$var"; -} -if ($home) { -    print "Formatting /dev/$hdp$home partition\n"; -    system "mkfs.ext2", "/dev/$hdp$home"; -} - -print "Mounting partitions\n"; -mkdir "/hd"; -system "mount", "-t", "ext2", "/dev/$hdp$inst", "/hd"; -mkdir "/mnt"; -system "mount", "-t", "ext2", "/dev/$hdp$root", "/mnt"; -if ($var) { -    mkdir "/mnt/var"; -    system "mount", "-t", "ext2", "/dev/$hdp$var", "/mnt/var"; -} -if ($home) { -    mkdir "/mnt/home"; -    system "mount", "-t", "ext2", "/dev/$hdp$home", "/mnt/home"; -} - -print "Copying installation on hard drive\n"; -mkdir "/hd/boot"; -if (-e "/cdrom/oem/vmlinuz" && -e "/cdrom/oem/all.rdz") { -    system "cp", "-a", "/cdrom/oem/vmlinuz", "/hd/boot/vmlinuz"; -    system "cp", "-a", "/cdrom/oem/all.rdz", "/hd/boot/all.rdz"; -} elsif (-e "/cdrom/boot/vmlinuz" && -e "/cdrom/boot/hd.rdz") { -    system "cp", "-a", "/cdrom/boot/vmlinuz", "/hd/boot/vmlinuz"; -    system "cp", "-a", "/cdrom/boot/hd.rdz", "/hd/boot/all.rdz"; -} else { -    die "no installation stage1 found"; -} - -mkdir "/hd/Mandrake"; -mkdir "/hd/Mandrake/RPMS"; -system "cp", "-a", "/cdrom/VERSION", "/hd"; -system "cp", "-a", "/cdrom/Mandrake/base", "/cdrom/Mandrake/mdkinst", "/hd/Mandrake"; - -if (open F, ">/hd/Mandrake/oem_patch.pl") { -    print "Setting OEM specific extension to DrakX\n"; -    if (exists $options{server}) { -	print F q{ -	    use install_any; -	    package install_any; -	    undef *setPackages; -	    *setPackages = sub { -		my ($o) = @_; - -		require pkgs; -		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 (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}}, "kernel-pcmcia-cs" if $o->{pcmcia}; -		    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); - -		    #- must be done after selecting base packages (to save memory) -		  pkgs::getProvides($o->{packages}); - -		    #- must be done after getProvides -		  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; -		} else { -		    #- this has to be done to make sure necessary files for urpmi are -		    #- present. -		  pkgs::psUpdateHdlistsDeps($o->{prefix}, $o->{method}); -		} -	    }; - -	    use install_steps; -	    package install_steps; -	    undef *choosePackages; -	    *choosePackages = sub { -		my ($o, $packages, $compssUsers, $first_time) = @_; - -		#- make sure we kept some space left for available else the system may -		#- not be able to start (xfs at least). -		my $available = install_any::getAvailableSpace($o); -		my $availableCorrected = pkgs::invCorrectSize($available / sqr(1024)) * sqr(1024); - -		#- avoid destroying user selection of packages but only -		#- for expert, as they may have done individual selection before. -	        install_any::unselectMostPackages($o); - -		#- use specific OEM packages selection, go to level 5 -		#- and disable some extension. -		$o->{compssUsersChoice}{$_} = 0 foreach 'GNOME'; -		$o->{compssUsersChoice}{$_} = 0  -		    foreach map { @{$o->{compssUsers}{$_}{flags}} } 'Workstation|Office Workstation', 'Workstation|Internet station'; -		$o->{compssListLevel} = 5; -	        pkgs::setSelectedFromCompssList($packages, $o->{compssUsersChoice}, $o->{compssListLevel}, $availableCorrected); - -		$availableCorrected; -	    }; -	}; -    } else { -	print F q{ -	    use install_steps; -	    package install_steps; -	    undef *choosePackages; -	    *choosePackages = sub { -		my ($o, $packages, $compssUsers, $first_time) = @_; - -		#- make sure we kept some space left for available else the system may -		#- not be able to start (xfs at least). -		my $available = install_any::getAvailableSpace($o); -		my $availableCorrected = pkgs::invCorrectSize($available / sqr(1024)) * sqr(1024); - -		#- avoid destroying user selection of packages but only -		#- for expert, as they may have done individual selection before. -	        install_any::unselectMostPackages($o); - -		#- use specific OEM packages selection, go to level 4. -		#- and select at least GAMES group, everything else has -		#- already be selected during master preparation. -		$o->{compssListLevel} = 4; -		$o->{compssUsersChoice}{GAMES} = 1; -	        pkgs::setSelectedFromCompssList($packages, $o->{compssUsersChoice}, $o->{compssListLevel}, $availableCorrected); - -		$availableCorrected; -	    }; -	}; -    } -    if ($options{boot_entries}) { -	print "Setting OEM specific extension for boot entries\n"; -	print F q{ -	    my $sorted_entries = q(} . $options{boot_entries} . q{); #- insert boot_entries options here as string q(...). -	    my $old_setupBootloaderBefore = \&setupBootloaderBefore; -	    undef *setupBootloaderBefore; -	    *setupBootloaderBefore = sub { -		$old_setupBootloaderBefore->(@_); -		my @entries = split ',', $sorted_entries; -		my @result_entries; -		foreach my $p (@entries) { -		    foreach (@{$_[0]{bootloader}{entries}}) { -			$_->{label} eq $p and push @result_entries, $_; -		    } -		} -		if (@result_entries) { -		    $_[0]{bootloader}{entries} = \@result_entries; -		    $_[0]{bootloader}{default} = $result_entries[0]{label}; #- first image is default. -		} -	    }; -	}; -    } -    close F; -} - -print "Setting bootloader\n"; -mkdir "/hd/boot/grub"; -foreach (1..2) { -    -e "/hd/boot/grub/stage$_" or system "cp", "-a", "/boot/grub/stage$_", "/hd/boot/grub"; -} -open F, ">/hd/boot/grub/menu.lst"; -if (defined $resize_fat_size) { -    print F "timeout 5\n"; -    print F "color black/cyan yellow/cyan\n\n"; -    print F "title linux\n"; -} else { -    print F "timeout 0\n\n"; -    print F "title oem\n"; -} -print F "kernel (hd0,$instz)/boot/vmlinuz ramdisk_size=32000 automatic=method:disk,disk:$hd,partition:$hdp$inst,directory:/ hd vga=788 fbeginner flang=$flang oem defcfg=/tmp/hdimage/Mandrake/oem_patch.pl\n"; -print F "initrd (hd0,$instz)/boot/all.rdz\n"; -#- if a windows partition is available, add an entrie for it. -if (defined $resize_fat_size) { -    print F "\ntitle windows\n"; -    printf F "rootnoverify (hd0,%s)\n", $hd_parts[$fat_pos]{minor}-1; -    print F "makeactive\n"; -    print F "chainloader +1\n"; -} -close F; -open F, ">/hd/boot/grub/device.map"; -print F "(hd0) /dev/$hd\n"; -close F; -open F, "| grub --device-map=/hd/boot/grub/device.map --batch"; -print F "install (hd0,$instz)/boot/grub/stage1 d (hd0) (hd0,$instz)/boot/grub/stage2 p (hd0,$instz)/boot/grub/menu.lst\n"; -print F "quit\n"; -close F or die "error while executing grub"; - -my $packages = select_packages("/cdrom", $lang); - -my @media; -open F, "/cdrom/Mandrake/base/hdlists"; -foreach (<F>) { -    chomp; -    s/\s*#.*$//; -    /^\s*$/ and next; -    m/^\s*(hdlist\S*\.cz2?)\s+(\S+)\s*(.*)$/ or die "invalid hdlist description \"$_\" in hdlists file"; - -    push @media, { rpmsdir => $2, descr => $3 }; -} -close F; - -#- initialize installation. -$ENV{DURING_INSTALL} = 1; -$ENV{RPM_INSTALL_LANG} = "$flang:$lang"; -$ENV{LD_LIBRARY_PATH} = "/usr/X11R6/lib"; -$ENV{SECURE_LEVEL} = 2; -foreach (qw(/etc /etc/sysconfig /etc/rpm /var /var/lib /var/lib/rpm /var/log /proc)) { -    mkdir "/mnt/$_"; -} -system "mount", "-t", "proc", "proc", "/mnt/proc"; -open F, ">/mnt/etc/fstab"; -print F "/dev/$hdp$root / ext2 defaults 1 1\n"; -if ($var) { -    print F "/dev/$hdp$var /var ext2 defaults 1 2\n"; -} -if ($home) { -    print F "/dev/$hdp$home /home ext2 defaults 1 2\n"; -} -close F; -open F, ">/mnt/etc/sysconfig/i18n"; -print F "LANG=$lang\n"; -print F "LANGUAGE=$flang:$lang\n"; -print F "LC_MESSAGES=$flang\n"; -close F; -open F, ">/mnt/etc/rpm/macros"; -print F "%_install_langs $flang:$lang\n"; -close F; - -#- hack for package psacct which has problem with its log file not touched. -if (${pkgs::packageByName($packages, 'psacct') || {}}{selected}) { -    system "touch", "/mnt/var/log/psacct.log"; -    system "touch", "/mnt/var/log/pacct"; -} - -system "rpm", "--root", "/mnt", "--initdb"; - -#- copy and install from each cd image. -foreach my $medium (@media) { -    while ($cd && ! -d "/cdrom/$medium->{rpmsdir}") { -	system "unmount", "/dev/$cd"; -	system "eject", "/dev/$cd"; -	print "Please insert the cdrom labeled \"$medium->{descr}\"\n  and press [enter] when done\n"; -	$yes = <STDIN>; -	system "mount", "-r", "-t", "iso9660", "/dev/$cd", "/cdrom"; -    } - -    print "Copying packages from medium labeled \"$medium->{descr}\" to hard disk\n"; -    system "mkdir", "-p", "/hd/$medium->{rpmsdir}"; -    foreach my $pkg (@{$packages->{depslist}}) { -	$pkg->{closure} && !$pkg->{selected} or next; -	my $file = "/cdrom/$medium->{rpmsdir}/" . rpm_filename($pkg); -	if (-e $file) { -	    print "  copying " . rpm_filename($pkg) . "\n"; -	    system "cp", "-a", $file, "/hd/$medium->{rpmsdir}"; -	    delete $pkg->{closure}; -	} -    } - -    print "Installing packages from medium labeled \"$medium->{descr}\"\n"; -    if (my $pkg = pkgs::packageByName($packages, 'glibc')) { #- HACK FOR GLIBC -	if (delete $pkg->{selected}) { -	    my $file = "/cdrom/$medium->{rpmsdir}/" . rpm_filename($pkg); -	    if (-e $file) { -		system "rpm", "-ivh", "--root", "/mnt", "--nodeps", "--force", "--noscripts", $file; -	    } -	} -    } else { -	die "no glibc package found"; -    } -    my @files; -    foreach my $pkg (@{$packages->{depslist}}) { -	$pkg->{selected} or next; -	my $file = "/cdrom/$medium->{rpmsdir}/" . rpm_filename($pkg); -	if (-e $file) { -	    push @files, $file; -	    delete $pkg->{selected}; -	} -    } -    system "rpm", "-ivh", "--root", "/mnt", "--nodeps", "--force", @files; -    print "Installed " . scalar(@files) . " packages\n"; - -    scalar(grep { $_->{selected} || $_->{closure} } @{$packages->{depslist}}) == 0 and last; -} - -#- try to figure out if a oem-message-graphic already exists. -#- if this is the case, rename it to /mnt/boot/message-graphic -if (-e "/cdrom/Mandrake/base/oem-message-graphic") { -    print "Using specific oem graphic image\n"; -    if (-e "/mnt/boot/message-graphic") { -	rename "/mnt/boot/message-graphic", "/mnt/boot/message-graphic.old"; -	system "cp", "-a", "/cdrom/Mandrake/base/oem-message-graphic", "/mnt/boot/message-graphic"; -    } elsif (-e "/mnt/boot/lilo-graphic/message") { -	rename "/mnt/boot/lilo-graphic/message", "/mnt/boot/lilo-graphic/message.old"; -	system "cp", "-a", "/cdrom/Mandrake/base/oem-message-graphic", "/mnt/boot/lilo-graphic/message"; -    } -} - -system "umount", "/mnt/proc"; -$home and system "umount", "/mnt/home"; -$var and system "umount", "/mnt/var"; -system "umount", "/mnt"; -system "umount", "/hd"; -system "umount", "/cdrom"; - -$cd and system "eject", "/dev/$cd"; - -print " -Done. OEM hard drive ready! -The hard drive is now ready for a customer. -System is now halted.\n\n"; - -system "halt"; - -#- provide package fullname that have to be installed and copied. -sub select_packages { -    my ($dir, $lang) = @_; -    my $o = { packages => read_depslist("$dir/Mandrake/base/depslist.ordered") }; - -    #- DO NOT FORGET TO UPDATE HERE ACCORDING TO gi/perl-install/install_any.pm -    my @pkgs = qw(XFree86 XFree86-server XFree86-glide-module Device3Dfx Glide_V3-DRI Glide_V5 Mesa -		  dhcpcd pump dhcpxd dhcp-client isdn-light isdn4net isdn4k-utils dev pptp-adsl rp-pppoe ppp ypbind -		  autologin -		  foomatic printer-utils printer-testpages gimpprint rlpr samba-client ncpfs nc -		  cups xpp qtcups kups cups-drivers lpr LPRng pdq ImageMagick - -		  apmd cdrecord rio500 grio500 -                 ); -    push @pkgs, "XFree86-$_" foreach qw(3DLabs 3dfx 8514 AGX FBDev I128 Mach8 Mach32 Mach64 Mono P9000 Rage128 S3 S3V SVGA VGA16 W32); -    foreach (@pkgs) { -	my $pkg = pkgs::packageByName($o->{packages}, $_); -	$pkg and pkgs::selectPackage($o->{packages}, $pkg); -    } -    foreach my $pkg (@{$o->{packages}{depslist}}) { -	$pkg->{name} =~ /NVIDIA/ and pkgs::selectPackage($o->{packages}, $pkg); -    } -    foreach my $pkg (@{$o->{packages}{depslist}}) { -	delete $pkg->{selected} and $pkg->{closure} = 1; -    } -    foreach (qw(Mesa-common xpp libqtcups2 qtcups kups)) { -	my $pkg = pkgs::packageByName($o->{packages}, $_); -	$pkg and $pkg->{closure} = 1; -    } - -    #- act as DrakX will do to select packages. -    pkgs::selectPackage($o->{packages}, pkgs::packageByName($o->{packages}, 'basesystem') || die "no basesystem package found"); -    pkgs::read_rpmsrate($o->{packages}, install_any::getFile("Mandrake/base/rpmsrate") || die "unable to read rpmsrate"); -    ($o->{compssUsers}, $o->{compssUsersSorted}, $o->{compssUsersIcons}, $o->{compssUsersDescr}) =  -      pkgs::readCompssUsers($o->{packages}, $o->{meta_class}); -    eval { install_any::getFile("XXX") }; #- close out any still opened filehandle.. - -    if (!$o->{compssUsersChoice}) { -	#- by default, choose: -	$o->{compssUsersChoice}{$_} = 1 foreach 'GNOME', 'KDE', 'CONFIG'; -	$o->{compssUsersChoice}{$_} = 1  -	    foreach map { @{$o->{compssUsers}{$_}{flags}} } 'Workstation|Office Workstation', 'Workstation|Internet station'; -    } -    if (exists $options{server}) { -	foreach (qw(KDE ACCESSIBILITY PUBLISHING CUPS EDITORS TEXT_TOOLS COMMUNICATIONS TERMINALS -		    NETWORKING_FILE_TRANSFER NETWORKING_OTHER -		    NETWORKING_FILE_TRANSFER_SERVER NETWORKING_FIREWALLING_SERVER NETWORKING_LDAP_SERVER -		    NETWORKING_MAIL_SERVER NETWORKING_OTHER_SERVER -		    NETWORKING_REMOTE_ACCESS NETWORKING_REMOTE_ACCESS_SERVER NETWORKING_DNS NETWORKING_DNS_SERVER -		    NETWORKING_FILE NETWORKING_FILE_SERVER NETWORKING_WWW NETWORKING_WWW_SERVER -		    ARCHIVING DEVELOPMENT MONITORING FILE_TOOLS CONFIG BOOKS SYSTEM X)) { -	    $o->{compssUsersChoice}{$_} = 1; -	} -	#- additional packages to be selected for server, databases with MySQL (avoid rpmsrate modifications). -	foreach (qw(MySQL-client MySQL-shared MySQL perl-Mysql)) { -	    my $pkg = pkgs::packageByName($o->{packages}, $_); -	    $pkg and pkgs::selectPackage($o->{packages}, $pkg); -	} -    } else { -	$o->{compssUsersChoice}{$_} = 1 foreach map { @{$o->{compssUsers}{$_}} } @{$o->{compssUsersSorted}}; -	$o->{compssUsersChoice}{$_} = 1 foreach qw(SYSTEM X); -	@{$o->{compssUsersChoice}}{grep { /SERVER|DATABASES/ } keys %{$o->{compssUsersChoice}}} = (); -    } - -    my $lang_pkg = $lang && pkgs::packageByName($o->{packages}, "locales-$lang"); -    if ($lang_pkg) { -	pkgs::selectPackage($o->{packages}, $lang_pkg); -	$o->{compssUsersChoice}{qq(LOCALES"$lang")} = 1; -	$o->{compssUsersChoice}{qq(LOCALES"$flang")} = 1; -	$o->{compssUsersChoice}{qq(CHARSET"$charset")} = 1; -    } - -    pkgs::setSelectedFromCompssList($o->{packages}, $o->{compssUsersChoice}, 4, 0); - -    #- package that have to selected here as a bonus for oem install. -    foreach (qw(cups cups-drivers drakprofile draksync numlock raidtools icewm-light -		Mesa Mesa-demos alsa alsa-utils Mesa-demos -                glibc vim-minimal kernel -	       ), exists $options{server} ? qw(kernel22 openldap-migration openldap-clients pam_ldap) : ()) { -	my $pkg = pkgs::packageByName($o->{packages}, $_); -	$pkg and pkgs::selectPackage($o->{packages}, $pkg); -    } - -    #- special packages that are to be move to closure always ... -    foreach (qw(kernel-smp kernel-linus kernel-secure hackkernel-smp hackkernel-linus hackkernel-secure kernel-pcmcia-cs -		xawtv kwintv xscreensaver-gl xmms-mesa openuniverse -		csmash chromium tuxracer armagetron  -		alsa imwheel nfs-utils-clients lvm usbd hotplug reiserfsprogs xfsprogs jfsprogs  -		sox aumix xmms-arts xawtv gatos kwintv sane-frontends gphoto gnome-toaster gcombust xcdroast apmd cdlabelgen -	       ), exists $options{server} ? qw(Aurora Aurora-Monitor-NewStyle-Categorizing-WsLib -					       kernel-enterprise kernel22-secure) : ()) { -	my $pkg = pkgs::packageByName($o->{packages}, $_); -	if ($pkg) { -	    pkgs::selectPackage($o->{packages}, $pkg); -	    $pkg->{closure} = 1; -	    delete $pkg->{selected}; -	} -    } - -    $o->{packages}; -} - -sub chop_version { -    ($_[0] =~ /^([^:\s]*)-[^:\-\s]+-[^:\-\s]+\.[^:\.\-\s]*(?::\S*)?/)[0] || die "unable to parse $_[0]"; -} -sub rpm_filename { -    (($_[0]{name} =~ /^([^:\s]*-[^:\-\s]+-[^:\-\s]+\.[^:\.\-\s]*)(?::\S*)?/)[0] || die "unable to parse $_[0]") . ".rpm"; -} - -sub read_depslist { -    my ($file) = @_; -    my $packages = { depslist => [], names => {} }; - -    #- read depslist.oredered file. -    my $id = 0; - -    open F, "$file" or die "unable to open ordered dependencies list file"; -    while (<F>) { -	my ($name, $size, @deps) = split; -	push @{$packages->{depslist}}, { id => $id++, name => $name, size => $size, deps => \@deps }; -    } -    close F; - -    foreach (@{$packages->{depslist}}) { -	$packages->{names}{chop_version($_->{name})} = $_; -    } - -    print "read " . scalar(@{$packages->{depslist}}) . " package dependancies\n"; -    $packages; -} - -#- compability method for the below ones, wrap DrakX code extracted. -package log; -sub l {} - -package detect_devices; -sub matching_desc { 0 } - -package install_any; -sub getFile { open FILE, "/cdrom/$_[0]" or return; \*FILE } - -package pkgs; -sub if_ { my $b = shift; $b or return (); wantarray ? @_ : $_[0] } -sub formatXiB { $_[0] } #- NOP -sub packageName { ::chop_version($_[0]{name}) } -sub packageFlagSelected { $_[0]{selected} } -sub packageSize { $_[0]{size} } -sub packageDepsId { @{$_[0]{deps}} } -sub packageRate { $_[0]{values}[0] } -sub packageRateRFlags { @{$_[0]{values}} } -sub packageSetRateRFlags { -    my ($pkg, @rate_rflags) = @_; -    $pkg->{values} = [ @rate_rflags ]; -} -sub packageByName { -    my ($packages, $name) = @_; -    $packages->{names}{$name}; -} -sub packageById { -    my ($packages, $id) = @_; -    $packages->{depslist}[$id]; -} -sub selectedSize { -    my ($packages) = @_; -    my $size = 0; -    foreach (@{$packages->{depslist}}) { -	$_->{selected} and $size += $_->{size}; -    } -    $size; -} -my @preferred = qw(perl-GTK postfix wu-ftpd ghostscript-X vim-minimal kernel ispell-en); -sub selectPackage { -    my ($packages, $pkg, $base, $otherOnly, $check_recursion) = @_; - -    #- avoid infinite recursion (mainly against badly generated depslist.ordered). -    $check_recursion ||= {}; exists $check_recursion->{$pkg->{name}} and return; $check_recursion->{$pkg->{name}} = undef; - -    #- make sure base package are set even if already selected. -    $base and $pkg->{base} = 1; - -    #- select package and dependancies, otherOnly may be a reference -    #- to a hash to indicate package that will strictly be selected -    #- when value is true, may be selected when value is false (this -    #- is only used for unselection, not selection) -    unless ($pkg->{selected}) { -	foreach (@{$pkg->{deps}}) { -	    my $preferred;	     -	    if (/\|/) { -		#- choice deps should be reselected recursively as no -		#- closure on them is computed, this code is exactly the -		#- same as pixel's one. -		my %preferred; @preferred{@preferred} = (); -		foreach (split '\|') { -		    my $dep = $packages->{depslist}[$_] or next; -		    $preferred ||= $dep; -		    $dep->{selected} and $preferred = $dep, last; -		    exists $preferred{::chop_version($dep->{name})} and $preferred = $dep; -		} -		selectPackage($packages, $preferred, $base, $otherOnly, $check_recursion) if $preferred; -	    } else { -		#- deps have been closed except for choices, so no need to -		#- recursively apply selection, expand base on it. -		my $dep = $packages->{depslist}[$_]; -		$base and $dep->{base} = 1; -		$otherOnly and !$dep->{selected} and $otherOnly->{::chop_version($dep->{name})} = 1; -		$otherOnly or $dep->{selected} += 1; -	    } -	} -    } -    $otherOnly and !$pkg->{selected} and $otherOnly->{::chop_version($pkg->{name})} = 1; -    $otherOnly or $pkg->{selected} += 1; -    1; -} - -#- this code is extracted from DrakX and SHOULD NOT BE MODIFIED, wrapper method exists above to provide a good choice. -sub read_rpmsrate { -    my ($packages, $f) = @_; -    my $line_nb = 0; -    my $fatal_error; -    my (@l); -    while (<$f>) { -	$line_nb++; -	/\t/ and die "tabulations not allowed at line $line_nb\n"; -	s/#.*//; # comments - -	my ($indent, $data) = /(\s*)(.*)/; -	next if !$data; # skip empty lines - -	@l = grep { $_->[0] < length $indent } @l; - -	my @m = @l ? @{$l[$#l][1]} : (); -	my ($t, $flag, @l2); -	while ($data =~  -	       /^(( -                   [1-5] -                   | -                   (?:            (?: !\s*)? [0-9A-Z_]+(?:".*?")?) -                   (?: \s*\|\|\s* (?: !\s*)? [0-9A-Z_]+(?:".*?")?)* -                  ) -                  (?:\s+|$) -                 )(.*)/x) { #@")) { -	    ($t, $flag, $data) = ($1,$2,$3); -	    while ($flag =~ s,^\s*(("[^"]*"|[^"\s]*)*)\s+,$1,) {} -	    my $ok = 0; -	    $flag = join('||', grep {  -		if (my ($inv, $p) = /^(!)?HW"(.*)"/) { -		    ($inv xor detect_devices::matching_desc($p)) and $ok = 1; -		    0; -		} else { -		    1; -		} -	    } split '\|\|', $flag); -	    push @m, $ok ? 'TRUE' : $flag || 'FALSE'; -	    push @l2, [ length $indent, [ @m ] ]; -	    $indent .= $t; -	} -	if ($data) { -	    # has packages on same line -	    my ($rate) = grep { /^\d$/ } @m or die sprintf qq(missing rate for "%s" at line %d (flags are %s)\n), $data, $line_nb, join('&&', @m); -	    foreach (split ' ', $data) { -		if ($packages) { -		    my $p = packageByName($packages, $_) or next; -		     -		    my @m2 =  -		      map { if_($_ && packageName($_) =~ /locales-(.*)/, qq(LOCALES"$1")) } -		      map { packageById($packages, $_) } packageDepsId($p); - -		    my @m3 = ((grep { !/^\d$/ } @m), @m2); -		    if (packageRate($p)) { -			next if @m3 == 1 && $m3[0] eq 'INSTALL'; - -			my ($rate2, @m4) = packageRateRFlags($p); -			if (@m3 > 1 || @m4 > 1) { -			    log::l("can't handle complicate flags for packages appearing twice ($_)"); -			    $fatal_error++; -			} -			log::l("package $_ appearing twice with different rates ($rate != $rate2)") if $rate != $rate2; -			packageSetRateRFlags($p, $rate, "$m3[0]||$m4[0]"); -		    } else { -			packageSetRateRFlags($p, $rate, @m3); -		    } -		} else { -		    print "$_ = ", join(" && ", @m), "\n"; -		} -	    } -	    push @l, @l2; -	} else { -	    push @l, [ $l2[0][0], $l2[$#l2][1] ]; -	} -    } -    $fatal_error and die "$fatal_error fatal errors in rpmsrate"; -} - -sub readCompssUsers { -    my ($packages, $meta_class) = @_; -    my (%compssUsers, %compssUsersIcons, , %compssUsersDescr, @sorted, $l); -    my (%compss);  - -    my $file = 'Mandrake/base/compssUsers'; -    my $f = $meta_class && install_any::getFile("$file.$meta_class") || install_any::getFile($file) or die "can't find $file"; -    local $_; -    while (<$f>) { -	/^\s*$/ || /^#/ and next; -	s/#.*//; - -	if (/^(\S.*)/) { -	    my ($icon, $descr); -	    /^(.*?)\s*\[icon=(.*?)\](.*)/  and $_ = "$1$3", $icon  = $2; -	    /^(.*?)\s*\[descr=(.*?)\](.*)/ and $_ = "$1$3", $descr = $2; -	    $compssUsersIcons{$_} = $icon;  -	    $compssUsersDescr{$_} = $descr;  -	    push @sorted, $_; -	    $compssUsers{$_} = $l = []; -	} elsif (/^\s+(.*?)\s*$/) { -	    push @$l, $1; -	} -    } -    \%compssUsers, \@sorted, \%compssUsersIcons, \%compssUsersDescr; -} - -sub setSelectedFromCompssList { -    my ($packages, $compssUsersChoice, $min_level, $max_size) = @_; -    $compssUsersChoice->{TRUE} = 1; #- ensure TRUE is set -    my $nb = selectedSize($packages); -    foreach my $p (sort { packageRate($b) <=> packageRate($a) } values %{$packages->{names}}) { -	my ($rate, @flags) = packageRateRFlags($p); -	next if  -	  !$rate || $rate < $min_level ||  -	  grep { !grep { /^!(.*)/ ? !$compssUsersChoice->{$1} : $compssUsersChoice->{$_} } split('\|\|') } @flags; - -	#- determine the packages that will be selected when -	#- selecting $p. the packages are not selected. -	my %newSelection; -	selectPackage($packages, $p, 0, \%newSelection); - -	#- this enable an incremental total size. -	my $old_nb = $nb; -	foreach (grep { $newSelection{$_} } keys %newSelection) { -	    $nb += packageSize($packages->{names}{$_}); -	} -	if ($max_size && $nb > $max_size) { -	    $nb = $old_nb; -	    $min_level = packageRate($p); -	    last; -	} - -	#- at this point the package can safely be selected. -	selectPackage($packages, $p); -    } -    log::l("setSelectedFromCompssList: reached size ", formatXiB($nb), ", up to indice $min_level (less than ", formatXiB($max_size), ")"); -    log::l("setSelectedFromCompssList: ", join(" ", sort map { packageName($_) } grep { packageFlagSelected($_) } @{$packages->{depslist}})); -    $min_level; -} diff --git a/rescue/tree/etc/passwd b/rescue/tree/etc/passwd deleted file mode 100644 index 568451e4e..000000000 --- a/rescue/tree/etc/passwd +++ /dev/null @@ -1,3 +0,0 @@ -root::0:0::/:/bin/bash -shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown -halt:*:7:0:halt:/sbin:/sbin/halt diff --git a/rescue/tree/etc/profile b/rescue/tree/etc/profile deleted file mode 100644 index b1ba60b13..000000000 --- a/rescue/tree/etc/profile +++ /dev/null @@ -1,24 +0,0 @@ -# /etc/profile -# (c) MandrakeSoft, Chmouel Boudjnah <chmouel@mandrakesoft.com> - -# System wide environment and startup programs -# Functions and aliases go in /etc/bashrc - -PROFILE_LOADED=1 - -export PATH=/usr/bin:/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/mnt/sbin:/mnt/bin:/mnt/usr/sbin:/mnt/usr/bin:/mnt/usr/X11R6/bin - -PS1="[root@rescue \w]\\$ " -ls () { /bin/ls --color=auto -F "$@";} -ll () { /bin/ls --color=auto -Fl "$@";} -d () { /bin/ls --color=auto -F "$@";} -s () { cd .. ;} -which () { type -p "$@" ;} -HOSTNAME=rescue -HISTSIZE=1000 -HISTFILESIZE=1000 - -INPUTRC=/etc/inputrc -export PATH PS1 USER HOSTNAME HISTSIZE HISTFILESIZE INPUTRC - -cat /etc/issue diff --git a/rescue/tree/etc/rc.reboot b/rescue/tree/etc/rc.reboot deleted file mode 100755 index 0b67416f1..000000000 --- a/rescue/tree/etc/rc.reboot +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -sleep 1 -/sbin/killall5 -9 - -umount -a -f -t noproc - -reboot -i -d diff --git a/rescue/tree/etc/rc.sysinit b/rescue/tree/etc/rc.sysinit deleted file mode 100755 index 444e0c064..000000000 --- a/rescue/tree/etc/rc.sysinit +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -action() { echo $1; shift; $*; } - -export PATH=/bin:/sbin:/usr/bin:/usr/sbin - -echo -e "\t\t\tWelcome to \\033[1;36mMandrake\\033[0;39m Linux" - -action "Mounting proc filesystem" mount -n -t proc /proc /proc -action "Remounting root filesystem in read-write mode" mount -n -o remount,rw / - ->/etc/mtab -mount -f / -mount -f /proc - -# Set the hostname. -action "Setting hostname rescue" hostname rescue -echo rescue > /etc/HOSTNAME - -# Loads common modules ( no kerneld :( ) -echo "Loading additional modules..." -load() { modprobe $* 2>/dev/null; } -load ide-mod -load ide-probe -load ide-disk -load ide-cd -load floppy -load af_packet -load isofs -load vfat -load ext3 -load reiserfs -load xfs -load jfs -load loop -load sd_mod -load sr_mod - -grep -q oem /proc/cmdline && exec /etc/oem -f - -/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 -/sbin/route add 127.0.0.1 lo - -if ! grep -q expert /proc/cmdline; then -    rescue-gui -fi diff --git a/rescue/tree/etc/resolv.conf b/rescue/tree/etc/resolv.conf deleted file mode 100644 index 3822939b1..000000000 --- a/rescue/tree/etc/resolv.conf +++ /dev/null @@ -1,2 +0,0 @@ -search foo.com -nameserver 192.168.1.1  | 
