summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/patch/patch-nforce.pl35
1 files changed, 35 insertions, 0 deletions
diff --git a/perl-install/patch/patch-nforce.pl b/perl-install/patch/patch-nforce.pl
new file mode 100644
index 000000000..62bee8d42
--- /dev/null
+++ b/perl-install/patch/patch-nforce.pl
@@ -0,0 +1,35 @@
+use install_steps;
+use common;
+
+package install_steps;
+
+my $old_afterInstallPackages = \&afterInstallPackages;
+undef *afterInstallPackages;
+*afterInstallPackages = sub {
+ &$old_afterInstallPackages;
+
+ my ($o) = @_;
+
+ #- workaround nforce stuff.
+ #
+ # modules.pm uses /lib/modules/VERSION/modules*map to know which
+ # sound drivers to use : this'll cause i810_audio to override
+ # nvaudio since it exports the nvforce audio pci ids
+ #
+ # the right solution is to :
+ #
+ # - remove the nforce ids from i810_audio until the oss driver got
+ # fixes implemented in alsa driver for nforce (snd-intel8x0.o)
+ #
+ # - ask nvidia to declare which pci ids they use and export them
+ # for depmod :
+ # MODULE_DEVICE_TABLE (pci, <name_of_the struct pci_device_id variable>);
+
+ foreach (keys %{$o->{packages}{provides}{kernel}}) {
+ my $p = $o->{packages}{depslist}[$_];
+ my ($ext, $version, $release) = $p->name =~ /^kernel-([^\d\-]*)-?([^\-]*)\.([^\-\.]*)$/ or next;
+ -s "$o->{prefix}/lib/modules/$version-$release$ext/kernel/drivers/sound/nvaudio.o.gz" and
+ unlink "$o->{prefix}/lib/modules/$version-$release$ext/kernel/drivers/sound/i810_audio.o.gz";
+ }
+
+};