summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.org>2006-02-23 11:15:41 +0000
committerOlivier Blin <oblin@mandriva.org>2006-02-23 11:15:41 +0000
commit75eedf36f7b2685f752ba4908478c4b0f7a872bd (patch)
tree0043bcf6eaa62d33723d33ccda4accf2f57d362c
parent4ce4095ffa480d6b68f38035bce2efa86905d1aa (diff)
downloaddrakx-75eedf36f7b2685f752ba4908478c4b0f7a872bd.tar
drakx-75eedf36f7b2685f752ba4908478c4b0f7a872bd.tar.gz
drakx-75eedf36f7b2685f752ba4908478c4b0f7a872bd.tar.bz2
drakx-75eedf36f7b2685f752ba4908478c4b0f7a872bd.tar.xz
drakx-75eedf36f7b2685f752ba4908478c4b0f7a872bd.zip
initial import of Mandriva One configuration files and draklive-install tool
-rw-r--r--live/One/2006.0/config/auto_inst.cfg.pl138
-rw-r--r--live/One/2006.0/config/live.cfg63
-rw-r--r--live/One/2006.0/config/patch-2006-live.pl172
-rw-r--r--live/One/2006.0/config/rpmsrate784
-rw-r--r--live/One/2006.0/patches/halt.loopfs.patch20
-rw-r--r--live/One/2006.0/patches/netfs.loopfs.patch11
-rw-r--r--live/draklive-install/Makefile21
-rwxr-xr-xlive/draklive-install/draklive-install418
-rw-r--r--live/draklive-install/draklive-install.desktop7
-rw-r--r--live/draklive-install/draklive-install.spec69
-rw-r--r--live/draklive-install/install_interactive.pm299
-rw-r--r--live/draklive-install/theme/IC-installone-128.pngbin0 -> 8949 bytes
-rw-r--r--live/draklive-install/theme/IC-installone-16.pngbin0 -> 857 bytes
-rw-r--r--live/draklive-install/theme/IC-installone-24.pngbin0 -> 1424 bytes
-rw-r--r--live/draklive-install/theme/IC-installone-32.pngbin0 -> 1863 bytes
-rw-r--r--live/draklive-install/theme/IC-installone-48.pngbin0 -> 3019 bytes
-rw-r--r--live/draklive-install/theme/IC-installone-64.pngbin0 -> 4305 bytes
-rw-r--r--live/draklive-install/theme/IM-INSTALLCDONE.pngbin0 -> 68499 bytes
-rw-r--r--live/draklive-install/theme/IM-INSTALLCDONE2.pngbin0 -> 55654 bytes
19 files changed, 2002 insertions, 0 deletions
diff --git a/live/One/2006.0/config/auto_inst.cfg.pl b/live/One/2006.0/config/auto_inst.cfg.pl
new file mode 100644
index 000000000..30a889d04
--- /dev/null
+++ b/live/One/2006.0/config/auto_inst.cfg.pl
@@ -0,0 +1,138 @@
+#!/usr/bin/perl -cw
+#
+# You should check the syntax of this file before using it in an auto-install.
+# You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file
+# (note the '#!/usr/bin/perl -cw' on the first line).
+$o = {
+ 'rpmsrate_flags_chosen' => {
+ # office
+ CAT_OFFICE => 1,
+ CAT_SPELLCHECK => 1,
+ CAT_PUBLISHING => 1,
+ CAT_PIM => 1,
+ CAT_ARCHIVING => 1,
+ CAT_PRINTER => 1,
+ # multimedia
+ CAT_AUDIO => 1,
+ CAT_GRAPHICS => 1,
+ CAT_VIDEO => 1,
+ # internet
+ CAT_NETWORKING_WWW => 1,
+ CAT_NETWORKING_MAIL => 1,
+ CAT_NETWORKING_NEWS => 1,
+ CAT_COMMUNICATIONS => 1,
+ CAT_NETWORKING_CHAT => 1,
+ CAT_NETWORKING_FILE_TRANSFER => 1,
+ CAT_NETWORKING_IRC => 1,
+ CAT_NETWORKING_INSTANT_MESSAGING => 1,
+ CAT_NETWORKING_DNS => 1,
+ # network
+ CAT_NETWORKING_REMOTE_ACCESS => 1,
+ CAT_NETWORKING_FILE => 1,
+ # config
+ CAT_CONFIG => 1,
+ # console
+ CAT_TERMINALS => 1,
+ CAT_TEXT_TOOLS => 1,
+ CAT_SHELLS => 1,
+ CAT_FILE_TOOLS => 1,
+ # kde
+ CAT_KDE => 1,
+ CAT_X => 1,
+ CAT_ACCESSIBILITY => 1,
+ CAT_THEMES => 1,
+ # system
+ CAT_SYSTEM => 1,
+
+ # FIXME, use $::o->{build_live_system} for that
+ '3D' => 1,
+ BURNER => 1,
+ DVD => 1,
+ PCMCIA => 1,
+ TV => 1,
+ USB => 1,
+ SCANNER => 1,
+ # installs Gnome packages only, not suitable for One
+ # PHOTO => 1,
+ },
+ # so that rpmsrate flags are really used
+ 'compssListLevel' => 4, # default from install_steps_interactive
+ 'default_packages' => [
+ #- live requirements
+ 'drakx-finish-install',
+ 'squashfs-tools',
+ 'dkms-minimal',
+
+ #- should be required by live-install
+ 'lilo',
+ 'grub',
+ # perl -MMDK::Common -e 'my $cmds = eval (`cat /usr/lib/libDrakX/fs/format.pm` . "\\%cmds"); print join(", ", uniq(map { "\"$_->[0]\"" } values %$cmds)) . "\n";' 2>/dev/null
+ "reiserfsprogs", "jfsprogs", "reiser4progs", "hfsutils", "dosfstools", "e2fsprogs", "xfsprogs", "util-linux",
+ # from diskdrake/*.pm
+ 'ntfsprogs',
+ 'davfs',
+
+ #- should be required by draklive copy wizard
+ 'syslinux',
+ 'cdrecord',
+ 'rsync',
+ 'mtools',
+
+ #- useful packages
+ 'cups', 'libsane-hpaio1', 'hplip-hpijs', 'libhpip0',
+ 'ndiswrapper',
+ 'xmoto',
+ ],
+ # explicitely specify the security level, so that environment of the build machine doesn't take precedence
+ 'security' => 3,
+ 'useSupermount' => 'magicdev',
+ 'users' => [
+ {
+ 'icon' => 'default',
+ 'realname' => '',
+ 'uid' => '',
+ 'groups' => [],
+ 'name' => 'guest',
+ 'shell' => '/bin/bash',
+ 'gid' => ''
+ }
+ ],
+ 'locale' => {
+ 'country' => 'US',
+ 'IM' => undef,
+ 'lang' => 'en_US',
+ 'utf8' => 1
+ },
+ 'authentication' => {
+ 'shadow' => 1,
+ 'local' => 1,
+ 'md5' => 1
+ },
+ 'superuser' => {
+ 'pw' => '',
+ 'realname' => 'root',
+ 'uid' => '0',
+ 'shell' => '/bin/bash',
+ 'home' => '/root',
+ 'gid' => '0'
+ },
+ 'keyboard' => {
+ 'GRP_TOGGLE' => '',
+ 'KBCHARSET' => 'C',
+ 'KEYBOARD' => 'us',
+ 'KEYTABLE' => 'us'
+ },
+ 'timezone' => {
+ 'ntp' => undef,
+ 'timezone' => 'America/New_York',
+ 'UTC' => 1
+ },
+ 'X' => {},
+ 'partitioning' => {
+ 'auto_allocate' => '',
+ 'clearall' => 0,
+ 'eraseBadPartitions' => 0
+ },
+ #- doc takes too much place
+ 'excludedocs' => 1,
+ };
diff --git a/live/One/2006.0/config/live.cfg b/live/One/2006.0/config/live.cfg
new file mode 100644
index 000000000..4e759095a
--- /dev/null
+++ b/live/One/2006.0/config/live.cfg
@@ -0,0 +1,63 @@
+my $l = {
+ system => {
+ root => '/chroot/live/2006.0',
+ repository => '/mnt/ken/community/2006.0/i586',
+ kernel => '2.6.12-17mdk-i586-up-1GB',
+ auto_install => 'config/auto_inst.cfg.pl',
+ patch_install => 'config/patch-2006-live.pl',
+ # rpmsrate: removed OpenOffice.org-help-*, gimp-help-2
+ # and dkms-zaptel/zaptel-tools (they pulled kernel-source)
+ # clean-rpmsrate -o /home/blino/live/2006.0/config/rpmsrate /home/blino/cvs/mandriva/BRANCHES/2006/gi/perl-install/share/rpmsrate /mnt/ken/community/2006.0/i586/media/main/
+ rpmsrate => 'config/rpmsrate',
+ patches => [
+ 'patches/halt.loopfs.patch',
+ 'patches/netfs.loopfs.patch',
+ ],
+ rpms => [
+ 'rpms/unionfs-kernel-2.6.12-17mdk-i586-up-1GB-1.1.1.1.20060117.1mdk-1mdk.i586.rpm',
+ 'rpms/unionfs-tools-1.1.1-1.20060117.1mdk.i586.rpm',
+ 'rpms/live-install-0.1-1mdk.noarch.rpm',
+# 'rpms/xmoto-0.1.9-0.1.20060mdk.i586.rpm',
+ 'rpms/drakx-finish-install-10.3-0.64.4.20060mdk.i586.rpm',
+ 'rpms/drakxtools-10.3-0.64.4.20060mdk.i586.rpm',
+ 'rpms/drakxtools-backend-10.3-0.64.4.20060mdk.i586.rpm',
+ 'rpms/drakxtools-newt-10.3-0.64.4.20060mdk.i586.rpm',
+ 'rpms/harddrake-10.3-0.64.4.20060mdk.i586.rpm',
+ 'rpms/harddrake-ui-10.3-0.64.4.20060mdk.i586.rpm',
+ # ken:/mnt/BIG/dis/2006.0/one/
+ 'rpms/mandriva-theme-One-1.0.12-3mdk.noarch.rpm',
+ 'rpms/mandriva-theme-One-screensaver-1.0.12-3mdk.noarch.rpm',
+ ],
+ erase_rpms => [
+ 'mandriva-theme',
+ 'mandriva-theme-screensaver',
+ ],
+# better patch rpmsrate instead of doing this
+# erase_rpms => [
+# 'OpenOffice.org-help-*',
+# 'gimp-help-2',
+# 'kernel-source-2.6',
+# 'dkms-zaptel',
+# 'dkms',
+# ],
+ vga_mode => 788,
+ },
+ regions => {'occident' => ['br','ca','cy','de','en_GB','en_IE','en_US','es','eu','fr','ga','gl','gn','it','iu','kl','lb','mt','nds','oc','pt','pt_BR','qu','sc','wa'],'asiafrica' => ['af','am','ar','as','az','ber','bn','fa','gu','he','hi','hy','id','ja','ka','km','kn','ko','ku','ky','lo','mi','ml','mn','mr','ms','ne','pa_IN','ph','ss','st','ta','te','tg','th','tk','tt','ug','ur','uz','uz@Latn','ve','vi','xh','zh_CN','zh_TW','zu'],'central_europe' => ['da','el','eo','fi','fo','fur','fy','is','li','nb','nl','nn','se','sv','tr'],'eastern_europe' => ['be','bg','bs','cs','et','hr','hu','lt','ltg','lv','mk','pl','ro','ru','sk','sl','sq','sr','sr@Latn','uk','yi']},
+# media => $custom{media}{nfs}->('8139too', '192.168.100.121', '192.168.100.78:/tmp/draklive/images'),
+ media => {
+ storage => 'cdrom',
+# storage => 'usb',
+# boot => 'cdrom',
+ },
+ extra_media => [
+# { storage => 'usb' },
+ ],
+ mount => $predefined{mounts}{volatile_squash_union},
+# debug => 1,
+ post => [
+ # "sh -c 'touch /var/log/* /var/log/*/*'",
+ # map { "chkconfig --del $_" } qw(kheader shorewall haldaemon),
+ ],
+ copy_initrd => "/var/lib/tftpboot/live.rdz",
+ workdir => '/home/public/live/2006.0',
+};
diff --git a/live/One/2006.0/config/patch-2006-live.pl b/live/One/2006.0/config/patch-2006-live.pl
new file mode 100644
index 000000000..c0da6280b
--- /dev/null
+++ b/live/One/2006.0/config/patch-2006-live.pl
@@ -0,0 +1,172 @@
+$o->{autoExitInstall} = 1;
+$o->{build_live_system} = 1;
+$o->{desktop} = 'KDE';
+$o->{autologin} = ${$o->{users}}[0]->{name};
+
+
+my %cmdline;
+my $opt; foreach (@ARGV) {
+ if (/^--?(.*)/) {
+ $cmdline{$opt} = 1 if $opt;
+ $opt = $1;
+ } else {
+ $cmdline{$opt} = $_ if $opt;
+ $opt = '';
+ }
+} $cmdline{$opt} = 1 if $opt;
+exists $cmdline{langs} and $o->{locale}{langs} = +{ map { $_ => 1 } split(':', $cmdline{langs}) };
+
+use install_any;
+package install_any;
+
+undef *ejectCdrom;
+*ejectCdrom = sub {};
+
+use pkgs;
+package pkgs;
+
+undef *read_rpmsrate;
+*read_rpmsrate = sub {
+ my ($packages, $rpmsrate_flags_chosen, $f) = @_;
+
+ my ($rates, $flags, $need_to_copy) = read_rpmsrate_raw($f);
+
+ foreach (keys %$flags) {
+ my $p = packageByName($packages, $_) or next;
+ my @flags = (@{$flags->{$_}}, map { if_(/locales-(.*)/, qq(LOCALES"$1")) } $p->requires_nosense);
+
+ @flags = map {
+ my ($user_flags, $known_flags) = partition { /^!?CAT_/ } split('\|\|', $_);
+ my $ok = find {
+ my $inv = s/^!//;
+ $inv xor do {
+ if (my ($p) = /^HW"(.*)"/) {
+ return $::o->{build_live_system} ? !$inv : detect_devices::matching_desc__regexp($p);
+ } elsif (($p) = /^HW_CAT"(.*)"/) {
+ return $::o->{build_live_system} ? !$inv : modules::probe_category($p);
+ } elsif (($p) = /^DRIVER"(.*)"/) {
+ return $::o->{build_live_system} ? !$inv : detect_devices::matching_driver__regexp($p);
+ } elsif (($p) = /^TYPE"(.*)"/) {
+ return $::o->{build_live_system} ? !$inv : detect_devices::matching_type($p);
+ } else {
+ $rpmsrate_flags_chosen->{$_};
+ }
+ };
+ } @$known_flags;
+ $ok ? 'TRUE' : @$user_flags ? join('||', @$user_flags) : 'FALSE';
+ } @flags;
+
+ $p->set_rate($rates->{$_});
+ $p->set_rflags(member('FALSE', @flags) ? 'FALSE' : @flags);
+ }
+ push @{$packages->{needToCopy} ||= []}, @$need_to_copy;
+};
+
+undef *bestKernelPackage;
+*bestKernelPackage = sub {
+ my ($packages) = @_;
+
+ my @kernels = packages2kernels($packages) or internal_error('no kernel available');
+ my ($version_BOOT) = c::kernel_version() =~ /^(\d+\.\d+)/;
+ if (my @l = grep { $_->{version} =~ /\Q$version_BOOT/ } @kernels) {
+ #- favour versions corresponding to current BOOT version
+ @kernels = @l;
+ }
+ my @preferred_exts =
+ $::o->{build_live_system} ? '-i586-up-1GB' :
+ detect_devices::is_xbox() ? '-xbox' :
+ detect_devices::is_i586() ? '-i586-up-1GB' :
+ !detect_devices::has_cpu_flag('pae') ? ('-i686-up-4GB', '-i586-up-1GB') :
+ detect_devices::hasSMP() ? '-smp' :
+ '';
+ foreach my $prefered_ext (@preferred_exts, '') {
+ if (my @l = grep { $_->{ext} eq $prefered_ext } @kernels) {
+ @kernels = @l;
+ }
+ }
+
+ log::l("bestKernelPackage (" . join(':', @preferred_exts) . "): " . join(' ', map { $_->{pkg}->name } @kernels) . (@kernels > 1 ? ' (choosing the first)' : ''));
+ $preferred{'kernel-source-' . $kernels[0]{version}} = undef;
+ $kernels[0]{pkg};
+};
+
+undef *selected_leaves;
+*selected_leaves = sub {
+ my ($packages) = @_;
+ my $provides = $packages->{provides};
+
+ my @l = grep { $_->flag_requested || $_->flag_installed } @{$packages->{depslist}};
+
+ my %required_ids;
+ foreach my $pkg (@l) {
+ foreach my $req ($pkg->requires_nosense) {
+ my $h = $provides->{$req} or next;
+ my @provides = my ($provide) = keys %$h;
+ @provides == 1 or next;
+ if ($provide != (exists $required_ids{$pkg->id} ? $required_ids{$pkg->id} : $pkg->id)) {
+# log::l($packages->{depslist}[$provide]->name . " is not a leaf because required by " . $pkg->name . " (through require $req)");
+ #- $pkg requires $req, provided by $provide, so we can skip $provide
+ $required_ids{$provide} = $pkg->id;
+ }
+ }
+ }
+ [ map { $_->name } grep { ! exists $required_ids{$_->id} } @l ];
+};
+
+use install_steps;
+package install_steps;
+
+my $old = \&configureNetwork;
+undef *configureNetwork;
+*configureNetwork = sub {
+ my ($o) = @_;
+ if ($o->{build_live_system}) {
+ require network::ethernet;
+ network::ethernet::install_dhcp_client($o, undef);
+ }
+ &$old;
+};
+
+undef *doPartitionDisksAfter;
+*doPartitionDisksAfter = sub {
+ my ($o) = @_;
+
+ if (!$::testing) {
+ my $hds = $o->{all_hds}{hds};
+ partition_table::write($_) foreach @$hds;
+ $_->{rebootNeeded} and $o->rebootNeeded foreach @$hds;
+ }
+
+ fs::set_removable_mntpoints($o->{all_hds});
+ fs::mount_options::set_all_default($o->{all_hds}, %$o, lang::fs_options($o->{locale}))
+ if !$o->{isUpgrade};
+
+ $o->{fstab} = [ fs::get::fstab($o->{all_hds}) ];
+
+ if ($::local_install) {
+ my $p = fs::get::mntpoint2part($::prefix, [ fs::read_fstab('', '/proc/mounts') ]);
+ my $part = fs::get::device2part($p->{device}, $o->{fstab}) || $o->{fstab}[0];
+ $part->{mntpoint} = '/';
+ $part->{isMounted} = 1;
+ }
+
+ fs::get::root_($o->{fstab}) or die "Oops, no root partition";
+
+ if (arch() =~ /ppc/ && detect_devices::get_mac_generation() =~ /NewWorld/) {
+ die "Need bootstrap partition to boot system!" if !(defined $partition_table::mac::bootstrap_part);
+ }
+
+ if (arch() =~ /ia64/ && !fs::get::has_mntpoint("/boot/efi", $o->{all_hds})) {
+ die N("You must have a FAT partition mounted in /boot/efi");
+ }
+
+ if ($o->{partitioning}{use_existing_root}) {
+ #- ensure those partitions are mounted so that they are not proposed in choosePartitionsToFormat
+ fs::mount::part($_) foreach sort { $a->{mntpoint} cmp $b->{mntpoint} }
+ grep { $_->{mntpoint} && maybeFormatted($_) } @{$o->{fstab}};
+ }
+
+ cat_("/proc/mounts") =~ m|(\S+)\s+/tmp/nfsimage| &&
+ !any { $_->{mntpoint} eq "/mnt/nfs" } @{$o->{all_hds}{nfss}} and
+ push @{$o->{all_hds}{nfss}}, { fs_type => 'nfs', mntpoint => "/mnt/nfs", device => $1, options => "noauto,ro,nosuid,soft,rsize=8192,wsize=8192" };
+};
diff --git a/live/One/2006.0/config/rpmsrate b/live/One/2006.0/config/rpmsrate
new file mode 100644
index 000000000..def220ef2
--- /dev/null
+++ b/live/One/2006.0/config/rpmsrate
@@ -0,0 +1,784 @@
+
+
+CAT_LSB
+ 5 lsb
+
+CAT_ICEWM
+ 5 icewm
+ 5 rox
+ 3 icepref
+
+CAT_GRAPHICAL_DESKTOP
+ 4 WindowMaker
+ 3 epplets blackbox fluxbox enlightenment ethemes xfce
+ 2 wmnet
+ 1 lesstif-mwm
+
+CAT_GNOME
+ 5 gnome-panel nautilus nautilus-filesharing gnome-control-center metacity
+ 5 yelp gnome2 gdm
+ 4 gnome-applets gtk-themes file-roller
+ gnome-utils gucharmap xlockmore
+ gconf-editor desktop-printing eog evince
+ 4 CAT_THEMES gnome-icon-theme gnome-themes-extras gnome-themes hicolor-icon-theme gdm-themes
+ 3 gnome-pilot
+ 2 bug-buddy
+
+CAT_KDE
+ 5 galaxy-kde x86-compat-galaxy-kde galaxy-kde-kwin kdebase-nsplugins kdebase-progs krozat mandriva-galaxy xsettings-kde
+ 5 kdebase-kdm kat
+ 5 kde-i18n-af kde-i18n-ar kde-i18n-az kde-i18n-be kde-i18n-bg kde-i18n-bn kde-i18n-br kde-i18n-bs kde-i18n-ca kde-i18n-cs kde-i18n-cy kde-i18n-da kde-i18n-de kde-i18n-el kde-i18n-en_GB kde-i18n-eo kde-i18n-es kde-i18n-et kde-i18n-eu kde-i18n-fa kde-i18n-fi kde-i18n-fo kde-i18n-fr kde-i18n-ga kde-i18n-gl kde-i18n-he kde-i18n-hi kde-i18n-hr kde-i18n-hu kde-i18n-id kde-i18n-is kde-i18n-it kde-i18n-ja kde-i18n-ko kde-i18n-lo kde-i18n-lt kde-i18n-lv kde-i18n-mi kde-i18n-mk kde-i18n-mn kde-i18n-ms kde-i18n-mt kde-i18n-nb kde-i18n-nds kde-i18n-nl kde-i18n-nn kde-i18n-oc kde-i18n-pa kde-i18n-pl kde-i18n-pt kde-i18n-pt_BR kde-i18n-ro kde-i18n-ru kde-i18n-se kde-i18n-sk kde-i18n-sl kde-i18n-sr kde-i18n-sv kde-i18n-ta kde-i18n-tg kde-i18n-th kde-i18n-tr kde-i18n-uk kde-i18n-uz kde-i18n-vi kde-i18n-wa kde-i18n-xh kde-i18n-zh_CN.GB2312 kde-i18n-zh_TW.Big5 kde-i18n-zu
+ 5 kdebase-servicemenu zip
+ 5 kdeutils-ark kdeutils-kcalc kdeutils-kcharselect kdeutils-kdf kdeutils-kfloppy kdeutils-kdepasswd
+ 5 kdepim-kontact
+ 5 kdeaddons-searchbar
+ 5 kdeutils-kwalletmanager
+ 5 kdegraphics-kuickshow
+ 3 kdeutils-kedit kdeutils-khexedit kdeutils-kjots kdeutils-ktimer
+ 4 CAT_GRAPHICS || PHOTO kdegraphics-common
+ 4 CAT_THEMES kdeartwork kdeartwork-kde-classic
+ 4 digikam digikamimageplugins kipi-plugins dcraw
+ 4 klamav
+
+CAT_VIDEO
+ 5 CAT_GNOME totem xine-esd
+ 5 CAT_KDE kaffeine
+ 5 CAT_KDE kdenlive
+ 5 CAT_ICEWM xine-ui
+ 4 RealPlayer
+ 3 powerdvd
+ 3 xmms-smpeg mplayer-gui
+ 2 xmovie
+TV
+ 5 CAT_KDE kdetv
+ 5 !CAT_KDE || CAT_GNOME || CAT_ICEWM tvtime
+ 3 xawtv
+ 3 zapping
+ 3 HW"ATI" ati.2
+
+CAT_OFFICE
+ 5 CAT_KDE || CAT_GNOME OpenOffice.org
+ 5 CAT_KDE || CAT_GNOME OpenOffice.org-l10n-af OpenOffice.org-l10n-ar OpenOffice.org-l10n-ca OpenOffice.org-l10n-cs OpenOffice.org-l10n-cy OpenOffice.org-l10n-da OpenOffice.org-l10n-de OpenOffice.org-l10n-el OpenOffice.org-l10n-en OpenOffice.org-l10n-es OpenOffice.org-l10n-et OpenOffice.org-l10n-eu OpenOffice.org-l10n-fi OpenOffice.org-l10n-fr OpenOffice.org-l10n-he OpenOffice.org-l10n-hu OpenOffice.org-l10n-it OpenOffice.org-l10n-ja OpenOffice.org-l10n-ko OpenOffice.org-l10n-nb OpenOffice.org-l10n-nl OpenOffice.org-l10n-nn OpenOffice.org-l10n-ns OpenOffice.org-l10n-pl OpenOffice.org-l10n-pt OpenOffice.org-l10n-pt_BR OpenOffice.org-l10n-ru OpenOffice.org-l10n-sk OpenOffice.org-l10n-sl OpenOffice.org-l10n-sv OpenOffice.org-l10n-tr OpenOffice.org-l10n-zh_CN OpenOffice.org-l10n-zh_TW OpenOffice.org-l10n-zu
+ 5 CAT_KDE koffice-kivio
+ 5 !CAT_KDE || CAT_GNOME || CAT_ICEWM dia
+ 5 gnucash gnucash-hbci gnucash-ofx
+ 5 planner
+ 5 CAT_KDE kdenetwork-kdict
+ 5 CAT_KDE kdepim-karm
+ 5 CAT_ICEWM abiword gnumeric
+ 4 acroread acroread-nppdf
+ 4 acroread-l10n-da acroread-l10n-de
+ 3 gaddr xpdf gv
+ 3 wv ical
+ 2 units lyx
+ CAT_KDE
+ 5 kdepim-korganizer
+ 5 kdepim-kaddressbook
+ 5 kdepim-knotes
+ 5 kdegraphics-kghostview
+ 5 kdepim-kpilot
+ 3 koffice koffice-i18n-af koffice-i18n-az koffice-i18n-br koffice-i18n-eo koffice-i18n-fa koffice-i18n-he koffice-i18n-ja koffice-i18n-lo koffice-i18n-lt koffice-i18n-mt koffice-i18n-ro koffice-i18n-se koffice-i18n-sk koffice-i18n-ta koffice-i18n-th koffice-i18n-tr koffice-i18n-uk koffice-i18n-zh_TW koffice-i18n-zu koffice-i18n-bg
+ 3 kdegraphics-kdvi
+ CAT_GNOME
+ 4 gnome-pim
+ 3 gnome-pilot-conduits
+
+CAT_SPELLCHECK
+ 5 aspell-af aspell-am aspell-az aspell-be aspell-bg aspell-bn aspell-br aspell-ca aspell-cs aspell-cy aspell-da aspell-de aspell-el aspell-en aspell-eo aspell-es aspell-et aspell-fa aspell-fi aspell-fo aspell-fr aspell-ga aspell-gd aspell-gl aspell-gv aspell-he aspell-hi aspell-hr aspell-hu aspell-id aspell-is aspell-it aspell-ku aspell-lt aspell-lv aspell-mi aspell-mk aspell-mn aspell-mr aspell-ms aspell-mt aspell-nds aspell-nl aspell-nn aspell-no aspell-pa aspell-pl aspell-pt aspell-ro aspell-ru aspell-sc aspell-sk aspell-sl aspell-sv aspell-sw aspell-ta aspell-tl aspell-tr aspell-uk aspell-uz aspell-vi aspell-wa aspell-yi aspell-zu
+ 5 myspell-af_ZA myspell-bg_BG myspell-ca_ES myspell-cs_CZ myspell-cy_GB myspell-da_DK myspell-de_AT myspell-de_CH myspell-de_DE myspell-el_GR myspell-en_AU myspell-en_CA myspell-en_GB myspell-en_NZ myspell-en_US myspell-es_ES myspell-es_MX myspell-et_EE myspell-fo_FO myspell-fr_BE myspell-fr_FR myspell-ga_IE myspell-gl_ES myspell-hr_HR myspell-hu_HU myspell-id_ID myspell-it_IT myspell-lt_LT myspell-mi_NZ myspell-ms_MY myspell-nb_NO myspell-nl_NL myspell-nn_NO myspell-pl_PL myspell-pt_BR myspell-pt_PT myspell-ro_RO myspell-ru_RU myspell-sk_SK myspell-sl_SI myspell-sv_SE myspell-sw_KE myspell-uk_UA myspell-zu_ZA
+ 5 myspell-hyph-bg myspell-hyph-cs myspell-hyph-da myspell-hyph-de myspell-hyph-el myspell-hyph-en myspell-hyph-es myspell-hyph-et myspell-hyph-fi myspell-hyph-fr myspell-hyph-ga myspell-hyph-hu myspell-hyph-id myspell-hyph-is myspell-hyph-it myspell-hyph-lt myspell-hyph-nl myspell-hyph-pl myspell-hyph-pt myspell-hyph-ru myspell-hyph-sk myspell-hyph-sl myspell-hyph-sv myspell-hyph-uk
+
+SOUND
+ 5 CAT_KDE kdemultimedia-kmix
+ 5 CAT_ICEWM aumix
+ 3 CAT_KDE xmms-arts
+ 3 sox
+
+CAT_AUDIO
+ 5 CAT_KDE kdemultimedia-kscd
+ 5 CAT_KDE xine-arts amarok-engine-arts
+ 5 CAT_KDE || CAT GNOME audacity
+ 5 CAT_KDE kdemultimedia-kaudiocreator kdemultimedia-common
+ 5 CAT_KDE || CAT_GNOME gnome-media
+ 4 CAT_GNOME rhythmbox sound-juicer
+ 5 CAT_ICEWM grip
+ 4 CAT_GNOME gnome-audio
+ 4 CAT_KDE rosegarden4
+ 3 cdp
+ 3 cdparanoia
+ 3 cdrecord-cdda2wav
+ 3 CAT_GNOME gnome-audio-extra
+ 3 CAT_KDE kdeaddons-noatun
+ 3 CAT_KDE kdemultimedia-kmid
+ 3 CAT_KDE kdemultimedia-kmidi
+ 3 CAT_KDE kdemultimedia-noatun
+ 3 timidity-instruments
+ 3 beep-media-player
+ 5 DRIVER"^snd-" alsa-utils
+ 4 DRIVER"^snd-" gstreamer-alsa
+
+ 5 DRIVER"^snd-sb" cspctl
+ 5 DRIVER"^snd-sb|^sbawe" sb16_csp
+ 5 DRIVER"^sbawe" awesfx
+ 5 DRIVER"snd-darla20|snd-darla24|snd-gina20|snd-gina24|snd-gina3g|snd-indi|snd-indigodj|snd-indigoio|snd-layla20|snd-layla24|snd-layla3g|snd-mia|snd-mona" echomixer
+ 5 DRIVER"snd-emu10k1|snd-emu10k1x" as10k1 ld10k1
+ 5 DRIVER"snd-hdsp" hdspconf hdsploader hdspmixer rmedigicontrol
+ 5 DRIVER"snd-ice1712|snd-ice1724" envy24control
+
+ 5 DRIVER"snd-pcxhr" pcxhrloader
+ 5 DRIVER"snd-sscape" sscape_ctl
+ 5 DRIVER"snd-mixart" mixartloader
+ 5 DRIVER"snd-usb-usx2y" us428control usx2yloader
+ 5 DRIVER"^snd-vx" vxloader
+ 3 xmms-esd
+ 3 xmms-kjofol-skins
+ 3 xmms-more-vis-plugins
+ 3 xmms-skins
+ 3 3D xmms-mesa
+ 3 HW"Rio 500" rio500
+ 2 mp3info mpg123 playmidi playmidi-X11 xmms-mikmod
+
+
+CAT_ACCESSIBILITY
+ 5 dasher
+ 5 gnopernicus
+ 5 gok
+ 5 CAT_KDE kdeaccessibility
+ 2 gtkeyboard
+
+CAT_PUBLISHING
+ 5 scribus
+ 5 enscript ghostscript-module-X
+ 4 psutils texinfo
+ 2 docbook-dtd31-sgml latex2html jadetex tetex-afm tetex-dvips tetex-latex tetex-xdvi tetex-latex-arab tetex-latex-heb
+ 2 CAT_BOOKS tetex-doc
+ 1 cttex docbook-style-dsssl openjade
+ 1 CAT_BOOKS docbook-style-dsssl-doc
+
+CAT_SHELLS
+ 3 zsh
+ 3 CAT_BOOKS bash-doc zsh-doc
+ 2 pdksh tcsh
+ 1 bash1
+
+CAT_SCIENCES
+ 4 gnuplot
+ 3 HDF
+ 2 mathplot octave
+
+CAT_EDUCATION
+ 4 CAT_KDE kdeedu
+
+CAT_EDITORS
+ 4 emacs-X11
+ 3 GXedit
+ 3 CAT_KDE kdebase-kate
+ 3 vim-X11
+ 3 yudit
+ 2 cooledit emacs-tramp emacs-leim jed-xjed joe nedit xemacs xemacs-extras xemacs-info
+ 1 emacs-el xemacs-el emacs-nox jed
+ CAT_GNOME
+ 4 gedit
+
+CAT_TEXT_TOOLS
+ 5 words
+ 4 groff patch recode rgrep
+ 3 ed
+ 2 groff-gxditview lout
+ CAT_BOOKS
+ 3 gawk-doc
+ 1 lout-doc
+
+CAT_COMMUNICATIONS
+ 5 efax
+ 5 gnomemeeting
+ 5 CAT_KDE kphone
+ 4 CAT_KDE kdebase-kdeprintfax kdegraphics-kfax
+ 4 CAT_ICEWM drakfax
+ 4 CAT_ICEWM jpilot pilot-link
+ 4 hylafax-client
+ 2 hylafax-server dip
+ 2 lrzsz mgetty mgetty-contrib mgetty-sendfax mgetty-viewfax mgetty-voice minicom
+ 1 jpilot-Mail jpilot-syncmal statserial
+
+CAT_TERMINALS
+ 5 open
+ 5 !CAT_KDE !CAT_GNOME xterm
+ 5 CAT_KDE kdebase-konsole
+ 5 CAT_GNOME gnome-terminal
+ 4 screen kon2
+ 3 bash-completion
+ 3 Eterm vlock
+ 3 aterm x3270
+
+ 3 CAT_GNOME gnome-telnet
+ 4 LOCALES"ja" kterm
+
+CAT_NETWORKING_CHAT
+ 3 CAT_KDE kdenetwork-ktalk
+ 3 talk ytalk
+
+CAT_NETWORKING_CHAT_SERVER
+ 4 jabber
+ 3 talk-server
+
+CAT_NETWORKING_FILE_TRANSFER
+ 5 CAT_KDE kbear
+ 5 CAT_GNOME gftp
+ 5 lftp mirrordir rsync
+ 4 CAT_KDE lisa
+ 4 rdist
+ 3 fmirror ncftp tftp
+ 2 uucp
+
+CAT_NETWORKING_FILE_TRANSFER_SERVER
+ 4 proftpd
+ 3 proftpd-anonymous
+ 2 wu-ftpd anonftp
+
+CAT_NETWORKING_LDAP_SERVER
+ 4 openldap-servers directory_administrator
+
+CAT_NETWORKING_INSTANT_MESSAGING
+ 5 CAT_KDE kdenetwork-kopete
+ 5 LOCALES"zh" CAT_KDE eva
+ 5 !CAT_KDE || CAT_GNOME gaim
+ 3 licq
+ 3 ayttm
+ 3 licq-console licq-rms
+ CAT_GNOME
+ 3 gnomeicu gossip
+ 3 gtk+licq
+
+CAT_NETWORKING_IRC
+ 3 xchat
+ 3 BitchX
+ 3 CAT_KDE kdenetwork-ksirc
+ 3 mozilla-irc
+ 2 irssi
+ 1 eggdrop
+
+CAT_NETWORKING_FIREWALLING_SERVER
+ 5 iproute2 routed iptables
+ 3 prelude-manager
+
+CAT_NETWORKING_GROUPWARE_SERVER
+ 5 kolab-server
+ 3 phpgroupware
+
+CAT_NETWORKING_MAIL
+ 5 CAT_KDE kdepim-kmail
+ 5 CAT_GNOME evolution
+ 3 mailx metamail
+ 3 faces mozilla-thunderbird mozilla-thunderbird-en mozilla-thunderbird-fr
+ 3 fetchmail urlview mutt spamassassin
+ 3 !CAT_GNOME !CAT_KDE xmailbox
+ 3 CAT_KDE kdepim-korn
+ 2 FaxMail faces-xface
+ 1 fetchmail-daemon fetchmailconf
+
+CAT_NETWORKING_MAIL_SERVER
+ 5 postfix
+ 4 mailman
+ 3 imap
+
+CAT_NETWORKING_NEWS
+ 5 CAT_KDE kdepim-knode
+ 5 CAT_GNOME pan
+ 2 slrn
+ 1 slrn-pull
+
+CAT_NETWORKING_NEWS_SERVER
+ 4 inn
+ 3 inews
+
+CAT_NETWORKING_OTHER
+ 2 finger ucd-snmp-utils macutils
+
+CAT_NETWORKING_OTHER_SERVER
+ 3 dhcp-server gated ntp
+
+ 3 intimed nscd pidentd
+ rdate bootparamd
+ cleanfeed ucd-snmp leafnode
+ cvsweb
+ xorg-x11-Xvfb xorg-x11-Xnest
+ 2 diald finger-server mars-nwe
+
+CAT_NIS
+ 5 ypbind
+
+CAT_NIS_SERVER
+ 5 ypserv
+
+CAT_NETWORKING_REMOTE_ACCESS
+ 5 openssh-clients telnet-client-krb5 keychain
+ 4 traceroute rfbdrake
+ 3 CAT_KDE kdeutils-kdessh
+ 3 tightvnc
+ 2 rsh
+
+CAT_NETWORKING_REMOTE_ACCESS_SERVER
+ 5 openssh-server
+ 4 rfbdrake
+ 2 tightvnc-server
+ 1 telnet-server-krb5 rsh-server
+ 3 CAT_BOOKS tightvnc-doc
+
+CAT_NETWORKING_DNS
+ 4 bind-utils
+
+CAT_NETWORKING_DNS_SERVER
+ 5 bind
+ 4 caching-nameserver
+ 1 nslint
+
+CAT_NETWORKING_FILE
+ 4 samba-client nfs-utils-clients
+ CAT_X smb4k
+ 2 CAT_X LinNeighborhood
+ 2 arkeia-gui arkeia-client arkeia-arkc
+ 2 CAT_GNOME gnomba gtm
+ 2 autofs
+
+CAT_NETWORKING_FILE_SERVER
+ 5 nfs-utils
+ 4 samba-server
+ 3 CAT_BOOKS samba-doc
+ 3 CAT_KDE kdenetwork-krfb
+ 2 arkeia-server samba-winbind
+ 3 squid squidGuard
+
+CAT_NETWORKING_WWW
+ 5 CAT_X mozilla-firefox
+ 5 CAT_X mozilla-firefox-af mozilla-firefox-br mozilla-firefox-ca mozilla-firefox-cs mozilla-firefox-da mozilla-firefox-de mozilla-firefox-el mozilla-firefox-es mozilla-firefox-fi mozilla-firefox-fr mozilla-firefox-ga mozilla-firefox-he mozilla-firefox-hu mozilla-firefox-it mozilla-firefox-ja mozilla-firefox-ko mozilla-firefox-nb mozilla-firefox-nl mozilla-firefox-pl mozilla-firefox-pt mozilla-firefox-pt_BR mozilla-firefox-ro mozilla-firefox-ru mozilla-firefox-sk mozilla-firefox-sl mozilla-firefox-sv mozilla-firefox-tr mozilla-firefox-zh_CN mozilla-firefox-zh_TW
+ 5 CAT_KDE kdewebdev
+ 5 CAT_GNOME screem
+ 5 CAT_GNOME epiphany epiphany-extensions
+ 4 FlashPlayer crossover-plugin-demo j2re x86-compat-j2re
+ 4 wget
+ 4 lynx
+ 3 CAT_KDE kdeaddons
+ 3 links
+ 3 CAT_KDE kdenetwork-kget
+ 3 CAT_KDE kdenetwork-knewsticker
+ 3 mozilla
+ 3 mozplugger
+ 3 opera
+ 3 bluefish
+ CAT_DEVELOPMENT
+ 4 nvu
+
+CAT_NETWORKING_WWW_SERVER
+ 5 apache-mpm-prefork apache-mod_perl apache-mod_ssl apache-mod_php
+ 4 apache-mod_suexec
+ 4 CAT_BOOKS apache-doc
+ 3 drbd-utils-heartbeat
+ 3 php-gd php-imap php-ldap php-mysql
+ php-pgsql php-readline php_cgi mod_sxnet HTML-Embperl
+ 3 CAT_BOOKS php-manual-en php-manual-fr
+
+CAT_GRAPHICS
+ 5 qiv
+ 5 gimp ufraw-gimp
+ 5 CAT_KDE kuickshow
+ 5 !CAT_KDE gthumb
+ 5 CAT_KDE kdegraphics-ksnapshot
+ 4 !CAT_KDE || CAT_GNOME flphoto gtkam
+ 4 ImageMagick giftrans gphoto2
+ 3 gimp-data-extras
+ 3 CAT_BOOKS
+ 3 CAT_KDE kdeaddons-konqimagegallery
+ 3 CAT_KDE kdegraphics-kpaint
+ 3 CAT_KDE kdegraphics-kruler
+ 3 CAT_KDE kdegraphics-kview
+ 3 CAT_KDE kdegraphics-mrmlsearch
+ 3 skencil
+ 3 xwpick
+ 3 xli
+ 2 gif2png gimp-perl xpcd xfig xpcd-gimp gd-utils
+ 1 netpbm libungif-progs qcad transfig xpaint xmorph
+ 1 3D Mesa-demos
+ CAT_GNOME
+ 3 gnome-iconedit
+ 3 ee
+
+CAT_ARCHIVING
+ 5 unzip zip dump sharutils
+ 2 mt-st
+ 2 taper
+ 1 lha
+ CAT_GNOME
+ 2 gnozip
+ 2 gtktalog
+
+BURNER
+ 5 mkisofs cdrecord dvd+rw-tools
+ 5 CAT_KDE k3b-dvd kover
+ 5 CAT_GNOME nautilus-cd-burner
+ 4 !CAT_KDE !CAT_GNOME CAT_X xcdroast
+ 3 gcombust
+ 3 CAT_GNOME gnome-toaster
+ 2 !CAT_KDE !CAT_GNOME CAT_X eroaster
+ CAT_DEVELOPMENT
+ 3 cdrecord-devel
+
+SCANNER
+ 4 sane-frontends xsane
+ 4 CAT_KDE kdegraphics-kooka
+
+PHOTO
+ 4 gphoto gphoto2 ufraw
+
+CAT_DATABASES
+ 5 postgresql
+ 3 MySQL-client
+ CAT_DATABASES_SERVER
+ 4 postgresql-server
+ 3 MySQL
+ 2 postgresql-jdbc postgresql-tcl postgresql-test
+ CAT_DEVELOPMENT
+ 4 perl-Mysql
+ 3 postgresql-devel
+ 1 MySQL-bench libmysql14-devel libmysql-devel
+
+CAT_GAMES
+ 5 frozen-bubble
+ 5 lbreakout2
+ 5 supertux
+ 5 crack-attack crack-attack-music crack-attack-sounds
+ 3 clanbomber freeciv-client toppler
+ 3 cxhextris rocksndiamonds powermanga mures methane
+ 2 Maelstrom pingus ltris penguin-command pysol xpilot trophy xboard skobo xpat2 xsoldier xfishtank
+ 1 fortune-mod nil
+ CAT_GNOME
+ 3 gnome-games
+ 3 gnome-chess
+ CAT_KDE
+ 3 kdegames
+ 3 kdeaddons-atlantik
+ 3 kdetoys
+ 3D
+ 5 armagetron csmash
+ !HW"Riva.*128" chromium ppracer
+
+ 3 !HW"Riva.*128" !HW"Rage X[CL]" !HW"Rage Mobility (?:P\/M|L) " !HW"3D Rage (?:LT|Pro)" bzflag
+
+CAT_DEVELOPMENT
+ 5 autoconf2.1 automake1.4 m4 make
+ 3 autoconf2.5
+ 1 tmake pmake
+
+ 5 libtool binutils ltrace gcc
+ 2 gperf indent
+ 1 glibc-profile
+
+ 4 gcc-c++ libstdc++6-devel libstdc++-devel
+ 2 libsigc++-examples
+
+ 4 bison flex
+ 2 byacc
+
+ 2 doxygen C++2LaTeX
+
+ 3 jikes kaffe
+ 1 gcc-java
+
+ 5 cvs rcs
+ 2 diffstat tkcvs
+
+ 3 swig
+
+ 4 python tkinter
+ 3 libpython2.4-devel python-devel python-imaging pygtk-glarea pygtk pygtk-libglade rpm-python
+
+ 4 perl perl-Term-Readline-Gnu perl-libwww-perl perl-devel
+ 3 perl-DBI perl-IO-stringy perl-PDL perl-Parse-RecDescent
+ perl-Tk perlftlib perl-URI perl-DB_File
+ perl-Data-ShowTable perl-HTML-Parser perl-HTML-SimpleParse
+ perl-MIME-tools perl-MP3-Info perl-MailTools perl-Msgcat
+
+ 4 rpm-build
+ 3 rpmlint librpm4.4-devel rpm-devel rpm-rebuilder
+ 3 kernel-source
+
+ 2 gcc-g77 nasm dev86
+ 1 gcc-objc
+
+ 2 gprolog ocaml umb-scheme mawk guile clisp
+ hugs98 swi-prolog ruby
+
+ 4 gettext-devel libncurses5-devel ncurses-devel
+
+ 5 CAT_X memprof
+ 5 valgrind
+ 5 gdb
+ 1 xxgdb
+
+ CAT_BOOKS
+ 5 qt3-example
+ 2 pam-doc python-docs slang-doc kernel-doc nasm-doc ruby-doc lkmpg
+
+ CAT_KDE
+ 5 kdevelop
+ 5 kdesdk
+ 5 libkdenetwork2-kopete-devel libkdebase4-kate-devel libkdepim2-common-devel
+ libkdebase4-nsplugins-devel libkdepim2-kaddressbook-devel
+ libkdepim2-kmail-devel libkdecore4-devel kdecore-devel libkdepim2-knode-devel
+ libkdeedu1-devel kdeedu-devel libkdepim2-kontact-devel libkdegames1-devel
+ libkdepim2-korganizer-devel libkdegraphics0-common-devel
+ libkdepim2-kpilot-devel libkdegraphics0-kooka-devel
+ libkdesdk1-cervisia-devel libkdegraphics0-kpovmodeler-devel
+ libkdesdk1-devel kdesdk-devel libkdegraphics0-ksvg-devel libkdesdk1-kbabel-devel
+ libkdegraphics0-kview-devel libkdetoys1-devel kdetoys-devel
+ libkdemultimedia1-common-devel libkdeutils1-common-devel
+ libkdemultimedia1-kscd-devel libkdeutils1-ksim-devel
+ libkdemultimedia1-noatun-devel libkdevelop3-devel kdevelop-devel libarts1-devel arts-devel
+ libqt3-devel qt-devel quanta-devel libquanta0-kfilereplace-devel
+ libquanta0-kommander-devel koffice-devel
+
+ CAT_GNOME
+ 3 glade2 pygnome libgnomeui2_0-devel libpanel-applet-2_0-devel
+ 2 pygnome-capplet pygnome-libglade
+ libgnomemm-1.2_9-devel libgnome-pilot2-devel glademm
+ 1 libgnucash0-devel
+
+ CAT_DEVELOPMENT_OTHER
+ 2 libMagick8.4.2-devel libMagick-devel libMesaGLU1-devel libXaw3d7-devel Xaw3d-devel
+ libgd2-devel gd-devel p2c-devel libgmp3-devel gmp-devel libguile12-devel guile-devel libgr-devel libjpeg62-devel libjpeg-devel libpng3-devel libpng-devel
+ libtermcap2-devel libtermcap-devel libtiff3-devel libtiff-devel libungif4-devel libungif-devel libxml2-devel libxml-devel
+ libslang1-devel slang-devel sox-devel zlib1-devel zlib-devel libxorg-x11-devel dev86-devel
+ libgdk-pixbuf2-devel gdk-pixbuf-devel libgimp2.0-devel gimp-devel libgpm1-devel gpm-devel libghttp1-devel libghttp-devel libgtop2.0_5-devel libgtop-devel
+ libmikmod2-devel libmikmod-devel librep-devel libunicode0-devel libunicode-devel libpopt0-devel popt-devel libpwdb0-devel pwdb-devel libt1lib5-devel t1lib-devel
+ libsnmp-devel mpeg_lib-devel libWindowMaker0-devel WindowMaker-devel libaa1-devel libaa-devel libadns1-devel adns-devel
+ libalsa2-devel libalsa-devel libaudiofile0-devel audiofile-devel libcups2-devel cups-devel e2fsprogs-devel
+ libg-wrap1-devel g-wrap-devel gkrellm-devel libPropList0-devel libPropList-devel licq-devel openldap-devel
+ libparted1.6-devel parted-devel pciutils-devel pilot-link-devel svgalib-devel
+ librecode0-devel recode-devel libaspell15-devel aspell-devel cracklib-devel faces-devel libfnlib0-devel fnlib-devel
+ libfreetype6-devel freetype-devel gtk+mdk-devel libgtkglarea5-devel gtkglarea-devel libxorg-x11-static-devel imap-devel
+ php-devel libpth20-devel pth-devel libsane1-devel sane-devel swig-devel xdelta-devel isapnptools-devel
+ libpango1.0_0-devel pango-devel libreadline5-devel readline-devel
+
+CAT_MONITORING
+ 5 procinfo psacct
+ 4 lsof swatch tcpdump traceroute
+ 4 nmap lm_sensors
+ 4 CAT_X nmap-frontend
+ 4 smartmontools
+ 3 CAT_KDE kdeutils-ksim
+ 3 iplog arpwatch lslk xcpustate xsysinfo pciutils lshw
+ 2 cfengine gkrellm gps rusers mon
+ 2 3D xtraceroute
+ 1 logcheck
+ CAT_GNOME
+ 4 gnome-system-monitor
+
+CAT_FILE_TOOLS
+ 5 file gnupg mkxauth mtools slocate
+ 4 symlinks mc
+ 3 dosfstools draksync tree
+ 2 git FileRunner
+ 1 xdelta
+
+CAT_WEBMIN
+ 5 webmin
+ 5 mdkwebadmin
+ CAT_BOOKS
+ 3 mandriva-doc-Server_Conf_Guide-en mandriva-doc-Server_Conf_Guide-fr
+ 3 mandriva-doc-contrib-Server_Conf_Guide-pl mandriva-doc-contrib-Server_Conf_Guide-zh_cn
+
+CAT_WIZARDS
+ 5 drakwizard
+
+CAT_CONFIG
+ 3 ipvsadm quota nut
+ 2 gfcc adjtimex xinput timeconfig samba-swat
+ 1 ipxutils
+
+CAT_BOOKS
+ 4 mandriva-doc-Starter-de mandriva-doc-Starter-en mandriva-doc-Starter-es mandriva-doc-Starter-fr mandriva-doc-Starter-it mandriva-doc-Starter-pt_br
+ 4 mandriva-doc-contrib-Starter-et mandriva-doc-contrib-Starter-zh_cn mandriva-doc-contrib-Starter-pl
+ 4 META_CLASS"desktop" mandriva-doc-Discovery-en mandriva-doc-Discovery-fr
+
+CAT_X
+ 5 xorg-x11 xorg-x11-server rxvt xorg-x11-75dpi-fonts urw-fonts fonts-ttf-dejavu
+ 5 icewm-light monitor-edid
+ 5 HIGH_SECURITY mountloop
+ 5 LOCALES"zh" || LOCALES"am" scim-tables
+ 5 LOCALES"ja" scim-anthy scim-input-pad scim-tomoe
+ 5 LOCALES"ja" !CAT_KDE uim-gtk
+ 5 LOCALES"ja" CAT_KDE uim-qt
+ 5 LOCALES"ko" scim-hangul
+ 5 LOCALES"vi" scim-m17n
+ 5 LOCALES"zh" scim-pinyin
+ 5 LOCALES"zh_TW" scim-chewing
+ 5 LOCALES"am" || LOCALES"ja" || LOCALES"ko" || LOCALES"vi" || LOCALES"zh" CAT_KDE scim-qtimm
+ 5 LOCALES"ja" || LOCALES"ko" || LOCALES"zh" rxvt-CJK rxvt-unicode
+
+ 4 vim-enhanced
+ 4 gurpmi rpmdrake drakconf userdrake fonts-ttf-decoratives fonts-ttf-west_european
+ mandrake-mime menudrake desktop-common-data
+ mdkonline drakfirsttime gtk-engines bootsplash
+ galaxy-gnome x86-compat-galaxy-gnome
+
+ CAT_BOOKS
+ 3 mandriva-doc-Drakxtools-Guide-de mandriva-doc-Drakxtools-Guide-en mandriva-doc-Drakxtools-Guide-es mandriva-doc-Drakxtools-Guide-fr mandriva-doc-Drakxtools-Guide-it mandriva-doc-Drakxtools-Guide-pt_br
+ 3 mandriva-doc-contrib-Drakxtools-et mandriva-doc-contrib-Drakxtools-ru
+
+ 3 xorg-x11-100dpi-fonts draksync
+ 3 USB usbview
+ 2 LOCALES"ja" || LOCALES"ko" || LOCALES"zh" jmcce
+ 2 imlib-cfgeditor
+ 1 Mesa xtoolwait X11R6-contrib
+
+
+ 3 ami fcitx gcin im-ja imhangul kinput2-wnn4 nabi scim-canna scim-fcitx scim-m17n scim-prime scim-skk scim-uim skim xvnkb
+
+ 2 app-defaults-be app-defaults-cs app-defaults-ga app-defaults-ru app-defaults-th app-defaults-uk
+
+ 5 LOCALES"ru" || LOCALES"uk" xorg-x11-cyrillic-fonts
+ LOCALES"am" fonts-ttf-ethiopic
+ LOCALES"ar" fonts-ttf-arabic-arabeyes fonts-ttf-arabic-kacst
+ LOCALES"ar" || LOCALES"fa" || LOCALES"ur" fonts-ttf-arabic-farsi
+ LOCALES"as" || LOCALES"bn" fonts-ttf-bengali
+ LOCALES"el" fonts-type1-greek
+ LOCALES"he" || LOCALES"yi" fonts-hebrew-elmar fonts-type1-hebrew
+ LOCALES"hy" fonts-ttf-armenian
+ LOCALES"ja" fonts-ttf-japanese
+ LOCALES"kn" fonts-ttf-kannada
+ LOCALES"ko" fonts-ttf-korean
+ LOCALES"ta" fonts-ttf-tamil fonts-ttf-tscii fonts-bitmap-tscii
+ LOCALES"th" fonts-ttf-thai
+ LOCALES"zh" fonts-ttf-chinese
+ LOCALES"zh_CN" fonts-ttf-gb2312
+ LOCALES"zh_TW" taipeifonts fonts-ttf-big5
+ 4 META_CLASS"download" mandriva-theme
+ 4 META_CLASS"desktop" mandriva-theme-Discovery
+ CAT_KDE discovery-icons-theme
+ 4 META_CLASS"server" mandriva-theme-Powerpack+
+ 4 META_CLASS"powerpack" mandriva-theme-Powerpack
+
+DOCS
+ 5 man info man-pages
+
+CAT_SYSTEM
+ 5 at eject ldetect harddrake udev s2u sharutils
+ locales iputils urpmi cpio msec tmpwatch gnupg
+
+ 5 dmidecode setarch
+
+ 5 HIGH_SECURITY libsafe kernel-secure lads
+
+ 5 PCMCIA pcmcia-cs
+
+ 5 HW"HighPoint Technologies Inc.\|HPT37|Promise Technology.*FastTrak" || DRIVER"ata_piix|i2o_block|megaraid|sata_sil" mdadm dmraid
+ 5 HW"American Power Conversion\|Back-UPS Pro 500|MGE UPS Systems\|" nut-server
+ 5 HW"iKey 3000 Token" rnboifd
+ 5 HW_CAT"network/slmodem" slmodem
+ 5 DRIVER"^LT:|slamr|slusb|^Hcf:|^Hsf:" ppp
+ CAT_KDE kdenetwork-kppp
+ 5 DRIVER"^LT:" ltmodem
+ 5 HW"OmniKey Cardman" cm2020
+ SMP cm2020-smp
+ HIGH_SECURITY cm2020-secure
+ BIGMEM cm2020-enterprise
+ 5 DRIVER"a320raid" || HW"HostRAID" a320raid-kernel
+ SMP a320raid-kernelsmp
+ 5 HW"\|SynPS/2 Synaptics TouchPad|\|AlpsPS/2 ALPS TouchPad" synaptics
+ 5 HW"\|SynPS/2 Synaptics TouchPad|\|AlpsPS/2 ALPS TouchPad" CAT_KDE ksynaptics
+
+ 5 CAT_KDE || CAT_GNOME gnome-volume-manager
+
+ 5 DRIVER"slamr|slusb" slmodem-kernel
+ 5 HW"DAC960|cpqarray" cpqarrayd
+ 5 DRIVER"^ISDN:" ibod isdn4net isdn4k-utils
+ 5 DRIVER"eagle-usb" eagle-usb
+ 5 HW_CAT"input/joystick" joystick
+ 5 HW_CAT"multimedia/radio" CAT_KDE kradio qtradio
+ 5 HW_CAT"multimedia/radio" CAT_GNOME gnomeradio
+ 5 HW_CAT"multimedia/dvb" dvb-apps dvbsnoop dvbstream dvbtune
+ 5 CAT_KDE HW_CAT"bus/bluetooth" kdebluetooth
+ 5 !CAT_KDE || CAT_GNOME HW_CAT"bus/bluetooth" gnome-bluetooth
+ 5 DRIVER"ipw2100" ipw2100-firmware
+ 5 DRIVER"ipw2200" ipw2200-firmware
+ 5 DRIVER"ath_pci" madwifi-kernel madwifi
+ 5 DRIVER"prism54" prism54-firmware
+ 5 DRIVER"^at76" atmel-firmware
+ 5 DRIVER"speedtch" speedtouch speedtouch_mgmt
+ 5 DRIVER"^Hcf:" hcfmodem
+ 5 DRIVER"^Hsf:" hsfmodem
+
+ 5 HW_CAT"bus/bluetooth" bluez-utils
+
+ 5 CAT_KDE TYPE"wireless" kdenetwork-kwifimanager
+ 5 TYPE"wireless" libiw27 wireless-tools
+
+
+ 5 CAT_KDE TYPE"laptop" kdeutils-klaptop
+ 5 !CAT_KDE TYPE"laptop" cpufreqd
+ 5 TYPE"laptop" cpufreq apmd hotkeys laptop-mode-tools
+ 3 evms evms-gui evms-cli evms-ncurses
+
+ 4 ftp-client-krb5 hexedit strace sudo grub procmail hdparm coreutils-doc bc
+ lsof
+
+ 4 TYPE"laptop" netprofile
+
+ 2 sndconfig acpid adns audiofile freeswan fbset vlan-utils gpm
+ 1 fdutils genromfs mailcap pinfo
+
+ CAT_BOOKS
+ 5 man-pages-cs man-pages-da man-pages-de man-pages-es man-pages-fr man-pages-hu man-pages-id man-pages-it man-pages-ja man-pages-ko man-pages-pl man-pages-pt_BR man-pages-ru man-pages-zh
+ 4 grub-doc lilo-doc
+ howto-html-de howto-html-el howto-html-en howto-html-es howto-html-fi howto-html-fr howto-html-hu howto-html-id howto-html-it howto-html-ja howto-html-ko howto-html-nl howto-html-pl howto-html-ro howto-html-sl howto-html-sv howto-html-zh
+
+ 4 CAT_NIS yp-tools
+ 3 TYPE"laptop" irda-utils
+ 3 USB usbutils
+
+ 4 LOCALES"ar" || LOCALES"fa" || LOCALES"he" || LOCALES"yi" acon
+ 3 LOCALES"zh" zh-autoconvert
+
+CAT_EMULATORS
+ 3 wine
+
+CAT_PRINTER
+ 4 xpp nmap printer-testpages scli net-tools foomatic-db-engine
+ foomatic-filters foomatic-db foomatic-db-hpijs ImageMagick
+ ghostscript printer-filters printer-utils mpage
+ a2ps ppdfilt groff lesstif
+ libsnmp0
+ hplip-hpijs postscript-ppds
+ gutenprint-ijs gutenprint-foomatic gutenprint-escputil
+ gutenprint-gimp2
+
+INSTALL
+ NOCOPY
+ 5 kernel-2.6.12.17mdk kernel kernel-smp-2.6.12.17mdk kernel-smp kernel-i686-up-4GB-2.6.12.17mdk kernel-i686-up-4GB
+ mdadm lvm2 reiserfsprogs jfsprogs xfsprogs
+ alsa-utils xorg-x11 xorg-x11-server
+ ik8utils toshutils
+ 4 brltty
+
+ 5 pptp-linux dhcpcd dhcpxd dhcp-client rp-pppoe pump
+ ppp nfs-utils-clients ppp-pppoe ppp-pppoatm
+ autologin ntp samba-server ncpfs ucd-snmp libptal0
+ shorewall iptables samba-client perl-Net-DNS mandi-ifw
+ ipchains nc sndconfig curl
+ mtools mtoolsfm numlock usbutils
+ ypbind
+ autofs pam_ldap pam_krb5 libsasl2-plug-gssapi nss_ldap openldap-clients samba-winbind
+ tmdns zcip acpi acpid
+ ibod isdn4net isdn-light isdn4k-utils kernel-2.4
+ eagle-usb
+ speedtouch speedtouch_mgmt
+ kdenetwork-kppp-provider
+ synaptics dkms-minimal
+ prism2-utils wpa_supplicant
+
+ 5 cups cups-drivers hpoj libhpojip0 gutenprint-cups
+ xojpanel libsane-hpoj1
+ sane-backends sane-frontends scanner-gui xsane
+
+ 4 xorg-x11-glide-module Glide_V3-DRI Glide_V5 Mesa
+ hplip libsane-hpaio1 libhpip0
diff --git a/live/One/2006.0/patches/halt.loopfs.patch b/live/One/2006.0/patches/halt.loopfs.patch
new file mode 100644
index 000000000..2ea4829a6
--- /dev/null
+++ b/live/One/2006.0/patches/halt.loopfs.patch
@@ -0,0 +1,20 @@
+--- etc/init.d/halt.loopfs 2005-12-27 22:13:48.000000000 +0100
++++ etc/init.d/halt 2005-12-27 22:14:28.000000000 +0100
+@@ -23,7 +23,7 @@
+ }
+
+ halt_get_remaining() {
+- awk '$2 ~ /^\/$|^\/proc|^\/sys|^\/dev/{next}
++ awk '$2 ~ /^\/$|^\/proc|^\/sys|^\/dev|^\/live/{next}
+ $3 == "tmpfs" || $3 == "proc" {print $2 ; next}
+ /(^#|loopfs|autofs|devfs|^none|^\/dev\/ram|^\/dev\/root)/ {next}
+ {print $2}' /proc/mounts
+@@ -139,7 +139,7 @@
+ # Unmount loopback stuff first
+ remaining=`awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts`
+ devremaining=`awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts`
+-[ -n "$remaining" ] && {
++/bin/false && [ -n "$remaining" ] && {
+ sig=
+ retry=3
+ while [ -n "$remaining" -a "$retry" -gt 0 ]
diff --git a/live/One/2006.0/patches/netfs.loopfs.patch b/live/One/2006.0/patches/netfs.loopfs.patch
new file mode 100644
index 000000000..a2b32902a
--- /dev/null
+++ b/live/One/2006.0/patches/netfs.loopfs.patch
@@ -0,0 +1,11 @@
+--- etc/init.d/netfs.loopfs 2005-09-19 17:34:31.000000000 +0200
++++ etc/init.d/netfs 2005-12-27 19:23:39.000000000 +0100
+@@ -50,7 +50,7 @@
+ # Unmount loopback stuff first
+ remaining=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts`
+ devremaining=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts`
+- [ -n "$remaining" ] && {
++ /bin/false && [ -n "$remaining" ] && {
+ sig=
+ retry=3
+ while [ -n "$remaining" -a "$retry" -gt 0 ]
diff --git a/live/draklive-install/Makefile b/live/draklive-install/Makefile
new file mode 100644
index 000000000..6d5025822
--- /dev/null
+++ b/live/draklive-install/Makefile
@@ -0,0 +1,21 @@
+NAME = draklive-install
+VERSION := $(shell rpm -q --qf '%{VERSION}\n' --specfile $(NAME).spec | head -1)
+RELEASE := $(shell rpm -q --qf '%{RELEASE}\n' --specfile $(NAME).spec | head -1)
+
+rpm: dis
+ rpm -tb ../$(NAME)-$(VERSION).tar.bz2
+
+check:
+ perl -cw $(NAME)
+
+clean:
+ find -name '*~' -exec rm {} \;
+
+dis ../$(NAME)-$(VERSION).tar.bz2: clean check
+ rm -rf $(NAME)-$(VERSION) ../$(NAME)-$(VERSION).tar*
+ mkdir -p $(NAME)-$(VERSION)
+ find . -not -name "$(NAME)-$(VERSION)"|cpio -pd $(NAME)-$(VERSION)/
+ find $(NAME)-$(VERSION) -type d -name CVS -o -name .cvsignore -o -name unused |xargs rm -rf
+ tar cf ../$(NAME)-$(VERSION).tar $(NAME)-$(VERSION)
+ bzip2 -9f ../$(NAME)-$(VERSION).tar
+ rm -rf $(NAME)-$(VERSION)
diff --git a/live/draklive-install/draklive-install b/live/draklive-install/draklive-install
new file mode 100755
index 000000000..bb4880850
--- /dev/null
+++ b/live/draklive-install/draklive-install
@@ -0,0 +1,418 @@
+#!/usr/bin/perl
+
+use lib qw(/usr/lib/libDrakX);
+use standalone;
+use interactive;
+#- err, yes, we're loaded, aren't we? (actually not used by this wizard in install_interactive)
+BEGIN { undef @INC{'install_any.pm', 'install_steps.pm'} };
+use install_interactive;
+use fs::type;
+use common;
+
+{
+ use interactive;
+ package interactive;
+ *ask_mntpoint_s = \&main::ask_mntpoint_s_interactive;
+}
+
+{
+ use diskdrake::interactive;
+ package diskdrake::interactive;
+ my $old = \&hd_possible_actions;
+ undef *hd_possible_actions;
+ *hd_possible_actions = sub {
+ #- for the partition wizard to show the auto-allocate option
+ local $::isInstall = 1;
+ &$old;
+ };
+ undef *Done;
+ #- skip the fstab/reboot checks
+ *Done = \&diskdrake_interactive_Done;
+}
+
+sub umount_all {
+ my ($in) = @_;
+ #- make sure nothing is mounted in the new root
+ foreach (sort { $b cmp $a } grep { /^$in->{prefix}/ } map { (split)[1] } cat_('/proc/mounts')) {
+ system('umount', $_);
+ }
+ #- make sure selected devices aren't mounted, and swap isn't used
+ foreach (grep { isSwap($_) } @{$in->{fstab}}) {
+ eval { fs::mount::swapoff($_->{device}) };
+ }
+ foreach (map { $_->{mntpoint} && !isSwap($_) ? "/dev/$_->{device}" : () } @{$in->{fstab}}) {
+ system('umount', $_);
+ }
+}
+
+my $in = 'interactive'->vnew('su');
+$in->{prefix} = $::prefix = '/mnt/install';
+
+$in->{all_hds} = fsedit::get_hds();
+
+umount_all($in);
+
+$::isWizard = 1;
+$::Wizard_no_previous = 1;
+$::Wizard_pix_up = "MandrivaOne-install-icon";
+my $live_install_img = "MandrivaOne-install";
+my $title = N("Mandriva Live");
+{
+ my $w = ugtk2->new($title);
+ ugtk2::gtkadd($w->{window},
+ #ugtk2::gtkcreate_img($live_install_img),
+ ugtk2::gtknew('Label', height => 5),
+ N("This wizard will help you to install the live distribution."),
+ ugtk2::create_okcancel($w));
+ $w->{ok}->grab_focus;
+ $w->main;
+}
+
+install_interactive::partitionWizard($in);
+mkdir_p($::prefix) or die "unable to create $::prefix";
+
+doPartitionDisksAfter($in);
+choosePartitionsToFormat_interactive($in, $in->{fstab});
+
+umount_all($in);
+formatMountPartitions($in);
+
+#- copy to disk
+my $_w = do {
+ local $::isInstall = 1; # quick hack to embed the wait message
+ $in->wait_message('', N("Computing total size"));
+};
+my $total = first(split(/\s+/, `du -sbx / 2>/dev/null`));
+
+#- fork interactive::wait_message_with_progress_bar to allow embedding and images
+my $progress_displayed;
+my $progress = Gtk2::ProgressBar->new;
+$progress->hide;
+$progress->signal_connect(expose_event => sub { $progress_displayed = 1; 0 });
+undef $_w;
+$_w = do {
+ local $::isInstall = 1; # quick hack to embed the wait message
+ my $w = $in->wait_messageW('', [ ugtk2::gtkcreate_img($live_install_img), N("Copying in progress"), if_($progress, $progress) ]);
+ before_leaving { $in->wait_message_endW($w) };
+}; #- should be my ($w, $update_progress) = $in->wait_message_with_progress_bar()
+
+open(my $OUTPUT, '-|', 'tar c ' .
+ join(' ', map { ('--exclude', $_) } '/mnt', '/live', '/proc', '/dev', '/sys')
+ . ' / | tar xvv -C ' . $in->{prefix});
+{
+ local $_;
+ my $current = my $previous = 0;
+ while (<$OUTPUT>) {
+ (undef, undef, my $size) = split;
+ $current += $size;
+ if ($current <= $total && $current/$total > $previous/$total + 0.001) {
+ $progress->set_fraction($current / $total);
+ $progress->show;
+ $progress_displayed = 0;
+ mygtk2::flush() while !$progress_displayed; #- these 4 lines should $update_progress->('', $current, $total)
+ $previous = $current;
+ }
+ }
+}
+undef $_w;
+
+#- FIXME: maybe factorize with draklive, using draklive --clean-chroot ?
+#- remove unwanted files and packages
+unlink(map { $in->{prefix} . $_} '/.autofsck',
+ '/home/guest/Desktop/draklive-copy-wizard.desktop',
+ '/home/guest/Desktop/draklive-install.desktop');
+system('chroot', $in->{prefix}, 'rpm', '-e', 'draklive-install');
+#- enable drakx-finish-install
+output($in->{prefix} . '/etc/sysconfig/finish-install', qq(
+FINISH_INSTALL=yes
+LICENSE=no
+LANGUAGE=no
+KEYBOARD=no
+NETWORK=yes
+AUTHENTICATION=yes
+USERS=yes
+USER_RENAME_FROM=guest
+));
+#- unselect guest user in kdm
+my $kdm_cfg = '/etc/kde/kdm/kdmrc';
+update_gnomekderc($in->{prefix} . $kdm_cfg,
+ 'X-:0-Greeter' => (PreselectUser => 'None', DefaultUser => '')) if -f $kdm_cfg;
+
+#- create required directories and devices
+mkdir_p($in->{prefix} . $_) foreach qw(/dev /etc /proc /sys);
+run_program::run('makedev', $in->{prefix} . '/dev');
+#- write fstab
+fs::write_fstab($in->{all_hds}, $in->{prefix});
+
+
+#- setup bootloader
+#- TODO: factorize with drakboot
+use bootloader;
+my $bootloader = {};
+my $cmdline = cat_('/proc/cmdline');
+bootloader::suggest($bootloader, $in->{all_hds},
+ vga_fb => first($cmdline =~ /\bvga=(\S+)/), #- don't use $1 here, otherwise perl will hit you because of the other "=~" below
+ quiet => $cmdline =~ /\bsplash=silent\b/,
+ );
+lilo_choice();
+
+#- cleanly umount here, it will avoid fs journals to be corrupted after a hackish reboot
+umount_all($in);
+
+$::Wizard_finished = 1;
+$in->ask_okcancel(N("Congratulations"), N("Please halt your computer, remove your live system, and restart your computer."));
+
+$in->exit(0);
+
+
+###
+### duplicate code
+###
+
+#- install_steps::doPartitionDisksAfter
+sub doPartitionDisksAfter {
+ my ($o) = @_;
+ my $hds = $o->{all_hds}{hds};
+ partition_table::write($_) foreach @$hds;
+ if (grep { $_->{rebootNeeded} } @$hds) {
+ #- install_steps_interactive::rebootNeeded
+ $o->ask_warn('', N("You need to reboot for the partition table modifications to take place"));
+ $o->exit(0);
+ }
+ fs::set_removable_mntpoints($o->{all_hds});
+ fs::mount_options::set_all_default($o->{all_hds}, %$o, lang::fs_options($o->{locale}));
+ $o->{fstab} = [ fs::get::fstab($o->{all_hds}) ];
+}
+
+#- install_steps::choosePartitionsToFormat
+sub choosePartitionsToFormat($$) {
+ my ($_o, $fstab) = @_;
+
+ return if $::local_install;
+
+ foreach (@$fstab) {
+ $_->{mntpoint} = "swap" if isSwap($_);
+ $_->{mntpoint} or next;
+
+ add2hash_($_, { toFormat => $_->{notFormatted} }) if $_->{fs_type}; #- eg: do not set toFormat for isRawRAID (0xfd)
+ $_->{toFormatUnsure} ||= member($_->{mntpoint}, '/', '/usr');
+
+ if (!$_->{toFormat}) {
+ my $fs_type = fs::type::fs_type_from_magic($_);
+ if (!$fs_type || $fs_type ne $_->{fs_type}) {
+ log::l("setting toFormatUnsure for $_->{device} because <$_->{fs_type}> ne <$fs
+_type>");
+ $_->{toFormatUnsure} = 1;
+ }
+ }
+ }
+}
+
+#- install_steps_interactive::choosePartitionsToFormat
+sub choosePartitionsToFormat_interactive {
+ my ($o, $fstab) = @_;
+
+ choosePartitionsToFormat($o, $fstab);
+
+ my @l = grep { !$_->{isMounted} && $_->{mntpoint} &&
+ (!isSwap($_) || $::expert) &&
+ (!isFat_or_NTFS($_) || $_->{notFormatted} || $::expert) &&
+ (!isOtherAvailableFS($_) || $::expert || $_->{toFormat});
+ } @$fstab;
+ $_->{toFormat} = 1 foreach grep { isSwap($_) && !$::expert } @$fstab;
+
+ return if @l == 0 || !$::expert && every { $_->{toFormat} } @l;
+
+ #- keep it temporary until the guy has accepted
+ $_->{toFormatTmp} = $_->{toFormat} || $_->{toFormatUnsure} foreach @l;
+
+ $o->ask_from_(
+ { messages => N("Choose the partitions you want to format"),
+ interactive_help_id => 'formatPartitions',
+ advanced_messages => N("Check bad blocks?"),
+ },
+ [ map {
+ my $e = $_;
+ ({
+ text => partition_table::description($e), type => 'bool',
+ val => \$e->{toFormatTmp}
+ }, if_(!isLoopback($_) && !member($_->{fs_type}, 'reiserfs', 'xfs', 'jfs'), {
+ text => partition_table::description($e), type => 'bool', advanced => 1,
+ disabled => sub { !$e->{toFormatTmp} },
+ val => \$e->{toFormatCheck}
+ })) } @l ]
+ ) or die 'already displayed';
+ #- ok now we can really set toFormat
+ foreach (@l) {
+ $_->{toFormat} = delete $_->{toFormatTmp};
+ set_isFormatted($_, 0);
+ }
+}
+
+#- install_steps_interactive::formatMountPartitions
+#- FIXME(?): drop $_fstab
+sub formatMountPartitions {
+ my ($o, $_fstab) = @_;
+ my ($w, $wait_message) = $o->wait_message_with_progress_bar;
+ catch_cdie {
+ fs::format::formatMount_all($o->{all_hds}, $o->{fstab}, $wait_message);
+ } sub {
+ $@ =~ /fsck failed on (\S+)/ or return;
+ $o->ask_yesorno('', N("Failed to check filesystem %s. Do you want to repair the errors?
+ (beware, you can lose data)", $1), 1);
+ };
+ undef $w; #- help perl (otherwise wait_message stays forever in newt)
+ die N("Not enough swap space to fulfill installation, please add some") if availableMemory(
+) < 40 * 1024;
+}
+
+#- install_any::guess_mount_point
+sub guess_mount_point {
+ my ($part, $prefix, $user) = @_;
+
+ my %l = (
+ '/' => 'etc/fstab',
+ '/boot' => 'vmlinuz',
+ '/tmp' => '.X11-unix',
+ '/usr' => 'X11R6',
+ '/var' => 'catman',
+ );
+
+ require any;
+ my $handle = any::inspect($part, $prefix) or return;
+ my $d = $handle->{dir};
+ my $mnt = find { -e "$d/$l{$_}" } keys %l;
+ $mnt ||= (stat("$d/.bashrc"))[4] ? '/root' : '/home/user' . ++$$user if -e "$d/.bashrc";
+ $mnt ||= (any { -d $_ && (stat($_))[4] >= 500 && -e "$_/.bashrc" } glob_($d)) ? '/home' : '
+';
+ ($mnt, $handle);
+}
+
+#- install_any::suggest_mount_points
+sub suggest_mount_points {
+ my ($fstab, $prefix, $uniq) = @_;
+
+ my $user;
+ foreach my $part (grep { isTrueFS($_) } @$fstab) {
+ $part->{mntpoint} && !$part->{unsafeMntpoint} and next; #- if already found via an fstab
+
+ my ($mnt, $handle) = guess_mount_point($part, $prefix, \$user) or next;
+
+ next if $uniq && fs::get::mntpoint2part($mnt, $fstab);
+ $part->{mntpoint} = $mnt; delete $part->{unsafeMntpoint};
+
+ #- try to find other mount points via fstab
+ fs::merge_info_from_fstab($fstab, $handle->{dir}, $uniq, 'loose') if $mnt eq '/';
+ }
+ $_->{mntpoint} and log::l("suggest_mount_points: $_->{device} -> $_->{mntpoint}") foreach @$fstab;
+}
+
+#- install_steps_interactive::ask_mntpoint_s
+sub ask_mntpoint_s_interactive { #- }{}
+ my ($o, $fstab) = @_;
+
+ my @fstab = grep { isTrueFS($_) } @$fstab;
+ @fstab = grep { isSwap($_) } @$fstab if @fstab == 0;
+ @fstab = @$fstab if @fstab == 0;
+ die N("No partition available") if @fstab == 0;
+
+ {
+ my $_w = $o->wait_message('', N("Scanning partitions to find mount points"));
+ suggest_mount_points($fstab, $o->{prefix}, 'uniq');
+ log::l("default mntpoint $_->{mntpoint} $_->{device}") foreach @fstab;
+ }
+ if (@fstab == 1) {
+ $fstab[0]{mntpoint} = '/';
+ } else {
+ $o->ask_from_({ messages => N("Choose the mount points"),
+ title => N("Partitioning"),
+ icon => 'banner-part',
+ interactive_help_id => 'ask_mntpoint_s',
+ callbacks => {
+ complete => sub {
+ require diskdrake::interactive;
+ eval { 1, find_index {
+ !diskdrake::interactive::check_mntpoint($o, $_->{mntpoint}, $_, $o->{all_hds});
+ } @fstab };
+ },
+ },
+ },
+ [ map {
+ {
+ label => partition_table::description($_),
+ val => \$_->{mntpoint},
+ not_edit => 0,
+ list => [ '', fsedit::suggestions_mntpoint(fs::get::empty_all_hds()) ],
+ };
+ } @fstab ]) or return;
+ }
+ ask_mntpoint_s($o, $fstab);
+}
+
+#- install_steps::ask_mntpoint_s
+sub ask_mntpoint_s {#-}}}
+ my ($_o, $fstab) = @_;
+
+ #- TODO: set the mntpoints
+
+ my %m; foreach (@$fstab) {
+ my $m = $_->{mntpoint};
+
+ $m && $m =~ m!^/! or next; #- there may be a lot of swaps or "none"
+
+ $m{$m} and die N("Duplicate mount point %s", $m);
+ $m{$m} = 1;
+
+ #- in case the type does not correspond, force it to ext3
+ fs::type::set_fs_type($_, 'ext3') if !isTrueFS($_) && !isOtherAvailableFS($_);
+ }
+ 1;
+}
+
+#- adapted from drakboot
+sub lilo_choice() {
+ do {
+ my $before = fs::fstab_to_string($in->{all_hds});
+ any::setupBootloader($in, $bootloader, $in->{all_hds}, $in->{fstab}, $ENV{SECURE_LEVEL}) or $in->exit;
+ fs::write_fstab($all_hds);
+ } while !any::installBootloader($in, $bootloader, $all_hds);
+}
+
+#- from disdrake::interactive
+{
+ package diskdrake::interactive;
+ sub diskdrake_interactive_Done {
+ my ($in, $all_hds) = @_;
+ eval { raid::verify($all_hds->{raids}) };
+ if (my $err = $@) {
+ $::expert or die;
+ $in->ask_okcancel('', [ formatError($err), N("Continue anyway?") ]) or return;
+ }
+ foreach (@{$all_hds->{hds}}) {
+ if (!write_partitions($in, $_, 'skip_check_rebootNeeded')) {
+ return if !$::isStandalone;
+ $in->ask_yesorno(N("Quit without saving"), N("Quit without writing the partition table?"), 1) or return;
+ }
+ }
+ #- skip that fstab/reboot steps
+ if (!$::isInstall && 0) {
+ my $new = fs::fstab_to_string($all_hds);
+ if ($new ne $all_hds->{current_fstab} && $in->ask_yesorno('', N("Do you want to save /etc/fstab modifications"), 1)) {
+ $all_hds->{current_fstab} = $new;
+ fs::write_fstab($all_hds);
+ }
+ update_bootloader_for_renumbered_partitions($in, $all_hds);
+
+ if (any { $_->{rebootNeeded} } @{$all_hds->{hds}}) {
+ $in->ask_warn('', N("You need to reboot for the partition table modifications to take place"));
+ tell_wm_and_reboot();
+ }
+ }
+ if (my $part = find { $_->{mntpoint} && !maybeFormatted($_) } fs::get::fstab($all_hds)) {
+ $in->ask_okcancel('', N("You should format partition %s.
+Otherwise no entry for mount point %s will be written in fstab.
+Quit anyway?", $part->{device}, $part->{mntpoint})) or return if $::isStandalone&& 0; #- no, please
+ }
+ 1;
+ }
+}
diff --git a/live/draklive-install/draklive-install.desktop b/live/draklive-install/draklive-install.desktop
new file mode 100644
index 000000000..be1c497ac
--- /dev/null
+++ b/live/draklive-install/draklive-install.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=/usr/sbin/live-install
+Icon=MandrivaOne-install-icon
+Terminal=false
+Type=Application
+Name=Install from live system
diff --git a/live/draklive-install/draklive-install.spec b/live/draklive-install/draklive-install.spec
new file mode 100644
index 000000000..b658fd2a9
--- /dev/null
+++ b/live/draklive-install/draklive-install.spec
@@ -0,0 +1,69 @@
+%define name draklive-install
+%define version 0.1
+%define release %mkrel 1
+%define iconname MandrivaOne-install-icon.png
+%define imgname MandrivaOne-install.png
+
+Summary: Live installer
+Name: %{name}
+Version: %{version}
+Release: %{release}
+Source0: %{name}-%{version}.tar.bz2
+License: GPL
+Group: System/Configuration/Other
+Url: http://qa.mandriva.com/twiki/bin/view/Main/DrakLive
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+BuildArch: noarch
+
+%description
+This tool allows to install Mandriva from a running live system.
+
+%prep
+%setup -q
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+for d in %_datadir/nautilus/default-desktop %_datadir/apps/kdesktop/DesktopLinks; do
+ install -D -m 0644 %name.desktop %buildroot/$d/%name.desktop
+done
+install -D -m 0755 %name %buildroot/%_datadir/%name/%name
+install -m 0644 install_interactive.pm %buildroot/%_datadir/%name
+
+install -d -m 0755 %buildroot/%_sbindir
+cat > %buildroot/%_sbindir/%name <<EOF
+#!/bin/sh
+cd %_datadir/%name
+./%name
+EOF
+chmod 0755 %buildroot/%_sbindir/%name
+
+mkdir -p %buildroot{%_miconsdir,%_iconsdir,%_liconsdir,%_menudir,%_datadir/libDrakX/pixmaps/}
+install theme/IC-installone-48.png %buildroot%_liconsdir/%iconname
+install theme/IC-installone-32.png %buildroot%_iconsdir/%iconname
+install theme/IC-installone-32.png %buildroot%_miconsdir/%iconname
+install theme/IM-INSTALLCDONE2.png %buildroot%_datadir/libDrakX/pixmaps/%imgname
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+%update_menus
+
+%postun
+%clean_menus
+
+%files
+%defattr(-,root,root)
+%_sbindir/%name
+%_datadir/%name
+%_datadir/apps/kdesktop/DesktopLinks/*.desktop
+%_datadir/nautilus/default-desktop/*.desktop
+%_iconsdir/%iconname
+%_liconsdir/%iconname
+%_miconsdir/%iconname
+%_datadir/libDrakX/pixmaps/%imgname
+
+%changelog
+* Fri Dec 16 2005 Olivier Blin <oblin@mandriva.com> 0.1-1mdk
+- initial release
diff --git a/live/draklive-install/install_interactive.pm b/live/draklive-install/install_interactive.pm
new file mode 100644
index 000000000..738739a55
--- /dev/null
+++ b/live/draklive-install/install_interactive.pm
@@ -0,0 +1,299 @@
+package install_interactive; # $Id$
+
+use diagnostics;
+use strict;
+
+use common;
+use partition_table;
+use partition_table::raw;
+use fs::type;
+use detect_devices;
+use install_steps;
+use install_any;
+use devices;
+use fsedit;
+use log;
+
+
+sub tellAboutProprietaryModules {
+ my ($o) = @_;
+ my @l = detect_devices::probe_name('Bad') or return;
+ $o->ask_warn('', formatAlaTeX(
+N("Some hardware on your computer needs ``proprietary'' drivers to work.
+You can find some information about them at: %s", join(", ", @l))));
+}
+
+#- unit of $mb is mega bytes, min and max are in sectors, this
+#- function is used to convert back to sectors count the size of
+#- a partition ($mb) given from the interface (on Resize or Create).
+#- modified to take into account a true bounding with min and max.
+sub from_Mb {
+ my ($mb, $min, $max) = @_;
+ $mb <= $min >> 11 and return $min;
+ $mb >= $max >> 11 and return $max;
+ $mb * 2048;
+}
+
+sub partition_with_diskdrake {
+ my ($o, $all_hds, $nowizard) = @_;
+ my $ok;
+
+ do {
+ $ok = 1;
+ my $do_force_reload = sub {
+ $o->{all_hds} = fs::get::empty_all_hds();
+ install_any::getHds($o, $o);
+ $all_hds = $o->{all_hds};
+ $o->{all_hds};
+ };
+ require diskdrake::interactive;
+ {
+ local $::expert = $::expert;
+ diskdrake::interactive::main($o, $all_hds, $nowizard, $do_force_reload, $o->interactive_help_sub_display_id('partition_with_diskdrake'));
+ }
+ if (delete $o->{wizard}) {
+ partitionWizard($o, 'nodiskdrake') or redo;
+ return 1;
+ }
+ my @fstab = fs::get::fstab($all_hds);
+
+ unless (fs::get::root_(\@fstab)) {
+ $ok = 0;
+ $o->ask_okcancel('', N("You must have a root partition.
+For this, create a partition (or click on an existing one).
+Then choose action ``Mount point'' and set it to `/'"), 1) or return;
+ }
+ if (!any { isSwap($_) } @fstab) {
+ $ok &&= $o->ask_okcancel('', N("You do not have a swap partition.\n\nContinue anyway?"));
+ }
+ if (arch() =~ /ia64/ && !fs::get::has_mntpoint("/boot/efi", $all_hds)) {
+ $o->ask_warn('', N("You must have a FAT partition mounted in /boot/efi"));
+ $ok = '';
+ }
+ } until $ok;
+ 1;
+}
+
+sub partitionWizardSolutions {
+ my ($o, $all_hds) = @_;
+ my $hds = $all_hds->{hds};
+ my $fstab = [ fs::get::fstab($all_hds) ];
+ my @wizlog;
+ my (%solutions);
+
+ my $min_linux = 400 << 11;
+ my $max_linux = 2000 << 11;
+ my $min_swap = 50 << 11;
+ my $max_swap = 300 << 11;
+ my $min_freewin = 100 << 11;
+
+ # each solution is a [ score, text, function ], where the function retunrs true if succeeded
+
+ my @hds_rw = grep { !$_->{readonly} } @$hds;
+ my @hds_can_add = grep { $_->can_raw_add } @hds_rw;
+ if (fs::get::hds_free_space(@hds_can_add) > $min_linux) {
+ $solutions{free_space} = [ 20, N("Use free space"), sub { fsedit::auto_allocate($all_hds, $o->{partitions}); 1 } ];
+ } else {
+ push @wizlog, N("Not enough free space to allocate new partitions") . ": " .
+ (@hds_can_add ?
+ fs::get::hds_free_space(@hds_can_add) . " < $min_linux" :
+ "no harddrive on which partitions can be added");
+ }
+
+ if (my @truefs = grep { isTrueLocalFS($_) } @$fstab) {
+ #- value twice the ext2 partitions
+ $solutions{existing_part} = [ 6 + @truefs + @$fstab, N("Use existing partitions"), sub { $o->ask_mntpoint_s($fstab) } ];
+ } else {
+ push @wizlog, N("There is no existing partition to use");
+ }
+
+ my @fats = grep { $_->{fs_type} eq 'vfat' } @$fstab;
+ fs::df($_) foreach @fats;
+ if (my @ok_forloopback = sort { $b->{free} <=> $a->{free} } grep { $_->{free} > $min_linux + $min_swap + $min_freewin } @fats) {
+ $solutions{loopback} =
+ [ -10 - @fats, N("Use the Windows partition for loopback"),
+ sub {
+ my ($s_root, $s_swap);
+ my $part = $o->ask_from_listf('', N("Which partition do you want to use for Linux4Win?"), \&partition_table::description, \@ok_forloopback) or return;
+ $max_swap = $min_swap + 1 if $part->{free} - $max_swap < $min_linux;
+ $o->ask_from('', N("Choose the sizes"), [
+ { label => N("Root partition size in MB: "), val => \$s_root, min => $min_linux >> 11, max => min($part->{free} - $max_swap, $max_linux) >> 11, type => 'range' },
+ { label => N("Swap partition size in MB: "), val => \$s_swap, min => $min_swap >> 11, max => $max_swap >> 11, type => 'range' },
+ ]) or return;
+ push @{$part->{loopback}},
+ { fs_type => 'ext3', loopback_file => '/lnx4win/linuxsys.img', mntpoint => '/', size => $s_root << 11, loopback_device => $part, notFormatted => 1 },
+ { fs_type => 'swap', loopback_file => '/lnx4win/swapfile', mntpoint => 'swap', size => $s_swap << 11, loopback_device => $part, notFormatted => 1 };
+ fsedit::recompute_loopbacks($all_hds);
+ 1;
+ } ];
+ } else {
+ push @wizlog, N("There is no FAT partition to use as loopback (or not enough space left)") .
+ (@fats ? "\nFAT partitions:" . join('', map { "\n $_->{device} $_->{free} (" . ($min_linux + $min_swap + $min_freewin) . ")" } @fats) : '');
+ }
+
+
+ if (my @ok_for_resize_fat = grep { isFat_or_NTFS($_) && !fs::get::part2hd($_, $all_hds)->{readonly} } @$fstab) {
+ $solutions{resize_fat} =
+ [ 6 - @ok_for_resize_fat, N("Use the free space on the Windows partition"),
+ sub {
+ my $part = $o->ask_from_listf_raw({ messages => N("Which partition do you want to resize?"),
+ interactive_help_id => 'resizeFATChoose',
+ }, \&partition_table::description, \@ok_for_resize_fat) or return;
+ my $hd = fs::get::part2hd($part, $all_hds);
+ my $resize_fat = eval {
+ my $pkg = $part->{fs_type} eq 'vfat' ? do {
+ require resize_fat::main;
+ 'resize_fat::main';
+ } : do {
+ require diskdrake::resize_ntfs;
+ 'diskdrake::resize_ntfs';
+ };
+ $pkg->new($part->{device}, devices::make($part->{device}));
+ };
+ $@ and die N("The FAT resizer is unable to handle your partition,
+the following error occurred: %s", formatError($@));
+ my $min_win = do {
+ my $_w = $o->wait_message(N("Resizing"), N("Computing the size of the Windows partition"));
+ $resize_fat->min_size;
+ };
+ #- make sure that even after normalizing the size to cylinder boundaries, the minimun will be saved,
+ #- this save at least a cylinder (less than 8Mb).
+ $min_win += partition_table::raw::cylinder_size($hd);
+
+ $part->{size} > $min_linux + $min_swap + $min_freewin + $min_win or die N("Your Windows partition is too fragmented. Please reboot your computer under Windows, run the ``defrag'' utility, then restart the Mandriva Linux installation.");
+ $o->ask_okcancel('', formatAlaTeX(
+ #-PO: keep the double empty lines between sections, this is formatted a la LaTeX
+ N("WARNING!
+
+DrakX will now resize your Windows partition. Be careful: this
+operation is dangerous. If you have not already done so, you
+first need to exit the installation, run \"chkdsk c:\" from a
+Command Prompt under Windows (beware, running graphical program
+\"scandisk\" is not enough, be sure to use \"chkdsk\" in a
+Command Prompt!), optionally run defrag, then restart the
+installation. You should also backup your data.
+When sure, press Ok."))) or return;
+
+ my $mb_size = $part->{size} >> 11;
+ $o->ask_from('', N("Which size do you want to keep for Windows on"), [
+ { label => N("partition %s", partition_table::description($part)), val => \$mb_size, min => $min_win >> 11, max => ($part->{size} - $min_linux - $min_swap) >> 11, type => 'range' },
+ ]) or return;
+
+ my $oldsize = $part->{size};
+ $part->{size} = from_Mb($mb_size, $min_win, $part->{size});
+
+ $hd->adjustEnd($part);
+
+ eval {
+ my $_w = $o->wait_message(N("Resizing"), N("Resizing Windows partition"));
+ $resize_fat->resize($part->{size});
+ };
+ if (my $err = $@) {
+ $part->{size} = $oldsize;
+ die N("FAT resizing failed: %s", formatError($err));
+ }
+
+ $o->ask_warn('', N("To ensure data integrity after resizing the partition(s),
+filesystem checks will be run on your next boot into Windows(TM)")) if $part->{fs_type} ne 'vfat';
+
+ set_isFormatted($part, 1);
+ partition_table::will_tell_kernel($hd, resize => $part); #- down-sizing, write_partitions is not needed
+ partition_table::adjust_local_extended($hd, $part);
+ partition_table::adjust_main_extended($hd);
+
+ fsedit::auto_allocate($all_hds, $o->{partitions});
+ 1;
+ } ];
+ } else {
+ push @wizlog, N("There is no FAT partition to resize (or not enough space left)");
+ }
+
+ if (@$fstab && @hds_rw) {
+ $solutions{wipe_drive} =
+ [ 10, fsedit::is_one_big_fat_or_NT($hds) ? N("Remove Windows(TM)") : N("Erase and use entire disk"),
+ sub {
+ my $hd = $o->ask_from_listf_raw({ messages => N("You have more than one hard drive, which one do you install linux on?"),
+ interactive_help_id => 'takeOverHdChoose',
+ },
+ \&partition_table::description, \@hds_rw) or return;
+ $o->ask_okcancel_({ messages => N("ALL existing partitions and their data will be lost on drive %s", partition_table::description($hd)),
+ interactive_help_id => 'takeOverHdConfirm' }) or return;
+ partition_table::raw::zero_MBR($hd);
+ fsedit::auto_allocate($all_hds, $o->{partitions});
+ 1;
+ } ];
+ }
+
+ if (@hds_rw) {
+ $solutions{diskdrake} = [ 0, N("Custom disk partitioning"), sub { partition_with_diskdrake($o, $all_hds, 'nowizard') } ];
+ }
+
+ $solutions{fdisk} =
+ [ -10, N("Use fdisk"), sub {
+ $o->enter_console;
+ foreach (@$hds) {
+ print "\n" x 10, N("You can now partition %s.
+When you are done, do not forget to save using `w'", partition_table::description($_));
+ print "\n\n";
+ my $pid = 0;
+ if (arch() =~ /ppc/) {
+ $pid = fork() or exec "pdisk", devices::make($_->{device});
+ } else {
+ $pid = fork() or exec "fdisk", devices::make($_->{device});
+ }
+ waitpid($pid, 0);
+ }
+ $o->leave_console;
+ 0;
+ } ] if $o->{partitioning}{fdisk};
+
+ log::l("partitioning wizard log:\n", (map { ">>wizlog>>$_\n" } @wizlog));
+ %solutions;
+}
+
+sub partitionWizard {
+ my ($o, $b_nodiskdrake) = @_;
+
+ my %solutions = partitionWizardSolutions($o, $o->{all_hds});
+
+ delete $solutions{diskdrake} if $b_nodiskdrake;
+
+ my @solutions = sort { $b->[0] <=> $a->[0] } values %solutions;
+
+ my $level = $::expert ? -9999 : 0;
+ my @sol = grep { $_->[0] >= $level } @solutions;
+
+ log::l('' . "solutions found: " . join('', map { $_->[1] } @sol) .
+ " (all solutions found: " . join('', map { $_->[1] } @solutions) . ")");
+
+ @solutions = @sol if @sol > 1;
+ log::l("solutions: ", int @solutions);
+ @solutions or $o->ask_warn('', N("I can not find any room for installing")), die 'already displayed';
+
+ log::l('HERE: ', join(',', map { $_->[1] } @solutions));
+ my $sol;
+ $o->ask_from_({ messages => N("The DrakX Partitioning wizard found the following solutions:"),
+ interactive_help_id => 'doPartitionDisks',
+ },
+ [ { val => \$sol, list => \@solutions, format => sub { $_[0][1] }, type => 'list' } ]);
+ log::l("partitionWizard calling solution $sol->[1]");
+ my $ok = eval { $sol->[2]->() };
+ $@ and $o->ask_warn('', N("Partitioning failed: %s", formatError($@)));
+ $ok or goto &partitionWizard;
+ 1;
+}
+
+sub upNetwork {
+ my ($o, $b_pppAvoided) = @_;
+ my $_w = $o->wait_message('', N("Bringing up the network"));
+ install_steps::upNetwork($o, $b_pppAvoided);
+}
+sub downNetwork {
+ my ($o, $b_pppOnly) = @_;
+ my $_w = $o->wait_message('', N("Bringing down the network"));
+ install_steps::downNetwork($o, $b_pppOnly);
+}
+
+
+
+1;
diff --git a/live/draklive-install/theme/IC-installone-128.png b/live/draklive-install/theme/IC-installone-128.png
new file mode 100644
index 000000000..10ff11fc7
--- /dev/null
+++ b/live/draklive-install/theme/IC-installone-128.png
Binary files differ
diff --git a/live/draklive-install/theme/IC-installone-16.png b/live/draklive-install/theme/IC-installone-16.png
new file mode 100644
index 000000000..f96fc005d
--- /dev/null
+++ b/live/draklive-install/theme/IC-installone-16.png
Binary files differ
diff --git a/live/draklive-install/theme/IC-installone-24.png b/live/draklive-install/theme/IC-installone-24.png
new file mode 100644
index 000000000..a25723fc1
--- /dev/null
+++ b/live/draklive-install/theme/IC-installone-24.png
Binary files differ
diff --git a/live/draklive-install/theme/IC-installone-32.png b/live/draklive-install/theme/IC-installone-32.png
new file mode 100644
index 000000000..764431a90
--- /dev/null
+++ b/live/draklive-install/theme/IC-installone-32.png
Binary files differ
diff --git a/live/draklive-install/theme/IC-installone-48.png b/live/draklive-install/theme/IC-installone-48.png
new file mode 100644
index 000000000..a56e58b91
--- /dev/null
+++ b/live/draklive-install/theme/IC-installone-48.png
Binary files differ
diff --git a/live/draklive-install/theme/IC-installone-64.png b/live/draklive-install/theme/IC-installone-64.png
new file mode 100644
index 000000000..0a578631f
--- /dev/null
+++ b/live/draklive-install/theme/IC-installone-64.png
Binary files differ
diff --git a/live/draklive-install/theme/IM-INSTALLCDONE.png b/live/draklive-install/theme/IM-INSTALLCDONE.png
new file mode 100644
index 000000000..b97d90213
--- /dev/null
+++ b/live/draklive-install/theme/IM-INSTALLCDONE.png
Binary files differ
diff --git a/live/draklive-install/theme/IM-INSTALLCDONE2.png b/live/draklive-install/theme/IM-INSTALLCDONE2.png
new file mode 100644
index 000000000..d6313f079
--- /dev/null
+++ b/live/draklive-install/theme/IM-INSTALLCDONE2.png
Binary files differ