summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/ChangeLog9
-rw-r--r--perl-install/Xconfigurator.pm5
-rw-r--r--perl-install/install_steps.pm16
-rw-r--r--perl-install/modules.pm38
4 files changed, 43 insertions, 25 deletions
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog
index e83423b33..e5c211df5 100644
--- a/perl-install/ChangeLog
+++ b/perl-install/ChangeLog
@@ -9,6 +9,15 @@
2000-04-28 Pixel <pixel@mandrakesoft.com>
+ * modules.pm (load_raw): don't call commands::insmod, do it in
+ place. Merge with load_multi
+
+ * install_steps.pm (afterInstallPackages): fix windobe ttfonts
+ symlinking
+
+ * Xconfigurator.pm (cardConfiguration): load module agpgart for
+ i810
+
* install_any.pm (getHds): changed the mount point setting for
windows partitions as device_windobe is not unique
diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm
index e7349db66..016344aef 100644
--- a/perl-install/Xconfigurator.pm
+++ b/perl-install/Xconfigurator.pm
@@ -189,6 +189,11 @@ sub cardConfiguration(;$$$) {
_("Select the memory size of your graphic card"),
[ sort { $videomemory{$a} <=> $videomemory{$b} }
keys %videomemory])};
+
+ if (!$::isStandalone && $card->{driver} eq "i810") {
+ require modules;
+ modules::load("agpgart");
+ }
$card;
}
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
index 0d425d209..7adb6c7e2 100644
--- a/perl-install/install_steps.pm
+++ b/perl-install/install_steps.pm
@@ -390,15 +390,13 @@ Consoles 1,3,4,7 may also contain interesting information";
my $hasttf;
my $dest = "$o->{prefix}/usr/X11R6/lib/X11/fonts/drakfont";
- foreach (map { $_->{mntpoint} } grep { isFat($_) } @{$o->{fstab}}) {
- foreach my $d (grep { m|/win|i } glob_("$o->{prefix}$_/*")) {
- $d .= "/fonts";
- -d "$o->{prefix}$d" or next;
- unless ($hasttf) {
- mkdir $dest, 0755;
- $hasttf = 1;
- }
- /(.*)\.ttf/i and symlink "$d/$_", "$dest/$1.ttf" foreach grep { /\.ttf/i } all("$o->{prefix}$d");
+ foreach my $d (map { $_->{mntpoint} } grep { isFat($_) } @{$o->{fstab}}) {
+ foreach my $D (map { "$d/$_" } grep { m|^win|i } all("$o->{prefix}$d")) {
+ $D .= "/fonts";
+ -d "$o->{prefix}$D" or next;
+ log::l("found win font dir $D");
+ $hasttf ||= mkdir $dest, 0755;
+ /(.*)\.ttf/i and symlink "$D/$_", "$dest/$1.ttf" foreach grep { /\.ttf/i } all("$o->{prefix}$D");
}
}
run_program::rooted($o->{prefix}, "ttmkfdir", "-d", $dest, "-o", "$dest/fonts.dir") if $hasttf;
diff --git a/perl-install/modules.pm b/perl-install/modules.pm
index db1c7f415..de85d06d1 100644
--- a/perl-install/modules.pm
+++ b/perl-install/modules.pm
@@ -382,7 +382,7 @@ sub load {
#- $type ||= ($drivers{$name} || { type => 'unknown'})->{type};
eval { load($_, 'prereq') } foreach @{$deps{$name}};
- load_raw($name, @options);
+ load_raw([ $name, @options ]);
}
push @{$loaded{$type}}, $name;
@@ -401,10 +401,7 @@ sub load_multi {
$::testing and log::l("i would install modules @l"), return;
- my $cz = "/lib/modules.cz"; -e $cz or $cz .= "2";
- run_program::run("extract_archive", $cz, "/tmp", map { "$_.o" } @l);
- run_program::run(["insmod_", "insmod"], "-f", "/tmp/$_.o") and $conf{$_}{loaded} = 1 foreach @l;
- unlink map { "/tmp/$_.o" } @l;
+ load_raw(map { [ $_ ] } @l);
}
sub unload($;$) {
@@ -417,22 +414,31 @@ sub unload($;$) {
remove_alias($m) if $remove_alias;
}
-sub load_raw($@) {
- my ($name, @options) = @_;
+sub load_raw {
+ my @l = map { my ($i, @i) = @$_; [ $i, \@i ] } @_;
- run_program::run("insmod", $name, grep { $_ } @options) or die("insmod $name failed");
+ my $cz = "/lib/modules.cz"; -e $cz or $cz .= "2";
+ run_program::run("extract_archive", $cz, "/tmp", map { "$_->[0].o" } @l);
+ my @failed = grep {
+ my $m = "/tmp/$_->[0].o";
+ if (-e $m && run_program::run(["insmod_", "insmod"], "-f", $m, @{$_->[1]})) {
+ unlink $m;
+ $conf{$_->[0]}{loaded} = 1;
+ '';
+ } else {
+ log::l("missing module $_->[0]") unless -e $m;
+ -e $m;
+ }
+ } @l;
#- this is a hack to make plip go
- if ($name eq "parport_pc") {
- foreach (@options) {
- /^irq=(\d+)/ or next;
- log::l("writing to /proc/parport/0/irq");
- local *F;
- open F, "> /proc/parport/0/irq" or last;
- print F $1;
+ foreach (@l) {
+ $_->[0] eq "parport_pc" or next;
+ foreach (@{$_->[1]}) {
+ /^irq=(\d+)/ and eval { output "/proc/parport/0/irq", $1 };
}
}
- $conf{$name}{loaded} = 1;
+ die "insmod'ing modules " . join(", ", @failed) . " failed" if @failed;
}
sub read_already_loaded() {