diff options
author | Seth Chandler <sethbc@gentoo.org> | 2003-01-19 23:09:39 +0000 |
---|---|---|
committer | Seth Chandler <sethbc@gentoo.org> | 2003-01-19 23:09:39 +0000 |
commit | 76f2f487c4ccc6e9f730c3c108b5f790ec93ce37 (patch) | |
tree | ed4f433b50f4767481aa0f98a33d03b8fe95629a /app-office/openoffice-bin | |
parent | Version bump and reincorporated tls support. (diff) | |
download | historical-76f2f487c4ccc6e9f730c3c108b5f790ec93ce37.tar.gz historical-76f2f487c4ccc6e9f730c3c108b5f790ec93ce37.tar.bz2 historical-76f2f487c4ccc6e9f730c3c108b5f790ec93ce37.zip |
made some changes to the wrapper script
Diffstat (limited to 'app-office/openoffice-bin')
-rw-r--r-- | app-office/openoffice-bin/files/1.0.1/ooffice-wrapper-1.1 | 202 | ||||
-rw-r--r-- | app-office/openoffice-bin/openoffice-bin-1.0.1.ebuild | 4 |
2 files changed, 204 insertions, 2 deletions
diff --git a/app-office/openoffice-bin/files/1.0.1/ooffice-wrapper-1.1 b/app-office/openoffice-bin/files/1.0.1/ooffice-wrapper-1.1 new file mode 100644 index 000000000000..44e2802206f5 --- /dev/null +++ b/app-office/openoffice-bin/files/1.0.1/ooffice-wrapper-1.1 @@ -0,0 +1,202 @@ +#!/bin/sh +# +# Wrapper script for openoffice +# +# (C) Peter 'Nidd' Novodvorsky, 2001,2002 +# (C) Martin 'empty' Quinson, 2002. +# Modifications by Chris Halls + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# this string should be exactly as in ~/.sversionrc +OOVERSION="OpenOffice.org <pv>" + +## +## Source system configuration file +## +[ -r /etc/openoffice/openoffice.conf ] && . /etc/openoffice/openoffice.conf + +## +## where does OO live for this user ? +## +OOHOME="" +if [ -e ~/.sversionrc ] && grep -q "$OOVERSION" ~/.sversionrc ; then + # already installed for this user (warning, .sversionrc is DOS encoded) + OOHOME=`grep "^$OOVERSION=" ~/.sversionrc| \ + sed "s|^$OOVERSION=file://||" | \ + xargs echo` + if [ ! -e $OOHOME ] ; then + echo "I'm confused because I can't find OpenOffice's user files." + echo "Your ~/.sversionrc file tells they should be under $OOHOME," + echo "but they are not. Please fix the situation manually." + echo "You may want to edit ~/.sversionrc to indicate where is OO" + echo "installed, or remove it if you did remove your installation" + echo "directory manually (you bad one)." + exit 1 + fi +fi + +## +## Unset SESSION_MANAGER if gnome-session is the session manager +## See http://www.openoffice.org/issues/show_bug.cgi?id=4494 +## +SMPID=`echo $SESSION_MANAGER | sed --quiet "s,local.*/,,p"` +if [ -n "$SMPID" ] && [ -L /proc/"$SMPID"/exe ]; then + SESMGR="`readlink -f /proc/$SMPID/exe`" + if [ "$SESMGR" = "/usr/bin/gnome-session" ]; then + echo "Gnome session manager detected - session management disabled" + unset SESSION_MANAGER + fi +fi + +## +## install OO for this user if needed +## +if [ -z "$OOHOME" ] ; then + if [ -e /etc/openoffice/autoresponse.conf ] && \ + grep -q DESTINATIONPATH /etc/openoffice/autoresponse.conf ; then + # first install + OOHOME=`grep DESTINATIONPATH /etc/openoffice/autoresponse.conf | \ + sed -e 's/DESTINATIONPATH=//' -e "s|<home>|$HOME|"` + + if [ -d "$OOHOME" ]; then + echo "openoffice.org: You have no entry for $OOVERSION in ~/.sversionrc, " + echo "yet the directory $OOHOME exists." + echo "Please remove $OOHOME and try again." + exit 1 + fi + echo "running openoffice.org setup..." + if ! /opt/OpenOffice.org<pv>/program/setup -R:/etc/openoffice/autoresponse.conf >& /dev/null; then + echo "setup failed.. abort" + exit 1 + fi + echo "Setup complete. Running openoffice.org..." + else + echo "openoffice.org: Damnit! I can't find OpenOffice's user files. Did you break" + echo "the /etc/openoffice/autoresponse.conf file manually ?" + echo "This file should contain DESTINATIONPATH" + exit 1 + fi +fi + +## +## If no file is specified on the command line, which application to start? +## The wrapper can be called from several links in /usr/bin +## +if [ $# = 0 ]; then + case `basename $0` in + oocalc) set -- private:factory/scalc;; + oodraw) set -- private:factory/sdraw;; + ooimpress) set -- private:factory/simpress;; + oomath) set -- private:factory/smath;; + oowriter) set -- private:factory/swriter;; + esac +fi + +## +## +## Change the config files to conform to current locale used +## + +# Fix some variable to make the paths shorter in the rest +LINGFILE="$OOHOME/user/config/registry/instance/org/openoffice/Office/Linguistic.xml" +SETUPFILE="$OOHOME/user/config/registry/instance/org/openoffice/Setup.xml" + + +# Search the right locale +OLDLOCALE="" +if [ -e $LINGFILE ] ; then + OLDLOCALE=`grep 'DefaultLocale cfg' $LINGFILE|sed 's/<[^>]*>//g'|sed 's/[[:blank:]]//g'` +fi +if [ -z $OLDLOCALE ]; then OLDLOCALE="en-US"; fi +if [ "x$OLDLOCALE" = "xC" ]; then OLDLOCALE="en-US"; fi + +LOCALE=$LC_ALL +if [ -z $LOCALE ] ; then LOCALE="$LC_MESSAGES"; fi +if [ -z $LOCALE ] ; then LOCALE="$LANG"; fi +if [ -z $LOCALE ] ; then LOCALE="en-US"; fi +if [ "x$LOCALE" = "xC" ] ; then LOCALE="en-US"; fi + +if [ $LOCALE != $OLDLOCALE ] ; then + + # Change instdb.ins + cp $OOHOME/instdb.ins $OOHOME/instdb.ins.$OLDLOCALE + sed "s/>$OLDLOCALE</>$LOCALE</" $OOHOME/instdb.ins.$OLDLOCALE > $OOHOME/instdb.ins + + # Create Linguistic.xml if don't exists + if [ ! -e $LINGFILE.$OLDLOCALE ] ; then + # get a default one, and change en-US to OLDLOCALE inside. I guess this is a noop, but I'm not sure + sed "s/>en-US</>$OLDLOCALE</" \ + < /opt/OpenOffice.org<pv>/share/config/registry/instance/org/openoffice/Office/Linguistic.xml \ + > $LINGFILE.$OLDLOCALE + fi + + # change Linguistic.xml + sed "s/>$OLDLOCALE</>$LOCALE</" $LINGFILE.$OLDLOCALE > $LINGFILE + + # Change Setup.xml + if grep -q '<ooLocale cfg:type' $SETUPFILE ; then + cp $SETUPFILE $SETUPFILE.$OLDLOCALE + sed "s/>$OLDLOCALE</>$LOCALE</" $SETUPFILE.$OLDLOCALE > $SETUPFILE + else # ooLocale entry does not exists in Setup.xml + cp $SETUPFILE $SETUPFILE.tmp + + cat $SETUPFILE.tmp | \ + perl -e "while (<>) { /<Office>/ && print \"<L10N>\n<ooLocale cfg:type=\\\"string\\\">$LOCALE</ooLocale>\n</L10N>\n\";print \$_;}" > \ + $SETUPFILE + # this perl command is to add a <L10N> section if it does not exists. + # On my machine, it produce the following patch: + + # <Setup state="modified" cfg:package="org.openoffice" xmlns="http://openoffice.org/2000/registry/components/Setup" xmlns:cfg="http://openoffice.org/2000/registry/instance" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"> + #+ <L10N> + #+ <ooLocale cfg:type="string">fr_FR@euro</ooLocale> + #+ </L10N> + # <Office> + + rm $SETUPFILE.tmp + fi # change Setup.xml + +fi # LOCALE != OLDLOCALE + +## Previous dead installation? +[ -d $HOME/.openoffice/user ] && echo "Warning: you have a user settings directory from 1.0.0 in ~/.openoffice/user - this is no longer used" + +## +## That's it. Launch the beast (with the given args) +## + +case `basename $0` in + oosetup) LD_PRELOAD=/usr/lib/libfreetype.so.6 exec "$OOHOME/setup" ;; + oopadmin) LD_PRELOAD=/usr/lib/libfreetype.so.6 exec "$OOHOME/spadmin" ;; + *) LD_PRELOAD=/usr/lib/libfreetype.so.6 exec "$OOHOME/soffice" "$@" ;; +esac + +## Changelog +# 07/10 challs +# * use 1.0.1 directory and improve error checking +# 07/02 challs +# * use readlink in /proc/PID/exe to get +# real session manager name +# 06/12 challs +# * merge into main package +# * change $@ to "$@" +# * source configuration file: +# /etc/openoffice/openoffice.conf +# 06/12 mquinson +# * strace only when DEBUG is set to yes +# * readd the $@ to pass the args to soffice +# 06/06 mquinson +# * Make sure the OLDLOCALE is never empty +# * handle the case where the locale is C diff --git a/app-office/openoffice-bin/openoffice-bin-1.0.1.ebuild b/app-office/openoffice-bin/openoffice-bin-1.0.1.ebuild index dcd18131f183..3f672a64c9d1 100644 --- a/app-office/openoffice-bin/openoffice-bin-1.0.1.ebuild +++ b/app-office/openoffice-bin/openoffice-bin-1.0.1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2002 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice-bin/openoffice-bin-1.0.1.ebuild,v 1.10 2002/12/09 04:17:42 manson Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice-bin/openoffice-bin-1.0.1.ebuild,v 1.11 2003/01/19 23:09:39 sethbc Exp $ IUSE="kde gnome" @@ -116,7 +116,7 @@ src_install() { # Install wrapper script exeinto /usr/bin sed -e "s|<pv>|${PV}|g" \ - ${FILESDIR}/${PV}/ooffice-wrapper > ${T}/ooffice + ${FILESDIR}/${PV}/ooffice-wrapper-1.1 > ${T}/ooffice doexe ${T}/ooffice # Component symlinks dosym ooffice /usr/bin/oocalc |