Re: openoffice.org-l10n-fr does not work
Ok, I reproduced this bug. I dunno where it comes from, but it's somewhere
in the wrapper. The problem do not occure when I use my version of
/usr/bin/openoffice, which is attached.
If you have some times to investigate why, you're welcome, I'm really
overhealmed, right now, sorry.
Bye, Mt.
On Fri, May 31, 2002 at 11:44:20AM +0200, Josselin Mouette wrote:
> Hi,
>
> I have tried the latest version of the openoffice.org packages, and it
> seems that the French files don't work correctly. If I only install the
> openoffice.org-l10n-fr package, the program segfaults on startup
> (backtrace attached).
>
> With the English language files, everything runs smoothly (but in
> English). And... YES ! No more stupid installation program ! Thanks for
> your great packaging work, folks.
--
Autrefois, c'était l'excellence qui faisait la notoriété.
Maintenant, c'est la notoriété qui fait l'excellence.
--- Alain Finkielkraut
#!/bin/sh
#
# Wrapper script for openoffice
#
# (C) Peter 'Nidd' Novodvorsky, 2001.
# (C) Martin 'empty' Quinson, 2002.
# 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 ~/.sversion
OOVERSION="OpenOffice.org 1.0"
##
## 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://||" | \
sed -e 's/[[:blank:]]//g' -e 's/
//'`
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
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|"`
else
echo "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
##
## install OO for this user if needed
##
if [ ! -d $OOHOME ]; then
/usr/lib/openoffice/program/setup -R:/etc/openoffice/autoresponse.conf
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
if [ -e $LINGFILE ] ; then
OLDLOCALE=`grep DefaultLocale $LINGFILE|sed 's/<[^>]*>//g'|sed 's/[[:blank:]]//g'`
else
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 [ $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</" \
< /usr/lib/openoffice/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
##
## Forbid the gnome session manager to mess up here
## (it kills OO right after startup)
unset SESSION_MANAGER
##
## That's it. Launch the beast
##
$OOHOME/soffice
Reply to: