diff options
Diffstat (limited to 'perl-install')
-rw-r--r-- | perl-install/ChangeLog | 9 | ||||
-rw-r--r-- | perl-install/Xconfigurator.pm | 5 | ||||
-rw-r--r-- | perl-install/install_steps.pm | 16 | ||||
-rw-r--r-- | perl-install/modules.pm | 38 |
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() { |