From 9cb20748b9ce79a27c937ca750b579e8879a97c1 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Mon, 4 Mar 2013 19:10:28 +0000 Subject: fork displaying help, thus workarounding a webkit segfault (mga#9124) --- perl-install/Makefile.config | 2 +- perl-install/install/NEWS | 1 + perl-install/install/share/list.xml | 1 + perl-install/interactive/gtk.pm | 18 ++++++++++++++---- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/perl-install/Makefile.config b/perl-install/Makefile.config index 77ced6744..645b2dacd 100644 --- a/perl-install/Makefile.config +++ b/perl-install/Makefile.config @@ -9,7 +9,7 @@ SO_FILES = c/blib/arch/auto/c/c.so PMS_DIRS = c diskdrake harddrake interactive modules partition_table resize_fat security fs fs/remote PMS = *.pm $(PMS_DIRS:%=%/*.pm) install/*.pm install/help/*.pm install/commands install/install2 -STANDALONEPMS_ = adduserdrake bootloader-config display_help display_release_notes.pl diskdrake drakauth drakboot drakbug drakbug_report drakclock drakedm drakdvb drakfont drakhelp drakperm draksec draksound drakupdate_fstab drakups drakxservices drakxtv fileshareset finish-install harddrake2 localedrake logdrake lsnetdrake notify-x11-free-driver-switch remove-unused-packages scannerdrake service_harddrake service_harddrake_confirm +STANDALONEPMS_ = adduserdrake bootloader-config display_help display_installer_help display_release_notes.pl diskdrake drakauth drakboot drakbug drakbug_report drakclock drakedm drakdvb drakfont drakhelp drakperm draksec draksound drakupdate_fstab drakups drakxservices drakxtv fileshareset finish-install harddrake2 localedrake logdrake lsnetdrake notify-x11-free-driver-switch remove-unused-packages scannerdrake service_harddrake service_harddrake_confirm STANDALONEPMS = $(STANDALONEPMS_:%=standalone/%) ALLPMS = $(PMS) $(STANDALONEPMS) diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS index 7eb88aef6..f6a3c1c0f 100644 --- a/perl-install/install/NEWS +++ b/perl-install/install/NEWS @@ -1,3 +1,4 @@ +- fork displaying help, thus workarounding a webkit segfault (mga#9124) - prevent displaying twice release notes Version 15.24.1 - 2 March 2013 diff --git a/perl-install/install/share/list.xml b/perl-install/install/share/list.xml index 5c1faf132..911b71b6b 100644 --- a/perl-install/install/share/list.xml +++ b/perl-install/install/share/list.xml @@ -556,6 +556,7 @@ + display_installer_help display_release_notes.pl diff --git a/perl-install/interactive/gtk.pm b/perl-install/interactive/gtk.pm index 881bfc7e2..ee6c34bf2 100644 --- a/perl-install/interactive/gtk.pm +++ b/perl-install/interactive/gtk.pm @@ -802,15 +802,15 @@ sub get_html_file { $anchor ? "$url#$anchor" : $url; } -sub display_help { - my ($o, $common, $mainw) = @_; +sub display_help_window { + my ($o, $common) = @_; if (my $file = $common->{interactive_help_id}) { require Gtk2::WebKit; my $view = gtknew('WebKit_View'); load_from_uri($view, $file); - my $w = ugtk2->new(N("Help"), transient => $mainw->{real_window}, modal => 1); + my $w = ugtk2->new(N("Help"), modal => 1); gtkadd($w->{rwindow}, gtkpack_(Gtk2::VBox->new, 1, create_scrolled_window(gtkset_border_width($view, 5), @@ -832,6 +832,16 @@ sub display_help { } } +sub display_help { + my ($_o, $common) = @_; + # not very safe but we run in a restricted environment anyway: + my $f = '/tmp/help.txt'; + if ($common->{interactive_help}) { + output($f, $common->{interactive_help}->()); + } + system('display_installer_help', $common->{interactive_help_id} || $f); +} + sub ask_fromW { my ($o, $common, $l) = @_; @@ -850,7 +860,7 @@ sub ask_fromW { my @more_buttons = ( if_($common->{interactive_help} || $common->{interactive_help_id}, [ gtknew('Install_Button', text => N("Help"), - clicked => sub { display_help($o, $common, $mainw) }), undef, 1 ]), + clicked => sub { display_help($o, $common) }), undef, 1 ]), if_($common->{more_buttons}, @{$common->{more_buttons}}), ); my $buttons_pack = ($common->{ok} || !exists $common->{ok}) && $mainw->create_okcancel($common->{ok}, $common->{cancel}, '', @more_buttons); -- cgit v1.2.1