summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/Makefile6
-rw-r--r--perl-install/install_steps_interactive.pm2
-rw-r--r--perl-install/keyboard.pm1
-rw-r--r--perl-install/modules.pm18
4 files changed, 15 insertions, 12 deletions
diff --git a/perl-install/Makefile b/perl-install/Makefile
index b93caf6b7..cc1991b19 100644
--- a/perl-install/Makefile
+++ b/perl-install/Makefile
@@ -10,7 +10,7 @@ DESTREP4PMS = $(DEST)/usr/bin/perl-install
PERL = perl
LOCALFILES = $(PERL) mouseconfig
DIRS = po pci_probing
-EXCLUDE = $(LOCALFILES) boot.img xmodmap keymaps consolefonts install
+EXCLUDE = $(LOCALFILES) boot.img keymaps consolefonts install
RPMS = $(wildcard $(ROOTDEST)/Mandrake/RPMS/*.rpm)
CFLAGS = -Wall
override CFLAGS += -pipe
@@ -106,6 +106,7 @@ get_needed_files: $(SO_FILES)
install -d $(DEST)/usr/bin
install -d $(DEST)/usr/lib
install -d $(DEST)/usr/share
+ install -d $(DEST)/usr/share/xmodmap
install -d $(ROOTDEST)/Mandrake/base
install -s $(LOCALFILES) $(DEST)/usr/bin
@@ -135,7 +136,8 @@ get_needed_files: $(SO_FILES)
cd /usr/X11R6/lib/X11/fonts/75dpi ; cp -a fonts.* helvR* $(DEST)/usr/X11R6/lib/X11/fonts/75dpi
cd /usr/X11R6/lib/X11/fonts/misc ; cp -a fonts.* cursor.pcf.gz 6x13.pcf.gz $(DEST)/usr/X11R6/lib/X11/fonts/misc
- cp -a xmodmap $(DEST)/usr/share
+ perl -I. -Ic -Ic/blib/arch -Mkeyboard -e 'foreach (keyboard::xmodmaps()) { `cp /usr/share/xmodmap/xmodmap.$$_ $(DEST)/usr/share/xmodmap` }'
+
cp -a keymaps $(DEST)/usr/share
cp -a consolefonts $(DEST)/usr/share
cp MonitorsDB $(DEST)/usr/share
diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm
index e778c6fa3..1138f6c4f 100644
--- a/perl-install/install_steps_interactive.pm
+++ b/perl-install/install_steps_interactive.pm
@@ -427,7 +427,7 @@ sub load_thiskind {
modules::load_thiskind($type, sub {
$w = $o->wait_message('',
[ _("Installing driver for %s card %s", $type, $_->[0]),
- $::beginner ? _("(module %s)", $_->[1]) : ()
+ $::beginner ? () : _("(module %s)", $_->[1])
]);
});
}
diff --git a/perl-install/keyboard.pm b/perl-install/keyboard.pm
index bf49804df..3b53bf194 100644
--- a/perl-install/keyboard.pm
+++ b/perl-install/keyboard.pm
@@ -61,6 +61,7 @@ my %keyboards = (
);
sub list { map { $_->[0] } values %keyboards }
+sub xmodmaps { map { $_->[2] } values %keyboards }
sub keyboard2text { $keyboards{$_[0]} && $keyboards{$_[0]}[0] }
sub text2keyboard {
my ($t) = @_;
diff --git a/perl-install/modules.pm b/perl-install/modules.pm
index 5ca395645..da89bae31 100644
--- a/perl-install/modules.pm
+++ b/perl-install/modules.pm
@@ -11,6 +11,7 @@ use log;
my %conf;
+my $scsi = 0;
my %deps = ();
@@ -242,7 +243,7 @@ sub text2driver($) {
sub load($;$@) {
my ($name, $type, @options) = @_;
- $conf{'scsi_hostadapter' . ($conf{scsi}++ || '')}{alias} = $name
+ $conf{'scsi_hostadapter' . ($scsi++ || '')}{alias} = $name
if $type eq 'scsi';
if ($::testing) {
@@ -301,20 +302,19 @@ sub load_deps($) {
}
}
-sub read_conf {
- my ($file) = @_;
+sub read_conf($;$) {
+ my ($file, $scsi) = @_;
my %c;
- $c{scsi} = 0;
foreach (cat_($file)) {
do {
$c{$2}{$1} = $3;
- $c{scsi} = max($c{scsi}, $1 || 0) if /^\s*alias\s+scsi_hostadapter (\d*)/x;
+ $$scsi = max($$scsi, $1 || 0) if /^\s*alias\s+scsi_hostadapter (\d*)/x && $scsi;
} if /^\s*(\S+)\s+(\S+)\s+(.*?)\s*$/;
}
# cheating here: not handling aliases of aliases
while (my ($k, $v) = each %c) {
- $c{scsi} ||= $v->{scsi_hostadapter};
+ $$scsi ||= $v->{scsi_hostadapter} if $scsi;
if (my $a = $v->{alias}) {
local $c{$a}{alias};
add2hash($c{$a}, $v);
@@ -325,7 +325,7 @@ sub read_conf {
sub write_conf {
my ($file) = @_;
- my %written = read_conf($file);
+ my (undef, %written) = read_conf($file);
local *F;
open F, ">> $file" or die("cannot write module config file $file: $!\n");
@@ -338,7 +338,7 @@ sub write_conf {
}
sub get_stage1_conf {
- %conf = read_conf($_[0]);
+ %conf = read_conf($_[0], \$scsi);
$conf{parport_lowlevel}{alias} ||= "parport_pc";
$conf{pcmcia_core}{"pre-install"} ||= "/etc/rc.d/init.d/pcmcia start";
$conf{plip}{"pre-install"} ||= "modprobe parport_pc ; echo 7 > /proc/parport/0/irq";
@@ -356,7 +356,7 @@ sub load_thiskind($;&) {
$drivers{$mod} or log::l("module $mod not in install table"), next;
log::l("found driver for $mod");
&$f($text, $mod) if $f;
- load($mod);
+ load($mod, $type);
}
@devs;
}