summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mageia.org>2013-03-04 19:10:28 +0000
committerThierry Vignaud <tv@mageia.org>2013-03-04 19:10:28 +0000
commit9cb20748b9ce79a27c937ca750b579e8879a97c1 (patch)
tree5fbc3a5b6f915d7898d376a839a09230bc1b540d /perl-install
parent3d93ee6ae8a7715327ba89f3250f49c81ca47c7d (diff)
downloaddrakx-9cb20748b9ce79a27c937ca750b579e8879a97c1.tar
drakx-9cb20748b9ce79a27c937ca750b579e8879a97c1.tar.gz
drakx-9cb20748b9ce79a27c937ca750b579e8879a97c1.tar.bz2
drakx-9cb20748b9ce79a27c937ca750b579e8879a97c1.tar.xz
drakx-9cb20748b9ce79a27c937ca750b579e8879a97c1.zip
fork displaying help, thus workarounding a webkit segfault (mga#9124)
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/Makefile.config2
-rw-r--r--perl-install/install/NEWS1
-rw-r--r--perl-install/install/share/list.xml1
-rw-r--r--perl-install/interactive/gtk.pm18
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 @@
<from dir="../standalone">
<to dir="/usr/bin">
+ display_installer_help
display_release_notes.pl
</to>
</from>
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);