xref: /AOO41X/main/setup_native/scripts/install_solaris.sh (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir#!/bin/bash
2*cdf0e10cSrcweir
3*cdf0e10cSrcweirADD="no"
4*cdf0e10cSrcweirLINK="no"
5*cdf0e10cSrcweirUPDATE="no"
6*cdf0e10cSrcweirUSAGE="Usage: $0 [-a] [-l] [-h] <pkg-source-dir> <office-installation-dir>"
7*cdf0e10cSrcweir
8*cdf0e10cSrcweirhelp()
9*cdf0e10cSrcweir{
10*cdf0e10cSrcweir  echo
11*cdf0e10cSrcweir  echo "User Mode Installation script for developer and knowledgeable early access tester"
12*cdf0e10cSrcweir  echo
13*cdf0e10cSrcweir  echo "This installation method is not intended for use in a production environment!"
14*cdf0e10cSrcweir  echo "Using this script is unsupported and completely at your own risk"
15*cdf0e10cSrcweir  echo
16*cdf0e10cSrcweir  echo "Usage:" $0 "<pkg-source-dir> <office-installation-dir> [-l]"
17*cdf0e10cSrcweir  echo "    <pkg-source-dir>:       directory *only* containing the Solaris pkg packages to be installed"
18*cdf0e10cSrcweir  echo "                            or language pack shell script containing the Solaris pkg packages"
19*cdf0e10cSrcweir  echo "    <office-installation-dir>: directory to where the office and the pkg database will get installed into"
20*cdf0e10cSrcweir  echo
21*cdf0e10cSrcweir  echo "Optional Parameter:"
22*cdf0e10cSrcweir  echo "    -a :              add to an existing <office-installation-dir>"
23*cdf0e10cSrcweir  echo "    -l :              create a link \"soffice\" in $HOME"
24*cdf0e10cSrcweir  echo "    -h :              output this help"
25*cdf0e10cSrcweir}
26*cdf0e10cSrcweir
27*cdf0e10cSrcweirtry_to_unpack_languagepack_file()
28*cdf0e10cSrcweir{
29*cdf0e10cSrcweir  FILENAME=$PACKAGE_PATH
30*cdf0e10cSrcweir
31*cdf0e10cSrcweir  # Checking, if $FILENAME is a language pack.
32*cdf0e10cSrcweir  # String "language package" has to exist in the shell script file.
33*cdf0e10cSrcweir  # If this is no language pack, the installation is not supported
34*cdf0e10cSrcweir
35*cdf0e10cSrcweir  SEARCHSTRING=`head -n 10 $FILENAME | grep "language package"`
36*cdf0e10cSrcweir
37*cdf0e10cSrcweir  if [ ! -z "$SEARCHSTRING" ]
38*cdf0e10cSrcweir  then
39*cdf0e10cSrcweir    echo "First parameter $FILENAME is a language pack";
40*cdf0e10cSrcweir  else
41*cdf0e10cSrcweir    printf "\nERROR: First parameter $FILENAME is a file, but no language pack shell script.\n"
42*cdf0e10cSrcweir    echo $USAGE
43*cdf0e10cSrcweir    exit 2
44*cdf0e10cSrcweir  fi
45*cdf0e10cSrcweir
46*cdf0e10cSrcweir  echo "Unpacking shell script $FILENAME"
47*cdf0e10cSrcweir  # TAILLINE=`head -n 20 $FILENAME | sed --quiet 's/linenum=//p'`
48*cdf0e10cSrcweir  TAILLINE=`head -n 20 $FILENAME | sed -n 's/linenum=//p'`
49*cdf0e10cSrcweir
50*cdf0e10cSrcweir  if [ -x "/usr/bin/mktemp" ]  # available in Solaris 10
51*cdf0e10cSrcweir  then
52*cdf0e10cSrcweir    UNPACKDIR=`mktemp -d`
53*cdf0e10cSrcweir  else
54*cdf0e10cSrcweir    UNPACKDIR=/var/tmp/install_$$
55*cdf0e10cSrcweir    mkdir $UNPACKDIR
56*cdf0e10cSrcweir  fi
57*cdf0e10cSrcweir
58*cdf0e10cSrcweir  echo $UNPACKDIR
59*cdf0e10cSrcweir  tail +$TAILLINE $FILENAME | gunzip | (cd $UNPACKDIR; tar xvf -)
60*cdf0e10cSrcweir
61*cdf0e10cSrcweir  # Setting the new package path, in which the packages exist
62*cdf0e10cSrcweir  PACKAGE_PATH=$UNPACKDIR
63*cdf0e10cSrcweir
64*cdf0e10cSrcweir  # Setting variable UPDATE, because an Office installation has to exist, if a language pack shall be installed
65*cdf0e10cSrcweir  UPDATE="yes"
66*cdf0e10cSrcweir}
67*cdf0e10cSrcweir
68*cdf0e10cSrcweirpkg_error()
69*cdf0e10cSrcweir{
70*cdf0e10cSrcweir  # pkg command failed, check for admin log and report help
71*cdf0e10cSrcweir  if [ -f /tmp/.ai.pkg.zone.lock-afdb66cf-1dd1-11b2-a049-000d560ddc3e ]
72*cdf0e10cSrcweir  then
73*cdf0e10cSrcweir    echo "####################################################################"
74*cdf0e10cSrcweir    echo "#     Installation failed due to stale administrative lock         #"
75*cdf0e10cSrcweir    echo "####################################################################"
76*cdf0e10cSrcweir    printf "\nERROR: please remove the following file first:\n"
77*cdf0e10cSrcweir	ls -l /tmp/.ai.pkg.zone.lock-afdb66cf-1dd1-11b2-a049-000d560ddc3e
78*cdf0e10cSrcweir  fi
79*cdf0e10cSrcweir  rm -f $GETUID_SO
80*cdf0e10cSrcweir  exit 1
81*cdf0e10cSrcweir}
82*cdf0e10cSrcweir
83*cdf0e10cSrcweirget_pkg_list()
84*cdf0e10cSrcweir{
85*cdf0e10cSrcweir  cd $1; ls -1
86*cdf0e10cSrcweir}
87*cdf0e10cSrcweir
88*cdf0e10cSrcweir#
89*cdf0e10cSrcweir# this script is for userland not for root
90*cdf0e10cSrcweir#
91*cdf0e10cSrcweir
92*cdf0e10cSrcweirif [ $UID -eq 0 ]
93*cdf0e10cSrcweirthen
94*cdf0e10cSrcweir  printf "\nThis script is for installation without administrative rights only\nPlease use pkgadd/patchadd to install as root\n"
95*cdf0e10cSrcweir  help
96*cdf0e10cSrcweir  exit 2
97*cdf0e10cSrcweirfi
98*cdf0e10cSrcweir
99*cdf0e10cSrcweirwhile getopts "alh" VALUE
100*cdf0e10cSrcweirdo
101*cdf0e10cSrcweir  echo $VALUE
102*cdf0e10cSrcweir  case $VALUE in
103*cdf0e10cSrcweir    a)      ADD="yes"; break;;
104*cdf0e10cSrcweir    h)      help; exit 0;;
105*cdf0e10cSrcweir    l)      LINK="yes"; break;;
106*cdf0e10cSrcweir    ?)      echo $USAGE; exit 2;;
107*cdf0e10cSrcweir  esac
108*cdf0e10cSrcweirdone
109*cdf0e10cSrcweirshift `expr $OPTIND - 1`
110*cdf0e10cSrcweir
111*cdf0e10cSrcweirif [ $# != 2 ]
112*cdf0e10cSrcweirthen
113*cdf0e10cSrcweir  echo $USAGE
114*cdf0e10cSrcweir  exit 2
115*cdf0e10cSrcweirfi
116*cdf0e10cSrcweir
117*cdf0e10cSrcweir# Determine whether this is a patch or a regular install set ..
118*cdf0e10cSrcweir/bin/bash -c "ls $1/*/patchinfo >/dev/null 2>&1"
119*cdf0e10cSrcweirif [ "$?" = 0 ]
120*cdf0e10cSrcweirthen
121*cdf0e10cSrcweir  UPDATE="yes"
122*cdf0e10cSrcweir  PATCH_PATH="$1"
123*cdf0e10cSrcweir  PATCH_INFO_LIST=`/bin/bash -c "cd $1; ls */patchinfo"`
124*cdf0e10cSrcweir  PATCH_LIST=`for i in ${PATCH_INFO_LIST}; do dirname $i; done`
125*cdf0e10cSrcweirelif [ -f "$1/patchinfo" ]
126*cdf0e10cSrcweirthen
127*cdf0e10cSrcweir  UPDATE="yes"
128*cdf0e10cSrcweir  PATCH_PATH=`dirname "$1"`
129*cdf0e10cSrcweir  PATCH_LIST=`basename "$1"`
130*cdf0e10cSrcweirelse
131*cdf0e10cSrcweir  if [ -d "$1/packages" ]
132*cdf0e10cSrcweir  then
133*cdf0e10cSrcweir    PACKAGE_PATH="$1/packages"
134*cdf0e10cSrcweir  else
135*cdf0e10cSrcweir    PACKAGE_PATH=$1
136*cdf0e10cSrcweir  fi
137*cdf0e10cSrcweir
138*cdf0e10cSrcweir  #
139*cdf0e10cSrcweir  # If the first parameter is a shell script (download installation set), the packages have to
140*cdf0e10cSrcweir  # be unpacked into temp directory
141*cdf0e10cSrcweir  #
142*cdf0e10cSrcweir  if [ -f "$PACKAGE_PATH" ]
143*cdf0e10cSrcweir  then
144*cdf0e10cSrcweir    try_to_unpack_languagepack_file
145*cdf0e10cSrcweir  fi
146*cdf0e10cSrcweir
147*cdf0e10cSrcweir  #
148*cdf0e10cSrcweir  # Create sed filter script for unwanted packages
149*cdf0e10cSrcweir  #
150*cdf0e10cSrcweir
151*cdf0e10cSrcweir  cat > /tmp/userinstall_filer.$$ << EOF
152*cdf0e10cSrcweir/SUNWadabas/d
153*cdf0e10cSrcweir/^SUNWj[0-9]/d
154*cdf0e10cSrcweir/-desktop-int/d
155*cdf0e10cSrcweir/-shared-mime-info/d
156*cdf0e10cSrcweir/-cde/d
157*cdf0e10cSrcweirEOF
158*cdf0e10cSrcweir
159*cdf0e10cSrcweir  # Do not install gnome-integration package on systems without GNOME
160*cdf0e10cSrcweir  pkginfo -q SUNWgnome-vfs
161*cdf0e10cSrcweir  if [ $? -ne 0 ]
162*cdf0e10cSrcweir  then
163*cdf0e10cSrcweir
164*cdf0e10cSrcweir    echo '/-gnome/d' >> /tmp/userinstall_filer.$$
165*cdf0e10cSrcweir  fi
166*cdf0e10cSrcweir
167*cdf0e10cSrcweir  # pkgdep sorts the packages based on their dependencies
168*cdf0e10cSrcweir  PKGDEP="`dirname $0`/pkgdep"
169*cdf0e10cSrcweir  if [ ! -x $PKGDEP ]; then
170*cdf0e10cSrcweir    PKGDEP="get_pkg_list"
171*cdf0e10cSrcweir  fi
172*cdf0e10cSrcweir
173*cdf0e10cSrcweir  #
174*cdf0e10cSrcweir  # Get the list of packages to install
175*cdf0e10cSrcweir  #
176*cdf0e10cSrcweir
177*cdf0e10cSrcweir  PKG_LIST=`$PKGDEP $PACKAGE_PATH | sed -f  /tmp/userinstall_filer.$$`
178*cdf0e10cSrcweir  rm -f /tmp/userinstall_filer.$$
179*cdf0e10cSrcweir
180*cdf0e10cSrcweir  if [ -z "$PKG_LIST" ]
181*cdf0e10cSrcweir  then
182*cdf0e10cSrcweir    printf "\n$0: No packages found in $PACKAGE_PATH\n"
183*cdf0e10cSrcweir    exit 2
184*cdf0e10cSrcweir  fi
185*cdf0e10cSrcweir
186*cdf0e10cSrcweir  echo "Packages found:"
187*cdf0e10cSrcweir  for i in $PKG_LIST ; do
188*cdf0e10cSrcweir    echo $i
189*cdf0e10cSrcweir  done
190*cdf0e10cSrcweirfi
191*cdf0e10cSrcweir
192*cdf0e10cSrcweirINSTALL_ROOT=$2
193*cdf0e10cSrcweirif [ "$UPDATE" = "yes" ]
194*cdf0e10cSrcweirthen
195*cdf0e10cSrcweir  if [ ! -d ${INSTALL_ROOT}/var/sadm/install/admin ]
196*cdf0e10cSrcweir  then
197*cdf0e10cSrcweir    printf "\n$0: No package database in ${INSTALL_ROOT}.\n"
198*cdf0e10cSrcweir    exit 2
199*cdf0e10cSrcweir  fi
200*cdf0e10cSrcweirelse
201*cdf0e10cSrcweir  if [ "$ADD" = "no" ]
202*cdf0e10cSrcweir  then
203*cdf0e10cSrcweir    rmdir ${INSTALL_ROOT} 2>/dev/null
204*cdf0e10cSrcweir    if [ -d ${INSTALL_ROOT} ]
205*cdf0e10cSrcweir    then
206*cdf0e10cSrcweir      printf "\n$0: ${INSTALL_ROOT} exists and is not empty.\n"
207*cdf0e10cSrcweir      exit 2
208*cdf0e10cSrcweir    fi
209*cdf0e10cSrcweir  fi
210*cdf0e10cSrcweir  mkdir -p ${INSTALL_ROOT}/var/sadm/install/admin
211*cdf0e10cSrcweirfi
212*cdf0e10cSrcweir
213*cdf0e10cSrcweir# Previous versions of this script did not write this file
214*cdf0e10cSrcweirif [ ! -f ${INSTALL_ROOT}/var/sadm/install/admin/default ]
215*cdf0e10cSrcweirthen
216*cdf0e10cSrcweir  cat > ${INSTALL_ROOT}/var/sadm/install/admin/default << EOF
217*cdf0e10cSrcweiraction=nocheck
218*cdf0e10cSrcweirconflict=nocheck
219*cdf0e10cSrcweirsetuid=nocheck
220*cdf0e10cSrcweiridepend=nocheck
221*cdf0e10cSrcweirmail=
222*cdf0e10cSrcweirEOF
223*cdf0e10cSrcweirfi
224*cdf0e10cSrcweir
225*cdf0e10cSrcweirif [ ! "${INSTALL_ROOT:0:1}" = "/" ]; then
226*cdf0e10cSrcweir  INSTALL_ROOT=`cd ${INSTALL_ROOT}; pwd`
227*cdf0e10cSrcweirfi
228*cdf0e10cSrcweir
229*cdf0e10cSrcweir# This script must exist to make extension registration work
230*cdf0e10cSrcweir# always overwrite to get the latest version.
231*cdf0e10cSrcweirmkdir -p ${INSTALL_ROOT}/usr/lib
232*cdf0e10cSrcweircat > ${INSTALL_ROOT}/usr/lib/postrun << \EOF
233*cdf0e10cSrcweir#!/bin/sh
234*cdf0e10cSrcweirset -e
235*cdf0e10cSrcweir
236*cdf0e10cSrcweir# Override UserInstallation in bootstraprc for unopkg ..
237*cdf0e10cSrcweirUserInstallation='$BRAND_BASE_DIR/../UserInstallation'
238*cdf0e10cSrcweirexport UserInstallation
239*cdf0e10cSrcweir
240*cdf0e10cSrcweirif [ -x /usr/bin/mktemp ]
241*cdf0e10cSrcweirthen
242*cdf0e10cSrcweir  CMD=`/usr/bin/mktemp /tmp/userinstall.XXXXXX`
243*cdf0e10cSrcweirelse
244*cdf0e10cSrcweir  CMD=/tmp/userinstall.$$; echo "" > $CMD
245*cdf0e10cSrcweirfi
246*cdf0e10cSrcweir
247*cdf0e10cSrcweirsed -e 's|/opt/|${PKG_INSTALL_ROOT}/opt/|g' > $CMD
248*cdf0e10cSrcweir/bin/sh -e $CMD
249*cdf0e10cSrcweirrm -f $CMD
250*cdf0e10cSrcweirEOF
251*cdf0e10cSrcweirchmod +x ${INSTALL_ROOT}/usr/lib/postrun 2>/dev/null
252*cdf0e10cSrcweir
253*cdf0e10cSrcweir# create local tmp directory to install on S10
254*cdf0e10cSrcweirLOCAL_TMP=
255*cdf0e10cSrcweirif [ -x /usr/bin/mktemp ]
256*cdf0e10cSrcweirthen
257*cdf0e10cSrcweir  LOCAL_TMP=`mktemp -d`
258*cdf0e10cSrcweir  rmdir ${INSTALL_ROOT}/tmp 2>/dev/null
259*cdf0e10cSrcweir  ln -s ${LOCAL_TMP} ${INSTALL_ROOT}/tmp
260*cdf0e10cSrcweirfi
261*cdf0e10cSrcweir
262*cdf0e10cSrcweir#
263*cdf0e10cSrcweir# the tail of the script contains a shared object for overloading the getuid()
264*cdf0e10cSrcweir# and a few other calls
265*cdf0e10cSrcweir#
266*cdf0e10cSrcweir
267*cdf0e10cSrcweirGETUID_SO=/tmp/getuid.so.$$
268*cdf0e10cSrcweirlinenum=???
269*cdf0e10cSrcweirtail +$linenum $0 > $GETUID_SO
270*cdf0e10cSrcweir
271*cdf0e10cSrcweir#
272*cdf0e10cSrcweir# Perform the installation
273*cdf0e10cSrcweir#
274*cdf0e10cSrcweirif [ "$UPDATE" = "yes" ]
275*cdf0e10cSrcweirthen
276*cdf0e10cSrcweir  # restore original "bootstraprc" prior to patching
277*cdf0e10cSrcweir  for i in ${PKG_LIST}; do
278*cdf0e10cSrcweir    my_dir=${INSTALL_ROOT}`pkgparam -d ${PACKAGE_PATH} "$i" BASEDIR`
279*cdf0e10cSrcweir    find "$my_dir" -type f -name bootstraprc.orig -exec sh -ce 'mv "$0" `dirname "$0"`/bootstraprc' {} \;
280*cdf0e10cSrcweir  done
281*cdf0e10cSrcweir
282*cdf0e10cSrcweir  # copy INST_RELEASE file
283*cdf0e10cSrcweir  if [ ! -f ${INSTALL_ROOT}/var/sadm/system/admin/INST_RELEASE ]
284*cdf0e10cSrcweir  then
285*cdf0e10cSrcweir    mkdir -p ${INSTALL_ROOT}/var/sadm/system/admin 2>/dev/null
286*cdf0e10cSrcweir    cp -f /var/sadm/system/admin/INST_RELEASE ${INSTALL_ROOT}/var/sadm/system/admin/INST_RELEASE
287*cdf0e10cSrcweir  fi
288*cdf0e10cSrcweir
289*cdf0e10cSrcweir  # The case UPDATE="yes" is valid for patch installation and for language packs.
290*cdf0e10cSrcweir  # For patches the variable PKG_LIST is empty, for language packs it is not empty.
291*cdf0e10cSrcweir  # Patches have to be installed with patchadd, language packs with pkgadd
292*cdf0e10cSrcweir
293*cdf0e10cSrcweir  if [ -z "${PKG_LIST}" ]
294*cdf0e10cSrcweir  then
295*cdf0e10cSrcweir    LD_PRELOAD_32=$GETUID_SO /usr/sbin/patchadd -R ${INSTALL_ROOT} -M ${PATCH_PATH} ${PATCH_LIST} 2>&1 | grep -v '/var/sadm/patch' || pkg_error
296*cdf0e10cSrcweir  else
297*cdf0e10cSrcweir    LD_PRELOAD_32=$GETUID_SO /usr/sbin/pkgadd -d ${PACKAGE_PATH} -R ${INSTALL_ROOT} ${PKG_LIST} >/dev/null || pkg_error
298*cdf0e10cSrcweir  fi
299*cdf0e10cSrcweir
300*cdf0e10cSrcweirelse
301*cdf0e10cSrcweir
302*cdf0e10cSrcweir  # Create BASEDIR directories to avoid manual user interaction
303*cdf0e10cSrcweir  for i in ${PKG_LIST}; do
304*cdf0e10cSrcweir    mkdir -m 0755 -p ${INSTALL_ROOT}`pkgparam -d ${PACKAGE_PATH} $i BASEDIR` 2>/dev/null
305*cdf0e10cSrcweir  done
306*cdf0e10cSrcweir
307*cdf0e10cSrcweir  if [ ! "${INSTALL_ROOT:0:1}" = "/" ]; then
308*cdf0e10cSrcweir    INSTALL_ROOT=`cd ${INSTALL_ROOT}; pwd`
309*cdf0e10cSrcweir  fi
310*cdf0e10cSrcweir
311*cdf0e10cSrcweir  echo "####################################################################"
312*cdf0e10cSrcweir  echo "#     Installation of the found packages                           #"
313*cdf0e10cSrcweir  echo "####################################################################"
314*cdf0e10cSrcweir  echo
315*cdf0e10cSrcweir  echo "Path to the packages       : " $PACKAGE_PATH
316*cdf0e10cSrcweir  echo "Path to the installation   : " $INSTALL_ROOT
317*cdf0e10cSrcweir
318*cdf0e10cSrcweir  LD_PRELOAD_32=$GETUID_SO /usr/sbin/pkgadd -d ${PACKAGE_PATH} -R ${INSTALL_ROOT} ${PKG_LIST} >/dev/null || pkg_error
319*cdf0e10cSrcweirfi
320*cdf0e10cSrcweir
321*cdf0e10cSrcweirrm -f $GETUID_SO
322*cdf0e10cSrcweirrm -f /tmp/.ai.pkg.zone.lock*
323*cdf0e10cSrcweir
324*cdf0e10cSrcweir# remove local tmp directory
325*cdf0e10cSrcweirif [ ! -z ${LOCAL_TMP} ]
326*cdf0e10cSrcweirthen
327*cdf0e10cSrcweir  rm -f ${LOCAL_TMP}/.ai.pkg.zone.lock*
328*cdf0e10cSrcweir  rmdir ${LOCAL_TMP}
329*cdf0e10cSrcweir  rm -f ${INSTALL_ROOT}/tmp
330*cdf0e10cSrcweir  mkdir ${INSTALL_ROOT}/tmp
331*cdf0e10cSrcweirfi
332*cdf0e10cSrcweir
333*cdf0e10cSrcweir#
334*cdf0e10cSrcweir# Create a link into the users home directory
335*cdf0e10cSrcweir#
336*cdf0e10cSrcweir
337*cdf0e10cSrcweirif [ "$LINK" = "yes" ]
338*cdf0e10cSrcweirthen
339*cdf0e10cSrcweir  rm -f $HOME/soffice 2>/dev/null
340*cdf0e10cSrcweir  find `cd "$INSTALL_ROOT" && pwd` -name soffice -type f -perm -u+x -exec /bin/sh -ce 'ln -sf "$0" "$HOME/soffice" && echo "Creating link from $0 to $HOME/soffice"' {} \;
341*cdf0e10cSrcweirfi
342*cdf0e10cSrcweir
343*cdf0e10cSrcweir# patch the "bootstraprc" to create a self-containing installation
344*cdf0e10cSrcweirfor i in ${PKG_LIST}; do
345*cdf0e10cSrcweir  my_dir=${INSTALL_ROOT}`pkgparam -d ${PACKAGE_PATH} "$i" BASEDIR`
346*cdf0e10cSrcweir  find "$my_dir" -type f -name bootstraprc -exec sh -ce 'test ! -f "$0".orig && mv "$0" "$0".orig && sed '\''s,^UserInstallation=$SYSUSERCONFIG.*,UserInstallation=$BRAND_BASE_DIR/../UserInstallation,'\'' "$0".orig > "$0"' {} \;
347*cdf0e10cSrcweirdone
348*cdf0e10cSrcweir
349*cdf0e10cSrcweir# if an unpack directory exists, it can be removed now
350*cdf0e10cSrcweirif [ ! -z "$UNPACKDIR" ]
351*cdf0e10cSrcweirthen
352*cdf0e10cSrcweir  # for i in ${PKG_LIST}; do
353*cdf0e10cSrcweir  #   cd $UNPACKDIR; rm -rf $i
354*cdf0e10cSrcweir  # done
355*cdf0e10cSrcweir  # rmdir $UNPACKDIR
356*cdf0e10cSrcweir
357*cdf0e10cSrcweir  rm -rf $UNPACKDIR
358*cdf0e10cSrcweir  echo "Removed temporary directory $UNPACKDIR"
359*cdf0e10cSrcweirfi
360*cdf0e10cSrcweir
361*cdf0e10cSrcweirecho
362*cdf0e10cSrcweirecho "Installation done ..."
363*cdf0e10cSrcweirexit 0
364*cdf0e10cSrcweir
365