summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/drakbug
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/drakbug')
-rwxr-xr-xperl-install/standalone/drakbug105
1 files changed, 44 insertions, 61 deletions
diff --git a/perl-install/standalone/drakbug b/perl-install/standalone/drakbug
index a5f02c5c5..dd8d7f469 100755
--- a/perl-install/standalone/drakbug
+++ b/perl-install/standalone/drakbug
@@ -26,15 +26,15 @@ use standalone;
use MDK::Common;
use common;
BEGIN { $::no_ugtk_init = 1 }
-use mygtk2 qw(gtknew);
-use ugtk2 qw(:all);
+use mygtk3 qw(gtknew);
+use ugtk3 qw(:all);
use Config;
use URI::Escape;
use run_program;
my $prog;
my $incident = 0;
-my ($table, $comb_app, $com_app, $button_pkg, $button_browse, $package, $distrocode, $error, $gdb_trace, $user_descr);
+my ($table, $comb_app, $com_app, $button_pkg, $button_browse, $package, $distrocode, $error, $user_descr);
my $i;
foreach (@ARGV) {
@@ -46,45 +46,31 @@ foreach (@ARGV) {
}
my $segfaulted = $error =~ /SEGV/;
-if ($segfaulted && -x '/usr/bin/gdb') {
- local $ENV{TMP} = $ENV{TMP} || '/tmp';
- my $file = chomp_(`mktemp $ENV{TMP}/drakbug.XXXXXXXX`);
- my $_guard = before_leaving { rm_rf $file };
- if (-e $file) {
- output($file, qq(bt
-quit));
- local $ENV{LANGUAGE} = 'C';
- my $temp = run_program::get_stdout('gdb', '-q', 'perl', $$, '-x', $file);
- $gdb_trace = join "\n", grep { !/^done\.$/ && !/Reading symbols from/
- && !/Loaded symbols/ && !/The program is run/ } split(/\n/, $temp);
- }
-}
if (!check_for_xserver()) {
print("Cannot be run in console mode.\n");
print join("\n",
N("The \"%s\" program has crashed with the following error:", $prog),
$error,
- $gdb_trace,
'')
if $error;
c::_exit(0);
}
-mygtk2::init();
+mygtk3::init();
-$ugtk2::wm_icon = 'drakbug-16';
-my $window = ugtk2->new(N("Mandriva Linux Bug Report Tool"), center => 1);
+$ugtk3::wm_icon = 'drakbug-16';
+my $window = ugtk3->new(N("%s Bug Report Tool", N("Mageia")), center => 1);
$window->{rwindow}->set_border_width(5);
-$window->{window}->signal_connect("delete_event", sub { ugtk2->exit(0) });
+$window->{window}->signal_connect("delete_event", sub { ugtk3->exit(0) });
my $mdk_app = {
- N("Mandriva Linux Control Center") => 'drakconf',
+ N("%s Control Center", N("Mageia")) => 'drakconf',
N("First Time Wizard") => 'drakfw',
N("Synchronization tool") => 'draksync',
N("Standalone Tools") => 'drakxtools',
"harddrake" => 'harddrake2',
- N("Mandriva Online") => 'mdkonline',
- N("Mandriva Online") => 'mdkapplet',
+ N("%s Online", N("Mageia")) => 'mgaonline',
+ N("%s Online", N("Mageia")) => 'mgaapplet',
N("Remote Control") => 'rfbdrake',
N("Software Manager") => 'rpmdrake',
N("Windows Migration tool") => 'transfugdrake',
@@ -93,35 +79,36 @@ my $mdk_app = {
my @generic_tool = keys %$mdk_app;
my @all_drakxtools = qw(adduserdrake diskdrake drakautoinst drakboot drakbug drakclock drakfloppy drakfont draksec drakxservices drakxtools drakxtv logdrake scannerdrake);
-push @generic_tool, @all_drakxtools, qw(MandrivaUpdate drakbackup drakconnect drakfirewall drakhosts drakmenustyle draknfs draksambashare drakgw drakroam drakvpn keyboarddrake msec mousedrake net_monitor printerdrake urpmi userdrake XFdrake);
+push @generic_tool, @all_drakxtools, qw(MageiaUpdate drakbackup drakconnect drakfirewall drakhosts drakmenustyle draknfs draksambashare drakgw drakroam drakvpn keyboarddrake msec mousedrake net_monitor urpmi userdrake XFdrake);
my $kernel_release = chomp_(`uname -r`);
-my $mandrake_release = chomp_(cat_('/etc/mandrakelinux-release'));
+my $mageia_release = chomp_(cat_('/etc/release'));
#- unused for now
-#- (my $mandrake_version) = $mandrake_release =~ /(\d+\.\d+)/;
+#- (my $mageia_version) = $mageia_release =~ /(\d+\.\d+)/;
-if ($mandrake_release =~ /(official|community)/i) {
- $distrocode = $mandrake_release;
+if ($mageia_release =~ /(official|community)/i) {
+ $distrocode = $mageia_release;
$distrocode =~ s/^.*?(\d+\.\d+) \((\w+)\).*$/$1-\l$2/;
} else {
$distrocode = "cooker";
}
-my $bugzilla_url = 'http://qa.mandriva.com/enter_bug.cgi';
+my $bugzilla_url = 'http://bugs.mageia.org/enter_bug.cgi';
my $wizard_name = "Bugzilla";
$table = create_packtable({ col_spacings => 5, row_spacings => 10 },
- [ gtknew('Label_Left', text => N("Select Mandriva Tool:")), $comb_app = Gtk2::ComboBox->new_text, $comb_app->set_wrap_width(3) ],
+ [ gtknew('Label_Left', text => N("Select %s Tool:", N("Mageia"))), $comb_app = Gtk3::ComboBoxText->new, $comb_app->set_wrap_width(3) ],
[ gtknew('Label_Left', text => N("or Application Name\n(or Full Path):")),
- gtkpack_(Gtk2::HBox->new(0, 5),
- 1, $com_app = gtkset_editable(Gtk2::Entry->new, 1),
- 0, $button_pkg = Gtk2::Button->new(N("Find Package")),
- 0, $button_browse = Gtk2::FileChooserButton->new(N("Browse"), 'GTK_FILE_CHOOSER_ACTION_OPEN'),
+ gtkpack_(Gtk3::HBox->new(0, 5),
+ 1, $com_app = gtkset_editable(Gtk3::Entry->new, 1),
+ 0, $button_pkg = Gtk3::Button->new(N("Find Package")),
+ 0, $button_browse = Gtk3::FileChooserButton->new(N("Browse"), 'GTK_FILE_CHOOSER_ACTION_OPEN'),
) ],
- [ gtknew('Label_Left', text => N("Package: ")), $package = Gtk2::Entry->new_with_text("...") ], # complain on gtk-perl@ml
- [ gtknew('Label_Left', text => N("Kernel:")), gtkset_editable(Gtk2::Entry->new_with_text($kernel_release), 0) ]
+ [ gtknew('Label_Left', text => N("Package: ")), $package = Gtk3::Entry->new_with_text("...") ], # complain on gtk-perl@ml
+ [ gtknew('Label_Left', text => N("Kernel:")), gtkset_editable(Gtk3::Entry->new_with_text($kernel_release), 0) ]
);
$comb_app->set_popdown_strings("", uniq(sort(@generic_tool), if_($prog, $prog)));
$comb_app->set_text("");
+my $theme_name = $table->get_settings->get('gtk-theme-name');
sub is_a_boot_issue() {
$prog =~ /boot|mkinitrd/;
@@ -129,7 +116,7 @@ sub is_a_boot_issue() {
sub format_trace_with_message {
my ($message, $trace) = @_;
- ([ $message ], [ "\n\n " . join("\n ", split("\n", $trace)) . "\n\n", { family => 'monospace' }]);
+ ([ $message ], [ "\n\n " . join("\n ", split("\n", $trace)) . "\n\n", { family => 'monospace' } ]);
}
my @commands = 'lspcidrake -v';
@@ -140,24 +127,24 @@ my $parent_uid = get_parent_uid();
my $width = 600;
gtkadd($window->{window},
- gtkpack_(Gtk2::VBox->new(0, 5),
- 0, gtknew('Title1', label => $mandrake_release, width => $width),
+ gtkpack_(Gtk3::VBox->new(0, 5),
+ 0, gtknew('Title1', label => $mageia_release, width => $width),
1, create_scrolled_window(
gtknew('TextView', editable => 0, height => 150,
text => [
if_($prog,
if_($error,
format_trace_with_message(
- ($gdb_trace ?
+ ($segfaulted ?
N("The \"%s\" program has segfaulted with the following error:", $prog)
: N("The \"%s\" program has crashed with the following error:", $prog)),
$error)
),
- if_($gdb_trace, format_trace_with_message(N("Its GDB trace is:"), $gdb_trace)),
),
+ [ N("Used theme: %s", $theme_name) . "\n\n" ],
[
N("To submit a bug report, click on the report button. \nThis will open a web browser window on %s where you'll find a form to fill in. The information displayed above will be transferred to that server",
- $wizard_name). "\n" .
+ $wizard_name) . "\n" .
P("It would be very useful to attach to your report the output of the following command: %s.",
"Things useful to attach to your report are the output of the following commands: %s.",
scalar(@commands),
@@ -180,15 +167,15 @@ gtkadd($window->{window},
if_(!$error,
0, gtkadd($table),
),
- 0, gtkpack(Gtk2::HSeparator->new),
+ 0, gtkpack(Gtk3::HSeparator->new),
0, gtkpack(create_hbox('edge'),
gtksignal_connect(
- Gtk2::Button->new(N("Help")), clicked => sub {
+ Gtk3::Button->new(N("Help")), clicked => sub {
run_program::raw({ detach => 1, setuid => $parent_uid }, 'drakhelp', '--id', 'drakbug');
}),
gtkpack(create_hbox('end'),
- gtksignal_connect(Gtk2::Button->new(N("Report")), clicked => \&report_bug_to_bugzilla),
- gtksignal_connect(Gtk2::Button->new(N("Close")), clicked => sub { ugtk2->exit(0) }),
+ gtksignal_connect(Gtk3::Button->new(N("Report")), clicked => \&report_bug_to_bugzilla),
+ gtksignal_connect(Gtk3::Button->new(N("Close")), clicked => sub { ugtk3->exit(0) }),
))));
if (defined $prog) {
@@ -206,11 +193,11 @@ $button_pkg->signal_connect('clicked', sub {
$package->set_text($pkg_name);
});
-$button_browse->signal_connect('file-set', sub { $com_app->set_text($button_browse->get_filename()) });
+$button_browse->signal_connect('file-set', sub { $com_app->set_text($button_browse->get_filename) });
$window->{window}->show_all;
$window->main;
-ugtk2->exit(0);
+ugtk3->exit(0);
sub update_app {
my ($text) = @_;
@@ -250,7 +237,7 @@ sub get_top_of_trace {
sub report_bug_to_bugzilla() {
my $p = $package->get_text;
- my ($product, $version) = $p =~ /^(.*)-([^-]+-[^-]+(mdk|mdv.*))$/; # FIXME: fragile!
+ my ($product, $version) = $p =~ /^(.*)-([^-]+-[^-]+(mga.*))$/; # FIXME: fragile!
my $app = $comb_app->entry->get_text;
my $_component = $app ?
if_(member($app, @all_drakxtools), $app) || $mdk_app->{$app} :
@@ -266,24 +253,23 @@ sub report_bug_to_bugzilla() {
return;
}
}
- my $rel_data = mandrake_release_info();
+ my $rel_data = mageia_release_info();
my $rel = standalone::real_version();
my $cpuinfo;
if (cat_('/proc/cpuinfo') =~ /model name\s*:\s*(.*)$/m) {
$cpuinfo = $1;
}
my $arch = arch();
- $arch = 'i586' if arch =~ /^i.86/;
+ $arch = 'i686' if arch() =~ /^i.86/;
my $options = join('&',
($product || $version ? 'cf_rpmpkg=' . join('-', $product, $version) : ()),
- 'version=' . ($rel_data->{branch} eq 'Devel' ? 'Cooker' : $rel_data->{version}),
- 'component=Core%20Packages',
- 'classification=Mandriva%20Linux',
+ 'version=' . ($rel_data->{branch} eq 'Devel' ? 'Cauldron' : $rel_data->{version}),
+ 'component=RPM%20Packages',
+ 'product=Mageia',
"rep_platform=$arch",
if_($incident,
join('', "short_desc=$prog%20",
($segfaulted ? 'segfaulted' : 'crashed'),
- if_(!$gdb_trace, get_top_of_trace($error)),
),
),
'comment=' . uri_escape(
@@ -291,14 +277,11 @@ sub report_bug_to_bugzilla() {
qq(The "$prog" program crashed. Drakbug-$rel caught it.
) . ($text || "Please describe what you were doing when it crashed.") . "\n\n"
- . ($error ? qq(Backtrace was:
-$error) :
+ . ($error ||
qq(If you can, try to run the "$prog" program from a terminal and copy and paste here any error messages and/or backtrace))
- . if_($gdb_trace, qq(
-GDB backtrace was (its interesting part is below Perl_pp_fork() or Perl_pp_waitpid()):
-$gdb_trace)),
)
. qq(
+Theme name: $theme_name
Kernel version = $kernel_release
Distribution=) . cat_('/etc/release')
. if_($cpuinfo, "CPU=$cpuinfo")