summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/common.pm21
-rw-r--r--perl-install/interactive.pm15
-rwxr-xr-xperl-install/standalone/drakfloppy5
-rwxr-xr-xperl-install/standalone/net_monitor7
4 files changed, 25 insertions, 23 deletions
diff --git a/perl-install/common.pm b/perl-install/common.pm
index 339e0aa00..d605676a6 100644
--- a/perl-install/common.pm
+++ b/perl-install/common.pm
@@ -9,7 +9,7 @@ use vars qw(@ISA @EXPORT $SECTORSIZE);
@ISA = qw(Exporter);
# no need to export ``_''
-@EXPORT = qw($SECTORSIZE N N_ translate untranslate formatXiB removeXiBSuffix formatTime setVirtual makedev unmakedev salt set_permissions files_exist set_alternative mandrake_release);
+@EXPORT = qw($SECTORSIZE N N_ translate untranslate formatXiB removeXiBSuffix formatTime setVirtual makedev unmakedev salt set_permissions files_exist set_alternative mandrake_release require_root_capability);
# perl_checker: RE-EXPORT-ALL
push @EXPORT, @MDK::Common::EXPORT;
@@ -18,7 +18,7 @@ push @EXPORT, @MDK::Common::EXPORT;
#-#####################################################################################
#- Globals
#-#####################################################################################
-$SECTORSIZE = 512;
+our $SECTORSIZE = 512;
#-#####################################################################################
#- Functions
@@ -243,4 +243,21 @@ sub mandrake_release {
chomp_(cat_("/etc/mandrake-release"))
}
+sub require_root_capability {
+ return unless $>; # we're already root
+ if ($ENV{DISPLAY} && system('/usr/X11R6/bin/xtest') == 0) {
+ if (fuzzy_pidofs(qr/\bkwin\b/) > 0) {
+ exec("kdesu", "-c", "$0 @ARGV") or die N("kdesu missing");
+ } else {
+ exec { 'consolehelper' } $0, @ARGV or die N("consolehelper missing");
+
+ }
+ } else {
+ exec { 'consolehelper' } $0, @ARGV or die N("consolehelper missing");
+ }
+
+ # still not root ?
+ die "you must be root to run this program" if $>;
+}
+
1;
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm
index 5e949b166..b62390180 100644
--- a/perl-install/interactive.pm
+++ b/perl-install/interactive.pm
@@ -93,14 +93,8 @@ sub vnew {
$ENV{PATH} = "/sbin:/usr/sbin:$ENV{PATH}";
$su = '' if $::testing || $ENV{TESTING};
}
+ require_root_capability() if $su;
if ($ENV{DISPLAY} && system('/usr/X11R6/bin/xtest') == 0) {
- if ($su && $>) {
- if (fuzzy_pidofs(qr/\bkwin\b/) > 0) {
- exec("kdesu", "-c", "$0 @ARGV") or die N("kdesu missing");
- } else {
- exec { 'consolehelper' } $0, @ARGV or die N("consolehelper missing");
- }
- }
eval { require interactive::gtk };
if (!$@) {
my $o = interactive::gtk->new;
@@ -109,15 +103,8 @@ sub vnew {
$::need_utf8_i18n = 1;
return $o;
}
- } else {
- if ($su && $>) {
- exec { 'consolehelper' } $0, @ARGV or die N("consolehelper missing");
- }
}
- if ($su && $>) {
- die "you must be root to run this program";
- }
require 'log.pm'; #- "require log" causes some pb, perl thinking that "log" is the log() function
undef *log::l;
*log::l = sub {}; # otherwise, it will bother us :(
diff --git a/perl-install/standalone/drakfloppy b/perl-install/standalone/drakfloppy
index 082edf842..53381a12e 100755
--- a/perl-install/standalone/drakfloppy
+++ b/perl-install/standalone/drakfloppy
@@ -23,16 +23,15 @@
use strict;
+use diagnostics;
use lib qw(/usr/lib/libDrakX);
use standalone; #- warning, standalone must be loaded very first, for 'explanations'
-use interactive;
use common;
-use ugtk qw(:helpers);
use my_gtk qw(:helpers);
-my $in = interactive->vnew('su', 'default');
+require_root_capability();
my $expert_mode = 0;
# we have put here the list in order to do $list->clear() when we have to do
diff --git a/perl-install/standalone/net_monitor b/perl-install/standalone/net_monitor
index 6dff839f8..cc10ce093 100755
--- a/perl-install/standalone/net_monitor
+++ b/perl-install/standalone/net_monitor
@@ -23,7 +23,6 @@ use lib qw(/usr/lib/libDrakX);
use strict;
use standalone; #- warning, standalone must be loaded very first, for 'explanations'
-use interactive;
use my_gtk qw(:helpers :wrappers);
use common;
use network::netconnect;
@@ -44,8 +43,8 @@ if ($force) {
}
$quiet and exit(0);
init Gtk;
-my $in = 'interactive'->vnew('su', 'default');
+require_root_capability();
my $window1 = my_gtk->new('net_monitor');
$window1->{rwindow}->signal_connect(delete_event => sub { my_gtk->exit(0) });
@@ -82,7 +81,7 @@ MDK::Common::Globals::init(
disconnect_file => "/etc/sysconfig/network-scripts/net_cnx_down",
connect_prog => "/etc/sysconfig/network-scripts/net_cnx_pg");
-gtkadd($window1->{rwindow},
+gtkadd($window1->{window},
gtkpack_(new Gtk::VBox(0,5),
0, N("Network Monitoring"),
1, gtkpack_(new Gtk::HBox(0,5),
@@ -155,7 +154,7 @@ update();
rescan();
while ($isconnected == -2 || $isconnected == -1) {
- Gtk->main_iteration while Gtk->events_pending;
+ ugtk::gtkflush()
}
Gtk->timeout_remove($time_tag2);