summaryrefslogtreecommitdiff
path: root/setup_native/scripts/javaloader.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup_native/scripts/javaloader.sh')
-rw-r--r--setup_native/scripts/javaloader.sh498
1 files changed, 0 insertions, 498 deletions
diff --git a/setup_native/scripts/javaloader.sh b/setup_native/scripts/javaloader.sh
deleted file mode 100644
index 4e133a895..000000000
--- a/setup_native/scripts/javaloader.sh
+++ /dev/null
@@ -1,498 +0,0 @@
-#!/bin/sh
-
-jarfilename="JavaSetup.jar"
-tempdir=/var/tmp/install_$$
-java_runtime="java"
-java_runtime_set="no"
-java_runtime_found="no"
-java_runtime_sufficient="no"
-java_versions_supported="1.4 1.5 1.6"
-rpm2cpio_found="no"
-rpm_found="no"
-sunjavahotspot="HotSpot"
-errortext=""
-errorcode=""
-
-start_java()
-{
- umask 022
-
- echo "Using $java_runtime"
- echo `$java_runtime -version`
- echo "Running installer"
-
- # looking for environment variables
-
- home=""
- if [ "x" != "x$HOME" ]; then
- home=-DHOME=$HOME
- fi
-
- log_module_states=""
- if [ "x" != "x$LOG_MODULE_STATES" ]; then
- log_module_states=-DLOG_MODULE_STATES=$LOG_MODULE_STATES
- fi
-
- getuid_path=""
- if [ "x" != "x$GETUID_PATH" ]; then
- getuid_path=-DGETUID_PATH=$GETUID_PATH
- fi
-
- if [ "x" != "x$jrefile" ]; then
- jrecopy=-DJRE_FILE=$jrefile
- fi
-
- # run the installer class file
- echo $java_runtime $home $log_module_states $getuid_path $jrecopy -jar $jarfilename
- $java_runtime $home $log_module_states $getuid_path $jrecopy -jar $jarfilename
-}
-
-cleanup()
-{
- if [ "x$tempdir" != "x" -a -d "$tempdir" ]; then
- rm -rf $tempdir
- fi
-}
-
-do_exit()
-{
- exitstring=$errortext
- if [ "x" != "x$errorcode" ]; then
- exitstring="$exitstring (exit code $errorcode)"
- fi
-
- # simply echo the exitstring or open a xterm
- # -> dependent from tty
-
- if tty ; then
- echo $exitstring
- else
- mkdir $tempdir
-
- # creating error file
- errorfile=$tempdir/error
-
- cat > $errorfile << EOF
-echo "$exitstring"
-echo "Press return to continue ..."
-read a
-EOF
-
- chmod 755 $errorfile
-
- # searching for xterm in path
- xtermname="xterm"
- xtermfound="no";
- for i in `echo $PATH | sed -e 's/^:/.:/g' -e 's/:$/:./g' -e 's/::/:.:/g' -e 's/:/ /g'`; do
- if [ -x "$i/$xtermname" -a ! -d "$i/$xtermname" ]; then
- xtermname="$i/$xtermname"
- xtermfound="yes"
- break
- fi
- done
-
- if [ $xtermfound = "no" -a "`uname -s`" = "SunOS" ]; then
- if [ -x /usr/openwin/bin/xterm ]; then
- xtermname=/usr/openwin/bin/xterm
- xtermfound="yes"
- fi
- fi
-
- if [ $xtermfound = "yes" ]; then
- $xtermname -e $errorfile
- fi
- fi
-
- cleanup
-
- exit $errorcode
-}
-
-set_jre_for_uninstall()
-{
- # if "uninstalldata" exists, this is not required
- if [ ! -d "uninstalldata" ]; then
- packagepath="RPMS"
- jrefile=`find $packagepath -type f -name "jre*.rpm" -print`
- jrefile=`basename $jrefile`
- if [ -z "$jrefile" ]; then
- jrefile="notfound"
- fi
-
- # check existence of jre rpm
- if [ ! -f $packagepath/$jrefile ]; then
- errortext="Error: Java Runtime Environment (JRE) not found in directory: $packagepath"
- errorcode="4"
- do_exit
- fi
- fi
-}
-
-install_linux_rpm()
-{
- # Linux requires usage of rpm2cpio to install JRE with user privileges
- # 1. --relocate /usr/java=/var/tmp does not work, because not all files are
- # relocatable. Some are always installed into /etc
- # 2. --root only works with root privileges. With user privileges only the
- # database is shifted, but not the files.
-
- # On Linux currently rpm2cpio is required (and rpm anyhow)
-
- find_rpm2cpio()
-
- if [ ! "$rpm2cpio_found" = "yes" ]; then
- errortext="Error: Did not find rpm2cpio. rpm2cpio is currently required for installations on Linux."
- errorcode="11"
- do_exit
- fi
-
- find_rpm()
-
- if [ ! "$rpm_found" = "yes" ]; then
- errortext="Error: Did not find rpm. rpm is currently required for installations on Linux."
- errorcode="12"
- do_exit
- fi
-
- # jrefile=jre-6-linux-i586.rpm
- # javahome=usr/java/jre1.6.0
-
- packagepath="RPMS"
-
- # using "uninstalldata" for uninstallation
- if [ -d "uninstalldata" ]; then
- packagepath="uninstalldata/jre"
- fi
-
- jrefile=`find $packagepath -type f -name "jre*.rpm" -print`
- jrefile=`basename $jrefile`
- if [ -z "$jrefile" ]; then
- jrefile="notfound"
- fi
-
- # check existence of jre rpm
- if [ ! -f $packagepath/$jrefile ]; then
- errortext="Error: Java Runtime Environment (JRE) not found in directory: $packagepath"
- errorcode="4"
- do_exit
- fi
-
- PACKED_JARS="lib/rt.jar lib/jsse.jar lib/charsets.jar lib/ext/localedata.jar lib/plugin.jar lib/javaws.jar lib/deploy.jar"
-
- mkdir $tempdir
-
- trap 'rm -rf $tempdir; exit 1' HUP INT QUIT TERM
-
- tempjrefile=$tempdir/$jrefile
- cp $packagepath/$jrefile $tempjrefile
-
- if [ ! -f "$tempjrefile" ]; then
- errortext="Error: Failed to copy Java Runtime Environment (JRE) temporarily."
- errorcode="5"
- do_exit
- fi
-
- # check if copy was successful
- if [ -x /usr/bin/sum ]; then
-
- echo "Checksumming..."
-
- sumA=`/usr/bin/sum $packagepath/$jrefile`
- index=1
- for s in $sumA; do
- case $index in
- 1)
- sumA1=$s;
- index=2;
- ;;
- 2)
- sumA2=$s;
- index=3;
- ;;
- esac
- done
-
- sumB=`/usr/bin/sum $tempjrefile`
- index=1
- for s in $sumB; do
- case $index in
- 1)
- sumB1=$s;
- index=2;
- ;;
- 2)
- sumB2=$s;
- index=3;
- ;;
- esac
- done
-
- # echo "Checksum 1: A1: $sumA1 B1: $sumB1"
- # echo "Checksum 2: A2: $sumA2 B2: $sumB2"
-
- if [ $sumA1 -ne $sumB1 ] || [ $sumA2 -ne $sumB2 ]; then
- errortext="Error: Failed to install Java Runtime Environment (JRE) temporarily."
- errorcode="6"
- do_exit
- fi
- else
- echo "Can't find /usr/bin/sum to do checksum. Continuing anyway."
- fi
-
- # start to install jre
- echo "Extracting ..."
- olddir=`pwd`
- cd "$tempdir"
- rpm2cpio $tempjrefile | cpio -i --make-directories
- rm -f $tempjrefile # we do not need it anymore, so conserve discspace
-
- javahomeparent=usr/java
- javahomedir=`find $javahomeparent -maxdepth 1 -type d -name "jre*" -print`
- javahomedir=`basename $javahomedir`
- if [ -z "$javahomedir" ]; then
- javahomedir="notfound"
- fi
-
- javahome=$javahomeparent/$javahomedir
-
- if [ ! -d ${javahome} ]; then
- errortext="Error: Failed to extract the Java Runtime Environment (JRE) files."
- errorcode="7"
- do_exit
- fi
-
- UNPACK_EXE=$javahome/bin/unpack200
- if [ -f $UNPACK_EXE ]; then
- chmod +x $UNPACK_EXE
- packerror=""
- for i in $PACKED_JARS; do
- if [ -f $javahome/`dirname $i`/`basename $i .jar`.pack ]; then
- # printf "Creating %s\n" $javahome/$i
- $UNPACK_EXE $javahome/`dirname $i`/`basename $i .jar`.pack $javahome/$i
- if [ $? -ne 0 ] || [ ! -f $javahome/$i ]; then
- printf "ERROR: Failed to unpack JAR file:\n\n\t%s\n\n" $i
- printf "Installation failed. Please refer to the Troubleshooting Section of\n"
- printf "the Installation Instructions on the download page.\n"
- packerror="1"
- break
- fi
-
- # remove the old pack file
- rm -f $javahome/`dirname $i`/`basename $i .jar`.pack
- fi
- done
- if [ "$packerror" = "1" ]; then
- if [ -d $javahome ]; then
- /bin/rm -rf $javahome
- fi
-
- errortext="Error: Failed to extract the Java Runtime Environment (JRE) files."
- errorcode="8"
- do_exit
- fi
- fi
-
- PREFS_LOCATION="`echo \"${javahome}\" | sed -e 's/^jdk.*/&\/jre/'`/.systemPrefs"
-
- if [ ! -d "${PREFS_LOCATION}" ]; then
- mkdir -m 755 "${PREFS_LOCATION}"
- fi
- if [ ! -f "${PREFS_LOCATION}/.system.lock" ]; then
- touch "${PREFS_LOCATION}/.system.lock"
- chmod 644 "${PREFS_LOCATION}/.system.lock"
- fi
- if [ ! -f "${PREFS_LOCATION}/.systemRootModFile" ]; then
- touch "${PREFS_LOCATION}/.systemRootModFile"
- chmod 644 "${PREFS_LOCATION}/.systemRootModFile"
- fi
-
- if [ x$ARCH = "x32" ] && [ -f "$javahome/bin/java" ]; then
- "$javahome/bin/java" -client -Xshare:dump > /dev/null 2>&1
- fi
-
- java_runtime=$tempdir/$javahome/bin/java
-
- # Make symbolic links to all TrueType font files installed in the system
- # to avoid garbles for Japanese, Korean or Chinese
- language=`printenv LANG | cut -c 1-3`
- if [ x$language = "xja_" -o x$language = "xko_" -o x$language = "xzh_" ]; then
- font_fallback_dir=$javahome/lib/fonts/fallback
- echo "Making symbolic links to TrueType font files into $font_fallback_dir."
- mkdir -p $font_fallback_dir
- ttf_files=`locate "*.ttf" | xargs`
- if [ x$ttf_files = "x" ]; then
- ttf_files=`find /usr/share/fonts/ -name "*ttf"`
- if [ x$ttf_files = "x" ]; then
- ttf_files=`find /usr/X11R6/lib/ -name "*ttf"`
- fi
- fi
- ln -s $ttf_files $font_fallback_dir
- fi
-
- echo "Done."
- cd "$olddir"
-}
-
-find_rpm2cpio()
-{
- # searching for rpm2cpio in path
- for i in `echo $PATH | sed -e 's/^:/.:/g' -e 's/:$/:./g' -e 's/::/:.:/g' -e 's/:/ /g'`; do
- if [ -x "$i/rpm2cpio" -a ! -d "$i/$rpm2cpio" ]; then
- rpm2cpio_found="yes"
- break
- fi
- done
-}
-
-find_rpm()
-{
- # searching for rpm in path
- for i in `echo $PATH | sed -e 's/^:/.:/g' -e 's/:$/:./g' -e 's/::/:.:/g' -e 's/:/ /g'`; do
- if [ -x "$i/rpm" -a ! -d "$i/$rpm" ]; then
- rpm_found="yes"
- break
- fi
- done
-}
-
-check_architecture()
-{
- # Check, if system and installation set fit together (x86 and sparc).
- # If not, throw a warning.
- # Architecture of the installation set is saved in file "installdata/xpd/setup.xpd"
- # <architecture>sparc</architecture> or <architecture>i386</architecture>
- # Architecture of system is determined with "uname -p"
-
- setupxpdfile="installdata/xpd/setup.xpd"
-
- if [ -f $setupxpdfile ]; then
- platform=`uname -p` # valid values are "sparc" or "i386"
- searchstring="<architecture>$platform</architecture>"
- match=`cat $setupxpdfile | grep $searchstring`
-
- if [ -z "$match" ]; then
- # architecture does not fit, warning required
- if [ "$platform" = "sparc" ]; then
- echo "Warning: This is an attempt to install Solaris x86 packages on Solaris Sparc."
- else
- echo "Warning: This is an attempt to install Solaris Sparc packages on Solaris x86."
- fi
- fi
- fi
-}
-
-find_solaris_jre()
-{
- # searching for java runtime in path
- for i in `echo $PATH | sed -e 's/^:/.:/g' -e 's/:$/:./g' -e 's/::/:.:/g' -e 's/:/ /g'`; do
- if [ -x "$i/$java_runtime" -a ! -d "$i/$java_runtime" ]; then
- java_runtime="$i/$java_runtime"
- java_runtime_found="yes"
- break
- fi
- done
-}
-
-check_jre_version()
-{
- # check version of an installed JRE
- javaoutput=`$java_runtime -version 2>&1 | tail ${tail_args} -1`
- hotspot=`echo $javaoutput | grep $sunjavahotspot`
- if [ ! -z "$hotspot" ]; then
- for i in $java_versions_supported; do
- versionmatch=`echo $javaoutput | grep $i`
- if [ ! -z "$versionmatch" ]; then
- java_runtime_sufficient="yes"
- break
- fi
- done
-
- # check new version format, where version number is not part of line 3 (1.6)
- if [ ! "$java_runtime_sufficient" = "yes" ]; then
- javaoutput=`$java_runtime -version 2>&1 | head ${tail_args} -3`
- for i in $java_versions_supported; do
- versionmatch=`echo $javaoutput | grep $i`
- if [ ! -z "$versionmatch" ]; then
- java_runtime_sufficient="yes"
- break
- fi
- done
- fi
- fi
-}
-
-# the user might want to specify java runtime on the commandline
-USAGE="Usage: $0 [ -j <java_runtime> ]"
-while getopts hj: opt; do
- echo "Parameter: $opt"
- case $opt in
- j) java_runtime_set="yes";
- java_runtime="${OPTARG}"
- if [ ! -f "$java_runtime" ]; then
- errortext="Error: Invalid java runtime $java_runtime, file does not exist."
- errorcode="2"
- do_exit
- fi
- if [ ! -x "$java_runtime" ]; then
- errortext="Error: Invalid java runtime $java_runtime, not an executable file."
- errorcode="3"
- do_exit
- fi
- java_runtime_found="yes";
- ;;
- h) echo ${USAGE}
- errortext=""
- errorcode=""
- do_exit
- ;;
- \?) echo ${USAGE}
- errortext=""
- errorcode=""
- do_exit
- ;;
- esac
-done
-
-# changing into setup directory
-cd "`dirname "$0"`"
-
-# prepare jre, if not set on command line
-if [ "$java_runtime_set" != "yes" ]; then
- platform=`uname -s`
- if [ "`uname -s`" = "Linux" ]; then
- install_linux_rpm
- elif [ "`uname -s`" = "SunOS" ]; then
- check_architecture
- find_solaris_jre
- if [ "$java_runtime_found" = "yes" ]; then
- check_jre_version
- if [ ! "$java_runtime_sufficient" = "yes" ]; then
- errortext="Error: Did not find a valid Java Runtime Environment (JRE). Required JRE versions: $java_versions_supported"
- errorcode="9"
- do_exit
- fi
- else
- errortext="Error: Did not find an installed Java Runtime Environment (JRE)."
- errorcode="10"
- do_exit
- fi
- else
- errortext="Error: Platform $platform not supported for Java Runtime Environment (JRE) installation."
- errorcode="1"
- do_exit
- fi
-fi
-
-# jre for Linux is also required, if java runtime is set (for uninstallation mode)
-if [ "$java_runtime_set" = "yes" ]; then
- platform=`uname -s`
- if [ "`uname -s`" = "Linux" ]; then
- set_jre_for_uninstall
- fi
-fi
-
-start_java
-
-cleanup
-
-exit 0