From e1082e45361a92a31adedcc3ed0a35c704bca543 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Thu, 15 Feb 2018 22:23:10 +0100 Subject: setup_native: remove {un,}install_solaris.sh These scripts were never shipped to end users (the corresponding install_linux.sh was only added to the instset in LO times, see 117b3242dbdcf5c9690921f2f4cf1495df10c11e) but were used by QA and developers to install multiple Solaris builds as non-root using getuid.so. But the "archive" installation set can be used for the same purpopse and doesn't require a custom script. Change-Id: I665277bef7c5ddd58e798f5f1b1c6a97a0f3cfc5 --- setup_native/CustomTarget_scripts.mk | 20 -- setup_native/scripts/install_solaris.sh | 376 ------------------------------ setup_native/scripts/uninstall_solaris.sh | 74 ------ 3 files changed, 470 deletions(-) delete mode 100644 setup_native/scripts/install_solaris.sh delete mode 100644 setup_native/scripts/uninstall_solaris.sh diff --git a/setup_native/CustomTarget_scripts.mk b/setup_native/CustomTarget_scripts.mk index 5a50a69b4e36..c7f8c5b0aec1 100644 --- a/setup_native/CustomTarget_scripts.mk +++ b/setup_native/CustomTarget_scripts.mk @@ -35,24 +35,4 @@ $(scripts_WORKDIR)/uninstall: $(SRCDIR)/setup_native/scripts/uninstall_linux.sh endif endif -ifeq ($(OS),SOLARIS) -$(eval $(call gb_CustomTarget_register_targets,setup_native/scripts,\ - install \ - uninstall \ - getuid.so.stripped \ -)) - -$(scripts_WORKDIR)/getuid.so.stripped: $(call gb_Library_get_target,getuid) - cp $< $@ - /usr/ccs/bin/strip $@ - -$(scripts_WORKDIR)/install: $(SRCDIR)/setup_native/scripts/install_solaris.sh $(scripts_WORKDIR)/getuid.so.stripped - $(PERL) -w $(SRCDIR)/setup_native/scripts/install_create.pl $^ $@ - chmod 775 $@ - -$(scripts_WORKDIR)/uninstall: $(SRCDIR)/setup_native/scripts/uninstall_solaris.sh $(scripts_WORKDIR)/getuid.so.stripped - $(PERL) -w $(SRCDIR)/setup_native/scripts/install_create.pl $^ $@ - chmod 775 $@ -endif - # vim: set noet sw=4 ts=4: diff --git a/setup_native/scripts/install_solaris.sh b/setup_native/scripts/install_solaris.sh deleted file mode 100644 index de60ea92be67..000000000000 --- a/setup_native/scripts/install_solaris.sh +++ /dev/null @@ -1,376 +0,0 @@ -#!/usr/bin/env bash -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# This file incorporates work covered by the following license notice: -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed -# with this work for additional information regarding copyright -# ownership. The ASF licenses this file to you under the Apache -# License, Version 2.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.apache.org/licenses/LICENSE-2.0 . -# - -ADD="no" -LINK="no" -UPDATE="no" -USAGE="Usage: $0 [-a] [-l] [-h] " - -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 " [-l]" - echo " : directory *only* containing the Solaris pkg packages to be installed" - echo " or language pack shell script containing the Solaris pkg packages" - echo " : directory to where the office and the pkg database will get installed into" - echo - echo "Optional Parameter:" - echo " -a : add to an existing " - 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 -/^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 - -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 overriding 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 - diff --git a/setup_native/scripts/uninstall_solaris.sh b/setup_native/scripts/uninstall_solaris.sh deleted file mode 100644 index 899c66559ff2..000000000000 --- a/setup_native/scripts/uninstall_solaris.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# This file incorporates work covered by the following license notice: -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed -# with this work for additional information regarding copyright -# ownership. The ASF licenses this file to you under the Apache -# License, Version 2.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.apache.org/licenses/LICENSE-2.0 . -# - -# First parameter: Root path that will be removed -# MY_ROOT=/export/home/is/root - -if [ $# -ne 1 -o -z "$1" ] -then - echo "One parameter required" - echo "Usage:" - echo "1. parameter: Path to the local root directory" - echo "All packages in local database will be removed!" - exit 2 -fi - -MY_ROOT=$1 - -cd `dirname $0` -DIRECTORY=`pwd` - -GETUID_SO=/tmp/getuid.so.$$ -linenum=??? -tail +$linenum `basename $0` > $GETUID_SO - -PKGLIST=`pkginfo -R $MY_ROOT | cut -f 2 -d ' ' | grep -v core` -COREPKG=`pkginfo -R $MY_ROOT | cut -f 2 -d ' ' | grep core` -COREPKG01=`pkginfo -R $MY_ROOT | cut -f 2 -d ' ' | grep core01` - -echo "#############################################" -echo "# Deinstallation of Office packages #" -echo "#############################################" -echo -echo "Path to the root directory : " $MY_ROOT -echo -echo "Packages to deinstall:" -for i in $PKGLIST $COREPKG; do - echo $i -done - -INSTALL_DIR=$MY_ROOT`pkginfo -R $MY_ROOT -r $COREPKG01` - -# Restore original bootstraprc -mv -f $INSTALL_DIR/program/bootstraprc.orig $INSTALL_DIR/program/bootstraprc - -for i in $PKGLIST $COREPKG; do - LD_PRELOAD=$GETUID_SO /usr/sbin/pkgrm -n -R $MY_ROOT $i -done - -# Removing old root directory, very dangerous! -# rm -rf $MY_ROOT - -# removing library in temp directory -rm -f $GETUID_SO - -echo -echo "Deinstallation done..." - -exit 0 -- cgit v1.2.3