diff options
-rw-r--r-- | perl-install/common.pm | 21 | ||||
-rw-r--r-- | perl-install/interactive.pm | 15 | ||||
-rwxr-xr-x | perl-install/standalone/drakfloppy | 5 | ||||
-rwxr-xr-x | perl-install/standalone/net_monitor | 7 |
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); |