From bb6492e7bf3b348808cc2102c840fc91a3bff7b0 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Thu, 6 Jan 2000 22:48:08 +0000 Subject: no_comment --- perl-install/Xconfigurator.pm | 7 +++++-- perl-install/Xconfigurator_consts.pm | 3 +++ perl-install/common.pm | 2 +- perl-install/fs.pm | 2 +- perl-install/install2.pm | 2 +- perl-install/install_any.pm | 5 +++-- perl-install/install_steps.pm | 8 +++++++- perl-install/install_steps_gtk.pm | 2 +- perl-install/install_steps_interactive.pm | 15 ++++++++++++--- perl-install/interactive.pm | 1 + perl-install/keyboard.pm | 27 ++++++++++++++++----------- perl-install/lang.pm | 4 ++-- perl-install/network.pm | 2 +- perl-install/pkgs.pm | 9 ++++----- perl-install/standalone/mousedrake | 4 ++-- perl-install/timezone.pm | 4 +++- 16 files changed, 63 insertions(+), 34 deletions(-) (limited to 'perl-install') diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm index 733fc9de9..3eb4f470b 100644 --- a/perl-install/Xconfigurator.pm +++ b/perl-install/Xconfigurator.pm @@ -2,7 +2,7 @@ package Xconfigurator; use diagnostics; use strict; -use vars qw($in $install $isLaptop $resolution_wanted @window_managers @depths @monitorSize2resolution @hsyncranges %min_hsync4wres @vsyncranges %depths @resolutions %serversdriver @svgaservers @accelservers @allbutfbservers @allservers %vgamodes %videomemory @ramdac_name @ramdac_id @clockchip_name @clockchip_id %keymap_translate %standard_monitors $intro_text $finalcomment_text $s3_comment $cirrus_comment $probeonlywarning_text $monitorintro_text $hsyncintro_text $vsyncintro_text $XF86firstchunk_text $keyboardsection_start $keyboardsection_part2 $keyboardsection_end $pointersection_text1 $pointersection_text2 $monitorsection_text1 $monitorsection_text2 $monitorsection_text3 $monitorsection_text4 $modelines_text_Trident_TG_96xx $modelines_text $devicesection_text $screensection_text1 %lines @options %xkb_options); +use vars qw($in $install $isLaptop $resolution_wanted @window_managers @depths @monitorSize2resolution @hsyncranges %min_hsync4wres @vsyncranges %depths @resolutions %serversdriver @svgaservers @accelservers @allbutfbservers @allservers %vgamodes %videomemory @ramdac_name @ramdac_id @clockchip_name @clockchip_id %keymap_translate %standard_monitors $intro_text $finalcomment_text $s3_comment $cirrus_comment $probeonlywarning_text $monitorintro_text $hsyncintro_text $vsyncintro_text $XF86firstchunk_text $keyboardsection_start $keyboardsection_part2 $keyboardsection_part3 $keyboardsection_end $pointersection_text1 $pointersection_text2 $monitorsection_text1 $monitorsection_text2 $monitorsection_text3 $monitorsection_text4 $modelines_text_Trident_TG_96xx $modelines_text $devicesection_text $screensection_text1 %lines @options %xkb_options $default_monitor); use pci_probing::main; use common qw(:common :file :functional :system); @@ -218,7 +218,7 @@ sub monitorConfiguration(;$$) { readMonitorsDB(-e "MonitorsDB" ? "MonitorsDB" : "/usr/X11R6/lib/X11/MonitorsDB"); - add2hash($monitor, { type => $in->ask_from_list(_("Monitor"), _("Choose a monitor"), ['Unlisted', keys %monitors]) }) unless $monitor->{type}; + add2hash($monitor, { type => $in->ask_from_list(_("Monitor"), _("Choose a monitor"), ['Unlisted', keys %monitors], ' ' . translate($default_monitor)) }) unless $monitor->{type}; if ($monitor->{type} eq 'Unlisted') { $in->ask_from_entries_ref('', _("The two critical parameters are the vertical refresh rate, which is the rate @@ -341,6 +341,7 @@ sub testFinalConfig($;$$) { use my_gtk qw(:wrappers); $ENV{DISPLAY} = ":9"; + gtkset_mousecursor(68); gtkset_background(200 * 256, 210 * 256, 210 * 256); my ($h, $w) = Gtk::Gdk::Window->new_foreign(Gtk::Gdk->ROOT_WINDOW)->get_size; @@ -600,6 +601,8 @@ sub write_XF86Config { print F " RightAlt ", ($O->{altmeta} ? "ModeShift" : "Meta"), "\n"; print F $keyboardsection_part2; + print F " XkbDisable\n" unless $O->{xkb_keymap}; + print F $keyboardsection_part3; print F qq( XkbLayout "$O->{xkb_keymap}"\n); print F join '', map { " $_\n" } @{$xkb_options{$O->{xkb_keymap}} || []}; print F $keyboardsection_end; diff --git a/perl-install/Xconfigurator_consts.pm b/perl-install/Xconfigurator_consts.pm index 6ec58f536..419529f40 100644 --- a/perl-install/Xconfigurator_consts.pm +++ b/perl-install/Xconfigurator_consts.pm @@ -102,6 +102,7 @@ $resolution_wanted = "1024x768"; __("16 MB or more") => 16384, ); +$default_monitor = "High Frequency SVGA, 1024x768 at 70 Hz"; %standard_monitors = ( __("Standard VGA, 640x480 at 60 Hz") => [ '640x480@60', "31.5" , "60" ], __("Standard VGA, 640x480 at 60 Hz") => [ '640x480@60', "31.5" , "60" ], @@ -537,7 +538,9 @@ $keyboardsection_part2 = ' # To disable the XKEYBOARD extension, uncomment XkbDisable. # XkbDisable +'; +$keyboardsection_part3 = ' # To customise the XKB settings to suit your keyboard, modify the # lines below (which are the defaults). For example, for a non-U.S. # keyboard, you will probably want to use: diff --git a/perl-install/common.pm b/perl-install/common.pm index 13d7c1d20..9f7117254 100644 --- a/perl-install/common.pm +++ b/perl-install/common.pm @@ -249,7 +249,7 @@ sub unmakedev { $_[0] >> 8, $_[0] & 0xff } sub translate { my ($s) = @_; - my ($lang) = $ENV{LANGUAGE} || $ENV{LC_MESSAGES} || $ENV{LC_ALL} || $ENV{LANG} || 'en'; + my ($lang) = $ENV{LANG} || $ENV{LANGUAGE} || $ENV{LC_MESSAGES} || $ENV{LC_ALL} || 'en'; require lang; foreach (split ':', $lang) { diff --git a/perl-install/fs.pm b/perl-install/fs.pm index 5493d3dbe..055347234 100644 --- a/perl-install/fs.pm +++ b/perl-install/fs.pm @@ -214,7 +214,7 @@ sub write($$$$) { my $i = $::i ? $::i + 1 : ''; mkdir "$prefix/mnt/cdrom$i", 0755;#- or log::l("failed to mkdir $prefix/mnt/cdrom$i: $!"); symlinkf $_->{device}, "$prefix/dev/cdrom$i" or log::l("failed to symlink $prefix/dev/cdrom$i: $!"); - chown 0, 12, "$prefix/dev/$_->{device}"; + chown 0, 22, "$prefix/dev/$_->{device}"; $useSupermount ? [ "/mnt/cdrom$i", "/mnt/cdrom$i", "supermount", "fs=iso9660,dev=/dev/cdrom$i", 0, 0 ] : [ "/dev/cdrom$i", "/mnt/cdrom$i", "auto", "user,noauto,nosuid,exec,nodev,ro", 0, 0 ]; diff --git a/perl-install/install2.pm b/perl-install/install2.pm index 464024e68..6c51df1c4 100644 --- a/perl-install/install2.pm +++ b/perl-install/install2.pm @@ -60,7 +60,7 @@ my (%installSteps, @orderedInstallSteps); addUser => [ __("Add a user"), 1, 1, '', "doInstallStep" ], createBootdisk => [ __("Create a bootdisk"), 1, 0, '', "doInstallStep" ], setupBootloader => [ __("Install bootloader"), 1, 1, '', "doInstallStep" ], - configureX => [ __("Configure X"), 1, 0, '', ["formatPartitions", "setupBootloader"] ], + configureX => [ __("Configure X"), 1, 0, ''],#, ["formatPartitions", "setupBootloader"] ], exitInstall => [ __("Exit install"), 0, 0, 'beginner' ], ); for (my $i = 0; $i < @installSteps; $i += 2) { diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index ccc8343f1..8c41424cb 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -109,8 +109,9 @@ sub getAvailableSpace { do { $_->{mntpoint} eq '/' and return int($_->{size} * 512 / 1.07) } foreach @{$o->{fstab}}; if ($::testing) { - log::l("taking 200MB for testing"); - return 2000 << 20; + my $nb = 350; + log::l("taking ${nb}MB for testing"); + return $nb << 20; } die "missing root partition"; } diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm index 7d93a6bd6..e6fac8319 100644 --- a/perl-install/install_steps.pm +++ b/perl-install/install_steps.pm @@ -377,6 +377,7 @@ sub installCrypto { my $u = $o->{crypto} or return; $u->{mirror} or return; my ($packages, %done); my $dir = "$o->{prefix}/tmp"; + modules::write_conf("$o->{prefix}/etc/conf.modules", 'append'); network::up_it($o->{prefix}, $o->{intf}) if $o->{intf}; local *install_any::getFile = sub { @@ -578,7 +579,12 @@ sub setupBootloader($) { #------------------------------------------------------------------------------ sub setupXfreeBefore { my ($o) = @_; - $o->{X}{keyboard}{xkb_keymap} ||= keyboard::keyboard2xkb($o->{keyboard}); + my $xkb = $o->{X}{keyboard}{xkb_keymap} || keyboard::keyboard2xkb($o->{keyboard}); + unless (-e "$o->{prefix}/usr/X11R6/lib/X11/xkb/symbols/$xkb") { + commands::cp("-f", keyboard::xmodmap_file($o->{keyboard}), "$o->{prefix}/etc/X11/xinit/Xmodmap"); + $xkb = ''; + } + $o->{X}{keyboard}{xkb_keymap} = $xkb; $o->{X}{mouse} = $o->{mouse}; $o->{X}{wacom} = $o->{wacom}; diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index 8aab6a083..eb6741b9c 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -304,7 +304,7 @@ sub chooseSizeToInstall { my ($o, $packages, $min_size, $max_size) = @_; my ($min, $max) = map { pkgs::correctSize($_ / sqr(1024)) } $min_size, $max_size; my $w = my_gtk->new(''); - my $adj = create_adjustment($max, $min, $max); + my $adj = create_adjustment($max, $min, $max * 0.9); my $spin = gtkset_usize(new Gtk::SpinButton($adj, 0, 0), 100, 0); gtkadd($w->{window}, diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm index 6878b828e..05ef8b6d7 100644 --- a/perl-install/install_steps_interactive.pm +++ b/perl-install/install_steps_interactive.pm @@ -202,7 +202,7 @@ sub choosePartitionsToFormat($$) { log::l("preparing to format $_->{mntpoint}") foreach grep { $_->{toFormat} } @l; my %label; - $label{$_} = (isSwap($_) ? type2name($_->{type}) : $_->{mntpoint}) . " ($_->{device})" foreach @l; + $label{$_} = (isSwap($_) ? type2name($_->{type}) : $_->{mntpoint}) . " ($_->{device})" foreach @l; $o->ask_many_from_list_ref('', _("Choose the partitions you want to format"), [ map { $label{$_} } @l ], @@ -257,16 +257,22 @@ sub choosePackages { $o->chooseGroups($packages, $compssUsers, $compssUsersSorted) unless $::beginner; my %save_selected; $save_selected{$_->{name}} = $_->{selected} foreach values %$packages; - pkgs::setSelectedFromCompssList($o->{compssListLevels}, $packages, 1, $available, $o->{installClass}); + pkgs::setSelectedFromCompssList($o->{compssListLevels}, $packages, 1, 0, $o->{installClass}); my $max_size = pkgs::size_selected($packages); $_->{selected} = $save_selected{$_->{name}} foreach values %$packages; + if (!$::beginner && $max_size > $available) { + $o->ask_okcancel('', +_("You need %dMB for a full install of the groups you selected. +You can go on anyway, but be warned that you won't get all packages", $max_size / sqr(1024)), 1) or goto &choosePackages + } + my $size2install = $::beginner ? $available * 0.7 : $o->chooseSizeToInstall($packages, $min_size, $max_size) or goto &choosePackages; ($o->{packages_}{ind}) = pkgs::setSelectedFromCompssList($o->{compssListLevels}, $packages, 1, $size2install, $o->{installClass}); -# $_->{selected} and log::l("$_->{name}") foreach values %$packages; +# $_->{selected} and print "$_->{name}\n" foreach values %$packages; } $o->choosePackagesTree($packages, $compss) if $::expert; } @@ -899,9 +905,12 @@ sub setupXfree { local $::noauto = $::expert && !$o->ask_yesorno('', _("Try to find PCI devices?"), 1); $::noauto = $::noauto; #- no warning + symlink "$o->{prefix}/etc/gtk", "/etc/gtk"; + Xconfigurator::main($o->{prefix}, $o->{X}, $o, $o->{allowFB}, bool($o->{pcmcia}), sub { install_any::pkg_install($o, "XFree86-$_[0]"); }); + unlink "/etc/gtk"; } $o->setupXfreeAfter; } diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm index 300f64db2..4e1f9662b 100644 --- a/perl-install/interactive.pm +++ b/perl-install/interactive.pm @@ -114,6 +114,7 @@ sub ask_from_list2($$$$;$) { } sub ask_many_from_list_ref($$$$;$) { my ($o, $title, $message, $l, $val) = @_; + return 1 if @$l == 0; $o->ask_many_from_list_refW($title, [ deref($message) ], $l, $val); } sub ask_many_from_list($$$$;$) { diff --git a/perl-install/keyboard.pm b/perl-install/keyboard.pm index e2ec63aad..16fe92369 100644 --- a/perl-install/keyboard.pm +++ b/perl-install/keyboard.pm @@ -108,13 +108,13 @@ my %keyboards = ( "is" => [ __("Icelandic"), "is-latin1", "is" ], "it" => [ __("Italian"), "it-latin1", "it" ], "la" => [ __("Latin American"), "la-latin1", "la" ], -#- FIXME: [3] should be "nl", but current XFree86 does not have it yet - "nl" => [ __("Dutch"), "nl-latin1", "uk" ], + "nl" => [ __("Dutch"), "nl-latin1", "nl" ], "lt" => [ __("Lithuanian AZERTY"), "lt-latin7","lt" ], "lt_b" => [ __("Lithuanian \"number row\" QWERTY"), "ltb-latin7", "lt_b" ], "lt_p" => [ __("Lithuanian \"phonetic\" QWERTY"), "ltp-latin7", "lt_p" ], "no" => [ __("Norwegian"), "no-latin1", "no" ], - "pl" => [ __("Polish"), "pl-latin2", "pl" ], + "pl" => [ __("Polish (qwerty layout)"), "pl", "pl" ], + "pl2" => [ __("Polish (qwertz layout)"), "pl-latin2", "pl" ], "pt" => [ __("Portuguese"), "pt-latin1", "pt" ], "qc" => [ __("Canadian (Quebec)"), "qc-latin1","ca_enhanced" ], "ru" => [ __("Russian"), "ru4", "ru" ], @@ -151,7 +151,7 @@ sub text2keyboard { sub lang2keyboard($) { local ($_) = @_; - $lang2keyboard{$_} || $keyboards{$_} && $_ || substr($_, 0, 2); + $lang2keyboard{$_} || $keyboards{$_} && $_ || "us"; #-substr($_, 0, 2); } sub load($) { @@ -183,6 +183,16 @@ sub load($) { #- log::l("loaded $count keymap tables"); } +sub xmodmap_file { + my ($keyboard) = @_; + my $f = "/usr/share/xmodmap/xmodmap.$keyboard"; + if (! -e $f) { + run_program::run("extract_archive", "/usr/share/xmodmap", '/tmp', "xmodmap.$keyboard"); + $f = "/tmp/xmodmap.$keyboard"; + } + $f; +} + sub setup($) { my ($keyboard) = @_; my $o = $keyboards{$keyboard} or return; @@ -196,13 +206,8 @@ sub setup($) { local $/ = undef; eval { load() }; } - - my $f = "/usr/share/xmodmap/xmodmap.$keyboard"; - if (! -e $f) { - run_program::run("extract_archive", "/usr/share/xmodmap", '/tmp', "xmodmap.$keyboard"); - $f = "/tmp/xmodmap.$keyboard"; - } - eval { run_program::run('xmodmap', $f) } unless $::testing; + my $f = xmodmap_file($keyboard); + eval { run_program::run('xmodmap', $f) } unless $::testing || !$f; } sub write($$;$) { diff --git a/perl-install/lang.pm b/perl-install/lang.pm index 7d8f96052..697fd3ecb 100644 --- a/perl-install/lang.pm +++ b/perl-install/lang.pm @@ -88,7 +88,7 @@ my %languages = ( 'vi_VN.viscii:vi_VN.tcvn-viscii1.1-1:vi' ], 'wa' => [ 'Walon', 'iso-8859-1', 'wa', 'wa:fr_BE:fr' ], 'zh_TW.Big5' => [ 'Chinese (Big5)', 'Big5', 'zh_TW.Big5', 'zh_TW.Big5:zh_TW.big5:zh' ], -'zh_CN' => [ 'Chinese (GuoBiao)', 'gb2312', 'zh_CN', 'zh_CN:zh_CN.GB2312:zh_CN.gb2312:zh' ], +'zh_CN' => [ 'Chinese (GuoBiao)', 'gb2312', 'zh_CN', 'zh_CN:zh_CN.GB2312:zh_CN.gb2312:zh' ], ); my %xim = ( @@ -127,7 +127,7 @@ my %charsets = ( "Big5" => [ undef, undef, undef, "-*-*-*-*-*-*-*-*-*-*-*-*-big5-0" ], "gb2312" => [ undef, undef, undef, - "-isas-song ti-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0" ], + "-*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-0" ], "georgian-academy" => [ "t_geors", "geors.uni", "trivial.trans", "-*-*-*-*-*-*-*-*-*-*-*-*-georgian-academy" ], "georgian-ps" => [ "t_geors", "geors.uni", "geors_to_geops.trans", diff --git a/perl-install/network.pm b/perl-install/network.pm index d441466e1..3422eee4c 100644 --- a/perl-install/network.pm +++ b/perl-install/network.pm @@ -159,7 +159,7 @@ sub resolv($) { my ($name) = @_; is_ip($name) and return $name; my $a = join(".", unpack "C4", (gethostbyname $name)[4]); - log::l("resolved $name in $a"); + #-log::l("resolved $name in $a"); $a; } diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm index 5218364cc..f5ae719d5 100644 --- a/perl-install/pkgs.pm +++ b/perl-install/pkgs.pm @@ -262,10 +262,9 @@ sub readCompssList($$$) { } my %done; - foreach (split ':', $ENV{LANGUAGE}) { - my $locales = "locales-" . substr($_, 0, 2); - my $p = $packages->{$locales} or next; - foreach ($locales, @{$p->{provides} || []}, @{$by_lang{$_} || []}) { + my $locales = "locales-" . substr($ENV{LANG}, 0, 2); + if (my $p = $packages->{$locales}) { + foreach ($locales, @{$p->{provides} || []}, @{$by_lang{$ENV{LANG}} || []}) { next if $done{$_}; $done{$_} = 1; my $p = $packages->{$_} or next; $p->{values} = [ map { $_ + 90 } @{$p->{values} || [ (0) x $nb_values ]} ]; @@ -327,7 +326,7 @@ sub setSelectedFromCompssList { my $nb = 0; foreach (@packages) { $nb += $_->{size} if $_->{selected}; } - if ($nb > $max_size) { + if ($max_size && $nb > $max_size) { unselect($packages, $p); $min_level = $p->{values}[$ind]; last; diff --git a/perl-install/standalone/mousedrake b/perl-install/standalone/mousedrake index 1682295e1..c05ad5d99 100755 --- a/perl-install/standalone/mousedrake +++ b/perl-install/standalone/mousedrake @@ -18,9 +18,9 @@ $::isStandalone = 1; my $in = vnew interactive('su'); -my $mouse = mouse::detect() unless $::noauto; +my $mouse = eval { mouse::detect() } unless $::noauto; -if (!(my $name = $mouse->{FULLNAME}) || !$::auto) { +if (!(my $name = $mouse && $mouse->{FULLNAME}) || !$::auto) { $name ||= "Generic Mouse (serial)"; $name = $in->ask_from_list_('', _("What is the type of your mouse?"), [ mouse::names() ], $name); $mouse = mouse::name2mouse($name); diff --git a/perl-install/timezone.pm b/perl-install/timezone.pm index eb24e8224..0154277ac 100644 --- a/perl-install/timezone.pm +++ b/perl-install/timezone.pm @@ -38,8 +38,9 @@ sub write($$$) { my %l2t = ( 'Brezhoneg (Brittany)' => 'Europe/Paris', -'Chinese (China)' => '', +'Chinese (China)' => 'Asia/Shanghai', 'Danish (Denmark)' => 'Europe/Copenhagen', +'Dutch (Netherlands)' => 'Europe/Amsterdam', 'English (USA)' => 'America/New_York', 'English (UK)' => 'Europe/London', 'Estonian (Estonia)' => 'Europe/Tallinn', @@ -67,6 +68,7 @@ my %l2t = ( 'Portuguese (Portugal)' => 'Europe/Lisbon', 'Romanian (Rumania)' => 'Europe/Bucharest', 'Russian (Russia)' => 'Europe/Moscow', +'Serbian (Serbia)' => 'Europe/Belgrade', 'Slovak (Slovakia)' => 'Europe/Bratislava', 'Spanish (Spain)' => 'Europe/Madrid', 'Swedish (Finland)' => 'Europe/Helsinki', -- cgit v1.2.1