9652e297b8
Change-Id: Ief2f645be521b74be74c6df030687c91c37cf0cd
195 lines
8.3 KiB
Bash
Executable file
195 lines
8.3 KiB
Bash
Executable file
#!/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$PREFIXDIR/bin
|
|
|
|
|
|
create_wrapper()
|
|
{
|
|
echo "Install $PREFIXDIR/bin/$1"
|
|
|
|
if test -L "$DESTDIR$PREFIXDIR/bin/$1" ; then
|
|
# do not overwrite $PREFIXDIR/bin/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 $PREFIXDIR/bin/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 $PREFIXDIR/bin/$1"
|
|
else
|
|
mkdir -p $DESTDIR$PREFIXDIR/bin
|
|
cat <<EOT >$DESTDIR$PREFIXDIR/bin/$1
|
|
#!/bin/sh
|
|
$INSTALLDIR/program/$2 $3 "\$@"
|
|
EOT
|
|
chmod 755 $DESTDIR$PREFIXDIR/bin/$1
|
|
fi
|
|
# put into file list
|
|
test -f "$DESTDIR/$4" && echo "$PREFIXDIR/bin/$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 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" = 'YES' ; 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 -t -d distro-pack-desktop-integration-XXXXXX`
|
|
cp -a workdir/unxlng*/CustomTarget/sysui/share/libreoffice/* "$sysui_temp"
|
|
cp -a sysui/desktop/share/create_tree.sh "$sysui_temp"
|
|
builddir=`pwd`
|
|
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 malfrom PRODUCTVERSION, ...
|
|
(
|
|
export OFFICE_PREFIX=$LIBDIR
|
|
export PREFIX=$INSTALLDIRNAME
|
|
export ICON_PREFIX=$INSTALLDIRNAME
|
|
export ICON_SOURCE_DIR=$builddir/sysui/desktop/icons
|
|
export PRODUCTVERSION=
|
|
export KDEMAINDIR=$PREFIXDIR
|
|
export GNOMEDIR=$PREFIXDIR
|
|
export GNOME_MIME_THEME=hicolor
|
|
/bin/bash ./create_tree.sh
|
|
)
|
|
cd -
|
|
rm -rf $sysui_temp
|
|
|
|
# we do not want some stuff from the plain packages
|
|
rm -f $DESTDIR/$PREFIXDIR/bin/$INSTALLDIRNAME-printeradmin
|
|
rm -f $DESTDIR$PREFIXDIR/share/applications/libreoffice-printeradmin.desktop
|
|
if test -d $DESTDIR/opt ; then
|
|
rm -f $DESTDIR/opt/$INSTALLDIRNAME
|
|
rmdir --ignore-fail-on-non-empty $DESTDIR/opt
|
|
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/application-registry \
|
|
$PREFIXDIR/share/mimelnk/application \
|
|
$PREFIXDIR/share/mime/packages \
|
|
$PREFIXDIR/share/mime-info \
|
|
$PREFIXDIR/share/icons ; do
|
|
find "$DESTDIR$dir" \( -type f -o -type l \) -printf "$dir/%P\n" >>$DESTDIR/gid_Module_Root_Brand
|
|
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"
|
|
|
|
# $PREFIXDIR/bin/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$PREFIXDIR/bin/soffice
|
|
test -f $DESTDIR/gid_Module_Root_Brand && echo "$PREFIXDIR/bin/soffice" >>$DESTDIR/gid_Module_Root_Brand
|
|
|
|
# create bash completion
|
|
mkdir -p $DESTDIR/etc/bash_completion.d
|
|
./bin/generate-bash-completion bin/bash-completion.in $DESTDIR/etc/bash_completion.d/$INSTALLDIRNAME.sh
|
|
test -f $DESTDIR/gid_Module_Root_Brand && echo "/etc/bash_completion.d/$INSTALLDIRNAME.sh" >>$DESTDIR/gid_Module_Root_Brand
|
|
if test "$WITH_COMPAT_OOWRAPPERS" = "YES" ; then
|
|
./bin/generate-bash-completion --compat-oowrappers bin/bash-completion.in $DESTDIR/etc/bash_completion.d/ooffice.sh
|
|
test -f $DESTDIR/gid_Module_Root_Brand && echo "/etc/bash_completion.d/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" 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
|