summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/Xconfigurator.pm7
-rw-r--r--perl-install/Xconfigurator_consts.pm3
-rw-r--r--perl-install/common.pm2
-rw-r--r--perl-install/fs.pm2
-rw-r--r--perl-install/install2.pm2
-rw-r--r--perl-install/install_any.pm5
-rw-r--r--perl-install/install_steps.pm8
-rw-r--r--perl-install/install_steps_gtk.pm2
-rw-r--r--perl-install/install_steps_interactive.pm15
-rw-r--r--perl-install/interactive.pm1
-rw-r--r--perl-install/keyboard.pm27
-rw-r--r--perl-install/lang.pm4
-rw-r--r--perl-install/network.pm2
-rw-r--r--perl-install/pkgs.pm9
-rwxr-xr-xperl-install/standalone/mousedrake4
-rw-r--r--perl-install/timezone.pm4
16 files changed, 63 insertions, 34 deletions
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(<F>) };
}
-
- 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',