diff options
-rw-r--r-- | move/Makefile | 3 | ||||
-rw-r--r-- | move/move.pm | 2 | ||||
-rwxr-xr-x | move/tree/X_move | 7 | ||||
-rwxr-xr-x | move/tree/startkde_move | 32 | ||||
-rw-r--r-- | perl-install/install_steps_gtk.pm | 4 |
5 files changed, 44 insertions, 4 deletions
diff --git a/move/Makefile b/move/Makefile index 8ee16a0cf..9b8e40f46 100644 --- a/move/Makefile +++ b/move/Makefile @@ -7,7 +7,7 @@ ISO = /BIG/mdkmove.iso DATA_FILES = devices symlinks directories-to-create etcfiles all-etcfiles keyfiles \ BOOT-800-MOVE.jpg BOOT-1024-MOVE.jpg BOOT-1280-MOVE.jpg BOOT-1600-MOVE.jpg -PROGRAM_FILES = etc-monitorer.pl +PROGRAM_FILES = etc-monitorer.pl tree/startkde_move LANG_FILES = $(shell perl -ne 'print $$1 if /ALLOWED_LANGS = qw\((.*)\)/' move.pm) STAGE1 = ../mdk-stage1 @@ -49,6 +49,7 @@ install: build sudo cp -f *.pm $(DEST_STAGE2) sudo cp -f $(addprefix $(INSTALL)/, $(INSTALL_FILES)) $(DEST_STAGE2) sudo cp -f $(PROGRAM_FILES) $(DEST_LIVETREE)/usr/bin + sudo cp -f tree/X_move $(DEST_LIVETREE)/usr/X11R6/bin sudo rm -rf $(DEST_LIVETREE)/usr/share/langs sudo mkdir -p $(DEST_LIVETREE)/usr/share/langs diff --git a/move/move.pm b/move/move.pm index 19a1af58c..e2f10e2f7 100644 --- a/move/move.pm +++ b/move/move.pm @@ -514,7 +514,7 @@ sub install2::startMove { $ENV{LOGNAME} = $ENV{USER} = $username; $ENV{HOME} = $home; $ENV{SHELL} = $shell; - exec 'startkde'; + exec 'startkde_move'; } else { exec 'xwait' or c::_exit(0); } diff --git a/move/tree/X_move b/move/tree/X_move new file mode 100755 index 000000000..df085fcd8 --- /dev/null +++ b/move/tree/X_move @@ -0,0 +1,7 @@ +#!/bin/bash + +ok=0 +while [ "$ok" == 0 ]; do + X $@ + ok=$? +done diff --git a/move/tree/startkde_move b/move/tree/startkde_move new file mode 100755 index 000000000..a9d1d53ce --- /dev/null +++ b/move/tree/startkde_move @@ -0,0 +1,32 @@ +#!/usr/bin/perl + +use MDK::Common; +use lib qw(/usr/lib/libDrakX); +use c; + +sub wait4x() { + my $nb = 0; + foreach (1..30) { + sleep 1; + print("no X server :("), exit 1 if !fuzzy_pidofs(qr/\bX_move\b/); + $nb++ if c::Xtest(':0'); + if ($nb > 2) { #- one succeeded test is not enough :-( + return; + } + } + exit 1; +} + +my ($kde_ok, $xwait); + +while (1) { + wait4x(); + if (!($xwait = fork())) { + exec 'xwait', '-permanent'; #- so that server doesn't blink when startkde finishes + } + my ($xdim) = `xdpyinfo` =~ /dimensions:\s*(\d+)/; + system("qiv --root /image/move/BOOT-$xdim-MOVE.jpg"); + system('startkde'); + system('sudo killall X'); + waitpid $xwait, 0; +} diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index 82e962140..ba34a9205 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -107,13 +107,13 @@ sub new($$) { require run_program; move::automatic_xconf($o); run_program::run('/sbin/service', 'xfs', 'start'); - @servers = qw(X); + @servers = qw(X_move); } foreach (@servers) { log::l("Trying with server $_"); my $dir = "/usr/X11R6/bin"; - my ($prog, $Driver) = /Driver:(.*)/ ? ('XFree86', $1) : /Xsun|Xpmac|Xnest|^X$/ ? $_ : "XF86_$_"; + my ($prog, $Driver) = /Driver:(.*)/ ? ('XFree86', $1) : /Xsun|Xpmac|Xnest|^X_move$/ ? $_ : "XF86_$_"; unless (-x "$dir/$prog") { unlink $_ foreach glob_("$dir/X*"); install_any::getAndSaveFile("Mandrake/mdkinst$dir/$prog", "$dir/$prog") or die "failed to get server $prog: $!"; |