diff options
Diffstat (limited to 'perl-install/modules/any_conf.pm')
| -rw-r--r-- | perl-install/modules/any_conf.pm | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/perl-install/modules/any_conf.pm b/perl-install/modules/any_conf.pm index c6174fd81..3873955b3 100644 --- a/perl-install/modules/any_conf.pm +++ b/perl-install/modules/any_conf.pm @@ -1,17 +1,12 @@ -package modules::any_conf; # $Id$ +package modules::any_conf; # $Id: any_conf.pm 215411 2007-04-25 12:26:16Z pixel $ use log; use common; sub vnew { - if (c::kernel_version() =~ /^\Q2.6/) { - require modules::modprobe_conf; - modules::modprobe_conf->new; - } else { - require modules::modules_conf; - modules::modules_conf->new; - } + require modules::modprobe_conf; + modules::modprobe_conf->new; } @@ -103,10 +98,13 @@ sub remove_alias_regexp_byname { sub remove_module { my ($conf, $module) = @_; + return if !$module; $module = $conf->mapping($module); - substInFile { - undef $_ if /^$module/; - } $_ foreach "$::prefix/etc/modules", "$::prefix/etc/modprobe.preload"; + foreach my $file ("$::prefix/etc/modules", "$::prefix/etc/modprobe.preload") { + substInFile { + undef $_ if /^$module/; + } $file; + } $conf->remove_alias($module); log::explanations("removing module $module"); @@ -128,7 +126,7 @@ sub set_sound_slot { sub read { my (undef, $o_file) = @_; - my $conf = modules::any_conf::vnew(); + my $conf = vnew(); $conf->read($o_file); } @@ -168,14 +166,22 @@ sub write { modules::write_preload_conf($conf); } +sub merge_into { + my ($conf, $conf2) = @_; - + if (ref($conf) eq ref($conf2)) { + log::l("merging " . ref($conf)); + add2hash($conf, $conf2); + } else { + log::l("not merging modules_conf " . ref($conf2) . " into " . ref($conf)); + } +} ################################################################################ sub read_handled { my ($conf, $o_file) = @_; my $file = $o_file || $::prefix . $conf->file; - my $raw_conf = modules::any_conf::read_raw($file); + my $raw_conf = read_raw($file); foreach my $module (keys %$raw_conf) { my $raw = $raw_conf->{$module}; @@ -197,7 +203,9 @@ sub read_raw { s/#.*$//; s/\s+$//; + # Fix upgrade from ALSA < 0.9.0: s/\b(snd-card-)/snd-/g; + # Fix upgrade for unified VIA driver: s/\b(snd-via686|snd-via8233)\b/snd-via82xx/g; my ($type, $module, $val) = split(' ', $_, 3) or next; |
