summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/XFdrake
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/XFdrake')
-rwxr-xr-xperl-install/standalone/XFdrake162
1 files changed, 0 insertions, 162 deletions
diff --git a/perl-install/standalone/XFdrake b/perl-install/standalone/XFdrake
deleted file mode 100755
index fdc0250e5..000000000
--- a/perl-install/standalone/XFdrake
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/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 Xconfig::main;
-use Xconfig::xfree;
-use Xconfig::default;
-use interactive;
-use common;
-use any;
-use c;
-
-local $_ = join '', @ARGV;
-
-my ($configure_this) = grep { !/^-/ } @ARGV;
-$configure_this ||= 'everything';
-
-/-h/ || $configure_this !~ /^(resolution|monitor|everything|auto_install)/ and die <<'EOF';
-usage: XFdrake [--expert] [--noauto] [--auto] [everything]
- XFdrake [--noauto] monitor
- XFdrake resolution
-EOF
-
-my $auto = /-auto/;
-$::expert = /-expert/;
-$::noauto = /-noauto/;
-$::testing = /-testing/;
-
-begin:
-{
- my $in = 'interactive'->vnew('su', 'X');
-
- $::isEmbedded and kill 'USR2', $::CCPID;
-
- my $rc = do {
- if ($configure_this eq 'everything') {
- check_XFree($in);
- my $raw_X = Xconfig::xfree->read;
- my $default = Xconfig::default::configure();
- my $has_conf = @{$raw_X->{xfree3}} || @{$raw_X->{xfree4}};
- $raw_X->{xfree3} = $default->{xfree3} if !@{$raw_X->{xfree3}};
- $raw_X->{xfree4} = $default->{xfree4} if !@{$raw_X->{xfree4}};
-
- if ($has_conf) {
- Xconfig::main::configure_chooser($in, $raw_X, $in->do_pkgs, { allowNVIDIA_rpms => allowNVIDIA_rpms() });
- } else {
- Xconfig::main::configure_everything($in, $raw_X, $in->do_pkgs, $auto, { allowNVIDIA_rpms => allowNVIDIA_rpms() });
- }
- } elsif ($configure_this eq 'auto_install') {
- Xconfig::main::configure_everything_auto_install(Xconfig::default::configure(), $in->do_pkgs, {}, { allowNVIDIA_rpms => allowNVIDIA_rpms() });
- } 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) if !$::isEmbedded;
-
- kill 'USR1', $::CCPID;
- goto begin;
-}
-
-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 {
- 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('', _("Please log out and then use Ctrl-Alt-BackSpace"));
- return;
- }
-
- $in->ask_okcancel('', _("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 ; killall -15 xdm gdm kdm prefdm") if $nb;
- }, $wm, $pid;
-}