diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2005-09-28 12:06:27 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2005-09-28 12:06:27 +0000 |
commit | 16bcc8e89037e43b6866bbe9d28cf5ba1c1e2893 (patch) | |
tree | 3addb0b606606dfb077153b0c4fe896cc31a913a /setup_native/scripts | |
parent | f3acf1351c0de3e47b7192271940657a6e62793f (diff) |
INTEGRATION: CWS nativefixer18 (1.4.2); FILE MERGED
2005/09/13 08:53:10 obr 1.4.2.5: #124120# message clearification
2005/09/12 12:53:18 obr 1.4.2.4: #124120# workaround for rpm upgrade bug with --prefix and switch to long options
2005/08/26 06:59:29 obr 1.4.2.3: #124120# cosmetic output change
2005/08/26 06:56:13 obr 1.4.2.2: #124120# preserve UserInstallation value when patching
2005/08/15 10:57:03 obr 1.4.2.1: #124009# do not run (buggy) trigger script since we have install into the same place anyway
Diffstat (limited to 'setup_native/scripts')
-rw-r--r-- | setup_native/scripts/linuxpatchscript.sh | 50 |
1 files changed, 35 insertions, 15 deletions
diff --git a/setup_native/scripts/linuxpatchscript.sh b/setup_native/scripts/linuxpatchscript.sh index b1def5638484..8b02158af242 100644 --- a/setup_native/scripts/linuxpatchscript.sh +++ b/setup_native/scripts/linuxpatchscript.sh @@ -4,7 +4,7 @@ MYUID=`id | sed "s/(.*//g" | sed "s/.*=//"` if [ $MYUID -ne 0 ] then - echo You need to have super-user rights to install this language package + echo You need to have super-user permissions to run this patch script exit 1 fi @@ -21,30 +21,50 @@ else exit 1 fi -# Asking for the installation directory - +# Last chance to exit .. echo -echo "Where do you want to install the patch ? [$PRODUCTINSTALLLOCATION] " -read reply leftover -if [ "x$reply" != "x" ] -then - PRODUCTINSTALLLOCATION="$reply" -fi - -# Unpacking +read -p "Patching the installation in ${PRODUCTINSTALLLOCATION}. Continue (y/n) ? " -n 1 reply leftover +echo +[ "$reply" == "y" ] || exit 1 -echo "Installing..." +echo +echo "About to update the following packages ..." BASEDIR=`dirname $0` RPMLIST="" for i in `ls $BASEDIR/RPMS/*.rpm` do - rpm -q `rpm -qp --qf "%{NAME}\n" $i` && RPMLIST="$RPMLIST $i" + rpm --query `rpm --query --queryformat "%{NAME}\n" --package $i` && RPMLIST="$RPMLIST $i" done -rpm --prefix $PRODUCTINSTALLLOCATION -U $RPMLIST +# Save UserInstallation value +BOOTSTRAPRC="${PRODUCTINSTALLLOCATION}/program/bootstraprc" +USERINST=`grep UserInstallation ${BOOTSTRAPRC}` + +echo +rpm --upgrade -v --hash --prefix $PRODUCTINSTALLLOCATION --notriggers $RPMLIST +echo + +# Some RPM versions have problems with -U and --prefix +if [ ! -f ${BOOTSTRAPRC} ]; then + echo Update failed due to a bug in RPM, uninstalling .. + rpm --erase -v --nodeps --notriggers `rpm --query --queryformat "%{NAME} " --package $RPMLIST` + echo + echo Now re-installing new packages .. + echo + rpm --install -v --hash --prefix $PRODUCTINSTALLLOCATION --notriggers $RPMLIST + echo +fi + +# Restore the UserInstallation key if necessary +DEFUSERINST=`grep UserInstallation ${BOOTSTRAPRC}` +if [ "${USERINST}" != "${DEFUSERINST}" ]; then + mv -f ${BOOTSTRAPRC} ${BOOTSTRAPRC}.$$ + sed "s|UserInstallation.*|${USERINST}|" ${BOOTSTRAPRC}.$$ > ${BOOTSTRAPRC} + rm -f ${BOOTSTRAPRC}.$$ +fi -echo "Done..." +echo "Done." exit 0 |