summaryrefslogtreecommitdiffstats
path: root/perl-install/patch/patch-oem-hp.pl
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/patch/patch-oem-hp.pl')
-rw-r--r--perl-install/patch/patch-oem-hp.pl323
1 files changed, 0 insertions, 323 deletions
diff --git a/perl-install/patch/patch-oem-hp.pl b/perl-install/patch/patch-oem-hp.pl
deleted file mode 100644
index 0a5b0b51e..000000000
--- a/perl-install/patch/patch-oem-hp.pl
+++ /dev/null
@@ -1,323 +0,0 @@
-use modules;
-package modules;
-my $old_load_raw = \&load_raw;
-undef *load_raw;
-*load_raw = sub {
- &$old_load_raw;
-
- my @l = map { my ($i, @i) = @$_; [ $i, \@i ] } grep { $_->[0] !~ /ignore/ } @_;
- foreach (@l) {
- if ($_->[0] eq 'ehci-hcd') {
- add_alias('usb-interface1', $_->[0]);
- }
- }
-
- if (get_alias("usb-interface") || get_alias("usb-interface1")) {
- unless (-e "/proc/bus/usb/devices") {
- require fs; fs::mount('/proc/bus/usb', '/proc/bus/usb', 'usbdevfs');
- #- ensure keyboard is working, the kernel must do the job the BIOS was doing
- sleep 4;
- load_multi("usbkbd", "keybdev") if detect_devices::usbKeyboards();
- }
- }
-};
-
-my $old_load = \&load;
-undef *load;
-*load = sub {
- &$old_load;
-
- #- hack to get back usb-interface (even if already loaded by stage1)
- #- NOTE load_multi is not used for that so not overloaded to fix that too.
- if ($_[0] =~ /usb-[uo]hci/ && !get_alias("usb-interface")) {
- add_alias('usb-interface', $_[0]);
- } elsif ($_[0] eq 'ehci-hcd' && !get_alias("usb-interface1")) {
- add_alias('usb-interface1', $_[0]);
- }
-
- if (get_alias("usb-interface") || get_alias("usb-interface1")) {
- unless (-e "/proc/bus/usb/devices") {
- require fs; fs::mount('/proc/bus/usb', '/proc/bus/usb', 'usbdevfs');
- #- ensure keyboard is working, the kernel must do the job the BIOS was doing
- sleep 4;
- load_multi("usbkbd", "keybdev") if detect_devices::usbKeyboards();
- }
- }
-};
-
-#- ensure it is loaded using this patch.
-$::noauto or modules::load_thiskind("usb");
-sleep 2;
-
-use install_steps;
-package install_steps;
-
-my $old_beforeInstallPackages = \&beforeInstallPackages;
-undef *beforeInstallPackages;
-*beforeInstallPackages = sub {
- &$old_beforeInstallPackages;
-
- my ($o) = @_;
- mkdir "$o->{prefix}$_" foreach qw(/boot /usr /usr/share /usr/share/mdk);
- install_any::getAndSaveFile("Mandrake/base/oem-message-graphic", "$o->{prefix}/boot/oem-message-graphic");
- install_any::getAndSaveFile("Mandrake/base/oem-background.png", "$o->{prefix}/usr/share/mdk/oem-background.png");
-};
-
-my $old_afterInstallPackages = \&afterInstallPackages;
-undef *afterInstallPackages;
-*afterInstallPackages = sub {
- &$old_afterInstallPackages;
-
- my ($o) = @_;
-
- #- lilo image.
- rename "$o->{prefix}/boot/lilo-graphic/message", "$o->{prefix}/boot/lilo-graphic/message.orig";
- system "chroot", $o->{prefix}, "cp", "-f", "/boot/oem-message-graphic", "/boot/lilo-graphic/message";
-
- #- KDE desktop background.
- if (-e "$o->{prefix}/usr/share/config/kdesktoprc") {
- update_gnomekderc("$o->{prefix}/usr/share/config/kdesktoprc", "Desktop0",
- MultiWallpaperMode => "NoMulti",
- Wallpaper => "/usr/share/mdk/oem-background.png",
- WallpaperMode => "Scaled",
- );
- }
- #- GNOME desktop background.
- if (-e "$o->{prefix}/etc/gnome/config/Background") {
- update_gnomekderc("$o->{prefix}/etc/gnome/config/Background", "Default",
- wallpaper => "/usr/share/mdk/oem-background.png",
- wallpaperAlign => "3",
- );
- }
-
- #- make sure no error can be forwarded, test staroffice installed and OpenOffice.org,
- #- remove the first if the second is installed.
- eval {
- if (!$o->{isUpgrade} && -e "$o->{prefix}/usr/lib/openoffice/program/soffice.bin" && grep { -e "$o->{prefix}/usr/lib/office60_$_/program/soffice.bin" } qw(de en es fr it)) {
- require run_program;
- log::l("removing OpenOffice.org as staroffice is installed");
- run_program::rooted($o->{prefix}, "rpm", "-e", "OpenOffice.org");
- }
- };
-};
-
-use install_any;
-package install_any;
-
-undef *copy_advertising;
-*copy_advertising = sub {
- my ($o) = @_;
-
- return if $::rootwidth < 800;
-
- my $f;
- my $source_dir = "Mandrake/share/advertising";
- foreach ("." . $o->{lang}, "." . substr($o->{lang},0,2), '') {
- $f = getFile("$source_dir$_/list") or next;
- $source_dir = "$source_dir$_";
- }
- if (my @files = <$f>) {
- my $dir = "$o->{prefix}/tmp/drakx-images";
- mkdir $dir;
- unlink glob_("$dir/*");
- foreach (@files) {
- chomp;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/\.png/\.pl/;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/\.pl/_icon\.png/;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/_icon\.png/\.png/;
- }
- @advertising_images = map { $_ && -e "$dir/$_" ? ("$dir/$_") : () } @files;
- }
-};
-
-#undef *allowNVIDIA_rpms;
-#*allowNVIDIA_rpms = sub {
-# my ($packages) = @_;
-# require pkgs;
-# if (pkgs::packageByName($packages, "NVIDIA_GLX")) {
-# #- at this point, we can allow using NVIDIA 3D acceleration packages.
-# my @rpms;
-# foreach (keys %{$packages->{names}}) {
-# my ($ext, $version, $release) = /kernel[^-]*(-smp|-enterprise|-secure)?(?:-(\d.*?)\.(\d+\.\d+mdk))?$/ or next;
-# my $p = pkgs::packageByName($packages, $_);
-# pkgs::packageSelectedOrInstalled($p) or next;
-# $version or ($version, $release) = (pkgs::packageVersion($p), pkgs::packageRelease($p));
-# my $name = "NVIDIA_kernel-$version-$release$ext";
-# pkgs::packageByName($packages, $name) or return;
-# push @rpms, $name;
-# }
-# @rpms > 0 or return;
-# return [ @rpms, "NVIDIA_GLX" ];
-# }
-#};
-
-use detect_devices;
-package detect_devices;
-
-undef *usbMice;
-*usbMice = sub { grep { ($_->{media_type} =~ /\|Mouse/ || $_->{driver} =~ /Mouse:USB/) &&
- $_->{driver} !~ /Tablet:wacom/} usb_probe() };
-
-use Xconfigurator;
-package Xconfigurator;
-
-undef *cardConfigurationAuto;
-*cardConfigurationAuto = sub {
- my @cards;
- if (my @c = grep { $_->{driver} =~ /(Card|Server):/ } detect_devices::probeall()) {
- @c >= 2 && $c[0]{description} eq $c[1]{description} && $c[0]{description} =~ /82830 CGC/ and shift @c;
- foreach my $i (0..$#c) {
- local $_ = $c[$i]->{driver};
- my $card = { identifier => ($c[$i]{description} . (@c > 1 && " $i")) };
- $card->{type} = $1 if /Card:(.*)/;
- $card->{server} = $1 if /Server:(.*)/;
- $card->{driver} = $1 if /Driver:(.*)/;
- $card->{flags}{needVideoRam} = /86c368|S3 Inc|Tseng.*ET6\d00/;
- $card->{busid} = "PCI:$c[$i]{pci_bus}:$c[$i]{pci_device}:$c[$i]{pci_function}";
- push @{$card->{lines}}, @{$lines{$card->{identifier}} || []};
- push @cards, $card;
- }
- }
- #- take a default on sparc if nothing has been found.
- if (arch() =~ /^sparc/ && !@cards) {
- log::l("Using probe with /proc/fb as nothing has been found!");
- local $_ = cat_("/proc/fb");
- if (/Mach64/) { push @cards, { server => "Mach64" } }
- elsif (/Permedia2/) { push @cards, { server => "3DLabs" } }
- else { push @cards, { server => "Sun24" } }
- }
- #- special case for dual head card using only one busid.
- @cards = map { my $dup = $_->{identifier} =~ /MGA G[45]50/ ? 2 : 1;
- if ($dup > 1) {
- my @result;
- my $orig = $_;
- foreach (1..$dup) {
- my $card = {};
- add2hash($card, $orig);
- push @result, $card;
- }
- @result;
- } else {
- ($_);
- }
- } @cards;
- #- make sure no type are already used, duplicate both screen
- #- and rename type (because used as id).
- if (@cards > 1) {
- my $card = 1;
- foreach (@cards) {
- updateCardAccordingName($_, $_->{type}) if $_->{type};
- $_->{type} = "$_->{type} $card";
- $card++;
- }
- }
- #- in case of only one cards, remove all busid reference, this will avoid
- #- need of change of it if the card is moved.
- #- on many PPC machines, card is on-board, busid is important, leave?
- @cards == 1 and delete $cards[0]{busid} if arch() !~ /ppc/;
- @cards;
-};
-
-use mouse;
-package mouse;
-undef *detect;
-*detect = sub {
- if (arch() =~ /^sparc/) {
- return fullname2mouse("sunmouse|Sun - Mouse");
- }
- if (arch() eq "ppc") {
- return fullname2mouse(detect_devices::hasMousePS2("usbmouse") ?
- "USB|1 button" :
- #- No need to search for an ADB mouse. If I did, the PPC kernel would
- #- find one whether or not I had one installed! So.. default to it.
- "busmouse|1 button");
- }
-
- my @wacom;
- my $fast_mouse_probe = sub {
- my $auxmouse = detect_devices::hasMousePS2("psaux") && fullname2mouse("PS/2|Standard", unsafe => 1);
-
- if (modules::get_alias("usb-interface")) {
- if (my (@l) = detect_devices::usbMice()) {
- log::l("found usb mouse $_->{driver} $_->{description} ($_->{type})") foreach @l;
- eval { modules::load($_) foreach qw(hid mousedev usbmouse) };
- if (!$@ && detect_devices::tryOpen("usbmouse")) {
- my $mouse = fullname2mouse($l[0]{driver} =~ /Mouse:(.*)/ ? $1 : "USB|Generic");
- $auxmouse and $mouse->{auxmouse} = $auxmouse; #- for laptop, we kept the PS/2 as secondary (symbolic).
- return $mouse;
- }
- eval { modules::unload($_) foreach qw(usbmouse mousedev hid) };
- }
- }
- $auxmouse;
- };
-
- if (modules::get_alias("usb-interface")) {
- my $keep_mouse;
- if (my (@l) = detect_devices::usbWacom()) {
- log::l("found usb wacom $_->{driver} $_->{description} ($_->{type})") foreach @l;
- eval { modules::load("wacom"); modules::load("evdev"); };
- unless ($@) {
- foreach (0..$#l) {
- detect_devices::tryOpen("input/event$_") and $keep_mouse = 1, push @wacom, "input/event$_";
- }
- }
- $keep_mouse or eval { modules::unload("evdev"); modules::unload("wacom"); };
- }
- }
-
- #- at this level, not all possible mice are detected so avoid invoking serial_probe
- #- which takes a while for its probe.
- if ($::isStandalone) {
- my $mouse = $fast_mouse_probe->();
- $mouse and return ($mouse, @wacom);
- }
-
- #- probe serial device to make sure a wacom has been detected.
- eval { modules::load("serial") };
- my ($r, @serial_wacom) = mouseconfig(); push @wacom, @serial_wacom;
-
- if (!$::isStandalone) {
- my $mouse = $fast_mouse_probe->();
- $r && $mouse and $r->{auxmouse} = $mouse; #- we kept the auxilliary mouse as PS/2.
- $r and return ($r, @wacom);
- $mouse and return ($mouse, @wacom);
- } else {
- $r and return ($r, @wacom);
- }
-
- #- in case only a wacom has been found, assume an inexistant mouse (necessary).
- @wacom and return { CLASS => 'MOUSE',
- nbuttons => 2,
- device => "nothing",
- MOUSETYPE => "Microsoft",
- XMOUSETYPE => "Microsoft"}, @wacom;
-
- if (!modules::get_alias("usb-interface") && detect_devices::is_a_recent_computer() && $::isInstall && !$::noauto) {
- #- special case for non detected usb interface on a box with no mouse.
- #- we *must* find out if there really is no usb, otherwise the box may
- #- not be accessible via the keyboard (if the keyboard is USB)
- #- the only way to know this is to make a full pci probe
- modules::load_thiskind("usb", '', 'unsafe');
- if (my $mouse = $fast_mouse_probe->()) {
- return $mouse;
- }
- }
-
- if (modules::get_alias("usb-interface")) {
- eval { modules::load($_) foreach qw(hid mousedev usbmouse) };
- sleep 1;
- if (!$@ && detect_devices::tryOpen("usbmouse")) {
- #- defaults to generic USB mouse on usbmouse.
- log::l("defaulting to usb generic mouse");
- return fullname2mouse("USB|Generic", unsafe => 1);
- }
- }
-
- #- defaults to generic serial mouse on ttyS0.
- #- Oops? using return let return a hash ref, if not using it, it return a list directly :-)
- return fullname2mouse("serial|Generic 2 Button Mouse", unsafe => 1);
-};