source: branches/stable/contrib/mkcd/setup @ 911

Last change on this file since 911 was 911, checked in by bruno, 13 years ago
Further removal of all instances of grep -wx in code.
  • Property svn:executable set to *
File size: 21.5 KB
Line 
1#!/bin/sh
2
3
4##########################################################################
5# SETUP for Mondo/Mindi installation CD, by Hugo Rabson
6#
7#
8# 07/14
9# - added SLES support
10# - added NNA support
11#
12# 06/29/2004
13# - if finals and snapshots are present, use snapshots
14#
15# 06/20/2004
16# - patch by Geofuz@netscape.com
17#
18# 06/08/2004
19# - upgraded to Mondo 2.0, Mindi 1.0
20# - fixed bug related to softlinks (xxx.86-64 --> xxxx.amd64)
21#
22# 05/23/2004
23# - added SuSE 9.1 (64-bit) slang/newt workaround
24#
25# 04/25/2004
26# - fixed bug which stopped RPM-based distros whose dirs are softlinks
27#   from having their dependencies resolved properly
28#
29# 04/15/2004
30# - fixed RHT9-specific Mondo/Mindi installation bug
31#
32# 04/02/2004
33# - added RHE2.1 support
34#
35# 03/29/2004
36# - added Fedora 2 and SuSE 8.1 support (thanks, Mike Roark, for slang RPM)
37#
38# 03/25/2004
39# - changed $command from 'rpm -Uvh ...' to just '...'; now, it's called
40#   as 'rpm -Uvh $command' not '$command' --- required for SuSE 9
41#   compatibility
42#
43# 03/23/2004
44# - added Knoppix 3.3 preliminary support
45#
46# 02/22/2004
47# - added Mitel 6.0 support (a.k.a. SME 6.0)
48#
49# 01/15/2004
50# - added RHE 3.0 to the mix
51#
52# 01/02/2004
53# - FindMissingRPMs() was installing finals, not snapshots, under
54#   certain circumstances - FIXED
55#
56# 11/18/2003
57# - make sure to remove all _old_ mindi, mondo stuff from HDD
58#
59# 10/20/2003
60# - added Fedore Core support
61#
62# 10/19/2003
63# - added code to distinguish zisofs from zisofs-tools when looking
64#   for missing RPMs
65#
66# 10/16/2003
67# - friendlier messages re: umount /mnt/cdrom
68#
69# 10/06/2003
70# - better handling of dirs w/ final & snapshot in them at same time
71#
72# 09/22/2003
73# - added SuSE and Trustix to the mix
74# - uninstall cdrecord if version is < 1.10
75#
76# 09/08/2003
77# - added partimagehack to the mix
78#
79# 07/31/2003
80# - fixed input param bug
81#
82# 05/20/2003
83# - added code to deal with mindi-kernel rpm
84#
85# 05/03/2003
86# - copy self to /tmp/$RANDOM.$RANDOM.txt and run from there
87# - unmount (if not supermount) and eject CD at end of install
88#
89# 04/25/2003
90# - pause before exiting, even Die()'ing
91#
92# 01/10/2003
93# - misc bugs fixed
94#
95# 12/10/2002
96# - misc bugs fixed
97#
98# 12/07/2002
99# - changed ALX to ARK (ArkLinux)
100#
101# 11/31/2002
102# - report success/failure at end
103#
104# 11/29/2002
105# - tweaked it to automount; also to look for mondo/mindi RPMs in
106#   the distro's directory before trying the vanilla RPMs
107#
108# 08/12/2002
109# - minor tweaks
110#
111# 03/29/2002
112# - started keeping a changelog in here
113##########################################################################
114
115
116InBkgd() {
117   cd /
118   sleep 1
119   umount $1
120   eject $2
121}
122
123# ------------------------- main -------------------------
124
125
126LOGFILE=/tmp/mondo-setup.log
127STABLE_BRANCH=2.0
128DEVEL_BRANCH=2.1
129
130
131
132
133Die() {
134    LogIt "$1"
135    LogIt ""
136    echo -en "Press ENTER to abort." 2> /dev/stderr
137    read line
138    cd /
139    exit 1
140}
141
142
143
144GetDistroBanner() {
145    local fname res
146
147    if uname -a | grep Knoppix > /dev/null ; then
148    echo "Knoppix LiveCD"
149    return
150    fi
151
152    res=`cat /etc/issue.net 2>/dev/null | grep -i turbolinux | head -n1`
153    if [ "$res" != "" ] ; then
154    echo "$res"
155        return
156    fi
157
158    for fname in `find /etc -maxdepth 1 | grep release` /etc/issue.net ; do
159        res=`cat $fname 2>/dev/null | grep -i "linux" | head -n1 | tr -s '\t' ' '`
160        [ "$res" = "" ] && res=`cat $fname |head -n1 | tr -s '\t' ' '`
161        if [ "$res" != "" ] ; then
162            echo "$res"
163            return
164        fi
165    done
166#echo "fname = $fname" > /dev/stderr
167
168    echo "UNKNOWN"
169}
170
171#GetDistroBanner
172#exit 0
173
174
175GetDistroName() {
176    local banner name
177    banner="`GetDistroBanner`"
178    name="X"   ;# unknown
179#echo "banner = $banner" >> /dev/stderr
180    StrStr "`cat /etc/issue.net 2> /dev/null | head -n1`" "SuSE Linux Openexchange" && name=SLX; # SuSE Openexchange
181    StrStr "`cat /etc/issue.net 2> /dev/null | head -n1`" "SuSE SLES" && name=SLE; # SLES
182    StrStr "$banner" "OpenNA"            && name="NNA" ;# OpenNA
183    StrStr "$banner" "Fedora"            && name="FDR" ;# Fedora
184    StrStr "$banner" "Red Hat"           && name="RHT" ;# Red Hat
185    StrStr "$banner" "Red Hat Linux Advanced"  && name="RHE" ;# Red Hat E
186    StrStr "$banner" "Red Hat Linux Enterprise" &&name="RHE" ;# Red Hat E
187    StrStr "$banner" "Red Hat Advanced"  && name="RHE"
188    StrStr "$banner" "Red Hat Enterprise" && name="RHE"
189    StrStr "$banner" "White Box Enterprise" && name="RHE";# Red Hat Enterpr.
190    StrStr "$banner" "Red Hat Enterprise"   && name="RHE"
191    StrStr "$banner" "Mandrake"          && name="MDK" ;# Mandrake
192    StrStr "$banner" "e-Smith"           && name="SME" ;# e-Smith / SME
193    StrStr "$banner" "SME Server"        && name="SME" ;# e-Smith / SME
194    StrStr "$banner" "Mitel"             && name="SME" ;# Mitel a.k.a. SME
195    StrStr "$banner" "SuSE"              && name="SUS" ;# SuSE
196    StrStr "$banner" "Trustix"           && name="TSL" ;# Trustix
197    uname -a | grep Knoppix > /dev/null  && name="KPX" ;# Knoppix
198    if StrStr "$banner" "Turbolinux" ; then
199        StrStr "$banner" "Server"        && name="TLS" ;# TurboLinux Server
200        StrStr "$banner" "Server"        || name="TLW" ;# TurboLinux WorkSt'n
201    fi
202    if StrStr "$banner" "Caldera" ; then
203        StrStr "$banner" "Server"        && name="CALe";# Caldera e-Server
204        StrStr "$banner" "Server"        || name="CALo";# Caldera OpenLinux
205    fi
206    if [ "$name" != "RHE" ] ; then
207    for i in "ArkLinux ARK" "Gentoo GEN" "RedHat RHT" "Mandrake MDK" ; do
208        d=`echo "$i" | cut -d' ' -f1`
209        e=`echo "$i" | cut -d' ' -f2`
210        if strings /etc/ld.so.cache | grep -i "$d" &> /dev/null ; then
211        echo $e
212        return
213        fi
214    done
215    fi
216    echo "$name"
217}
218
219
220
221FindMissingRPMs() {
222    local i pkg missing_packages j todo k blah q
223    missing_packages=""
224    todo=`find $1/*.rpm | grep -v mondo | grep -v mindi`
225    if [ "`GetDistroName`" = "NNA" ] ; then
226        echo "Sorry - no mindi-kernel or partimagehack for OpenNNA" > /dev/stderr
227    else
228    for i in mindi-kernel partimagehack ; do
229# "mindi-$MINDI_BRANCH" "mondo-$MY_BRANCH" ; do
230        [ "`echo "$i" | grep mindi`" ] && qq=head || qq=tail
231        j=`find $1/ -type f -maxdepth 1 | grep "$i" | $qq -n1`
232        [ ! "$j" ] && j=`find RPMS/ -type f -maxdepth 1 | grep -F "$i" | $qq -n1`
233        if [ ! "$j" ] ; then
234        echo "Looking for $i" >> /dev/stderr
235        echo "Looking in $1" >> /dev/stderr
236        echo "pwd = `pwd`" >> /dev/stderr
237        echo "I ran 'find $1 -type f -maxdepth 1 | grep $i" >> /dev/stderr
238        Die "Unable to find $i in $1 or RPMS/"
239    fi
240        todo="$todo $j"
241    done
242    fi
243
244#    echo "todo = '$todo'" >> /dev/stderr
245
246    for i in $todo ; do
247#   echo "i = $i" > /dev/stderr
248    [ -d "$i" ] && continue
249    StrStr "$i" ".rpm" || continue
250    i=`basename $i`
251    j=`echo "$i" | tr '.' '#' | sed s/#rpm// | sed s/#i[3-8]86// | tr -s '#' '.'`
252    k=`echo "$j" | cut -d'-' -f1`
253    for blah in devel doc http kernel libs newt theme tools ; do
254        if echo "$j" | grep "\-$blah" &> /dev/null ; then
255        k=`echo "$j" | cut -d'-' -f1,2`
256        if echo "$j" | grep -E '^[A-Z,a-Z]*-[A-Z,a-Z]*-[A-Z,a-z]*-.*$' &> /dev/null ; then
257            k=`echo "$j" | cut -d'-' -f1,2,3`
258        fi
259        fi
260    done
261    rpm -q $k &> /dev/null && continue
262## remove xmondo thingy
263    echo "$i" | grep xmondo &> /dev/null && continue
264    missing_packages="$missing_packages $i"
265    done
266    echo "$missing_packages"
267}
268
269
270
271GetDistroVersion() {
272    local banner i res j
273    banner="`GetDistroBanner`"
274    res=""
275    j="`cat /etc/issue.net 2> /dev/null | head -n1`"
276    if StrStr "$j" "Openexchange" || StrStr "$j" "SLES" ; then
277    banner="$j"
278    fi
279#    echo "banner = $banner" >> /dev/stderr
280    for i in $banner ; do
281    j=`echo $i | grep -E '^[v|V][0-9]+*.*$'`
282    [ ! "$j" ] && j=`echo $i | grep -E '^[0-9]+*.*$'`
283    echo "$j" | grep -E '^[0-9]*)$' > /dev/null && continue
284    [ "$j" ] && res=`echo $j | sed s/v// | sed s/V//`
285    done
286    [ "$res" = "2.1AS" ] && res="2.1"
287    if echo "$banner" | grep SLES &> /dev/null ; then
288        res="`echo "$banner" | sed s/SLES/#/ | cut -d'#' -f2 | cut -d' ' -f2`"
289#        echo "banner = $banner"
290#        echo "res = $res"
291    fi
292    [ "$res" ] && echo "$res"
293}
294
295
296GetDistroArchitecture() {
297    local arch
298    for arch in x86_64 x86-64 amd64 opteron ia64 ; do
299    if grep -i "$arch" /etc/issue.net &> /dev/null ; then
300#       [ "$arch" = "x86_64" ] && arch=amd64; # hack - FIXME
301        echo $arch
302        return 0
303    fi
304    done
305
306    for arch in itanium ; do
307    if grep -i "$arch" /etc/issue.net &> /dev/null ; then
308        echo itan
309        return 0
310    fi
311    done
312
313    echo ia32
314    return 0
315}
316
317
318
319
320
321InstallFromRpms() {
322    local distro_TLA distro_ver distro_title replacement ch res q distro_arch rpms_path
323    distro_TLA=$1
324    distro_ver=$2
325    distro_arch=$3
326# Look in directory 'RPMS/$distro_TLA' for a file called 'name' which contains
327# the user-friendly name of this distribution.
328    distro_title=`cat RPMS/$distro_TLA/name`
329    echo "InstallFromRPMS($distro_TLA,$distro_ver,$distro_arch) --- title = $distro_title" >> $LOGFILE
330# $CDPATH/
331    rpms_path=RPMS/$distro_TLA/$distro_ver
332    [ "$distro_arch" != "ia32" ] && rpms_path=$rpms_path.$distro_arch
333
334# Find a (compatible) version closest or identical to this user's version.
335    if [ ! -d "$rpms_path" ] ; then
336    replacement=`find RPMS/$distro_TLA -type d | tail -n1`
337    replacement=`basename $replacement`
338    echo -en "Version $distro_ver is not supported. Would $replacement do? "
339    read ch
340    StrStr "YyYESyesYes" "$ch" && distro_ver=$replacement || Die "Please install Mondo manually.\nType 'cd $CDPATH/RPMS/$distro_TLA and \ninstall the RPMs of your choice."
341    fi
342# Install RPMs from this directory.
343    LogIt "Locating and installing packages suitable for $distro_title v $distro_ver"
344    for q in XMondo mondo mindi mindi-kernel partimagehack bootsplash-theme-SuSE ; do
345    echo -en "."
346        rpm -q $q &> /dev/null && rpm --erase $q --nodeps 2>> $LOGFILE >> $LOGFILE
347    done
348# make list of and install missing packages
349    if rpm -q cdrecord 2> /dev/null | grep "cdrecord-1\.[5-8]" ; then
350        echo -en "Uninstalling outdated cdrecord package..."
351        rpm --erase --nodeps cdrecord
352    echo "Done."
353    fi
354    echo -en "."
355
356    rm -Rf /usr/local/share/mondo /usr/share/mondo /usr/local/share/mindi /usr/share/mindi
357
358# remove packages which could be broken, then upgrade them
359    if find $rpms_path/*slang*rpm > /dev/null 2> /dev/null ; then
360    rpm --erase --nodeps slang 2> /dev/null
361    rpm --erase --nodeps slang-devel 2> /dev/null
362    rpm -i --nodeps $rpms_path/*slang*rpm
363    fi
364    if find $rpms_path/*newt*rpm > /dev/null 2> /dev/null ; then
365        rpm --erase --nodeps newt 2> /dev/null
366    rpm --erase --nodeps newt-devel 2> /dev/null
367    rpm --erase --nodeps lib64newt0.50 2> /dev/null
368    rpm --erase --nodeps lib64newt0.51 2> /dev/null
369    fi
370
371    for i in mondoarchive mondorestore mindi ; do
372        for j in 1 2 3 ; do
373            which $i &> /dev/null && rm -f `which $i`
374        done
375    done
376
377# install missing pkgs
378
379#    echo "rpms_path = $rpms_path" >> /dev/stderr
380    [ "$rpms_path" = "RPMS/SUS/9.1.x86-64" ] && ln -sf libnewt.so.0.51 /usr/lib64/libnewt.so.0.50
381    if [ "$rpms_path" = "RPMS/SUS/9.1" ] ; then
382    ln -sf libnewt.so.0.51 /usr/lib/libnewt.so.0.50
383    if ! ls /usr/lib/libslang-utf8* &> /dev/null ; then 
384        ln -sf libslang.so.1 /usr/lib/libslang-utf8.so.1
385    fi
386    fi
387#    [ "$rpms_path" = "RPMS/SLE/8" ] && ln -sf libslang-utf8.so.1 /usr/lib/libslang.so.1
388    if ls $rpms_path/mondo* &> /dev/null ; then
389        InstallMissingPackages $rpms_path $rpms_path
390    else
391        InstallMissingPackages $rpms_path RPMS
392    fi
393    res=$?
394#    PostInstallSanityChecks
395#    res=$(($res+$?))
396    return $res
397}
398
399
400UntarAndMakeMindi() {
401    local tarball res builddir pkg q branch tarball outdir bindir
402
403    pkg=mindi
404    branch=$1
405    builddir=/tmp/setup.$$
406    mkdir -p $builddir
407    cd $builddir
408
409    tarball=`find $CDPATH/TGZS/$pkg-$branch*tgz | tail -n1`
410    [ -e "$tarball" ] || return 1
411    tar -zxf $tarball || return 1
412    if uname -a | grep Knoppix > /dev/null ; then
413        stub=`echo "$tarball" | gawk -F '/' '{print $NF;}' | cut -d'.' -f1,2`
414#        echo "stub = $stub"
415        outdir=/ramdisk/tmp/$pkg
416        mkdir -p $outdir || return 1
417    tar -zxf $tarball -C $outdir
418    cd $outdir
419    cd $outdir/$stub
420#   cp -f /mnt/mondostuff/mondocvs/mindi-devel/install.sh . 2> /dev/null
421#   cp -f /mnt/mondostuff/mondocvs/mindi-devel/mindi . 2> /dev/null
422    ./install.sh || return 1
423    else
424    Die "Not written yet"
425    fi
426
427    cd /tmp
428    [ "$builddir" ] && [ -d "$builddir" ] && rm -Rf $builddir
429    return 0
430}
431
432
433
434UntarAndMakeMondo() {
435    local tarball res builddir pkg q branch tarball q outdir bindir
436
437    pkg=mondo
438    branch=$1
439    builddir=/tmp/setup.$$
440    mkdir -p $builddir
441    cd $builddir
442
443    tarball=`find $CDPATH/TGZS/$pkg-$branch*tgz | tail -n1`
444    [ -e "$tarball" ] || return 1
445    tar -zxf $tarball || return 1
446    if uname -a | grep Knoppix > /dev/null ; then
447    stub=`echo "$tarball" | gawk -F '/' '{print $NF;}' | cut -d'.' -f1,2`
448#   echo "stub = $stub"
449    outdir=/ramdisk/usr/local/share/$pkg
450    bindir=/ramdisk/usr/bin
451    mkdir -p $bindir
452    mkdir -p $outdir || return 1
453    rm -Rf $outdir/*
454    tar -zxf $tarball -C $outdir $stub/$pkg/{restore-scripts,do-not-compress-these}
455    mv $outdir/$stub/$pkg/* $outdir
456    rm -Rf $outdir/$stub
457    for q in mondoarchive mondorestore ; do
458        cp -f $CDPATH/stuff/$q.static $outdir/$q || Die "Can't copy static $q"
459        ln -sf $outdir/$q $bindir/$q
460    done
461    else
462    tar -zxf $tarball || return 1
463    dir=`find $pkg-$branch* -type d`
464    echo hi > test.txt
465    cd $builddir/$dir || return 1
466    ./configure || return 1
467    make VERSION=$MY_BRANCH -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_REENTRANT || return 1
468    make install || return 1
469    fi
470    cd /tmp
471    [ "$builddir" ] && [ -d "$builddir" ] && rm -Rf $builddir
472    return 0
473}
474
475
476
477
478InstallPIH() {
479    local pkg branch builddir tarball
480    pkg=partimagehack
481    branch=$1
482    builddir=/tmp/setup.$$
483    outdir=/ramdisk/usr/bin
484    mkdir -p $builddir
485    cd $builddir
486
487    tarball=`find $CDPATH/TGZS/$pkg-$branch*bz2 | tail -n1`
488    [ -e "$tarball" ] || return 1
489
490    if uname -a | grep Knoppix > /dev/null ; then
491        stub=`echo "$tarball" | gawk -F '/' '{print $NF;}' | cut -d'.' -f1,2,3`
492#       echo "stub = $stub"
493       tar -jxf $tarball -C $outdir $stub/partimagehack || return 1
494       mv -f $outdir/$stub/partimagehack $outdir
495    else
496    Die "InstallPIH doesn't work for non-Knoppix systems yet"
497    fi
498    cd /tmp
499    return 0
500}
501
502
503
504
505#CDPATH=/mnt/mondostuff/MondoCD
506#InstallPIH 0.6
507#UntarAndMakeMondo 1.7
508#UntarAndMakeMindi 0.9
509#exit 0
510
511
512InstallFromTgzs() {
513    local res old_pwd
514
515    old_pwd=`pwd`
516    res=0
517    if uname -a | grep Knoppix > /dev/null && [ "$MY_BRANCH" = "1.6" ] ; then
518    Die "Only mondo-devel supports Knoppix."
519    fi
520
521    UntarAndMakeMondo $MY_BRANCH || Die "Failed to build mondo $MY_BRANCH"
522    UntarAndMakeMindi $MINDI_BRANCH || Die "Failed to build mindi $MINDI_BRANCH"
523    InstallPIH 0.6 || Die "Failed to install partimagehack from tarball"
524    cd $old_pwd
525    return $res
526}
527
528
529
530
531InstallMissingPackages() {
532    local res pkg missing_packages command packages_path mindimondo_path possible_packages c2
533    packages_path=$1
534    mindimondo_path=$2
535#    echo "mindimondo_path = $2" >> /dev/stderr
536    missing_packages=`FindMissingRPMs $1`
537    echo "missing_packages =$missing_packages" >> $LOGFILE
538    sync
539
540#    echo -en "Press ENTER to continue." ; read line
541
542    command=""
543    for pkg in $missing_packages ; do
544    echo -en "."
545        if [ -e "$packages_path/$pkg" ] ; then
546        command="$command $packages_path/$pkg"
547    elif [ -e "RPMS/$pkg" ] ; then
548        command="$command RPMS/$pkg"
549    else
550        Die "Cannot find local path of $pkg - it's neither at RPMS nor at $packages_path"
551    fi
552    done
553
554#    echo "\$2 = '$2'" >> /dev/stderr
555
556    c2="`find $mindimondo_path/mindi-$MINDI_BRANCH*rpm 2> $LOGFILE | tail -n1` `find $mindimondo_path/mondo-$MY_BRANCH*rpm 2>> $LOGFILE | tail -n1`"
557
558#    echo "c2 = '$c2'" >> /dev/stderr
559
560    command="`echo "$command" | tr ' ' '\n' | sort -u | tr '\n' ' '`"
561    if echo "$c2" | grep mondo &> /dev/null && echo "$command" | grep mondo &> /dev/null ; then
562#        echo "command was $command"
563        command="`echo "$command" | tr ' ' '\n' | grep -v mondo | tr '\n' ' '`"
564#        echo "command is now $command"
565    fi
566    command="`echo "$command $c2" | tr ' ' '\n' | sort -u | tr '\n' ' '`"
567    echo "Calling 'rpm -Uvh $command'" >> $LOGFILE
568    echo -en "\r"
569    rpm -Uvh $command
570    res=$?
571    [ "$res" -ne "0" ] && Die "Some packages failed to be installed."
572    return $res
573}
574
575
576
577LogIt() {
578    echo -e "$1" >> /dev/stderr
579    echo -e "$1" >> $LOGFILE
580}
581
582
583
584PostInstallSanityChecks()
585{
586    local res
587    res=0
588    if which /usr/local/mondo/mondo-archive &> /dev/null ; then
589    echo "mondo-archive available to be executed" >> $LOGFILE
590    else
591    LogIt "mondo-archive --help failed"
592    res=$(($res+1))
593    fi
594    if [ "`/usr/local/mondo/mondo-tarme --wu-tang`" = "dollar dollar bill, y'all" ]; then
595    echo "mondo-tarme executable intact" >> $LOGFILE
596    else
597    LogIt "mondo-tarme executable not available"
598    res=$(($res+1))
599    fi
600    if [ "`/usr/local/mondo/mondo-restore --cream`" = "dollar dollar bill, y'all" ] ; then
601    echo "mondo-restore executable intact" >> $LOGFILE
602    else
603    LogIt "mondo-restore executable not available"
604    res=$(($res+1))
605    fi
606    return $res
607}
608
609
610
611StrStr() {
612  [ "`echo "$1" | grep -Fi "$2"`" ] && return 0 || return 1
613}
614
615
616
617WelcomeMessage() {
618    LogIt ""
619    LogIt "Welcome to the Mondo Rescue installer! This script"
620    LogIt "will install Mondo and any missing dependencies."
621    LogIt "--------------------------------------------------"
622    echo "banner=`GetDistroBanner`" >> $LOGFILE
623    echo "name  =`GetDistroName`" >> $LOGFILE
624    echo "ver   =`GetDistroVersion`" >> $LOGFILE
625    echo "arch  =`GetDistroArchitecture`" >> $LOGFILE
626}
627
628
629InstallXmondoFromRpms() {
630    rpm -i RPMS/XMondo-1*rpm
631    return $?
632}
633
634
635
636InstallXmondoFromTgz() {
637    echo "InstallXmondoFromTgz() --- not written yet"
638    return 1
639}
640
641
642
643
644# ------------------------------- main -------------------------------
645
646
647
648cd `dirname $0`
649CDPATH=`pwd`
650if [ "$#" -ge "1" ] ; then
651    if [ "`pwd`" != "/tmp" ] ; then
652    rm -f /tmp/mondo-cd-setup.*
653    new_fname="/tmp/mondo-cd-setup.$RANDOM.$RANDOM.$$.sh"
654    cat $0 > $new_fname
655    chmod +x $new_fname
656    cd /
657    exec sh $new_fname $0
658    fi
659    cd `dirname $1`
660fi
661
662> $LOGFILE
663echo "pwd=`pwd`" >> $LOGFILE
664[ -e "/usr/local/mondo.devel" ] && [ -e "/usr/local/mindi" ] && Die "Noooo! Hugo, type 'mv /usr/local/mindi /usr/local/mindi.orig' first, please."
665MY_BRANCH=$STABLE_BRANCH
666MINDI_BRANCH=1.0
667WelcomeMessage
668
669#echo "distr=`GetDistroName`"
670#echo "version=`GetDistroVersion`"
671#echo "arch=`GetDistroArchitecture`"
672#exit 1
673
674echo -en "Do you want to install the (S)table or the (D)evelopment branch of Mondo? "
675read ch
676if [ "`echo "development" | grep -Fi "$ch"`" ] ; then
677    MY_BRANCH=$DEVEL_BRANCH
678    MINDI_BRANCH=1.1
679#    XMONDO=yes
680fi
681[ "$MY_BRANCH" = "$STABLE_BRANCH" ] && LogIt "Installing stable branch." || LogIt "Installing development branch."
682# LogIt "I see you are running `GetDistroBanner`"
683distro=`GetDistroName`
684version=`GetDistroVersion`
685architecture=`GetDistroArchitecture`
686LogIt "distro=$distro version=$version arch=$architecture"
687
688[ "$distro" = "ARK" ] && version=1.0
689# patch by Geofuz@netscape.com
690if [ "$distro" = "FDR" ] ; then
691  if [ "$version" = "2" ] || [ "$version" = "1.90" ] ; then
692    version=2.0
693  else
694    version=1.0
695  fi
696fi 
697# end patch
698[ "$distro" = "KPX" ] && version=3.3; # Knoppix
699[ ! "$version" ] && Die "Distro=$distro but I cannot ascertain version of distro"
700if [ ! -d "RPMS/$distro" ] && rpm --version &> /dev/null && [ "$distro" != "KPX" ] ; then
701    LogIt "You are using an unknown version but you have RPM available, which means"
702    LogIt "I could try installing the Red Hat 7.2-compatible stuff. It will probably work."
703    echo -en "Shall I do that (y/n)? "
704    read ch
705    if [ "`echo "YESyesYes" | grep -F "$ch"`" ] ; then
706        distro=RHT
707        version=7.2
708    fi
709fi
710res=0
711if [ -d "RPMS/$distro" ] ; then
712    InstallFromRpms "$distro" "$version" "$architecture"
713    res=$(($res+$?))
714    if [ "$XMONDO" ] ; then
715        InstallXmondoFromRpms
716        res=$(($res+$?))
717    fi
718elif [ -d "TGZS/$distro" ] ; then
719    InstallFromTgzs "$distro" "$version" "$architecture"
720    res=$(($res+$?))
721    if [ "$XMONDO" ] ; then
722        InstallXmondoFromTgzs
723        res=$(($res+$?))
724    fi
725else
726    LogIt "`GetDistroBanner` is not supported by this script."
727    LogIt "RPMs are stored in /RPMS and the tarballs are in /TGZS, both on the CD."
728    Die "Please install Mondo manually."
729fi
730if [ "$res" -eq "0" ] ; then
731    LogIt "Running 'ldconfig' to refresh library cache..."
732    ldconfig
733    LogIt "End of install. Mondo was installed OK."
734else
735    LogIt "End of install. Errors occurred."
736fi
737
738cd /
739if [ "$#" -ge "1" ] ; then
740    mountpt=`dirname $1`
741    dev=`mount | tr -s '\t' ' ' | grep "$mountpt " | awk '{print $1;}'`
742    if [ ! "$dev" ] || [ "$dev" = "none" ] ; then
743    dev=`mount | tr -s '\t' ' ' | grep "$mountpt " | tr -s ',' '\n' | sed s/dev=// | grep /dev`
744    mountpt=""; # supermount - don't unmount it :)
745    fi
746    [ "$mountpt" ] && umount $mountpt
747    [ "$dev" ] && eject $dev
748    echo "mountpt=$mountpt; dev=$dev" >> $LOGFILE
749else
750    LogIt "Please type:-"
751    LogIt "       cd /"
752    LogIt "       umount $CDPATH"
753    LogIt "Then remove the Mondo installation CD."
754fi
755
756LogIt "Refer to Mondo's manual for instructions"
757LogIt "on the care and feeding of Mondo Rescue."
758LogIt ""
759#if fdisk -l | grep -w 7 &> /dev/null || fdisk -l | grep -wi ntfs &> /dev/null ; then
760#    LogIt "To backup your NTFS partition, you must first install"
761#    LogIt "partimagehack. This is in the CD's /TGZS directory as"
762#    LogIt "partimagehack-0.6.2.tar.bz2, FYI."
763#    which partimagehack &> /dev/null & LogIt "...Oh my, I think you already have. Good show!"
764#fi
765#LogIt ""
766LogIt "Log in as root and type 'mondoarchive' to backup your PC."
767LogIt ""
768echo -en "Press ENTER to finish."
769read line
770exit $res
Note: See TracBrowser for help on using the repository browser.