#!/bin/sh
if test -z
"${SRC_ROOT}";
then
echo "distro-install-clean-up: No environment set!"
exit 1
fi
PRODUCTVERSION_NODOT=`
echo $PRODUCTVERSION | sed -e
"s/\.//"`
mkdir -p
"$DESTDIR$BINDIR"
create_wrapper()
{
echo "Install $BINDIR/$1"
if test -L
"$DESTDIR$BINDIR/$1" ;
then
# do not overwrite $BINDIR/libreoffice symlink created by create_tree.sh
# the symlink is necessary by java UNO components to find
# the UNO installation using $PATH; this function used to be provided
# by $BINDIR/soffice symlink, see
# http://udk.openoffice.org/common/man/spec/transparentofficecomponents.html
# Note: if you want to support parallel installation of more OOo versions
# you cannot include this link directly into the package
# For example, the Novell package mark this symlink as %ghost
# and update it in %post and %postun
echo " skip already existing symlink $BINDIR/$1"
else
mkdir -p
"$DESTDIR$BINDIR"
cat <<EOT >
"$DESTDIR$BINDIR/$1"
#!/bin/sh
$INSTALLDIR/program/$2 $3
"\$@"
EOT
chmod 755
"$DESTDIR$BINDIR/$1"
fi
# put into file list
test -f
"$DESTDIR/$4" &&
echo "$BINDIR/$1" >>$DESTDIR/$4
}
create_man_link()
{
echo "Install $MANDIR/man1/$1.1.gz"
mkdir -p $DESTDIR$MANDIR/man1
echo ".so man1/$2.1" >| $DESTDIR$MANDIR/man1/$1.1
gzip -f $DESTDIR$MANDIR/man1/$1.1
test -f
"$DESTDIR/$3" &&
echo "$MANDIR/man1/$1.1.gz" >>
"$DESTDIR/$3"
}
install_man()
{
echo "Install $MANDIR/man1/$1.1.gz"
mkdir -p $DESTDIR$MANDIR/man1
cp "${SRCDIR?}"/sysui/desktop/man/$1.1 $DESTDIR$MANDIR/man1 || exit 1;
gzip -f $DESTDIR$MANDIR/man1/$1.1
test -f
"$DESTDIR/$2" &&
echo "$MANDIR/man1/$1.1.gz" >>
"$DESTDIR/$2"
}
add_wrapper()
{
lowrapper_name=
"$1"
target_binary=
"$2"
target_option_1=
"$3"
used_man_page=
"$4"
desktop_file=
"$5"
file_list=
"$6"
# do we want compat oowrapper?
oowrapper_name=
""
if test
"$WITH_COMPAT_OOWRAPPERS" =
'TRUE' ;
then
oowrapper_name=`
echo "$lowrapper_name" | sed -e
"s/^lo/oo/"`
# "oo" prefix only for wrappers stating with "lo" prefix
test
"$oowrapper_name" =
"$lowrapper_name" && oowrapper_name=
fi
# wrappers
create_wrapper
"$lowrapper_name" "$target_binary" "$target_option_1" "$file_list"
test -n
"$oowrapper_name" && create_wrapper
"$oowrapper_name" "$target_binary" "$target_option_1" "$file_list"
# man pages
if test
"$used_man_page" =
"$lowrapper_name" ;
then
# need to install the manual page
install_man
"$lowrapper_name" "$file_list"
else
# just link the manual page
create_man_link
"$lowrapper_name" "$used_man_page" "$file_list"
fi
test -n
"$oowrapper_name" && create_man_link
"$oowrapper_name" "$used_man_page" "$file_list"
# add desktop file to the right file list
test -n
"$desktop_file" -a -f
"$DESTDIR/$file_list" &&
echo "$PREFIXDIR/share/applications/$desktop_file" >>
"$DESTDIR/$file_list"
}
# install desktop integration from plain packages
sysui_temp=`mktemp -d -t distro-pack-desktop-integration-XXXXXX`
cp -a workdir/CustomTarget/sysui/share/libreoffice/*
"$sysui_temp"
cp -a
"${SRCDIR?}"/sysui/desktop/share/create_tree.sh
"$sysui_temp"
cd $sysui_temp
# we want non-versioned stuff in the distro packages
sed -i \
-e
"s/\($INSTALLDIRNAME\)$PRODUCTVERSION_NODOT/\1/" \
-e
"s/\($INSTALLDIRNAME\)$PRODUCTVERSION/\1/" \
-e
"s/\($PRODUCTNAME\) $PRODUCTVERSION/\1/" \
*
# call in subshell to do not malform PRODUCTVERSION, ...
(
export OFFICE_PREFIX=$LIBDIR
export PREFIX=$INSTALLDIRNAME
export ICON_PREFIX=$INSTALLDIRNAME
export ICON_SOURCE_DIR=
"${SRCDIR?}"/sysui/desktop/icons
export PRODUCTVERSION=
export KDEMAINDIR=$PREFIXDIR
export PREFIXDIR=${PREFIXDIR}
export APPDATA_SOURCE_DIR=
"${SRCDIR?}"/sysui/desktop/appstream-appdata
bash ./create_tree.sh
)
cd -
rm -rf $sysui_temp
# we do not want some stuff from the plain packages
if test -d $DESTDIR/opt ;
then
rm -f $DESTDIR/opt/$INSTALLDIRNAME
rmdir $DESTDIR/opt 2>/dev/null || true
fi
# we want non-versioned desktop files
cd $DESTDIR/$INSTALLDIR/share/xdg
# we want non-versioned stuff in the distro packages
sed -i \
-e
"s/\($INSTALLDIRNAME\)$PRODUCTVERSION_NODOT/\1/" \
-e
"s/\($INSTALLDIRNAME\)$PRODUCTVERSION/\1/" \
-e
"s/\($PRODUCTNAME\) $PRODUCTVERSION/\1/" \
*.desktop
cd -
# put the stuff installed by create_tree.sh into the right file lists
# desktop files will be added by the corresponding add_wrapper command
if test -f $DESTDIR/gid_Module_Root_Brand ;
then
for dir in $PREFIXDIR/share/mime/packages \
$PREFIXDIR/share/icons ;
do
find
"$DESTDIR$dir" \( -type f -o -type l \) -printf
"$dir/%P\n" >>$DESTDIR/gid_Module_Root_B
rand
done
fi
# wrappers and man pages
# FIXME: do not have desktop file and MIME icon for unopkg
add_wrapper lobase soffice "--base" "libreoffice" "libreoffice-base.desktop" "gid_Module_Brand_Prg_Base"
add_wrapper localc soffice "--calc" "libreoffice" "libreoffice-calc.desktop" "gid_Module_Brand_Prg_Calc"
add_wrapper lodraw soffice "--draw" "libreoffice" "libreoffice-draw.desktop" "gid_Module_Brand_Prg_Draw"
add_wrapper lomath soffice "--math" "libreoffice" "libreoffice-math.desktop" "gid_Module_Brand_Prg_Math"
add_wrapper loimpress soffice "--impress" "libreoffice" "libreoffice-impress.desktop" "gid_Module_Brand_Prg_Impress"
add_wrapper loweb soffice "--web" "libreoffice" "" "gid_Module_Brand_Prg_Wrt"
add_wrapper lowriter soffice "--writer" "libreoffice" "libreoffice-writer.desktop" "gid_Module_Brand_Prg_Wrt"
add_wrapper lofromtemplate soffice ".uno:NewDoc" "libreoffice" "" "gid_Module_Root_Brand"
add_wrapper libreoffice soffice "" "libreoffice" "libreoffice-startcenter.desktop" "gid_Module_Root_Brand"
add_wrapper loffice soffice "" "libreoffice" "" "gid_Module_Root_Brand"
add_wrapper unopkg unopkg "" "unopkg" "" "gid_Module_Root_Brand"
# there are two more desktop files for optional filters
test -f $DESTDIR/gid_Module_Optional_Xsltfiltersamples && echo "$PREFIXDIR/share/applications/libreoffice-xsltfilter.desktop" >>"$DESTDIR/gid_Module_Optional_Xsltfiltersamples"
# $BINDIR/ooffice symlink is necessary by java UNO components to find
# the UNO installation using $PATH, see
# http://udk.openoffice.org/common/man/spec/transparentofficecomponents.html
# Note: if you want to support parallel installation of more OOo versions
# you cannot include this link directly into the package
# For example, the Novell package mark this symlink as %ghost
# and update it in %post and %postun
ln -sf "$INSTALLDIR/program/soffice" "$DESTDIR$BINDIR/soffice"
test -f $DESTDIR/gid_Module_Root_Brand && echo "$BINDIR/soffice" >>$DESTDIR/gid_Module_Root_Brand
# create bash completion
mkdir -p $DESTDIR/usr/share/bash-completion/completions
"${SRCDIR?}"/bin/generate-bash-completion.py bin/bash-completion.in $DESTDIR/usr/share/bash-completion/completions/$INSTALLDIRNAME.sh
test -f $DESTDIR/gid_Module_Root_Brand && echo "/usr/share/bash-completion/completions/$INSTALLDIRNAME.sh" >>$DESTDIR/gid_Module_Root_Brand
if test "$WITH_COMPAT_OOWRAPPERS" = "TRUE" ; then
"${SRCDIR?}"/bin/generate-bash-completion.py --compat-oowrappers bin/bash-completion.in $DESTDIR/usr/share/bash-completion/completions/ooffice.sh
test -f $DESTDIR/gid_Module_Root_Brand && echo "/usr/share/bash-completion/completions/ooffice.sh" >>$DESTDIR/gid_Module_Root_Brand
fi
echo "Install $OOINSTDIR/basis$VERSION/program/java-set-classpath";
mkdir -p $DESTDIR$INSTALLDIR/program
sed -e "s|@INSTALLDIR@|$INSTALLDIR|g" "${SRCDIR?}"/bin/java-set-classpath.in >| "$DESTDIR$INSTALLDIR/program/java-set-classpath" || exit 1;
chmod 755 "$DESTDIR$INSTALLDIR/program/java-set-classpath"
test -f $DESTDIR/gid_Module_Root_Brand && echo "$INSTALLDIR/program/java-set-classpath" >>$DESTDIR/gid_Module_Root_Brand
exit 0