1*b1cdbd2cSJim Jagielski#!/bin/sh 2*b1cdbd2cSJim Jagielski# ************************************************************* 3*b1cdbd2cSJim Jagielski# 4*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 5*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 6*b1cdbd2cSJim Jagielski# distributed with this work for additional information 7*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 8*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 9*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 10*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 11*b1cdbd2cSJim Jagielski# 12*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 13*b1cdbd2cSJim Jagielski# 14*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 15*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 16*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 18*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 19*b1cdbd2cSJim Jagielski# under the License. 20*b1cdbd2cSJim Jagielski# 21*b1cdbd2cSJim Jagielski# ************************************************************* 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim JagielskiMYUID=`id | sed "s/(.*//g" | sed "s/.*=//"` 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielskiif [ $MYUID -ne 0 ] 26*b1cdbd2cSJim Jagielskithen 27*b1cdbd2cSJim Jagielski echo You need to have super-user permissions to run this patch script 28*b1cdbd2cSJim Jagielski exit 1 29*b1cdbd2cSJim Jagielskifi 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielskiecho 32*b1cdbd2cSJim Jagielskiecho "Searching for the PRODUCTNAMEPLACEHOLDER installation ..." 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim JagielskiRPMNAME=`rpm -qa | grep SEARCHPACKAGENAMEPLACEHOLDER` 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielskiif [ "x$RPMNAME" != "x" ] 37*b1cdbd2cSJim Jagielskithen 38*b1cdbd2cSJim Jagielski PRODUCTINSTALLLOCATION="`rpm --query --queryformat "%{INSTALLPREFIX}" $RPMNAME`" 39*b1cdbd2cSJim Jagielski FULLPRODUCTINSTALLLOCATION="${PRODUCTINSTALLLOCATION}/PRODUCTDIRECTORYNAME" 40*b1cdbd2cSJim Jagielskielse 41*b1cdbd2cSJim Jagielski echo "PRODUCTNAMEPLACEHOLDER is not installed" 42*b1cdbd2cSJim Jagielski exit 1 43*b1cdbd2cSJim Jagielskifi 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski# Last chance to exit .. 46*b1cdbd2cSJim Jagielskiecho 47*b1cdbd2cSJim Jagielskiread -p "Patching the installation in ${FULLPRODUCTINSTALLLOCATION}. Continue (y/n) ? " -n 1 reply leftover 48*b1cdbd2cSJim Jagielskiecho 49*b1cdbd2cSJim Jagielski[ "$reply" == "y" ] || exit 1 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielskiecho 52*b1cdbd2cSJim Jagielskiecho "About to update the following packages ..." 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim JagielskiBASEDIR=`dirname $0` 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim JagielskiRPMLIST="" 57*b1cdbd2cSJim Jagielskifor i in `ls $BASEDIR/RPMS/*.rpm` 58*b1cdbd2cSJim Jagielskido 59*b1cdbd2cSJim Jagielski rpm --query `rpm --query --queryformat "%{NAME}\n" --package $i` && RPMLIST="$RPMLIST $i" 60*b1cdbd2cSJim Jagielskidone 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski# Save UserInstallation value 63*b1cdbd2cSJim JagielskiBOOTSTRAPRC="${FULLPRODUCTINSTALLLOCATION}/program/bootstraprc" 64*b1cdbd2cSJim JagielskiUSERINST=`grep UserInstallation ${BOOTSTRAPRC}` 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski# Check, if kde-integration rpm is available 67*b1cdbd2cSJim JagielskiKDERPM=`ls $BASEDIR/RPMS/*.rpm | grep kde-integration` 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielskiif [ "x$KDERPM" != "x" ]; then 70*b1cdbd2cSJim Jagielski # Check, that $RPMLIST does not contain kde integration rpm (then it is already installed) 71*b1cdbd2cSJim Jagielski KDERPMINSTALLED=`grep kde-integration ${RPMLIST}` 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski if [ "x$KDERPMINSTALLED" == "x" ]; then 74*b1cdbd2cSJim Jagielski # Install the kde integration rpm 75*b1cdbd2cSJim Jagielski RPMLIST="$RPMLIST $KDERPM" 76*b1cdbd2cSJim Jagielski fi 77*b1cdbd2cSJim Jagielskifi 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielskiecho 80*b1cdbd2cSJim Jagielskirpm --upgrade -v --hash --prefix $PRODUCTINSTALLLOCATION --notriggers $RPMLIST 81*b1cdbd2cSJim Jagielskiecho 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski# Some RPM versions have problems with -U and --prefix 84*b1cdbd2cSJim Jagielskiif [ ! -f ${BOOTSTRAPRC} ]; then 85*b1cdbd2cSJim Jagielski echo Update failed due to a bug in RPM, uninstalling .. 86*b1cdbd2cSJim Jagielski rpm --erase -v --nodeps --notriggers `rpm --query --queryformat "%{NAME} " --package $RPMLIST` 87*b1cdbd2cSJim Jagielski echo 88*b1cdbd2cSJim Jagielski echo Now re-installing new packages .. 89*b1cdbd2cSJim Jagielski echo 90*b1cdbd2cSJim Jagielski rpm --install -v --hash --prefix $PRODUCTINSTALLLOCATION --notriggers $RPMLIST 91*b1cdbd2cSJim Jagielski echo 92*b1cdbd2cSJim Jagielskifi 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski# Restore the UserInstallation key if necessary 95*b1cdbd2cSJim JagielskiDEFUSERINST=`grep UserInstallation ${BOOTSTRAPRC}` 96*b1cdbd2cSJim Jagielskiif [ "${USERINST}" != "${DEFUSERINST}" ]; then 97*b1cdbd2cSJim Jagielski mv -f ${BOOTSTRAPRC} ${BOOTSTRAPRC}.$$ 98*b1cdbd2cSJim Jagielski sed "s|UserInstallation.*|${USERINST}|" ${BOOTSTRAPRC}.$$ > ${BOOTSTRAPRC} 99*b1cdbd2cSJim Jagielski rm -f ${BOOTSTRAPRC}.$$ 100*b1cdbd2cSJim Jagielskifi 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielskiecho "Done." 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielskiexit 0 105