diff options
Diffstat (limited to 'perl-install/live_install')
-rwxr-xr-x | perl-install/live_install | 93 |
1 files changed, 65 insertions, 28 deletions
diff --git a/perl-install/live_install b/perl-install/live_install index 4f519f0fc..de92f054f 100755 --- a/perl-install/live_install +++ b/perl-install/live_install @@ -1,28 +1,65 @@ -#!../perl - -my $dir = `pwd`; -chomp $dir; -$dir .= "/../../.."; - -#- update /tmp/rhimage which points to top dir of Mandrake CD. -system "/bin/rm", "-rf", "/tmp/rhimage"; -mkdir "/tmp/rhimage", 0700 or die "cannot create directory /tmp/rhimage"; -system "/bin/rm", "-rf", "/tmp/drakx"; -mkdir "/tmp/drakx", 0700 or die "cannot create directory /tmp/drakx\n"; - -#- copy whole set of mdkinst tree and symlink to the CD. -foreach (qw(Mandrake RPMS misc boot images)) { - symlink "$dir/../../$_", "/tmp/rhimage/$_"; -} -system "/bin/cp", "-a", "$dir/../../Mandrake/mdkinst", "/tmp/drakx"; - -#- start the true live_install. -if (-x "/tmp/drakx/mdkinst/usr/bin/perl-install/live_install2") { - chdir "/tmp/drakx/mdkinst/usr/bin/perl-install2"; - system "/tmp/drakx/mdkinst/usr/bin/perl-install/live_install2"; -} else { - print STDERR "unable to get a working live system to start, check your working directory"; -} - -system "/bin/rm", "-rf", "/tmp/drakx"; -system "/bin/rm", "-rf", "/tmp/rhimage"; +#!/bin/sh + +if [ "$UID" -ne 0 ]; then + echo >&2 "you need to be root to start live install" + exit 3 +fi + +if [ -x ./Mandrake/mdkinst/usr/bin/perl-install/live_install2 ]; then + dir=`pwd`/Mandrake/mdkinst +elif [ -x ../../../../../Mandrake/mdkinst/usr/bin/perl-install/live_install2 ]; then + dir=`pwd`/../../.. +else + echo >&2 "unable to get a working live system to start, check your working directory" + exit 2 +fi + +/bin/rm -rf /tmp/rhimage +/bin/mkdir -m 0700 /tmp/rhimage || exit 1 +/bin/rm -rf /tmp/drakx +/bin/mkdir -m 0700 /tmp/drakx || exit 2 + +for i in Mandrake RPMS misc boot images VERSION +do + /bin/ln -sf "$dir/../../$i" "/tmp/rhimage/$i" +done + +/bin/cp -a "$dir/../../Mandrake/mdkinst" "/tmp/drakx" + +if [ -x "/tmp/drakx/mdkinst/usr/bin/perl-install/live_install2" ]; then + perlcoredir=/usr/lib/perl5/5.6.0/i386-linux/CORE + cd /tmp/drakx/mdkinst/usr/bin/perl-install + if [ -x $perlcoredir/libperl.so ]; then + /bin/mv $perlcoredir/libperl.so /tmp/drakx/mdkinst + fi + /bin/mkdir -p $perlcoredir + /bin/cp -a /tmp/drakx/mdkinst/$perlcoredir/libperl.so $perlcoredir/libperl.so + + if [ -x /usr/bin/packdrake ]; then + /bin/mv /usr/bin/packdrake /tmp/drakx/mdkinst + fi + /bin/cp -a /tmp/drakx/mdkinst/usr/bin/packdrake /usr/bin/packdrake + + for i in MonitorsDB CardsNames Cards+ + do + if [ -e /usr/X11R6/lib/X11/$i ]; then + /bin/mv /usr/X11R6/lib/X11/$i /tmp/drakx/mdkinst + fi + /bin/cp -a /tmp/drakx/mdkinst/usr/X11R6/lib/X11/$i /usr/X11R6/lib/X11/$i + done + + # gtk ressource for live. + export GTK_DATA_PREFIX=/tmp/drakx/mdkinst/usr + + # get correct fonts for DrakX. + if [ -n "$DISPLAY" ]; then + xset +fp /tmp/drakx/mdkinst/usr/X11R6/lib/X11/fonts/ + xset fp rehash + fi + + # start DrakX, do not keep shell script in background else the CD is locked by it!!! + exec ../../../lib/ld-linux.so.2 ../perl ./live_install2 +fi + +echo >&2 "unable to get a working live system to start, check your working directory" +exit 2 |