diff options
Diffstat (limited to 'perl-install/standalone.pm')
-rw-r--r-- | perl-install/standalone.pm | 43 |
1 files changed, 4 insertions, 39 deletions
diff --git a/perl-install/standalone.pm b/perl-install/standalone.pm index cae5a58c8..806ebf7cd 100644 --- a/perl-install/standalone.pm +++ b/perl-install/standalone.pm @@ -1,15 +1,16 @@ -package standalone; # $Id: standalone.pm 262870 2009-10-27 10:53:55Z tv $ +package standalone; use c; use strict; use subs qw(exit); use common qw(N N_ if_ backtrace); use Config; +use drakbug; BEGIN { unshift @::textdomains, 'libDrakX-standalone' } -#- for sanity (if a use standalone is made during install, MANY problems will happen) require 'log.pm'; #- "require log" causes some pb, perl thinking that "log" is the log() function +#- for sanity (if a use standalone is made during install, MANY problems will happen) if ($::isInstall) { log::l('ERROR: use standalone made during install :-('); log::l('backtrace: ' . backtrace()); @@ -142,6 +143,7 @@ sub real_version() { sub version() { print 'Drakxtools version ' . real_version() . ' Copyright (C) 1999-2008 Mandriva by <install@mandriva.com> +Copyright (C) 2010-2014 Mageia ', $::license, "\n"; } @@ -189,43 +191,6 @@ our @common_functs = qw(renamef linkf symlinkf output substInFile mkdir_p rm_rf our @builtin_functs = qw(chmod chown __exit exit unlink link symlink rename system); our @drakx_modules = qw(Xconfig::card Xconfig::default Xconfig::main Xconfig::monitor Xconfig::parse Xconfig::proprietary Xconfig::resolution_and_depth Xconfig::screen Xconfig::test Xconfig::various Xconfig::xfree any bootloader bootlook c commands crypto detect_devices devices diskdrake diskdrake::hd_gtk diskdrake::interactive diskdrake::removable diskdrake::removable_gtk diskdrake::smbnfs_gtk fs fsedit http keyboard lang log loopback lvm modules::parameters modules mouse my_gtk network network::adsl network::ethernet network::connection network::isdn_consts network::isdn network::modem network::netconnect network::network fs::remote::nfs fs::remote::smb network::tools partition_table partition_table_bsd partition_table::dos partition_table::empty partition_table::gpt partition_table::mac partition_table::raw partition_table::sun printer printerdrake proxy raid run_program scanner services steps swap timezone network::drakfirewall network::shorewall); -sub bug_handler { - my ($error, $is_signal) = @_; - - # exceptions in eval are OK: - return if $error && $^S ne '0' && !$is_signal; - - # exceptions with "\n" are normal ways to quit: - if (!$is_signal && eval { $error eq MDK::Common::String::formatError($error) }) { - warn $error; - exit(255); - } - - # we want the full backtrace: - if ($is_signal) { - my $ctrace = c::C_backtrace(); - $ctrace =~ s/0:.*(\d+:[^:]*Perl_sighandler)/$1/sig; - $error .= "\nGlibc's trace:\n$ctrace\n"; - } - $error .= "Perl's trace:\n" . common::backtrace() if $error; - - my $progname = $0; - - # do not loop if drakbug crashes and do not complain about wizcancel: - if ($progname =~ /drakbug/ || $error =~ /wizcancel/ || !-x '/usr/bin/drakbug') { - warn $error; - exit(1); - } - $progname =~ s|.*/||; - exec('drakbug', if_($error, '--error', $error), '--incident', $progname); - c::_exit(1); -} - -if (!$ENV{DISABLE_DRAKBUG}) { - $SIG{SEGV} = sub { bug_handler(@_, 1) }; - $SIG{__DIE__} = \&bug_handler; -} - sub import() { ($standalone_name = $0) =~ s|.*/||; c::openlog($standalone_name . "[$$]"); |