summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/XFdrake
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2003-02-24 21:38:29 +0000
committerMystery Man <unknown@mandriva.org>2003-02-24 21:38:29 +0000
commit34fc23f1f8648b24ea847b226d3d9fd6d28b5b94 (patch)
tree554d371bc001e11e8b607cf4e159fd0e3c10dc1e /perl-install/standalone/XFdrake
parent125381a2f6f932524a77eb7a30e4f8089077cc6e (diff)
downloaddrakx-34fc23f1f8648b24ea847b226d3d9fd6d28b5b94.tar
drakx-34fc23f1f8648b24ea847b226d3d9fd6d28b5b94.tar.gz
drakx-34fc23f1f8648b24ea847b226d3d9fd6d28b5b94.tar.bz2
drakx-34fc23f1f8648b24ea847b226d3d9fd6d28b5b94.tar.xz
drakx-34fc23f1f8648b24ea847b226d3d9fd6d28b5b94.zip
This commit was manufactured by cvs2svn to create tag 'V9_1_6mdk'.V9_1_6mdk
Diffstat (limited to 'perl-install/standalone/XFdrake')
-rwxr-xr-xperl-install/standalone/XFdrake141
1 files changed, 0 insertions, 141 deletions
diff --git a/perl-install/standalone/XFdrake b/perl-install/standalone/XFdrake
deleted file mode 100755
index 5a4b923c2..000000000
--- a/perl-install/standalone/XFdrake
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/perl
-
-# XFdrake
-# Copyright (C) 1999-2002 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 Xconfig::main;
-use Xconfig::xfree;
-use Xconfig::default;
-use interactive;
-use modules;
-use common;
-use any;
-use c;
-
-local $_ = join '', @ARGV;
-
-my ($configure_this) = grep { !/^-/ } @ARGV;
-$configure_this ||= 'everything';
-
-{
- my $in = 'interactive'->vnew('su', 'X');
-
- modules::mergein_conf('/etc/modules.conf') if -r '/etc/modules.conf';
-
- my $rc = do {
- my $options = { allowNVIDIA_rpms => allowNVIDIA_rpms(), allowFB => listlength(cat_("/proc/fb")) };
-
- if ($configure_this eq 'everything') {
- check_XFree($in);
- Xconfig::main::configure_everything_or_configure_chooser($in, $options, $::auto);
- } elsif ($configure_this eq 'auto_install') {
- Xconfig::main::configure_everything_auto_install(Xconfig::default::configure(), $in->do_pkgs, {}, $options);
- } elsif ($configure_this eq 'monitor') {
- Xconfig::main::configure_monitor($in, Xconfig::xfree->read);
- } elsif ($configure_this eq 'resolution') {
- Xconfig::main::configure_resolution($in, Xconfig::xfree->read);
- }
- };
- $rc && $rc eq 'config_changed' and ask_for_X_restart($in);
-
- $in->exit(0);
-}
-
-sub check_XFree {
- my ($in) = @_;
-
- #- set the standard configuration
- foreach ('XF86Config', 'XF86Config-4') {
- my $f = "/etc/X11/$_";
- symlinkf("$_.standard", $f) if -l $f && -e "$f.standard";
- }
-
- my $f = "/usr/X11R6/lib/X11/rgb.txt"; #- this one is on all platform
- -e $f or $in->do_pkgs->install('XFree86', 'XFree86-75dpi-fonts');
- -e $f or die "install XFree86 first!\n";
-
- system("mount /proc 2>/dev/null"); # ensure /proc is mounted for pci probing
-}
-
-sub allowNVIDIA_rpms {
- my $allowNVIDIA_rpms;
- my (%list, %select);
-
- eval {
- local *_;
- require urpm;
- my $urpm = new urpm;
- $urpm->read_config(nocheck_access => 1);
- foreach (grep { !$_->{ignore} } @{$urpm->{media} || []}) {
- $urpm->parse_synthesis($_);
- }
- foreach (@{$urpm->{depslist} || []}) {
- $_->name =~ /NVIDIA/ and $list{$_->name} = 1;
- }
- };
- if ($list{NVIDIA_GLX}) {
- eval {
- my ($version, $release, $ext) = c::kernel_version() =~ /([^-]*)-([^-]*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 -qa kernel-2* kernel-smp-2* kernel-enterprise-2* kernel-secure-2* kernel kernel-smp kernel-entreprise kernel22 kernel22-smp kernel22-secure`) {
- ($ext, $version, $release) = /kernel[^-]*(-\D[^-]*)-([^-]*)-([^-]*mdk)?/;
- $release or ($version, $release) = $version =~ /(.*?)\.(\d+mdk)/;
- $list{"NVIDIA_kernel-$version-$release$ext"} and $select{"NVIDIA_kernel-$version-$release$ext"} = 1;
- }
- $allowNVIDIA_rpms = [ keys(%select), "NVIDIA_GLX" ];
- }
- }
- if (!$allowNVIDIA_rpms) {
- $allowNVIDIA_rpms = system("modprobe NVdriver 2>/dev/null") == 0 && []; #- empty list but true.
- }
- $allowNVIDIA_rpms;
-}
-
-sub ask_for_X_restart {
- my ($in) = @_;
-
- $::isStandalone && $in->isa('interactive::gtk') or return;
-
- my ($wm, $pid) = any::running_window_manager();
-
- if (!$wm) {
- $in->ask_warn('', N("Please log out and then use Ctrl-Alt-BackSpace"));
- return;
- }
-
- $in->ask_okcancel('', N("Please relog into %s to activate the changes", ucfirst(lc $wm)), 1) or return;
-
- fork() and return;
- any::ask_window_manager_to_logout($wm);
-
- open STDIN, "</dev/zero";
- open STDOUT, ">/dev/null";
- open STDERR, ">&STDERR";
- c::setsid();
- exec qw(perl -e), q(
- my ($wm, $pid) = @ARGV;
- my $nb;
- for ($nb = 30; $nb && -e "/proc/$pid"; $nb--) { sleep 1 }
- system("killall X") if $nb;
- ), $wm, $pid;
-}