#!/usr/bin/perl # XFdrake # Copyright (C) 1999 MandrakeSoft (pixel@linux-mandrake.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 interactive; use standalone; 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'); -r '/etc/modules.conf' and modules::mergein_conf('/etc/modules.conf'); my $f = "/usr/X11R6/lib/X11/Cards"; $in->standalone::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; eval { my (%list, %select); local *F; open F, "grep NVIDIA /var/lib/urpmi/depslist.ordered |"; while (<F>) { /(.*)-([^-]*)-([^-]*)\s+/ and $list{$1} = 1; } close F; if ($list{NVIDIA_GLX}) { 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" ]; } }; $::isEmbedded and kill USR2, $::CCPID; Xconfigurator::main('', $i, $in, { allowFB => 0, allowNVIDIA_rpms => $allowNVIDIA_rpms }, sub { $in->standalone::pkgs_install(@_) }); !$::isEmbedded and $in->exit(0); kill USR1, $::CCPID; goto begin;