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">[EMAIL PROTECTED]</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 via email to