diff options
Diffstat (limited to 'setup_native/scripts/install_solaris.sh')
-rw-r--r-- | setup_native/scripts/install_solaris.sh | 364 |
1 files changed, 0 insertions, 364 deletions
diff --git a/setup_native/scripts/install_solaris.sh b/setup_native/scripts/install_solaris.sh deleted file mode 100644 index 46969dae8..000000000 --- a/setup_native/scripts/install_solaris.sh +++ /dev/null @@ -1,364 +0,0 @@ -#!/bin/bash - -ADD="no" -LINK="no" -UPDATE="no" -USAGE="Usage: $0 [-a] [-l] [-h] <pkg-source-dir> <office-installation-dir>" - -help() -{ - echo - echo "User Mode Installation script for developer and knowledgeable early access tester" - echo - echo "This installation method is not intended for use in a production environment!" - echo "Using this script is unsupported and completely at your own risk" - echo - echo "Usage:" $0 "<pkg-source-dir> <office-installation-dir> [-l]" - echo " <pkg-source-dir>: directory *only* containing the Solaris pkg packages to be installed" - echo " or language pack shell script containing the Solaris pkg packages" - echo " <office-installation-dir>: directory to where the office and the pkg database will get installed into" - echo - echo "Optional Parameter:" - echo " -a : add to an existing <office-installation-dir>" - echo " -l : create a link \"soffice\" in $HOME" - echo " -h : output this help" -} - -try_to_unpack_languagepack_file() -{ - FILENAME=$PACKAGE_PATH - - # Checking, if $FILENAME is a language pack. - # String "language package" has to exist in the shell script file. - # If this is no language pack, the installation is not supported - - SEARCHSTRING=`head -n 10 $FILENAME | grep "language package"` - - if [ ! -z "$SEARCHSTRING" ] - then - echo "First parameter $FILENAME is a language pack"; - else - printf "\nERROR: First parameter $FILENAME is a file, but no language pack shell script.\n" - echo $USAGE - exit 2 - fi - - echo "Unpacking shell script $FILENAME" - # TAILLINE=`head -n 20 $FILENAME | sed --quiet 's/linenum=//p'` - TAILLINE=`head -n 20 $FILENAME | sed -n 's/linenum=//p'` - - if [ -x "/usr/bin/mktemp" ] # available in Solaris 10 - then - UNPACKDIR=`mktemp -d` - else - UNPACKDIR=/var/tmp/install_$$ - mkdir $UNPACKDIR - fi - - echo $UNPACKDIR - tail +$TAILLINE $FILENAME | gunzip | (cd $UNPACKDIR; tar xvf -) - - # Setting the new package path, in which the packages exist - PACKAGE_PATH=$UNPACKDIR - - # Setting variable UPDATE, because an Office installation has to exist, if a language pack shall be installed - UPDATE="yes" -} - -pkg_error() -{ - # pkg command failed, check for admin log and report help - if [ -f /tmp/.ai.pkg.zone.lock-afdb66cf-1dd1-11b2-a049-000d560ddc3e ] - then - echo "####################################################################" - echo "# Installation failed due to stale administrative lock #" - echo "####################################################################" - printf "\nERROR: please remove the following file first:\n" - ls -l /tmp/.ai.pkg.zone.lock-afdb66cf-1dd1-11b2-a049-000d560ddc3e - fi - rm -f $GETUID_SO - exit 1 -} - -get_pkg_list() -{ - cd $1; ls -1 -} - -# -# this script is for userland not for root -# - -if [ $UID -eq 0 ] -then - printf "\nThis script is for installation without administrative rights only\nPlease use pkgadd/patchadd to install as root\n" - help - exit 2 -fi - -while getopts "alh" VALUE -do - echo $VALUE - case $VALUE in - a) ADD="yes"; break;; - h) help; exit 0;; - l) LINK="yes"; break;; - ?) echo $USAGE; exit 2;; - esac -done -shift `expr $OPTIND - 1` - -if [ $# != 2 ] -then - echo $USAGE - exit 2 -fi - -# Determine whether this is a patch or a regular install set .. -/bin/bash -c "ls $1/*/patchinfo >/dev/null 2>&1" -if [ "$?" = 0 ] -then - UPDATE="yes" - PATCH_PATH="$1" - PATCH_INFO_LIST=`/bin/bash -c "cd $1; ls */patchinfo"` - PATCH_LIST=`for i in ${PATCH_INFO_LIST}; do dirname $i; done` -elif [ -f "$1/patchinfo" ] -then - UPDATE="yes" - PATCH_PATH=`dirname "$1"` - PATCH_LIST=`basename "$1"` -else - if [ -d "$1/packages" ] - then - PACKAGE_PATH="$1/packages" - else - PACKAGE_PATH=$1 - fi - - # - # If the first parameter is a shell script (download installation set), the packages have to - # be unpacked into temp directory - # - if [ -f "$PACKAGE_PATH" ] - then - try_to_unpack_languagepack_file - fi - - # - # Create sed filter script for unwanted packages - # - - cat > /tmp/userinstall_filer.$$ << EOF -/SUNWadabas/d -/^SUNWj[0-9]/d -/-desktop-int/d -/-shared-mime-info/d -/-cde/d -EOF - - # Do not install gnome-integration package on systems without GNOME - pkginfo -q SUNWgnome-vfs - if [ $? -ne 0 ] - then - - echo '/-gnome/d' >> /tmp/userinstall_filer.$$ - fi - - # pkgdep sorts the packages based on their dependencies - PKGDEP="`dirname $0`/pkgdep" - if [ ! -x $PKGDEP ]; then - PKGDEP="get_pkg_list" - fi - - # - # Get the list of packages to install - # - - PKG_LIST=`$PKGDEP $PACKAGE_PATH | sed -f /tmp/userinstall_filer.$$` - rm -f /tmp/userinstall_filer.$$ - - if [ -z "$PKG_LIST" ] - then - printf "\n$0: No packages found in $PACKAGE_PATH\n" - exit 2 - fi - - echo "Packages found:" - for i in $PKG_LIST ; do - echo $i - done -fi - -INSTALL_ROOT=$2 -if [ "$UPDATE" = "yes" ] -then - if [ ! -d ${INSTALL_ROOT}/var/sadm/install/admin ] - then - printf "\n$0: No package database in ${INSTALL_ROOT}.\n" - exit 2 - fi -else - if [ "$ADD" = "no" ] - then - rmdir ${INSTALL_ROOT} 2>/dev/null - if [ -d ${INSTALL_ROOT} ] - then - printf "\n$0: ${INSTALL_ROOT} exists and is not empty.\n" - exit 2 - fi - fi - mkdir -p ${INSTALL_ROOT}/var/sadm/install/admin -fi - -# Previous versions of this script did not write this file -if [ ! -f ${INSTALL_ROOT}/var/sadm/install/admin/default ] -then - cat > ${INSTALL_ROOT}/var/sadm/install/admin/default << EOF -action=nocheck -conflict=nocheck -setuid=nocheck -idepend=nocheck -mail= -EOF -fi - -if [ ! "${INSTALL_ROOT:0:1}" = "/" ]; then - INSTALL_ROOT=`cd ${INSTALL_ROOT}; pwd` -fi - -# This script must exist to make extension registration work -# always overwrite to get the latest version. -mkdir -p ${INSTALL_ROOT}/usr/lib -cat > ${INSTALL_ROOT}/usr/lib/postrun << \EOF -#!/bin/sh -set -e - -# Override UserInstallation in bootstraprc for unopkg .. -UserInstallation='$BRAND_BASE_DIR/../UserInstallation' -export UserInstallation - -if [ -x /usr/bin/mktemp ] -then - CMD=`/usr/bin/mktemp /tmp/userinstall.XXXXXX` -else - CMD=/tmp/userinstall.$$; echo "" > $CMD -fi - -sed -e 's|/opt/|${PKG_INSTALL_ROOT}/opt/|g' > $CMD -/bin/sh -e $CMD -rm -f $CMD -EOF -chmod +x ${INSTALL_ROOT}/usr/lib/postrun 2>/dev/null - -# create local tmp directory to install on S10 -LOCAL_TMP= -if [ -x /usr/bin/mktemp ] -then - LOCAL_TMP=`mktemp -d` - rmdir ${INSTALL_ROOT}/tmp 2>/dev/null - ln -s ${LOCAL_TMP} ${INSTALL_ROOT}/tmp -fi - -# -# the tail of the script contains a shared object for overloading the getuid() -# and a few other calls -# - -GETUID_SO=/tmp/getuid.so.$$ -linenum=??? -tail +$linenum $0 > $GETUID_SO - -# -# Perform the installation -# -if [ "$UPDATE" = "yes" ] -then - # restore original "bootstraprc" prior to patching - for i in ${PKG_LIST}; do - my_dir=${INSTALL_ROOT}`pkgparam -d ${PACKAGE_PATH} "$i" BASEDIR` - find "$my_dir" -type f -name bootstraprc.orig -exec sh -ce 'mv "$0" `dirname "$0"`/bootstraprc' {} \; - done - - # copy INST_RELEASE file - if [ ! -f ${INSTALL_ROOT}/var/sadm/system/admin/INST_RELEASE ] - then - mkdir -p ${INSTALL_ROOT}/var/sadm/system/admin 2>/dev/null - cp -f /var/sadm/system/admin/INST_RELEASE ${INSTALL_ROOT}/var/sadm/system/admin/INST_RELEASE - fi - - # The case UPDATE="yes" is valid for patch installation and for language packs. - # For patches the variable PKG_LIST is empty, for language packs it is not empty. - # Patches have to be installed with patchadd, language packs with pkgadd - - if [ -z "${PKG_LIST}" ] - then - 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 - else - LD_PRELOAD_32=$GETUID_SO /usr/sbin/pkgadd -d ${PACKAGE_PATH} -R ${INSTALL_ROOT} ${PKG_LIST} >/dev/null || pkg_error - fi - -else - - # Create BASEDIR directories to avoid manual user interaction - for i in ${PKG_LIST}; do - mkdir -m 0755 -p ${INSTALL_ROOT}`pkgparam -d ${PACKAGE_PATH} $i BASEDIR` 2>/dev/null - done - - if [ ! "${INSTALL_ROOT:0:1}" = "/" ]; then - INSTALL_ROOT=`cd ${INSTALL_ROOT}; pwd` - fi - - echo "####################################################################" - echo "# Installation of the found packages #" - echo "####################################################################" - echo - echo "Path to the packages : " $PACKAGE_PATH - echo "Path to the installation : " $INSTALL_ROOT - - LD_PRELOAD_32=$GETUID_SO /usr/sbin/pkgadd -d ${PACKAGE_PATH} -R ${INSTALL_ROOT} ${PKG_LIST} >/dev/null || pkg_error -fi - -rm -f $GETUID_SO -rm -f /tmp/.ai.pkg.zone.lock* - -# remove local tmp directory -if [ ! -z ${LOCAL_TMP} ] -then - rm -f ${LOCAL_TMP}/.ai.pkg.zone.lock* - rmdir ${LOCAL_TMP} - rm -f ${INSTALL_ROOT}/tmp - mkdir ${INSTALL_ROOT}/tmp -fi - -# -# Create a link into the users home directory -# - -if [ "$LINK" = "yes" ] -then - rm -f $HOME/soffice 2>/dev/null - 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"' {} \; -fi - -# patch the "bootstraprc" to create a self-containing installation -for i in ${PKG_LIST}; do - my_dir=${INSTALL_ROOT}`pkgparam -d ${PACKAGE_PATH} "$i" BASEDIR` - 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"' {} \; -done - -# if an unpack directory exists, it can be removed now -if [ ! -z "$UNPACKDIR" ] -then - # for i in ${PKG_LIST}; do - # cd $UNPACKDIR; rm -rf $i - # done - # rmdir $UNPACKDIR - - rm -rf $UNPACKDIR - echo "Removed temporary directory $UNPACKDIR" -fi - -echo -echo "Installation done ..." -exit 0 - |