10139N/A#!/bin/bash
10139N/A
10139N/AARCH=`uname -p`
10139N/Aif [ $ARCH != "sparc" ]; then
10139N/A ARCH=x86
10139N/Afi
10139N/AALL_PRODUCTS="jds=JDS Common Packages
10139N/Ajds-src=Sources for JDS Common Packages
10139N/Agnome=GNOME 2.17 Desktop
10139N/Agnome-src=GNOME 2.17 Source
10139N/Amozilla=Mozilla 1.7 Web Browser
10139N/Amozilla-src=Mozilla Source
10139N/Afirefox=Firefox Web Browser
10139N/Afirefox-src=Firefox Source
10139N/Athunderbird=Thunderbird Email and News Client
10139N/Athunderbird-src=Thunderbird Source
10139N/Aidn
10139N/Aidn-src
10139N/Aevolution=Evolution Email and Calendar
10139N/Aevolution-src=Evolution Source
10139N/Aglow=Integrated Collaboration Environment
10139N/Ajai=Java Advanced Imaging
10139N/Ajai-iio=Java Advanced Imaging
10139N/Ajava=Java Runtime Environment
10139N/Ajava-src
10139N/Ajavaapps=Java Applications
10139N/Ajavaapps-src=Java Applications Sources
10139N/Ajava3d
10139N/Ajcs
10139N/Ajdk=Java Development Kit
10139N/Ajdic=Java Desktop Integration Components
10139N/Ajdnc=Java Desktop Network Components
10139N/Ajinput=Java Controller API
10139N/Ajoal=Java bindings for OpenAL API
10139N/Ajogl=Java bindings for OpenGL API
10139N/Al10n=Globalization Tools
10139N/Al10n-src=Globalization Tools Sources
10139N/Al10nmessages=Localized Messages
10139N/Aiiim=Input Method Switcher
10139N/Aiiim-src=Input Method Switcher Sources
10139N/Amuscle
10139N/Aplugins=Third Party Browser Plugins
10139N/Aplugins-src
10139N/Ascs-client
10139N/Astaroffice=StarOffice office suite
10139N/Astarsuite=StarSuite office suite
10139N/Aso-sdk=StarOffice Software Development Kit
10139N/Aupdater
10139N/Anetbeans
10139N/Ajavahelp
10139N/Axserver=X.org server
10139N/Anodist=Extra packages for JDS developers
10139N/Anodist-src=Extra sources for JDS developers
10139N/Aapoc-daemon=APOC Daemon
10139N/Aapoc-daemon-src=APOC Daemon Sources
10139N/Aapoc-sol-$ARCH=APOC Configuration Manager
10139N/Aapoc-sol-$ARCH-src=APOC Configuration Manager Sources"
10139N/A
10139N/AALL_PATCHDIRS="patches-xserver=X server patches
10139N/Apatches-mozilla=Patches required for the Mozilla Web browser
10139N/Apatches-gnome=Patches required for the GNOME Desktop"
10139N/A
10139N/APKGADD=/usr/sbin/pkgadd
10139N/APATCHADD=/usr/sbin/patchadd
10139N/APKGRM=/usr/sbin/pkgrm
10139N/APKGINFO=/usr/bin/pkginfo
10139N/AADMIN=/tmp/.pkg.$$.admin
10139N/AADMIN_CREATED=no
10139N/A
10139N/AMYNAME="$0"
10139N/AMYDIR=`dirname $0`
10139N/AMYDIR=`( cd $MYDIR; pwd )`
10139N/AMYNAME=$(basename $0)
10139N/AMYARGS="$*"
10139N/ALOGFILE=/var/sadm/install/logs/jds-install.log.$$
10139N/AINFOFILE=$MYDIR/.pkginfo
10139N/ASYSTEM=`uname -s`
10139N/AARCH=`uname -p`
10139N/ARELEASE=`uname -r`
10139N/AKERNELID=`uname -v`
10139N/A
10139N/A# ask "question" variable_name "default answer"
10139N/Aask () {
10139N/A echo -n "$1"
10139N/A if [ ! -z $3 ]; then
10139N/A echo -n " [$3]: "
10139N/A else
10139N/A echo -n ": "
10139N/A fi
10139N/A
10139N/A read -e val
10139N/A if [ "x$val" = x ]; then
10139N/A eval "$2=\"$3\""
10139N/A else
10139N/A eval "$2=\"$val\""
10139N/A fi
10139N/A}
10139N/A
10139N/A# ask_yes_no "question" variable_name "default answer"
10139N/Aask_yes_no () {
10139N/A yes_no_repeat=yes
10139N/A while [ $yes_no_repeat = yes ]; do
10139N/A yes_no_repeat=no
10139N/A ask "${@}"
10139N/A eval "the_ans=\"\$$2\""
10139N/A echo "$the_ans" | grep -i "^`l10n_print yes`$" > /dev/null
10139N/A if [ $? = 0 ]; then
10139N/A eval "$2=yes"
10139N/A return
10139N/A fi
10139N/A echo "$the_ans" | grep -i "^`l10n_print no`$" > /dev/null
10139N/A if [ $? = 0 ]; then
10139N/A eval "$2=no"
10139N/A return
10139N/A fi
10139N/A l10n_print "Please answer yes or no"
10139N/A yes_no_repeat=yes
10139N/A done
10139N/A}
10139N/A
10139N/Aget_req () {
10139N/A test -r $INFOFILE && \
10139N/A grep -i "^$1[ ]*=[ ]*" $INFOFILE | cut -f2 -d= | tr -d ' '
10139N/A}
10139N/A
10139N/AREQ_SYSTEM=`get_req system`
10139N/AREQ_ARCH=`get_req arch`
10139N/AREQ_RELEASE=`get_req release`
10139N/AREQ_KERNELID=`get_req kernelid`
10139N/A
10139N/Aversion_lower () {
10139N/A declare -a version1
10139N/A declare -a version2
10139N/A
10139N/A IFS=' '
10139N/A for n in `echo $1 | sed -e 's/Generic/999999/' | tr -cs "[0-9]" "[ *]"`; do
10139N/A version1=(${version1[*]} $n)
10139N/A done
10139N/A for n in `echo $2 | sed -e 's/Generic/999999/' | tr -cs "[0-9]" "[ *]"`; do
10139N/A version2=(${version2[*]} $n)
10139N/A done
10139N/A
10139N/A typeset -i n=0
10139N/A while /bin/true; do
10139N/A if [ -n "${version1[$n]}" ]; then
10139N/A if [ -n "${version2[$n]}" ]; then
10139N/A if [ ${version1[$n]} -lt ${version2[$n]} ]; then
10139N/A return 0
10139N/A else
10139N/A if [ ${version1[$n]} -gt ${version2[$n]} ]; then
10139N/A return 1
10139N/A fi
10139N/A fi
10139N/A else
10139N/A return 1
10139N/A fi
10139N/A else
10139N/A if [ -n "${version2[$n]}" ]; then
10139N/A return 0
10139N/A fi
10139N/A return 1
10139N/A fi
10139N/A typeset n=$n+1
10139N/A done
10139N/A}
10139N/A
10139N/Ausage () {
10139N/A echo "%s [options]" "$0"
10139N/A l10n_print "Install the Java Desktop System, GNOME 2.17, Solaris Edition"
10139N/A l10n_print " -h, --help display this help"
10139N/A l10n_print " --quiet, -q less verbose operation."
10139N/A l10n_print " --force, -f ignore any errors and continue."
10139N/A l10n_print " --ignore, -i ignore file conflicts and continue."
10139N/A l10n_print " -n non-interactive installation."
10139N/A l10n_print " -R rootdir install into an alternative root directory."
10139N/A l10n_print " -p prod1,prod2,..."
10139N/A l10n_print " select products for installation"
10139N/A l10n_print " -a install all products"
10139N/A l10n_print " --nopatch don't install OS patches"
10139N/A l10n_print " --accept accept the license terms"
10139N/A l10n_print " --tmpdir dir create temporary files in dir instead of /tmp"
10139N/A exit 1
10139N/A}
10139N/A
10139N/AQUIET=no
10139N/AFORCE=no
10139N/AIGNORE_CONFLICT=no
10139N/AINTERACTIVE=yes
10139N/AROOTDIR=
10139N/APRODUCTS=
10139N/ANO_PATCHES=no
10139N/ABASE_TEMPDIR=/tmp
10139N/ALICENSE_ACCEPTED=yes
10139N/A
10139N/Aprocess_options () {
10139N/A while [ $# != 0 ]; do
10139N/A case "$1" in
10139N/A --help | -h )
10139N/A usage
10139N/A ;;
10139N/A --quiet | -q )
10139N/A QUIET=yes
10139N/A ;;
10139N/A --force | -f )
10139N/A FORCE=yes
10139N/A ;;
10139N/A --ignore | -i )
10139N/A IGNORE_CONFLICT=yes
10139N/A ;;
10139N/A -R )
10139N/A shift
10139N/A ROOTDIR=$1
10139N/A if [ "x$ROOTDIR" = x ]; then
10139N/A l10n_print "Option %s requires an argument" "-R"
10139N/A usage
10139N/A fi
10139N/A ;;
10139N/A -n )
10139N/A INTERACTIVE=no
10139N/A ;;
10139N/A -a )
10139N/A select_all_products
10139N/A unselect_all_srcs
10139N/A unselect_product nodist
10139N/A ;;
10139N/A --accept )
10139N/A LICENSE_ACCEPTED=yes
10139N/A ;;
10139N/A -p )
10139N/A shift
10139N/A PRODUCTS="$1"
10139N/A if [ "x$PRODUCTS" = x ]; then
10139N/A l10n_print "Option %s requires an argument" "-R"
10139N/A usage
10139N/A fi
10139N/A ;;
10139N/A --tmpdir )
10139N/A shift
10139N/A BASE_TEMPDIR="$1"
10139N/A if [ "x$BASE_TEMPDIR" = x ]; then
10139N/A l10n_print "Option %s requires an argument" "--tmpdir"
10139N/A usage
10139N/A fi
10139N/A ;;
10139N/A --nopatch )
10139N/A NO_PATCHES=yes
10139N/A ;;
10139N/A * )
10139N/A l10n_print "Error: %s: invalid argument" "$1"
10139N/A usage
10139N/A ;;
10139N/A esac
10139N/A shift
10139N/A done
10139N/A}
10139N/A
10139N/Alogrun () {
10139N/A status_file=/tmp/.command_status.$$
10139N/A rm -f $status_file
10139N/A echo "running $*" >> $LOGFILE
10139N/A echo "*** command output follows ***" >> $LOGFILE
10139N/A if [ "x$QUIET" = xno ]; then
10139N/A ( "${@}" 2>&1 ; echo $? > $status_file ) | tee -a $LOGFILE
10139N/A else
10139N/A ( "${@}" 2>&1 ; echo $? > $status_file ) >> $LOGFILE
10139N/A fi
10139N/A echo "*** command output ends ***" >> $LOGFILE
10139N/A status=`cat $status_file`
10139N/A rm -f $status_file
10139N/A return $status
10139N/A}
10139N/A
10139N/Abackup () {
10139N/A if [ -e "$1" ]; then
10139N/A backup "$1~"
10139N/A l10n_print "Saving file %s as %s~" "$1" "$1"
10139N/A mv "$1" "$1~" || msg_fatal "Failed to back up file %s" "$1"
10139N/A fi
10139N/A}
10139N/A
10139N/Aclean_up () {
10139N/A if [ "x$ADMIN_CREATED" = xyes ]; then
10139N/A rm -f $ADMIN
10139N/A fi
10139N/A cd /
10139N/A rm -rf $TEMPDIR
10139N/A}
10139N/A
10139N/Aclean_up_and_abort () {
10139N/A clean_up
10139N/A l10n_print "Interrupted."
10139N/A exit 1
10139N/A}
10139N/A
10139N/ATEXTDOMAIN=install-jds
10139N/Al10n_print () {
10139N/A l10n_msg=`TEXTDOMAINDIR="$MYDIR"/.install gettext -d "$TEXTDOMAIN" "$1"`
10139N/A shift
10139N/A printf "$l10n_msg\n" "${@}"
10139N/A}
10139N/A
10139N/Amsg_fatal () {
10139N/A msg_log "${@}"
10139N/A l10n_print "${@}" 1>&2
10139N/A clean_up
10139N/A exit 1
10139N/A}
10139N/A
10139N/Amsg_error () {
10139N/A msg_log "${@}"
10139N/A l10n_print "${@}" 1>&2
10139N/A if [ $FORCE = no ]; then
10139N/A if [ "x$INTERACTIVE" = xyes ]; then
10139N/A ask_yes_no "`l10n_print 'Would you like to continue?'`" ans \
10139N/A `l10n_print "no"`
10139N/A if [ "x$ans" = xno ]; then
10139N/A clean_up
10139N/A exit 1
10139N/A fi
10139N/A WARNINGS=yes
10139N/A else
10139N/A clean_up
10139N/A exit 1
10139N/A fi
10139N/A else
10139N/A WARNINGS=yes
10139N/A fi
10139N/A}
10139N/A
10139N/Amsg_log () {
10139N/A test -f $LOGFILE || return
10139N/A log_arg1="$1"
10139N/A shift
10139N/A printf "$log_arg1\n" "${@}" >> $LOGFILE
10139N/A}
10139N/A
10139N/AWARNINGS=no
10139N/Amsg_warning () {
10139N/A l10n_print "${@}"
10139N/A WARNINGS=yes
10139N/A}
10139N/A
10139N/A# check_disk_space directory minsize(kB)
10139N/Acheck_disk_space () {
10139N/A dir_to_check="$ROOTDIR$1"
10139N/A while [ ! -d $dir_to_check ]; do
10139N/A dir_to_check="`dirname $dir_to_check`"
10139N/A done
10139N/A freespace=`df -k "$dir_to_check" | awk '!/Filesystem/ {print $4}'`
10139N/A if [ $freespace -le $2 ]; then
10139N/A return 1
10139N/A fi
10139N/A
10139N/A return 0
10139N/A}
10139N/A
10139N/A# so_disk_space_check prodname
10139N/Aso_disk_space_check () {
10139N/A # Need large tmp area (>=1GB) for StarOffice/StarSuite installation.
10139N/A check_disk_space $TEMPDIR 1048576 || \
10139N/A msg_error "Your %s directory has less than 1GB free.\nYou need to specify an alternative temp dir with the --tmpdir switch." "$BASE_TEMPDIR"
10139N/A}
10139N/A
10139N/Ainit () {
10139N/A USER_IS_ROOT=0
10139N/A /usr/bin/id | /usr/bin/grep '^uid=0(' > /dev/null 2>&1
10139N/A
10139N/A if [ $? != 0 ]; then
10139N/A msg_fatal "Only root can install this product."
10139N/A fi
10139N/A
10139N/A if [ $FORCE = no ]; then
10139N/A trap clean_up_and_abort HUP INT TERM
10139N/A else
10139N/A trap clean_up_and_abort HUP INT TERM ERR
10139N/A fi
10139N/A
10139N/A trap clean_up QUIT EXIT
10139N/A}
10139N/A
10139N/Awrite_admin () {
10139N/A backup "$ADMIN"
10139N/A ADMIN_CREATED=yes
10139N/A cat > $ADMIN << EOF
10139N/Amail=
10139N/Ainstance=unique
10139N/Arunlevel=nocheck
10139N/Asetuid=nocheck
10139N/Aaction=nocheck
10139N/Apartial=quit
10139N/Aidepend=nocheck
10139N/Ardepend=nocheck
10139N/Aspace=quit
10139N/AEOF
10139N/A
10139N/A if [ $IGNORE_CONFLICT = no ]; then
10139N/A cat >> $ADMIN << EOF_2
10139N/Aconflict=quit
10139N/AEOF_2
10139N/A else
10139N/A cat >> $ADMIN << EOF_3
10139N/Aconflict=nocheck
10139N/AEOF_3
10139N/A fi
10139N/A}
10139N/A
10139N/Adeclare -a MOUNT_POINTS
10139N/Adeclare -a MP_SUMS
10139N/Adisk_usage_init () {
10139N/A mps=`df -kl | grep '^/' | awk '{print $6}' | sort -r`
10139N/A IFS="
10139N/A"
10139N/A typeset -i i=0
10139N/A for mp in $mps; do
10139N/A MOUNT_POINTS[$i]="$mp"
10139N/A MP_SUMS[$i]=0
10139N/A typeset i=$i+1
10139N/A done
10139N/A MOUNT_POINT_COUNT=$i
10139N/A}
10139N/A
10139N/A# disk_usage_add <dir> <size>
10139N/Adisk_usage_add () {
10139N/A typeset -i i=0
10139N/A while [ $i -lt $MOUNT_POINT_COUNT ]; do
10139N/A mpname=${MOUNT_POINTS[$i]}
10139N/A case $1 in
10139N/A ${mpname}* )
10139N/A mpsize=${MP_SUMS[$i]}
10139N/A mpsize=`expr $mpsize + $2`
10139N/A MP_SUMS[$i]=$mpsize
10139N/A break
10139N/A ;;
10139N/A esac
10139N/A typeset i=$i+1
10139N/A done
10139N/A}
10139N/A
10139N/Adisk_usage_check () {
10139N/A typeset -i i=0
10139N/A while [ $i -lt $MOUNT_POINT_COUNT ]; do
10139N/A mpname=${MOUNT_POINTS[$i]}
10139N/A mpsize=${MP_SUMS[$i]}
10139N/A mpsize=`expr $mpsize + $mpsize`
10139N/A if [ $mpsize -gt 0 ]; then
10139N/A check_disk_space $mpname $mpsize || \
10139N/A msg_error "Your %s filesystem has less than %s kB free\nYou will not be able to install JDS." "$ROOTDIR$mpname" "$mpsize"
10139N/A fi
10139N/A typeset i=$i+1
10139N/A done
10139N/A}
10139N/A
10139N/A#install_pkgs <dir>
10139N/Ainstall_product () {
10139N/A ORDERFILE=$MYDIR/$1/.pkgorder
10139N/A if [ -r $ORDERFILE ]; then
10139N/A export IFS=' '
10139N/A ALL_PKGS=$(echo $(cat $ORDERFILE | sed -e 's/$/.tar.gz/'))
10139N/A else
10139N/A ALL_PKGS=$(cd $MYDIR/$1; find . -name '*.tar.gz' -print -o -name '*.tgz' -print)
10139N/A fi
10139N/A
10139N/A if [ -z "$ALL_PKGS" ]; then
10139N/A msg_error "No packages found."
10139N/A return
10139N/A fi
10139N/A
10139N/A msg_log "Starting installation of %s at %s" "$1" "`LANG=C LC_ALL=C date`"
10139N/A IFS='
10139N/A'
10139N/A
10139N/A # Remove old Mozilla 1.x packages.
10139N/A if [ $1 == 'firefox' -o $1 == 'thunderbird' ]; then
10139N/A moz_pkgs="SUNWmozspell
10139N/ASUNWmozpsm
10139N/ASUNWmoznss-devel
10139N/ASUNWmoznss
10139N/ASUNWmoznspr-devel
10139N/ASUNWmozmail
10139N/ASUNWmozjs-debugger
10139N/ASUNWmozilla-devel
10139N/ASUNWmozgm
10139N/ASUNWmozdom-inspector
10139N/ASUNWmozchat
10139N/ASUNWmozilla
10139N/ASUNWmoznspr
10139N/ASUNWmoznav
10139N/ASUNWthunderbird-devel"
10139N/A for moz_pkg in $moz_pkgs; do
10139N/A is_installed "$moz_pkg" && remove_pkg "$moz_pkg"
10139N/A done
10139N/A fi
10139N/A
10139N/A # Remove evolution-socs-connect packages as they are incompatible with
10139N/A # evolution-jescs (connector for Java Enterprise System Calendar Server)
10139N/A if [ $1 == 'evolution' ]; then
10139N/A evo_pkgs="SUNWevolution-socs-connect
10139N/ASUNWevolution-socs-connect-share"
10139N/A for evo_pkg in $evo_pkgs; do
10139N/A is_installed "$evo_pkg" && remove_pkg "$evo_pkg"
10139N/A done
10139N/A fi
10139N/A
10139N/A logrun mkdir -p $TEMPDIR || \
10139N/A msg_fatal "ERROR: Failed to create temporary directory %s" "$TEMPDIR"
10139N/A cd $TEMPDIR
10139N/A for pkg in $ALL_PKGS; do
10139N/A if [ ! -r $MYDIR/$1/$pkg ]; then
10139N/A msg_error "ERROR: cannot read file %s" "$pkg"
10139N/A continue
10139N/A fi
10139N/A logrun sh -c "gunzip -c $MYDIR/$1/$pkg | /bin/tar xf -"
10139N/A if [ $? != 0 ]; then
10139N/A msg_error "ERROR: Failed to unpack %s" "$pkg"
10139N/A continue
10139N/A fi
10139N/A pkg0=$(basename $pkg)
10139N/A pkg0=$(echo "$pkg0" | sed -e 's/\.tar.gz$//' -e 's/\.tgz$//')
10139N/A if [ ! -d $pkg0 ]; then
10139N/A msg_error "ERROR: Package %s not found in %s" "$pkg0" "$pkg"
10139N/A continue
10139N/A fi
10139N/A if [ "x$QUIET" = xno ]; then
10139N/A l10n_print "Installing package %s" "$pkg0"
10139N/A fi
10139N/A msg_log "Installing package $pkg0"
10139N/A if [ "x$ROOTDIR" != "x" ]; then
10139N/A logrun $PKGADD -R "$ROOTDIR" -a $ADMIN -n -d $TEMPDIR $pkg0 || \
10139N/A msg_error "ERROR: Failed to install package %s" "$pkg0"
10139N/A else
10139N/A logrun $PKGADD -a $ADMIN -n -d $TEMPDIR $pkg0 || \
10139N/A msg_error "ERROR: Failed to install package %s" "$pkg0"
10139N/A fi
10139N/A logrun rm -rf $TEMPDIR/$pkg0
10139N/A done
10139N/A}
10139N/A
10139N/Aremove_pkg () {
10139N/A if [ "x$QUIET" = xno ]; then
10139N/A l10n_print "Uninstalling %s" "$1"
10139N/A fi
10139N/A msg_log "Uninstalling %s" "$1"
10139N/A if [ "x$ROOTDIR" != x ]; then
10139N/A logrun $PKGRM -R "$ROOTDIR" -a $ADMIN -n "$1"'.*' || \
10139N/A msg_error "ERROR: Failed to remove package %s" "$1"
10139N/A else
10139N/A logrun $PKGRM -a $ADMIN -n "$1"'.*' || \
10139N/A msg_error "ERROR: Failed to remove package %s" "$1"
10139N/A fi
10139N/A}
10139N/A
10139N/Ais_installed () {
10139N/A $PKGINFO -q "$1.*"
10139N/A}
10139N/A
10139N/Aremove_always () {
10139N/A pkgs_to_remove="`cat $MYDIR/$1/.remove-always`"
10139N/A
10139N/A IFS="
10139N/A"
10139N/A for glob in "$pkgs_to_remove"; do
10139N/A pkgs=$(cd $MYDIR/$1; echo $glob)
10139N/A for pkg in $pkgs; do
10139N/A pkg=`basename $pkg`
10139N/A pkg=`basename $pkg .tar.gz`
10139N/A pkg=`basename $pkg .tgz`
10139N/A is_installed "$pkg" && remove_pkg "$pkg"
10139N/A done
10139N/A done
10139N/A}
10139N/A
10139N/Aremove_if_older () {
10139N/A pkgs_to_remove="`cat $MYDIR/$1/.remove-if-older`"
10139N/A
10139N/A IFS="
10139N/A"
10139N/A for glob in $pkgs_to_remove; do
10139N/A pkgs=$(cd $MYDIR/$1; echo "$glob")
10139N/A for pkg in $pkgs; do
10139N/A pkg=`basename $pkg .tar.gz`
10139N/A pkg=`basename $pkg .tgz`
10139N/A remove_pkg $pkg
10139N/A done
10139N/A done
10139N/A}
10139N/A
10139N/Amain_menu () {
10139N/A while /bin/true; do
10139N/A clear
10139N/A echo ",--------------------------------------------------------------------------"
10139N/A echo "| 1) " `l10n_print "Default Installation"`
10139N/A echo "| 2) " `l10n_print "Custom Installation"`
10139N/A echo "|"
10139N/A echo "| X) " `l10n_print "Exit"`
10139N/A echo "|"
10139N/A ask '`---> '"`l10n_print 'Please select:'`" "menu_sel" "1"
10139N/A case $menu_sel in
10139N/A 1)
10139N/A if [ "x$PRODUCTS" = x ]; then
10139N/A select_all_products
10139N/A unselect_all_srcs
10139N/A unselect_product nodist
10139N/A fi
10139N/A do_install || return $?
10139N/A break
10139N/A ;;
10139N/A 2)
10139N/A custom_menu || return $?
10139N/A ;;
10139N/A x|X)
10139N/A return 2
10139N/A ;;
10139N/A *)
10139N/A l10n_print "Invalid selection"
10139N/A sleep 1
10139N/A esac
10139N/A done
10139N/A return 0
10139N/A}
10139N/A
10139N/Acustom_menu () {
10139N/A while /bin/true; do
10139N/A clear
10139N/A echo ",--------------------------------------------------------------------------"
10139N/A echo "| 1) " `l10n_print "Install All Products"`
10139N/A echo "| 2) " `l10n_print "Select Products to Install"`
10139N/A if [ ! -z "$PATCHDIRS" ]; then
10139N/A echo "| 3) " `l10n_print "Select Patches to Install"`
10139N/A fi
10139N/A echo "|"
10139N/A echo "| I) " `l10n_print "Start Installation"`
10139N/A echo "| X) " `l10n_print "Exit"`
10139N/A echo "|"
10139N/A ask '`---> '"`l10n_print 'Please select:'`" "menu_sel" "I"
10139N/A case $menu_sel in
10139N/A 1)
10139N/A select_all_products
10139N/A unselect_all_srcs
10139N/A unselect_product nodist
10139N/A select_all_patches
10139N/A do_install || return $?
10139N/A return 1
10139N/A ;;
10139N/A 2)
10139N/A select_product_menu || return $?
10139N/A ;;
10139N/A 3)
10139N/A if [ ! -z "$PATCHDIRS" ]; then
10139N/A select_patchdir_menu || return $?
10139N/A else
10139N/A l10n_print "Invalid selection"
10139N/A sleep 1
10139N/A fi
10139N/A ;;
10139N/A i|I)
10139N/A do_install || return $?
10139N/A return 1
10139N/A ;;
10139N/A x|X)
10139N/A return 2
10139N/A ;;
10139N/A *)
10139N/A l10n_print "Invalid selection"
10139N/A sleep 1
10139N/A esac
10139N/A done
10139N/A return 0
10139N/A}
10139N/A
10139N/Aso_menu () {
10139N/A while /bin/true; do
10139N/A clear
10139N/A echo ",--------------------------------------------------------------------------"
10139N/A echo "| 1) StarOffice"
10139N/A echo "| 2) StarSuite"
10139N/A echo "|"
10139N/A echo "| X) " `l10n_print "Exit"`
10139N/A echo "|"
10139N/A ask '`---> '"`l10n_print 'Please select:'`" "menu_sel" "1"
10139N/A case $menu_sel in
10139N/A 1)
10139N/A unselect_product starsuite
10139N/A return 0
10139N/A ;;
10139N/A 2)
10139N/A unselect_product staroffice
10139N/A return 0
10139N/A ;;
10139N/A x|X)
10139N/A return 2
10139N/A ;;
10139N/A *)
10139N/A l10n_print "Invalid selection"
10139N/A sleep 1
10139N/A esac
10139N/A done
10139N/A return 0
10139N/A}
10139N/A
10139N/Aselect_patchdir_menu () {
10139N/A IFS=,
10139N/A while /bin/true; do
10139N/A clear
10139N/A echo ",--------------------------------------------------------------------------"
10139N/A typeset -i N=1
10139N/A
10139N/A for pdir in $PATCHDIRS; do
10139N/A pname=`echo "$ALL_PATCHDIRS" | grep "^$pdir=" | cut -f2- -d= | cut -c-60`
10139N/A n=`echo " $N" | sed -e 's/^.*\(..\)$/\1/'`
10139N/A pn=$(echo $pdir | cut -f2 -d-)
10139N/A eval "plist=\"\$ALL_${pn}_PATCHES\""
10139N/A eval "patch_${N}_list=\"$plist\""
10139N/A patches_are_selected "$plist"
10139N/A res=$?
10139N/A if [ $res = 0 ]; then
10139N/A echo "| $n) [x] $pname"
10139N/A eval "patch_${N}_selected=1"
10139N/A elif [ $res = 1 ]; then
10139N/A echo "| $n) [:] $pname"
10139N/A eval "patch_${N}_selected=0"
10139N/A else
10139N/A echo "| $n) [ ] $pname"
10139N/A eval "patch_${N}_selected=0"
10139N/A fi
10139N/A typeset N=$N+1
10139N/A done
10139N/A echo "|"
10139N/A echo "| A) " `l10n_print "Select All"`
10139N/A echo "| U) " `l10n_print "Unselect All"`
10139N/A echo "|"
10139N/A echo "| S) " `l10n_print "Select individual patches"`
10139N/A echo "| I) " `l10n_print "Start Installation"`
10139N/A echo "| R) " `l10n_print "Return to previous menu"`
10139N/A echo "| X) " `l10n_print "Exit"`
10139N/A echo "|"
10139N/A ask '`---> '"`l10n_print 'Enter item to select/unselect:'`" "menu_sel" "R"
10139N/A case $menu_sel in
10139N/A i|I)
10139N/A do_install || return $?
10139N/A return 1
10139N/A ;;
10139N/A x|X)
10139N/A return 2
10139N/A ;;
10139N/A r|R)
10139N/A return 0
10139N/A ;;
10139N/A a|A)
10139N/A select_all_patches
10139N/A ;;
10139N/A s|S)
10139N/A select_patch_menu || return $?
10139N/A ;;
10139N/A u|U)
10139N/A PATCHES=
10139N/A ;;
10139N/A *)
10139N/A eval "the_patches=\$patch_${menu_sel}_list"
10139N/A if [ -z "$the_patches" ]; then
10139N/A l10n_print "Invalid selection"
10139N/A sleep 1
10139N/A else
10139N/A eval "is_sel=\$patch_${menu_sel}_selected"
10139N/A if [ "x$is_sel" = x1 ]; then
10139N/A unselect_patches "$the_patches"
10139N/A else
10139N/A select_patches "$the_patches"
10139N/A fi
10139N/A fi
10139N/A esac
10139N/A done
10139N/A}
10139N/A
10139N/APATCH_INFO_LOADED=no
10139N/Aload_patch_info () {
10139N/A test "x$PATCH_INFO_LOADED" = "xyes" && return
10139N/A IFS=,
10139N/A for p in $1; do
10139N/A test -z "$p" && continue
10139N/A mkdir -p $TEMPDIR/patchdesc
10139N/A cd $TEMPDIR/patchdesc
10139N/A unzip $MYDIR/$p */README.* > /dev/null 2>&1
10139N/A dummy=`basename $p .zip`
10139N/A pdesc=`grep '^Synopsis:' */README.* | head -1 | cut -f2- -d:` \
10139N/A > /dev/null 2>&1
10139N/A if [ "x$pdesc" = x ]; then
10139N/A pdesc="Patch $dummy"
10139N/A fi
10139N/A dummy=`echo $dummy | cut -f1 -d-`
10139N/A eval "PATCH_DESC_${dummy}=\"$pdesc\""
10139N/A cd /
10139N/A rm -rf $TEMPDIR/patchdesc
10139N/A cd $TEMPDIR
10139N/A done
10139N/A PATCH_INFO_LOADED=yes
10139N/A}
10139N/A
10139N/Aselect_patch_menu () {
10139N/A load_patch_info "$ALL_PATCHES"
10139N/A IFS=,
10139N/A while /bin/true; do
10139N/A clear
10139N/A echo ",--------------------------------------------------------------------------"
10139N/A typeset -i N=1
10139N/A
10139N/A for ps in $ALL_PATCHES; do
10139N/A test -z "$ps" && continue
10139N/A pbn=`basename $ps`
10139N/A pnum=`basename $pbn .zip`
10139N/A pbn=`echo $pbn | cut -f1 -d-`
10139N/A eval "pname=\$PATCH_DESC_${pbn}"
10139N/A pcat=`echo "$ps" | cut -f1 -d/ | cut -f2 -d-`
10139N/A n=`echo " $N" | sed -e 's/^.*\(..\)$/\1/'`
10139N/A pn=$(echo $pdir | cut -f2 -d-)
10139N/A eval "patch_${N}_name=\"$ps\""
10139N/A patch_is_selected "$ps"
10139N/A res=$?
10139N/A if [ $res = 0 ]; then
10139N/A echo "| $n) [x] ($pcat) $pnum: $pname"
10139N/A eval "patch_${N}_selected=1"
10139N/A else
10139N/A echo "| $n) [ ] ($pcat) $pnum: $pname"
10139N/A eval "patch_${N}_selected=0"
10139N/A fi
10139N/A typeset N=$N+1
10139N/A done
10139N/A echo "|"
10139N/A echo "| A) " `l10n_print "Select All"`
10139N/A echo "| U) " `l10n_print "Unselect All"`
10139N/A echo "|"
10139N/A echo "| I) " `l10n_print "Start Installation"`
10139N/A echo "| R) " `l10n_print "Return to previous menu"`
10139N/A echo "| X) " `l10n_print "Exit"`
10139N/A echo "|"
10139N/A ask '`---> '"`l10n_print 'Enter item to select/unselect:'`" "menu_sel" "R"
10139N/A case $menu_sel in
10139N/A i|I)
10139N/A do_install || return $?
10139N/A return 1
10139N/A ;;
10139N/A x|X)
10139N/A return 2
10139N/A ;;
10139N/A r|R)
10139N/A return 0
10139N/A ;;
10139N/A a|A)
10139N/A select_all_patches
10139N/A ;;
10139N/A s|S)
10139N/A select_patch_menu || return $?
10139N/A ;;
10139N/A u|U)
10139N/A PATCHES=
10139N/A ;;
10139N/A *)
10139N/A eval "the_patch=\$patch_${menu_sel}_name"
10139N/A if [ -z "$the_patch" ]; then
10139N/A l10n_print "Invalid selection"
10139N/A sleep 1
10139N/A else
10139N/A eval "is_sel=\$patch_${menu_sel}_selected"
10139N/A if [ "x$is_sel" = x1 ]; then
10139N/A unselect_patches "$the_patch"
10139N/A else
10139N/A select_patches "$the_patch"
10139N/A fi
10139N/A fi
10139N/A esac
10139N/A done
10139N/A}
10139N/A
10139N/Aselect_product_menu () {
10139N/A IFS="
10139N/A"
10139N/A save_PR="$PRODUCTS"
10139N/A select_all_products
10139N/A AP="$PRODUCTS"
10139N/A PRODUCTS="$save_PR"
10139N/A while /bin/true; do
10139N/A clear
10139N/A echo ",--------------------------------------------------------------------------"
10139N/A typeset -i N=1
10139N/A
10139N/A for prod in $AP; do
10139N/A prodname=`echo "$ALL_PRODUCTS" | grep "^$prod=" | cut -f2- -d= | cut -c-60`
10139N/A if [ -z "$prodname" ]; then
10139N/A prodname=$prod
10139N/A fi
10139N/A n=`echo " $N" | sed -e 's/^.*\(..\)$/\1/'`
10139N/A eval "prod_${N}_name=\"$prod\""
10139N/A product_is_selected $prod
10139N/A if [ $? = 0 ]; then
10139N/A echo "| $n) [x] "`l10n_print "$prodname"`
10139N/A eval "prod_${N}_selected=1"
10139N/A else
10139N/A echo "| $n) [ ] "`l10n_print "$prodname"`
10139N/A eval "prod_${N}_selected=0"
10139N/A fi
10139N/A typeset N=$N+1
10139N/A done
10139N/A echo "|"
10139N/A echo "| A) " `l10n_print "Select All"`
10139N/A echo "| U) " `l10n_print "Unselect All"`
10139N/A echo "|"
10139N/A echo "| I) " `l10n_print "Start Installation"`
10139N/A echo "| R) " `l10n_print "Return to previous menu"`
10139N/A echo "| X) " `l10n_print "Exit"`
10139N/A echo "|"
10139N/A ask '`---> '"`l10n_print 'Enter item to select/unselect:'`" "menu_sel" "R"
10139N/A case $menu_sel in
10139N/A i|I)
10139N/A do_install || return $?
10139N/A return 1
10139N/A ;;
10139N/A x|X)
10139N/A return 2
10139N/A ;;
10139N/A r|R)
10139N/A return 0
10139N/A ;;
10139N/A a|A)
10139N/A select_all_products
10139N/A ;;
10139N/A u|U)
10139N/A PRODUCTS=
10139N/A ;;
10139N/A *)
10139N/A eval "the_name=\$prod_${menu_sel}_name"
10139N/A if [ -z "$the_name" ]; then
10139N/A l10n_print "Invalid selection"
10139N/A sleep 1
10139N/A else
10139N/A eval "is_sel=\$prod_${menu_sel}_selected"
10139N/A if [ "x$is_sel" = x1 ]; then
10139N/A unselect_product $the_name
10139N/A else
10139N/A select_product $the_name
10139N/A fi
10139N/A fi
10139N/A esac
10139N/A done
10139N/A}
10139N/A
10139N/Ainstall_patch () {
10139N/A mkdir -p $TEMPDIR/patchinst || return 1
10139N/A rm -rf $TEMPDIR/patchinst/* || return 1
10139N/A cd $TEMPDIR/patchinst || return 1
10139N/A unzip $MYDIR/$1 > /dev/null 2>&1 || return 1
10139N/A if [ "x$QUIET" = xno ]; then
10139N/A l10n_print "Installing patch %s" "$1"
10139N/A fi
10139N/A IFS=" "
10139N/A if [ "x$ROOTDIR" = x ]; then
10139N/A logrun $PATCHADD * || return 1
10139N/A else
10139N/A logrun $PATCHADD -R "$ROOTDIR" * || return 1
10139N/A fi
10139N/A rm -rf $TEMPDIR/patchinst/* || return 1
10139N/A cd /
10139N/A}
10139N/A
10139N/Ado_install_patches () {
10139N/A IFS=,
10139N/A if [ ! -z "$PATCHES" ]; then
10139N/A l10n_print "Installing required patches..."
10139N/A fi
10139N/A for p in $PATCHES; do
10139N/A test -z "$p" && continue
10139N/A # Skip if patch already applied.
10139N/A patchnum=`basename $p .zip`
10139N/A # Remove 'T' t-patch prefix if present. showrev doesn't show it.
10139N/A patchnum=`echo $patchnum | sed 's/^T//'`
10139N/A if [ -z "`showrev -p | awk '{print $2}' | /usr/bin/grep -s $patchnum`" ]; then
10139N/A install_patch $p || \
10139N/A msg_error "Failed to install patch %s" "$p"
10139N/A fi
10139N/A done
10139N/A}
10139N/A
10139N/Ado_install () {
10139N/A if [ "x$PRODUCTS" = x -a "x$PATCHES" = x ]; then
10139N/A msg_fatal "No products selected."
10139N/A fi
10139N/A so=ok
10139N/A product_is_selected staroffice && product_is_selected starsuite && \
10139N/A so=not_ok
10139N/A if [ x$so = xnot_ok ]; then
10139N/A if [ "x$INTERACTIVE" = "xyes" ]; then
10139N/A so_menu || return $?
10139N/A else
10139N/A msg_fatal "You cannot select both StarOffice and StarSuite"
10139N/A fi
10139N/A fi
10139N/A
10139N/A l10n_print "Checking for sufficient disk space..."
10139N/A disk_usage_init
10139N/A IFS=,
10139N/A for prod in $PRODUCTS; do
10139N/A test -z "$prod" && continue
10139N/A if [ ! -r "$prod/.pkgsize" ]; then
10139N/A msg_warning "WARNING: disk space usage information missing from directory %s" "$prod"
10139N/A continue
10139N/A fi
10139N/A exec < "$prod/.pkgsize"
10139N/A while read line; do
10139N/A the_dir=`echo "$line" | cut -f3- -d' '`
10139N/A the_size=`echo "$line" | cut -f2 -d' '`
10139N/A disk_usage_add "$ROOTDIR$the_dir" "$the_size"
10139N/A done
10139N/A exec <& 1
10139N/A done
10139N/A
10139N/A clear
10139N/A product_is_selected staroffice && so_disk_space_check StarOffice
10139N/A product_is_selected starsuite && so_disk_space_check StarSuite
10139N/A
10139N/A disk_usage_check
10139N/A
10139N/A l10n_print "Removing older versions of JDS packages..."
10139N/A
10139N/A l10n_print "Determining package installation order..."
10139N/A
10139N/A backup $LOGFILE
10139N/A echo "JDS Installation Log opened at `LANG=C LC_ALL=C date`" > $LOGFILE
10139N/A
10139N/A do_install_patches
10139N/A
10139N/A IFS=,
10139N/A for prod in $PRODUCTS; do
10139N/A test -z "$prod" && continue
10139N/A if [ ! -d "$MYDIR/$prod" ]; then
10139N/A msg_warning "Product %s not found in the install image" "$prod"
10139N/A continue
10139N/A fi
10139N/A prodname=`echo "$ALL_PRODUCTS" | grep "^$prod=" | cut -f2- -d=`
10139N/A if [ -z "$prodname" ]; then
10139N/A prodname=$prod
10139N/A fi
10139N/A if [ "x$QUIET" = xno ]; then
10139N/A echo
10139N/A echo -------------------------------------------------
10139N/A fi
10139N/A lprodname=$(l10n_print "$prodname")
10139N/A l10n_print "Installing Product \"%s\"" "$lprodname"
10139N/A if [ -r "$MYDIR/$prod/.remove-always" ]; then
10139N/A remove_always $prod
10139N/A fi
10139N/A# if [ -r "$MYDIR/$prod/.remove-if-older" ]; then
10139N/A# remove_if_older $prod
10139N/A# fi
10139N/A install_product $prod
10139N/A done
10139N/A}
10139N/A
10139N/Aproduct_is_selected () {
10139N/A echo ",$PRODUCTS," | grep ",$1," > /dev/null 2>&1
10139N/A}
10139N/A
10139N/A# Examine LANG variable to determine whether to select StarOffice or StarSuite.
10139N/Astaroffice_or_starsuite() {
10139N/A if [ -n "$LANG" ]
10139N/A then
10139N/A # Japan, China, Taiwan and Korean get StarSuite.
10139N/A case `echo $LANG | cut -c1,2` in
10139N/A ja|zh|tw|ko) return 0;;
10139N/A esac
10139N/A fi
10139N/A
10139N/A # If not set assume it is not Asian and therefore use StarOffice.
10139N/A return 1
10139N/A}
10139N/A
10139N/Aselect_product () {
10139N/A test -z "$1" && return 1
10139N/A product_is_selected $1
10139N/A if [ $? != 0 ]; then
10139N/A PRODUCTS="$PRODUCTS,$1"
10139N/A fi
10139N/A}
10139N/A
10139N/Aunselect_product () {
10139N/A test -z "$1" && return 1
10139N/A product_is_selected $1
10139N/A if [ $? = 0 ]; then
10139N/A PRODUCTS=`echo ",$PRODUCTS," | sed -e "s/,$1,/,/" -e 's/^,//' -e 's/,$//'`
10139N/A fi
10139N/A}
10139N/A
10139N/Aunselect_all_srcs () {
10139N/A IFS="
10139N/A"
10139N/A for src in `echo "$ALL_PRODUCTS" | grep -- '-src$' | cut -f1 -d=`; do
10139N/A unselect_product $src
10139N/A done
10139N/A for src in `echo "$ALL_PRODUCTS" | grep -- '-src=' | cut -f1 -d=`; do
10139N/A unselect_product $src
10139N/A done
10139N/A}
10139N/A
10139N/Aselect_all_products () {
10139N/A IFS="
10139N/A"
10139N/A PRODUCTS=`echo "$ALL_PRODUCTS" | cut -f1 -d=`
10139N/A PRODUCTS=`echo $PRODUCTS | sed -e 's/ /,/g'`
10139N/A IFS=,
10139N/A for prod in $PRODUCTS; do
10139N/A test ! -d $MYDIR/$prod && unselect_product $prod
10139N/A done
10139N/A
10139N/A # Decide between StarOffice and StarSuite and unselect the other if
10139N/A # it is selected.
10139N/A# FIXME: Disable for now as it will not be needed on final media.
10139N/A# staroffice_or_starsuite
10139N/A# if [ $? -eq 1 ]
10139N/A# then
10139N/A# product_is_selected starsuite && unselect_product starsuite
10139N/A# else
10139N/A# product_is_selected staroffice && unselect_product staroffice
10139N/A# fi
10139N/A
10139N/A}
10139N/A
10139N/Afind_patches () {
10139N/A if [ -r "$MYDIR/$1/.patchorder" ]; then
10139N/A IFS='
10139N/A'
10139N/A echo `cat "$MYDIR/$1/.patchorder" | sed -e "s%^%$1/%"` | \
10139N/A sed -e 's% %,%g'
10139N/A return 0
10139N/A fi
10139N/A dummy=$(cd $MYDIR; echo $1/*.zip)
10139N/A echo "$dummy" | grep '\*' > /dev/null
10139N/A if [ $? != 0 ]; then
10139N/A echo "$dummy" | sed -e 's/ /,/g'
10139N/A return 0
10139N/A else
10139N/A return 1
10139N/A fi
10139N/A}
10139N/A
10139N/Aselect_all_patches () {
10139N/A IFS="
10139N/A"
10139N/A PD=`echo "$ALL_PATCHDIRS" | cut -f1 -d=`
10139N/A PD=`echo $PD | sed -e 's/ /,/g'`
10139N/A IFS=,
10139N/A PATCHES=
10139N/A PATCHDIRS=
10139N/A for pd in $PD; do
10139N/A if [ -d $MYDIR/$pd ]; then
10139N/A dname=`echo "$pd" | cut -f2 -d-`
10139N/A dummy=`find_patches $pd` && PATCHDIRS="$PATCHDIRS,$pd" && \
10139N/A select_patches "$dummy" && \
10139N/A eval "ALL_${dname}_PATCHES=\"$dummy\""
10139N/A fi
10139N/A done
10139N/A PATCHDIRS=`echo "$PATCHDIRS" | cut -c2-`
10139N/A ALL_PATCHES="$PATCHES"
10139N/A}
10139N/A
10139N/Apatch_is_selected () {
10139N/A echo ",$PATCHES," | grep ",$1," > /dev/null 2>&1
10139N/A}
10139N/A
10139N/Aselect_patches () {
10139N/A test -z "$1" && return 1
10139N/A IFS=,
10139N/A for p in $1; do
10139N/A patch_is_selected $p
10139N/A if [ $? != 0 ]; then
10139N/A PATCHES="$PATCHES,$p"
10139N/A fi
10139N/A done
10139N/A}
10139N/A
10139N/Aunselect_patches () {
10139N/A test -z "$1" && return 1
10139N/A IFS=,
10139N/A for p in $1; do
10139N/A patch_is_selected $p
10139N/A if [ $? = 0 ]; then
10139N/A PATCHES=`echo ",$PATCHES," | sed -e "s%,$p,%,%" -e 's%^,%%' -e 's%,$%%'`
10139N/A fi
10139N/A done
10139N/A}
10139N/A
10139N/Apatches_are_selected () {
10139N/A test -z "$1" && return 2
10139N/A have_selected=no
10139N/A have_unselected=no
10139N/A IFS=,
10139N/A for p in $1; do
10139N/A patch_is_selected $p && have_selected=yes || have_unselected=yes
10139N/A done
10139N/A if [ "x$have_selected" = xyes -a "x$have_unselected" = xyes ]; then
10139N/A return 1
10139N/A fi
10139N/A if [ "x$have_unselected" = xno ]; then
10139N/A return 0
10139N/A fi
10139N/A return 2
10139N/A}
10139N/A
10139N/Adisclaimer_screen () {
10139N/A if [ "x$INTERACTIVE" = xyes ]; then
10139N/A l10n_print "You are about to install Sun Java Desktop System, GNOME 2.17.\nThis install will replace any old versions of the following\nproducts you may have installed on your system with the newer\nversion included in JDS: GNOME, Mozilla and Java\nMedia Framework. It may also replace the installed version\nof Java 1.4.2 if it is older than the version included in JDS."
10139N/A fi
10139N/A}
10139N/A
10139N/Alicense_screen () {
10139N/A lic_file="$MYDIR/license.txt"
10139N/A if [ ! -z $LC_MESSAGES ] ; then
10139N/A language_territory_locale=$LC_MESSAGES
10139N/A elif [ ! -z $LC_ALL ] ; then
10139N/A language_territory_locale=$LC_ALL
10139N/A elif [ ! -z $LANG ] ; then
10139N/A language_territory_locale=$LANG
10139N/A fi
10139N/A language_terittory=${language_territory_locale%.*}
10139N/A language=${language_territory_locale%_*}
10139N/A
10139N/A if [ -f "$MYDIR/.install/$language_territory_locale/license.txt" ]; then
10139N/A lic_file="$MYDIR/.install/$language_territory_locale/license.txt"
10139N/A elif [ -f "$MYDIR/.install/$language_terittory/license.txt" ]; then
10139N/A lic_file="$MYDIR/.install/$language_terittory/license.txt"
10139N/A elif [ -f "$MYDIR/.install/$language/license.txt" ]; then
10139N/A lic_file="$MYDIR/.install/$language/license.txt"
10139N/A fi
10139N/A if [ ! -f "$lic_file" ]; then
10139N/A echo "WARNING: license file missing"
10139N/A fi
10139N/A if [ "x$LICENSE_ACCEPTED" = "xyes" ]; then
10139N/A cat "$lic_file"
10139N/A return
10139N/A fi
10139N/A if [ "x$INTERACTIVE" = xyes ]; then
10139N/A l10n_print "Before installing you must first accept the following license"
10139N/A echo
10139N/A l10n_print "Press [ENTER] to view the license"
10139N/A read dummy
10139N/A more "$lic_file"
10139N/A ask "`l10n_print 'Type \"Accept\" to accept the license\nand install Sun Java Desktop System GNOME 2.17'`" ans_accept
10139N/A echo "$ans_accept" | grep -i "^`l10n_print 'Accept'`$" > /dev/null
10139N/A if [ $? != 0 ]; then
10139N/A l10n_print "Installation aborted"
10139N/A exit 1
10139N/A fi
10139N/A else
10139N/A l10n_print "In non-interactive mode, you must use the --accept option\nto accept the license terms"
10139N/A exit 1
10139N/A fi
10139N/A}
10139N/A
10139N/Amain () {
10139N/A init
10139N/A process_options "${@}"
10139N/A disclaimer_screen
10139N/A license_screen
10139N/A TEMPDIR=${BASE_TEMPDIR}/install_jds_$$.dir
10139N/A write_admin
10139N/A if [ "x$NO_PATCHES" != "xyes" ]; then
10139N/A select_all_patches
10139N/A fi
10139N/A if [ "x$INTERACTIVE" = "xyes" ]; then
10139N/A if [ -z "$PRODUCTS" ]; then
10139N/A select_all_products
10139N/A unselect_all_srcs
10139N/A unselect_product nodist
10139N/A fi
10139N/A main_menu || return $?
10139N/A else
10139N/A if [ -z "$PRODUCTS" ]; then
10139N/A select_all_products
10139N/A unselect_all_srcs
10139N/A unselect_product nodist
10139N/A unselect_product starsuite
10139N/A fi
10139N/A do_install || return $?
10139N/A fi
10139N/A}
10139N/A
10139N/Aif [ -n "$REQ_SYSTEM" -a "$REQ_SYSTEM" != "$SYSTEM" ]; then
10139N/A l10n_print "This product requires a %s system" "$REQ_SYSTEM"
10139N/A exit 1
10139N/Afi
10139N/A
10139N/Aif [ -n "$REQ_ARCH" -a "$REQ_ARCH" != "$ARCH" ]; then
10139N/A l10n_print "This product requires a %s architecture system" "$REQ_ARCH"
10139N/A exit 1
10139N/Afi
10139N/A
10139N/Aif [ -n "$REQ_RELEASE" ]; then
10139N/A version_lower $RELEASE $REQ_RELEASE
10139N/A if [ $? = 0 ]; then
10139N/A l10n_print "This product requires OS release %s or later" "$REQ_RELEASE"
10139N/A exit 1
10139N/A fi
10139N/Afi
10139N/A
10139N/Aif [ "$RELEASE" = "$REQ_RELEASE" -a -n "$REQ_KERNELID" ]; then
10139N/A version_lower $KERNELID $REQ_KERNELID
10139N/A if [ $? = 0 ]; then
10139N/A l10n_print "This product requires OS build %s or later" "$REQ_KERNELID"
10139N/A l10n_print ""
10139N/A l10n_print "You may choose to continue the installation and risk that"
10139N/A l10n_print "some or all of the functionality may not be available."
10139N/A ask_yes_no "`l10n_print 'Would you like to continue?'`" ans \
10139N/A `l10n_print "no"`
10139N/A if [ "x$ans" = xno ]; then
10139N/A exit 1
10139N/A fi
10139N/A fi
10139N/Afi
10139N/A
10139N/Amain "${@}"
10139N/Aif [ $? = 2 ]; then
10139N/A msg_fatal "Installation aborted"
10139N/Afi
10139N/A
10139N/Aif [ "x$WARNINGS" = xyes ]; then
10139N/A l10n_print "Completed with warnings. Some packages may not be installed."
10139N/Aelse
10139N/A l10n_print "Successfully installed all packages."
10139N/Afi
10139N/A
10139N/Al10n_print "Installation log saved in %s" "$LOGFILE"
10139N/A
10139N/Aecho
10139N/Al10n_print "You must now reboot your computer before using the Java Desktop System"