office-gobmx/bin/distro-install-clean-up
Petr Mladek a0238fda86 bin/distro-install*: source config_host.mk instead of Env.Host.sh
thanks Stefan Bergman for improving the sed pattern
2012-02-29 20:29:34 +01:00

95 lines
3.7 KiB
Bash
Executable file

#!/bin/sh
if test -z "${SRC_ROOT}"; then
eval $(sed -e s/\'/\'\\\\\'\'/g -e 's/=\(.\+\)/='\''\1'\'/ ./config_host.mk)
fi
if test -z "${SOLARENV}"; then
echo "distro-install-clean-up: No environment set!"
exit 1
fi
echo "Cleaning up ...";
remove_help_localization()
{
lang=$1
# nothing to be done if the localization is en-US if it does not exist
# or if it is already removed
test "$lang" = "en-US" -o \
! -e $DESTDIR$INSTALLDIR/help/$lang -o \
-L $DESTDIR$INSTALLDIR/help/$lang && return;
echo "... remove \"$lang\""
rm -rf $DESTDIR$INSTALLDIR/help/$lang
grep -v "$INSTALLDIR/help/$lang" $DESTDIR/gid_Module_Root.$lang >$DESTDIR/gid_Module_Root.$lang.new
mv -f $DESTDIR/gid_Module_Root.$lang.new $DESTDIR/gid_Module_Root.$lang
# FIXME: the following code could be used without the condition
# and should replace the lines above after only the milestones
# providing gid_Module_Helppack_Help and fixed gid_Module_Root.$lang
# are supported
# Note: The problem with gid_Module_Root.$lang is that it still includes
# %dir */help/* entries.
# Note: It was still necessary on ppc with gcj (OOo-2.0.2). Strange. Have to
# investigate it later.
if test -f $DESTDIR/gid_Module_Helppack_Help.$lang ; then
grep -v "$INSTALLDIR/help/$lang" $DESTDIR/gid_Module_Helppack_Help.$lang >$DESTDIR/gid_Module_Helppack_Help.$lang.new
mv -f $DESTDIR/gid_Module_Helppack_Help.$lang.new $DESTDIR/gid_Module_Helppack_Help.$lang
fi
# Note: We created a compat symlink in the past. It is no longer necessary.
# We do not want it because RPM has problems with update when we remove
# poor localizations in never packages
}
# Check if the English help is installed and is in the main package (is first on the list)
# Note that Java-disabled builds do not create help at all.
if test -f $DESTDIR$INSTALLDIR/help/en/sbasic.cfg -a \
"`for lang in $WITH_LANG_LIST ; do echo $lang ; break ; done`" = "en-US" ; then
echo "Removing duplicated English help..."
for lang in $WITH_LANG_LIST ; do
test ! -f $DESTDIR$INSTALLDIR/help/en/sbasic.cfg -o ! -f $DESTDIR$INSTALLDIR/help/$lang/sbasic.cfg && continue;
if diff $DESTDIR$INSTALLDIR/help/en/sbasic.cfg $DESTDIR$INSTALLDIR/help/$lang/sbasic.cfg >/dev/null 2>&1 ; then
remove_help_localization $lang
fi
done
echo "Removing poor help localizations..."
for lang in $WITH_POOR_HELP_LOCALIZATIONS ; do
remove_help_localization $lang
done
fi
echo "Fixing permissions..."
for dir in $DESTDIR$DOCDIR $DESTDIR$INSTALLDIR/sdk/examples ; do
if test -d $dir -a -w $dir ; then
find "$dir" -type f \( -name "*.txt" -o -name "*.java" -o -name "*.xml" -o \
-name "*.xcu" -o -name "*.xcs" -o -name "*.html" -o \
-name "*.pdf" -o -name "*.ps" -o -name "*.gif" -o \
-name "*.png" -o -name "*.jpg" -o -name "Makefile" -o \
-name "manifest.mf" \) -exec chmod 644 {} \;
fi
done
if test "z$DESTDIR" != "z" ; then
echo "Checking for DESTDIR inside installed files..."
found_destdir=
for file in `find $DESTDIR -type f` ; do
grep -q "$DESTDIR" $file && echo "$file: includes the string \"$DESTDIR\"" && found_destdir=1
done
if test "z$found_destdir" != "z" ; then
echo "!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!"
echo "The path DESTDIR:$DESTDIR was found inside some"
echo "installed files. It is probably a bug."
echo
echo "Especially, if the DESTDIR is set to \$RPM_BUILD_ROOT"
echo "when creating RPM packages. Even it could be a security hole"
echo "if the application searches /var/tmp for binaries or"
echo "config files because the directory is world-writable."
echo "!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!"
fi
fi