#!/usr/bin/perl # XFdrake # Copyright (C) 1999 MandrakeSoft (pixel@mandrakesoft.com) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. use lib qw(/usr/lib/libDrakX); use standalone; #- warning, standalone must be loaded very first, for 'explanations' use interactive; use modules; use Xconfigurator; use Xconfig; use c; $::isEmbedded = ($::XID, $::CCPID) = "@ARGV" =~ /--embedded (\w+) (\w+)/; local $_ = join '', @ARGV; /-h/ and die "usage: XFdrake [--xf3] [--beginner] [--expert] [--auto] [--noauto] [--skiptest] [--testing]\n"; my $i = {}; $::force_xf3 = /-xf3/; $::beginner = /-beginner/; $::expert = /-expert/; $::auto = /-auto/; $::noauto = /-noauto/; $::testing = /-testing/; $i->{skiptest} = /-skiptest/; my $in = 'interactive'->vnew('su', 'X'); -r '/etc/modules.conf' and modules::mergein_conf('/etc/modules.conf'); my $f = "/usr/X11R6/lib/X11/rgb.txt"; #- this one is on all platform (instead of Cards ?) $in->do_pkgs->install('XFree86', 'XFree86-75dpi-fonts') if !-e $f; -e $f or die "install XFree86 first!\n"; `pidof xfs` > 0 or system("/etc/rc.d/init.d/xfs start") if !$i->{skiptest}; system("mount /proc 2>/dev/null"); # ensure /proc is mounted for pci probing begin: Xconfig::getinfo($i); Xconfig::getinfoFromXF86Config($i); #- take default from here at least. my $allowNVIDIA_rpms; my (%list, %select); local *F; open F, "/var/lib/urpmi/depslist.ordered"; while (<F>) { /(.*NVIDIA.*)-([^-]*)-([^-]*)\s+/ and $list{$1} = 1; } close F; if ($list{NVIDIA_GLX}) { eval { my ($version, $release, $ext) = `uname -r` =~ /([^-]*)-([^-]*mdk)(\S*)/; $ext and $ext = "-$ext"; $list{"NVIDIA_kernel-$version-$release$ext"} or die "no NVIDIA kernel for current kernel"; $select{"NVIDIA_kernel-$version-$release$ext"} = 1; foreach (`rpm -q kernel kernel-smp kernel-entreprise kernel22 kernel22-smp kernel22-secure`) { ($ext, $version, $release) = /kernel[^-]*(-[^-]*)-([^-]*)-([^-]*mdk)/; $list{"NVIDIA_kernel-$version-$release$ext"} and $select{"NVIDIA_kernel-$version-$release$ext"} = 1; } $allowNVIDIA_rpms = [ keys(%select), "NVIDIA_GLX" ]; } } if (!$allowNVIDIA_rpms) { my ($uname_r) = `uname -r` =~ /(\S+)/; $allowNVIDIA_rpms = ((-e "/lib/modules/$uname_r/kernel/drivers/char/NVdriver.o.gz" || -e "/lib/modules/$uname_r/kernel/drivers/char/NVdriver.o") && -e "/usr/X11R6/lib/modules/drivers/nvidia_drv.o" && -e "/usr/X11R6/lib/modules/extensions/libglx.so") && []; #- empty list but true. } $::isEmbedded and kill USR2, $::CCPID; Xconfigurator::main('', $i, $in, $in->do_pkgs, { allowFB => $::expert, allowNVIDIA_rpms => $allowNVIDIA_rpms }); !$::isEmbedded and $in->exit(0); kill USR1, $::CCPID; goto begin;