Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > dc232a62cfb66c3aa98d5c1f4f111f2a > files > 13

openoffice.org64-3.0-1.1mdv2009.0.src.rpm

#!/bin/bash

# Based on docs/setup.txt

#
# See setup for user tweakables.
#
. ./setup
. $OOBUILDDIR/*.[sS]et.sh
. ./setup

export LC_ALL='C';

if test "z$PIECE" != "z"; then
    echo "install $PIECE"
    SRCDIR="$OOBUILDDIR/solver/$UPD/$INPATH"
    mkdir -p $OOINSTDIR/solenv
    cp -R $OOBUILDDIR/solenv/* $OOINSTDIR/solenv

    DEST=$OOINSTDIR/solver
    mkdir -p $DEST
    cp -R $SRCDIR/* $DEST

#    ln -sf $OOBUILDDIR/solver/$UPD/$INPATH .
    if test -f "$TOOLSDIR/bin/piece/install-$PIECE"; then
	echo "$PIECE specific install"
	source $TOOLSDIR/bin/piece/install-$PIECE || exit 1
    fi

    find $OOINSTDIR/solenv $OOINSTDIR/solver -depth -name "CVS" -type d -exec rm -rf {} \;
    find $OOINSTDIR/solenv $OOINSTDIR/solver -name "*.orig" -exec rm -rf {} \;
    find $OOINSTDIR/solenv $OOINSTDIR/solver -type f -exec chmod go-w {} \;

    exit 0;
fi

echo "Cleaning $OOINSTDIR";
rm -Rf $OOINSTDIR;
set -e

mkdir -p $PREFIX/bin

sed -e "s|@OOINSTBASE@|$OOINSTBASE|g" $TOOLSDIR/bin/ootool.in \
		>| "$OOBUILDDIR/ootool$BINSUFFIX" || exit 1;

sed -e "s|@OOINSTBASE@|$OOINSTBASE|g" -e "s|@LIBDIRBASE@|$LIBDIRBASE|g"  $TOOLSDIR/bin/ootestapi.in \
		>| "$OOBUILDDIR/ootestapi$BINSUFFIX" || exit 1;

sed -e "s|@OOINSTBASE@|$OOINSTBASE|g" $TOOLSDIR/bin/ootesttool.in \
		>| "$OOBUILDDIR/ootesttool$BINSUFFIX" || exit 1;

sed -e "s|@OOINSTBASE@|$OOINSTBASE|g" $TOOLSDIR/bin/oosmoketest.in \
		>| "$OOBUILDDIR/oosmoketest$BINSUFFIX" || exit 1;

create_qstart_wrapper()
{
    cat <<EOT >$1
#!/bin/sh
$OOINSTBASE/program/soffice $2 "\$@"
EOT
    chmod 755 $1
}

create_unopkg_wrapper()
{
    cat <<EOT >$1
#!/bin/sh
$OOINSTBASE/program/unopkg "\$@"
EOT
    chmod 755 $1
}

install_script()
{
    cp -f $1 $2
    chmod +x $2
}

# directory for man
mkdir -p $MANDIR/man1

# startup wrappers
for app in calc draw impress math web writer base; do
    create_qstart_wrapper "$PREFIX/bin/oo${app}${BINSUFFIX}" "-${app}" || exit 1;
done
create_qstart_wrapper "$PREFIX/bin/oofromtemplate${BINSUFFIX}" "slot:5500" || exit 1;
create_qstart_wrapper "$PREFIX/bin/ooffice${BINSUFFIX}" "" || exit 1;
create_unopkg_wrapper "$PREFIX/bin/unopkg${BINSUFFIX}" "" || exit 1;
if test "z$VENDORNAME" = "zNovell" -o "z$VENDORNAME" = "zPLD" \
    -o "z$VENDORNAME" = "zDebian" \
    -o "z$VENDORNAME" = "zMandriva"; then
    for app in calc draw impress math web writer base fromtemplate ffice ; do
        echo ".so man1/openoffice$BINSUFFIX.1" >| $MANDIR/man1/oo${app}$BINSUFFIX.1;
    done
fi

# /usr/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 $OOINSTBASE/program/soffice$BINSUFFIX $PREFIX/bin/soffice$BINSUFFIX

# no man-page so ...
if test "z$VENDORNAME" != "zDebian" -a "z$VENDORNAME" != "zMandriva"; then
    install_script $TOOLSDIR/bin/ooconfig $PREFIX/bin/ooconfig
    install_script $OOBUILDDIR/ootool$BINSUFFIX $PREFIX/bin/ootool$BINSUFFIX
fi

if test "z$VENDORNAME" = "zMandriva"; then
    install_script $TOOLSDIR/bin/ooconfig $PREFIX/bin/ooconfig$BINSUFFIX
    install_script $OOBUILDDIR/ootool$BINSUFFIX $PREFIX/bin/ootool$BINSUFFIX
fi

# create bash completion
mkdir -p $OODESTDIR/etc/bash_completion.d
$TOOLSDIR/bin/generate-bash-completion --binsuffix="$BINSUFFIX" $TOOLSDIR/bin/bash-completion.in $OODESTDIR/etc/bash_completion.d/ooffice${BINSUFFIX}.sh

if test "z$VENDORNAME" != "zRedHat"; then
	mkdir -p $MANDIR/man1
	echo "Generating man pages ...";
	# openoffice
	man_page_in=$TOOLSDIR/man/openoffice.1.in
	# use the distro specific man page if available
	if test -f $TOOLSDIR/man/openoffice.1_${DISTRO%%-*}.in ; then
	    man_page_in=$TOOLSDIR/man/openoffice.1_${DISTRO%%-*}.in
	fi
	sed -e "s|@BINSUFFIX@|$BINSUFFIX|g" $man_page_in \
		>| "$MANDIR/man1/openoffice$BINSUFFIX.1" || exit 1;
	# unopkg
	sed -e "s|@BINSUFFIX@|$BINSUFFIX|g" $TOOLSDIR/man/unopkg.1.in \
		>| "$MANDIR/man1/unopkg$BINSUFFIX.1" || exit 1;
fi

mkdir -p $OOINSTDIR/basis$VERSION/program

echo "Building $OOINSTDIR/basis$VERSION/program/java-set-classpath";
sed -e "s|@OOINSTBASE@|$OOINSTBASE|g" $TOOLSDIR/bin/java-set-classpath.in >| "$OOBUILDDIR/java-set-classpath" || exit 1;
install_script $OOBUILDDIR/java-set-classpath $OOINSTDIR/basis$VERSION/program/java-set-classpath

if test "`uname -i`" = "i386" ; then
    echo "Building $OOINSTDIR/basis$VERSION/program/pyunorc-update64";
    sed -e "s|@OOINSTBASE@|$OOINSTBASE|g" $TOOLSDIR/bin/pyunorc-update64.in >| "$OOBUILDDIR/pyunorc-update64" || exit 1;
    install_script $OOBUILDDIR/pyunorc-update64 $OOINSTDIR/basis$VERSION/program/pyunorc-update64
fi

echo "Installing extra en-US templates ..."
mkdir -p $OOINSTDIR/basis$VERSION/share/template/en-US/forms
cp $TOOLSDIR/templates/resume.ott $OOINSTDIR/basis$VERSION/share/template/en-US/forms
mkdir -p $OOINSTDIR/basis$VERSION/share/template/en-US/officorr
cp $TOOLSDIR/templates/project-proposal.ott $OOINSTDIR/basis$VERSION/share/template/en-US/officorr

echo "Installing system files ...";
case $VENDORNAME in
  RedHat)
	# Install .desktop files for Red Hat distributions
	mkdir -p $PREFIX/share/applications
	for i in openoffice-printeradmin openoffice-setup redhat-drawing \
			redhat-math redhat-presentations redhat-word-processor redhat-spreadsheet; do
		cp -f /usr/share/desktop-menu-patches/$i.desktop $PREFIX/share/applications/$i.desktop
		echo "StartupNotify=true" >> $PREFIX/share/applications/$i.desktop
	done

	# Icons are copied into the local install directory from the specfile...
	mkdir -p $PREFIX/share/pixmaps
	cp $TOOLSDIR/desktop/0*.png $PREFIX/share/pixmaps
	cp $TOOLSDIR/desktop/5*.png $PREFIX/share/pixmaps
	cp $TOOLSDIR/desktop/ooo_*.png $PREFIX/share/pixmaps
	;;
  Debian)
  	# Menu icons are currently made in debian/rules
	;;
  Pardus)
        # Icons and menu stuff is handled in actions.py
        ;;
  *)
	mkdir -p $OODESTDIR/usr/share/applications
	cd $TOOLSDIR/desktop
	for source in *.desktop ; do
	    dest=`echo $source | sed "s|.desktop\$||"`
	    dest="$OODESTDIR/usr/share/applications/$dest$BINSUFFIX.desktop"
	    add_version=
	    test "z$VENDORNAME" = "zNovell" -a "z$BINSUFFIX" != "z" && add_version=" ($VERSION)" || :
	    sed -e "s|\(^Name.*\)\$|\1$add_version|
		    s|\(^Comment.*\)\$|\1$add_version|" $source >| "$dest"  || exit 1;
	done

	# icons
	icondir=/usr/share/icons/hicolor
	for size in 16x16 22x22 24x24 32x32 48x48 scalable ; do
	    mkdir -p $OODESTDIR/$icondir/$size/apps
	    cd $TOOLSDIR/desktop/$size/
	    # note that the scalable directory includes .svg icons
	    for source in ooo-*.[ps][nv]g ; do
		suffix=`echo $source | sed "s|^.*\(\.[ps][nv]g\)\$|\1|"`
		dest=`echo $source | sed "s|$suffix\$||"`
		dest="$OODESTDIR/$icondir/$size/apps/$dest$BINSUFFIX$suffix"
		cp $source "$dest" || exit 1;
	    done
	done

	# create symlinks below share/pixmaps to keep the backward compatibility
	pixmapsdir=$OODESTDIR/usr/share/pixmaps
	mkdir -p $pixmapsdir
	cd $OODESTDIR/$icondir/48x48/apps
	for icon in ooo-*.png ; do
	    ln -sf $icondir/48x48/apps/$icon $pixmapsdir
	done
	
	# shared MIME info
	mkdir -p $OODESTDIR/usr/share/mime/packages
	cd $TOOLSDIR/desktop
	cp openoffice.xml $OODESTDIR/usr/share/mime/packages
	if test "z$RUN_POST_INSTALL_SCRIPTS" = "zyes" && 
	   which update-mime-database >/dev/null 2>&1 ; then
	    update-mime-database /usr/share/mime || :
	fi

	# extra MIME type icons
	if test "z$VENDORNAME" = "zNovell" ; then
	    icondir=/usr/share/icons/hicolor
	    for size in 16x16 22x22 24x24 32x32 48x48 ; do
		mkdir -p $OODESTDIR/$icondir/$size/mimetypes
		# note that the scalable directory includes .svg icons
		cp $TOOLSDIR/desktop/mimetypes/$size/*.[ps][nv]g \
		   $OODESTDIR/$icondir/$size/mimetypes/
	    done
	fi
	
	if test "z$VENDORNAME" = "zNovell" ; then
		# add GNOME MIME info and the application registry the old way
		# it is necessary for NLD9
		mkdir -p $OODESTDIR/opt/gnome/share/application-registry
		cp $TOOLSDIR/desktop/openoffice.applications \
		    $OODESTDIR/opt/gnome/share/application-registry/openoffice$BINSUFFIX.applications || exit 1;
		#
		mkdir -p $OODESTDIR/opt/gnome/share/mime-info
		cp $TOOLSDIR/desktop/openoffice.mime \
		    $OODESTDIR/opt/gnome/share/mime-info/openoffice$BINSUFFIX.mime || exit 1;
		cp $TOOLSDIR/desktop/openoffice.keys \
		    $OODESTDIR/opt/gnome/share/mime-info/openoffice$BINSUFFIX.keys || exit 1;
		if test "z$BINSUFFIX" != "z" ; then
		    cp $TOOLSDIR/desktop/openoffice-extra.keys \
			$OODESTDIR/opt/gnome/share/mime-info/openoffice$BINSUFFIX-extra.keys || exit 1;
		fi
	fi
	;;
esac

# Disable odk stuff for now
if test "disable" = "this"; then
    echo "Installing the ODK";
    ODK_SRC=$OOBUILDDIR/odk$UPD;
    ODK_INCLUDE=$OOINSTDIR/include
    echo " unzip"; 
    rm -Rf $ODK_SRC
    tar -C $OOBUILDDIR -xzf $OOBUILDDIR/solver/$UPD/$INPATH/bin/odk$UPD.tar.gz;
    echo " setup $OOINSTDIR"; 
    mkdir -p $ODK_INCLUDE
    mkdir -p $OOINSTDIR
    mkdir -p $OOINSTDIR/utils
    mkdir -p $OOINSTDIR/program
    mkdir -p $OOINSTDIR/idl
    mkdir -p $OOINSTDIR/xml
    mkdir -p $OOINSTDIR/share/doc/openoffice$BINSUFFIX
    mkdir -p $LIBDIRBASE/pkgconfig
    echo " re-arrange files";
    cp -a $ODK_SRC/include/* $ODK_INCLUDE
    cp -a $ODK_SRC/linux/lib/* $OOINSTDIR/program
    cp -a $ODK_SRC/linux/bin/* $OOINSTDIR/utils
    cp -a $ODK_SRC/idl/* $OOINSTDIR/idl
    cp -a $ODK_SRC/docs/* $OOINSTDIR/share/doc/openoffice$BINSUFFIX
    cp -a $ODK_SRC/examples $OOINSTDIR/share/doc/openoffice$BINSUFFIX
    cp -a $ODK_SRC/xml/* $OOINSTDIR/xml
    echo " create pkgconfig file"; 
    echo "
libdir=$OOINSTBASE/program
includedir=$OOINSTBASE/include
idlinclude=$OOINSTBASE/idl
xmlinclude=$OOINSTBASE/xml
toolsdir=$OOINSTBASE/utils

Name: openoffice$BINSUFFIX
Description: The OpenOffice.org infrastructure
Version: $VERSION
Libs: -L\${libdir} -lprot_uno_uno
Cflags: -I\${includeddir}" > $LIBDIRBASE/pkgconfig/openoffice$BINSUFFIX.pc
fi

export DISPLAY=''; # clobber;
echo "Execute ooinstall ...";

cd $TOOLSDIR/bin

./ooinstall $OOINSTDIR || exit 1;
##cp -ra $OODESTDIR $OODESTDIR.1 || exit 1
##rm -r $OODESTDIR
##cp -ra $OODESTDIR.1 $OODESTDIR || exit 1
echo "Cleaning up ...";

# No idea what these files are good for (?)
# they don't appear in the RPM file lists.
rm -Rf $OOINSTDIR/share/uno_packages/cache/*

# FIXME: we need to packagethe extensions some way
if test -n "$OODESTDIR" ; then
    rm -f $OOINSTDIR/share/extension/install/scsolver.uno.oxt
fi

echo "Done";

remove_help_localization()
{
    lang=$1

    # nothing to be done if the localization is en-US if it does not exist
    # or if it is already removed
    test "$lang" = "en-US" -o \
          ! -e $OOINSTDIR/help/$lang -o \
	  -L $OOINSTDIR/help/$lang && return;

    echo "... remove \"$lang\""

    rm -rf $OOINSTDIR/help/$lang
    grep -v "$OOINSTBASE/help/$lang" $OODESTDIR/gid_Module_Root.$lang >$OODESTDIR/gid_Module_Root.$lang.new
    mv -f $OODESTDIR/gid_Module_Root.$lang.new $OODESTDIR/gid_Module_Root.$lang
    # FIXME: the following code could be used without the condition
    #        and should replace the lines above after only the milestones
    #	     providing gid_Module_Langpack_Help and fixed gid_Module_Root.$lang
    #        are supported
    # Note: The problem with gid_Module_Root.$lang is that it still includes
    #       %dir */help/* entries.
    # Note: It was still necessary on ppc with gcj (OOo-2.0.2). Strange. Have to
    # investigate it later.
    if test -f $OODESTDIR/gid_Module_Langpack_Help.$lang ; then
	grep -v "$OOINSTBASE/help/$lang" $OODESTDIR/gid_Module_Langpack_Help.$lang >$OODESTDIR/gid_Module_Langpack_Help.$lang.new
	mv -f $OODESTDIR/gid_Module_Langpack_Help.$lang.new $OODESTDIR/gid_Module_Langpack_Help.$lang
    fi

    # Note: We created a compat symlink in the past. It is no longer necessary.
    # We do not want it because RPM has problems with update when we remove
    # poor localizations in never packages
}

# Check if the English help is installed and is in the main package (is first on the list)
# Note that Java-disabled builds do not create help at all.
if test -f $OOINSTDIR/help/en/sbasic.cfg -a \
        "`for lang in $OOO_LANGS_LIST ; do echo $lang ; break ; done`" = "en-US" ; then

    echo "Removing duplicated English help..."
  
    for lang in $OOO_LANGS_LIST ; do
	test ! -f $OOINSTDIR/help/en/sbasic.cfg -o ! -f $OOINSTDIR/help/$lang/sbasic.cfg && continue;
	if diff $OOINSTDIR/help/en/sbasic.cfg $OOINSTDIR/help/$lang/sbasic.cfg >/dev/null 2>&1 ; then
	    remove_help_localization $lang
	fi
    done
    
    echo "Removing poor help localizations..."

    for lang in $OOO_POOR_HELP_LOCALIZATIONS ; do
	remove_help_localization $lang
    done
fi

if test -d $OOINSTDIR/basis$VERSION/sdk ; then
    # bin potential .orig files
    find $OOINSTDIR/basis$VERSION/sdk -name "*.orig" -exec rm -f {} \;

    # move some SDK directories to the right place according to FHS
    # note that examples must stay in $OOINSTDIR/basis$VERSION/sdk because there are used
    # relative paths to $OOINSTDIR/basis$VERSION/sdk/setting and it does not work via
    # a symlink
    mkdir -p $PREFIX/include
    mkdir -p $DATADIR/idl
    mkdir -p $DATADIR/$OOOINSTALLDIRNAME/sdk
    mkdir -p $DOCDIR/sdk
    mv $OOINSTDIR/basis$VERSION/sdk/include      $PREFIX/include/$OOOINSTALLDIRNAME
    if [ -d $OOINSTDIR/basis$VERSION/sdk/classes ]; then
        mv $OOINSTDIR/basis$VERSION/sdk/classes      $DATADIR/$OOOINSTALLDIRNAME/sdk/classes
    fi
    mv $OOINSTDIR/basis$VERSION/sdk/idl          $DATADIR/idl/$OOOINSTALLDIRNAME
    mv $OOINSTDIR/basis$VERSION/sdk/docs         $DOCDIR/sdk
    mv $OOINSTDIR/basis$VERSION/sdk/share/readme $DOCDIR/sdk/readme
    mv $OOINSTDIR/basis$VERSION/sdk/index.html   $DOCDIR/sdk

    # compat symlinks
    ln -sf $PREFIXBASE/include/$OOOINSTALLDIRNAME      $OOINSTDIR/basis$VERSION/sdk/include
    ln -sf $DATADIRBASE/$OOOINSTALLDIRNAME/sdk/classes $OOINSTDIR/basis$VERSION/sdk/classes
    ln -sf $DATADIRBASE/idl/$OOOINSTALLDIRNAME         $OOINSTDIR/basis$VERSION/sdk/idl
    ln -sf $DOCDIRBASE/sdk/docs                        $OOINSTDIR/basis$VERSION/sdk/
    ln -sf $DOCDIRBASE/sdk/index.html                  $OOINSTDIR/basis$VERSION/sdk/index.html
    ln -sf $OOINSTBASE/basis$VERSION/sdk/examples                    $DOCDIR/sdk/examples

    # fix file list
    sed -e "s|^\(%dir \)\?$OOINSTBASE/basis$VERSION/sdk/include|\1$PREFIXBASE/include/$OOOINSTALLDIRNAME|" \
	-e "s|^\(%dir \)\?$OOINSTBASE/basis$VERSION/sdk/classes|\1$DATADIRBASE/$OOOINSTALLDIRNAME/sdk/classes|" \
	-e "s|^\(%dir \)\?$OOINSTBASE/basis$VERSION/sdk/idl|\1$DATADIRBASE/idl/$OOOINSTALLDIRNAME|" \
	-e "s|^\(%dir \)\?$OOINSTBASE/basis$VERSION/sdk/docs|\1$DOCDIRBASE/sdk/docs|" \
	-e "s|^\(%dir \)\?$OOINSTBASE/basis$VERSION/sdk/share/readme|\1$DOCDIRBASE/sdk/readme|" \
	-e "s|^$OOINSTBASE/basis$VERSION/sdk/index.html$|$DOCDIRBASE/sdk/index.html|" \
	-e "s|^\(%dir \)\?$OOINSTBASE/basis$VERSION/sdk/share.*$||" \
	-e "/\.orig$/D" \
	-e "/^$/D" \
	$OODESTDIR/gid_Module_Root_SDK | sort -u \
	>$OODESTDIR/gid_Module_Root_SDK.new
    mv $OODESTDIR/gid_Module_Root_SDK.new $OODESTDIR/gid_Module_Root_SDK
    #
    echo "%dir $DATADIRBASE/$OOOINSTALLDIRNAME/sdk"    >>$OODESTDIR/gid_Module_Root_SDK
    echo "%dir $DATADIRBASE/$OOOINSTALLDIRNAME"        >>$OODESTDIR/gid_Module_Root_SDK
    echo "%dir $DATADIRBASE/idl"                       >>$OODESTDIR/gid_Module_Root_SDK
    echo "%dir $DOCDIRBASE/sdk/docs"                   >>$OODESTDIR/gid_Module_Root_SDK
    echo "%dir $DOCDIRBASE/sdk"                        >>$OODESTDIR/gid_Module_Root_SDK
    echo "%dir $DOCDIRBASE"                            >>$OODESTDIR/gid_Module_Root_SDK
    echo "$OOINSTBASE/basis$VERSION/sdk/include"     >>$OODESTDIR/gid_Module_Root_SDK
    echo "$OOINSTBASE/basis$VERSION/sdk/classes"     >>$OODESTDIR/gid_Module_Root_SDK
    echo "$OOINSTBASE/basis$VERSION/sdk/idl"         >>$OODESTDIR/gid_Module_Root_SDK
    echo "$OOINSTBASE/basis$VERSION/sdk/docs"        >>$OODESTDIR/gid_Module_Root_SDK
    echo "$OOINSTBASE/basis$VERSION/sdk/index.html"  >>$OODESTDIR/gid_Module_Root_SDK
    echo "$DOCDIRBASE/sdk/examples"    >>$OODESTDIR/gid_Module_Root_SDK

    # generate default profiles
    for file in setsdkenv_unix.csh setsdkenv_unix.sh ; do
        sed -e "s,@OO_SDK_NAME@,OpenOffice.org2.0_SDK," \
	    -e "s,@OO_SDK_HOME@,$OOINSTBASE/basis$VERSION/sdk," \
	    -e "s,@OFFICE_HOME@,$OOINSTBASE," \
	    -e "s,@OFFICE_BASE_HOME@,$OOINSTBASE/basis$VERSION," \
	    -e "s,@OO_SDK_URE_HOME@,$OOINSTBASE/basis$VERSION/ure-link," \
	    -e "s,@OO_SDK_MAKE_HOME@,/usr/bin," \
	    -e "s,@OO_SDK_ZIP_HOME@,/usr/bin," \
	    -e "s,@OO_SDK_CPP_HOME@,/usr/bin," \
	    -e "s,@OO_SDK_CC_55_OR_HIGHER@,," \
	    -e "s,@OO_SDK_JAVA_HOME@,$JAVA_HOME," \
	    -e "s,@OO_SDK_OUTPUT_DIR@,\$HOME," \
	    -e "s,@SDK_AUTO_DEPLOYMENT@,NO," \
            $OOINSTDIR/basis$VERSION/sdk/$file.in \
	    > $OOINSTDIR/basis$VERSION/sdk/$file
	chmod 755 $OOINSTDIR/basis$VERSION/sdk/$file
	echo $OOINSTBASE/basis$VERSION/sdk/$file >>$OODESTDIR/gid_Module_Root_SDK
    done
    
    # FIXME: I rather set this file to be non-world-writttable for now, i#64812
    chmod go-w $OOINSTDIR/basis$VERSION/sdk/settings/component.uno.map
fi

if test "$DISTRO" = "SUSE" || echo "$DISTRO" | grep -q "SUSE-11" ; then
    # branding stuff for openSUSE >= 11.0 and SLED >= 11
    mkdir -p $DATADIR/$OOOINSTALLDIRNAME/program
    echo "%dir $DATADIRBASE/$OOOINSTALLDIRNAME" >$BUILDDIR/upstream_branding_list.txt
    echo "%dir $DATADIRBASE/$OOOINSTALLDIRNAME/program" >>$BUILDDIR/upstream_branding_list.txt
    for file in about.bmp intro.bmp ; do
	mv $OOINSTDIR/program/$file $DATADIR/$OOOINSTALLDIRNAME/program/$file
	ln -sf $DATADIRBASE/$OOOINSTALLDIRNAME/program/$file $OOINSTDIR/program/$file
	echo "$DATADIRBASE/$OOOINSTALLDIRNAME/program/$file" >>$BUILDDIR/upstream_branding_list.txt
    done
fi

# remove installed file even from the file list
# Params: file_list file_to_remove
remove_file()
{
    rm -f "$OODESTDIR/$2"
    perl -pi -e "s|^$2$||" "$1"
}

# move one file from one list of files to a second one
# Params: target_file_list source_file_list file_to_move
mv_file_between_flists()
{
    if grep "^$3\$" $2 >/dev/null 2>&1 ; then
        # \$3 can be regular expression
	grep "^$3\$" $2 >>$1
	perl -pi -e "s|^$3$||" $2
    fi
}
# add the directories from the source list of files to the target list of
# file which are used in the target list of files but are missing there
# Params: target_file_list source_file_list
add_used_directories()
{
    sort -u -r $2 | sed -n "s|^%dir \(.*\)\$|s%^\\\\(\1\\\\).*%\\\\1%p|p" >$2.pattern
    sed -n -f $2.pattern $1 | sort -u | sed "s|^|%dir |" >>$1
    rm $2.pattern
    sort -u $1 >$1.unique
    mv $1.unique $1
}

# remove a duplicity between two filelist
# Params: filelist_with_original filelist_with_duplicity duplicit_path
remove_duplicity_from_flists()
{
    if grep "$3" "$1" >/dev/null 2>&1 && \
       grep "$3" "$2" >/dev/null 2>&1 ; then
	perl -pi -e "s|^$3$||" $2
    fi
}

# merges one file list into another one
# Params: source_filelist dest_filelist replace_dest
merge_flists()
{
   if test "z$VENDORNAME" != "zMandriva" || test "$1" != "gid_Module_Langpack_Binfilter_en_US"; then
       if test -f "$1" ; then
          cat "$1" >>"$2"
          sort -u "$2" >"$2".sorted
          mv "$2".sorted "$2"
       fi
   fi
}

if ! test -f $OODESTDIR/gid_Module_Root; then
    echo "Failed to generate package file lists";
    exit 1;
fi

cd $OODESTDIR

if test -f gid_Module_Root_Files_2; then
    GID_MODULE_ROOT_FILES_LISTS="gid_Module_Root_Files_[0-9]"
else
    GID_MODULE_ROOT_FILES_LISTS=""
fi

if test "z$VENDORNAME" != "zDebian" ; then
	echo "Moving package file lists..."

	# Nasty hacks for now...
	echo "%dir $OOINSTBASE/basis$VERSION/share/template/en-US/forms
	      $OOINSTBASE/basis$VERSION/share/template/en-US/forms/resume.ott
	      %dir $OOINSTBASE/basis$VERSION/share/template/en-US/officorr
	      $OOINSTBASE/basis$VERSION/share/template/en-US/officorr/project-proposal.ott" >> gid_Module_Langpack_Basis_en_US

	echo "%dir $OOINSTBASE
	      $OOINSTBASE/basis$VERSION/program/java-set-classpath" > gid_Module_Root_Hack


	test -f $OOINSTDIR/basis$VERSION/program/pyunorc-update64 && \
		echo $OOINSTBASE/basis$VERSION/program/pyunorc-update64 >> gid_Module_Pyuno_Hack

	rm -f common_list.txt
	for module in gid_Module_Root gid_Module_Root_Brand \
		gid_Module_Root_Files_Images \
		gid_Module_Root_Files_[0-9] \
		gid_Module_Root_Hack \
		gid_Module_Oo_Linguistic \
		gid_Module_Root_Ure_Hidden \
		$BUILDDIR/dictionaries ; do
	    merge_flists $module $BUILDDIR/common_list.txt
	done
	
	if test "$SPLIT_APP_MODULES" = "YES" ; then
		rm -f $BUILDDIR/base_list.txt $BUILDDIR/calc_list.txt \
		      $BUILDDIR/draw_list.txt $BUILDDIR/math_list.txt \
		      $BUILDDIR/impress_list.txt $BUILDDIR/writer_list.txt
		merge_flists gid_Module_Prg_Base_Bin 	$BUILDDIR/base_list.txt
		merge_flists gid_Module_Prg_Calc_Bin 	$BUILDDIR/calc_list.txt
		merge_flists gid_Module_Prg_Draw_Bin 	$BUILDDIR/draw_list.txt
		merge_flists gid_Module_Prg_Math_Bin 	$BUILDDIR/math_list.txt
		merge_flists gid_Module_Prg_Impress_Bin	$BUILDDIR/impress_list.txt
		merge_flists gid_Module_Prg_Wrt_Bin	$BUILDDIR/writer_list.txt
		merge_flists gid_Module_Brand_Prg_Base 	$BUILDDIR/base_list.txt
		merge_flists gid_Module_Brand_Prg_Calc 	$BUILDDIR/calc_list.txt
		merge_flists gid_Module_Brand_Prg_Draw 	$BUILDDIR/draw_list.txt
		merge_flists gid_Module_Brand_Prg_Math 	$BUILDDIR/math_list.txt
		merge_flists gid_Module_Brand_Prg_Impress $BUILDDIR/impress_list.txt
		merge_flists gid_Module_Brand_Prg_Wrt	$BUILDDIR/writer_list.txt
		# FIXME: shold be fixed in scp2
		mv_file_between_flists $BUILDDIR/calc_list.txt $BUILDDIR/common_list.txt $OOINSTBASE/program/libvbaobj.*\.uno.so
	else
		merge_flists gid_Module_Prg_Base_Bin 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Prg_Calc_Bin 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Prg_Draw_Bin 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Prg_Math_Bin 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Prg_Impress_Bin	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Prg_Wrt_Bin	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Brand_Prg_Base 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Brand_Prg_Calc 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Brand_Prg_Draw 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Brand_Prg_Math 	$BUILDDIR/common_list.txt
		merge_flists gid_Module_Brand_Prg_Impress $BUILDDIR/common_list.txt
		merge_flists gid_Module_Brand_Prg_Wrt	$BUILDDIR/common_list.txt
	fi
		
	if test "$SPLIT_OPT_FEATURES" = "YES" ; then
		rm -f $BUILDDIR/filters_list.txt $BUILDDIR/mailmerge_list.txt \
		      $BUILDDIR/pyuno_list.txt $BUILDDIR/testtool_list.txt
		if test "z$VENDORNAME" = "zMandriva" ; then
			rm -f $BUILDDIR/filter-binfilter_list.txt
			merge_flists gid_Module_Optional_Binfilter		$BUILDDIR/filter-binfilter_list.txt
			merge_flists gid_Module_Langpack_Binfilter_en_US
			merge_flists gid_Module_Optional_Grfflt			$BUILDDIR/draw_list.txt
			merge_flists gid_Module_Optional_Headless		$BUILDDIR/common_list.txt
			merge_flists gid_Module_Optional_Javafilter		$BUILDDIR/common_list.txt
			merge_flists gid_Module_Optional_Pymailmerge		$BUILDDIR/pyuno_list.txt
			merge_flists gid_Module_Optional_Pyuno			$BUILDDIR/pyuno_list.txt
			merge_flists gid_Module_Optional_Testtool		$BUILDDIR/testtool_list.txt
			merge_flists gid_Module_Optional_Xsltfiltersamples	$BUILDDIR/common_list.txt
			# pyuno hack for x86_64
			merge_flists gid_Module_Pyuno_Hack	$BUILDDIR/pyuno_list.txt
		else
			merge_flists gid_Module_Optional_Binfilter		$BUILDDIR/filters_list.txt
			merge_flists gid_Module_Optional_Grfflt			$BUILDDIR/common_list.txt
			merge_flists gid_Module_Optional_Headless		$BUILDDIR/common_list.txt
			merge_flists gid_Module_Optional_Javafilter		$BUILDDIR/filters_list.txt
			merge_flists gid_Module_Optional_Pymailmerge		$BUILDDIR/mailmerge_list.txt
			merge_flists gid_Module_Optional_Pyuno			$BUILDDIR/pyuno_list.txt
			merge_flists gid_Module_Optional_Testtool		$BUILDDIR/testtool_list.txt
			merge_flists gid_Module_Optional_Xsltfiltersamples	$BUILDDIR/filters_list.txt
			# pyuno hack for x86_64
			merge_flists gid_Module_Pyuno_Hack	$BUILDDIR/pyuno_list.txt
		fi
	else
		merge_flists gid_Module_Optional_Binfilter		$BUILDDIR/common_list.txt
		merge_flists gid_Module_Langpack_Binfilter		$BUILDDIR/common_list.txt
		merge_flists gid_Module_Optional_Grfflt			$BUILDDIR/common_list.txt
		merge_flists gid_Module_Optional_Headless		$BUILDDIR/common_list.txt
		merge_flists gid_Module_Optional_Javafilter		$BUILDDIR/common_list.txt
		merge_flists gid_Module_Optional_Pymailmerge		$BUILDDIR/common_list.txt
		merge_flists gid_Module_Optional_Pyuno			$BUILDDIR/common_list.txt
		merge_flists gid_Module_Optional_Testtool		$BUILDDIR/common_list.txt
		merge_flists gid_Module_Optional_Xsltfiltersamples	$BUILDDIR/common_list.txt
		# pyuno hack for x86_64
		merge_flists gid_Module_Pyuno_Hack	$BUILDDIR/common_list.txt
	fi
	
	if test "$VENDORNAME" = "Novell" ; then
		cat $BUILDDIR/novell-gallery-addon >> $BUILDDIR/common_list.txt
	fi
	
	for lang in `echo $OOO_LANGS_LIST | sed -e s/-/_/g`; do
		lang_lists=
		if test "$VENDORNAME" = "Mandriva" -o \( "$VENDORNAME" = "Novell" -a "$SPLIT_APP_MODULES" = "YES" \) ; then
			test -f gid_Module_Langpack_Basis_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Basis_$lang" || :
			test -f gid_Module_Langpack_Brand_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Brand_$lang" || :
			test -f gid_Module_Langpack_Resource_$lang  && lang_lists="$lang_lists  gid_Module_Langpack_Resource_$lang" || :
			test -f gid_Module_Langpack_Impress_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Impress_$lang" || :
			test -f gid_Module_Langpack_Draw_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Draw_$lang" || :
			test -f gid_Module_Langpack_Math_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Math_$lang" || :
			test -f gid_Module_Langpack_Calc_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Calc_$lang" || :
			test -f gid_Module_Langpack_Base_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Base_$lang" || :
			test -f gid_Module_Langpack_Writer_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Writer_$lang" || :
			test -f gid_Module_Langpack_Binfilter_$lang  && lang_lists="$lang_lists  gid_Module_Langpack_Binfilter_$lang" || :
			# Place helps on dedicated packages.
			test -f gid_Module_Langpack_Help_$lang  	&& sort -u gid_Module_Langpack_Help_$lang > $BUILDDIR/help_${lang}_list.txt || :
		else
			test -f gid_Module_Langpack_Basis_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Basis_$lang" || :
			test -f gid_Module_Langpack_Brand_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Brand_$lang" || :
			test -f gid_Module_Langpack_Resource_$lang  && lang_lists="$lang_lists  gid_Module_Langpack_Resource_$lang" || :
			test -f gid_Module_Langpack_Impress_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Impress_$lang" || :
			test -f gid_Module_Langpack_Draw_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Draw_$lang" || :
			test -f gid_Module_Langpack_Math_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Math_$lang" || :
			test -f gid_Module_Langpack_Calc_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Calc_$lang" || :
			test -f gid_Module_Langpack_Base_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Base_$lang" || :
			test -f gid_Module_Langpack_Writer_$lang     && lang_lists="$lang_lists  gid_Module_Langpack_Writer_$lang" || :
			test -f gid_Module_Langpack_Binfilter_$lang  && lang_lists="$lang_lists  gid_Module_Langpack_Binfilter_$lang" || :
			test -f gid_Module_Langpack_Help_$lang  	&& lang_lists="$lang_lists gid_Module_Langpack_Help_$lang" || :
		fi
		if test -n "$lang_lists" ; then
		    # all files are installed below $OOINSTBASE/basis; we want to own also $OOINSTBASE
		    echo "%dir $OOINSTBASE" >$BUILDDIR/lang_${lang}_list.txt
		    cat $lang_lists | sort -u >>$BUILDDIR/lang_${lang}_list.txt
		fi

	done

	if test -f $BUILDDIR/lang_en_US_list.txt -a "$VENDORNAME" = "Novell" -a "$SPLIT_APP_MODULES" != "YES" ; then
	    cat $BUILDDIR/lang_en_US_list.txt >>$BUILDDIR/common_list.txt
	    rm $BUILDDIR/lang_en_US_list.txt
	fi

	if test -f gid_Module_Root_SDK ; then
	    cp gid_Module_Root_SDK $BUILDDIR/sdk_list.txt
	fi
	
	cd $BUILDDIR

	# kde subpackage
	rm -f kde_list.txt
	test -f $OODESTDIR/gid_Module_Optional_Kde && cp $OODESTDIR/gid_Module_Optional_Kde kde_list.txt || :
	mv_file_between_flists kde_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/kdefilepicker
	mv_file_between_flists kde_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/fps_kde.uno.so
	mv_file_between_flists kde_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/libvclplug_kde[0-9]*l..so
	mv_file_between_flists kde_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/libkabdrv1.so
	add_used_directories kde_list.txt common_list.txt
	
	# gnome subpackage
	rm -f gnome_list.txt
	test -f $OODESTDIR/gid_Module_Optional_Gnome && cp $OODESTDIR/gid_Module_Optional_Gnome gnome_list.txt || :
	mv_file_between_flists gnome_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/libevoab2.so
	mv_file_between_flists gnome_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/fps_gnome.uno.so
	mv_file_between_flists gnome_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/libvclplug_gtk[0-9]*l..so
	mv_file_between_flists common_list.txt gnome_list.txt $OOINSTBASE/basis$VERSION/program/ucpgvfs1.uno.so
	add_used_directories gnome_list.txt common_list.txt

	# NLD subpackage
	rm -f nld_list.txt
	mv_file_between_flists nld_list.txt common_list.txt $OOINSTBASE/program/openintro_nld.bmp
	mv_file_between_flists nld_list.txt common_list.txt $OOINSTBASE/program/openabout_nld.bmp
	add_used_directories nld_list.txt common_list.txt

	# mono subpackage
	rm -f mono_list.txt
	mv_file_between_flists mono_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/cli_.*.dll
	mv_file_between_flists mono_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/cli_.*.dll.config
	mv_file_between_flists mono_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/policy.*.cli_.*.dll
	mv_file_between_flists mono_list.txt common_list.txt $OOINSTBASE/ure/lib/cli_.*.dll
	mv_file_between_flists mono_list.txt common_list.txt $OOINSTBASE/ure/lib/cli_.*.dll.config
	mv_file_between_flists mono_list.txt common_list.txt $OOINSTBASE/ure/lib/policy.*.cli_.*.dll
	mv_file_between_flists mono_list.txt common_list.txt $OOINSTBASE/ure/lib/libcli_.*.so
	add_used_directories mono_list.txt common_list.txt
	# add the files from GAC if it was installed
	test -f mono_gac && cat mono_gac >>mono_list.txt

	# mailmerge
	if test "$SPLIT_OPT_FEATURES" = "YES" ; then
		if test "z$VENDORNAME" = "zMandriva" ; then
			flist=pyuno_list.txt
		else
			flist=mailmerge_list.txt
			rm -f $flist
		fi
		mv_file_between_flists $flist common_list.txt $OOINSTBASE/basis$VERSION/program/mailmerge.py
		mv_file_between_flists $flist common_list.txt $OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/Office/Writer/Writer-javamail.xcu
		add_used_directories $flist common_list.txt
	fi

	if test "z$VENDORNAME" = "zNovell" ; then
		# officebean subpackage
		rm -f officebean_list.txt
		mv_file_between_flists officebean_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/classes/officebean.jar
		mv_file_between_flists officebean_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/libofficebean.so
		add_used_directories officebean_list.txt common_list.txt
	fi

	if test -f sdk_list.txt ; then
		rm -f sdk_doc_list.txt
		# in this case we move all entries including directories
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "%dir $DOCDIRBASE/sdk/docs.*"
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "$DOCDIRBASE/sdk/docs.*"
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "$DOCDIRBASE/sdk/examples"
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "$DOCDIRBASE/sdk/index.html"
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "%dir $OOINSTBASE/basis$VERSION/sdk/examples.*"
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "$OOINSTBASE/basis$VERSION/sdk/docs"
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "$OOINSTBASE/basis$VERSION/sdk/examples.*"
		mv_file_between_flists sdk_doc_list.txt sdk_list.txt "$OOINSTBASE/basis$VERSION/sdk/index.html"
		add_used_directories sdk_doc_list.txt sdk_list.txt
	fi	    

	if test "$VENDORNAME" = "Novell" -a "$SPLIT_APP_MODULES" = "YES" ; then
		# move the prebuilt icons into a hacky temporary package
		# we want to repack them into a noarch package as soon as possible
		# without the build dependency on the huge devel package
		rm -f icon_themes_prebuilt.txt 
		mv_file_between_flists icon_themes_prebuilt.txt common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_classic8.zip
		mv_file_between_flists icon_themes_prebuilt.txt common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_crystal.zip
		mv_file_between_flists icon_themes_prebuilt.txt common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_hicontrast.zip
		mv_file_between_flists icon_themes_prebuilt.txt common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_industrial.zip
		mv_file_between_flists icon_themes_prebuilt.txt common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_tango.zip
		mv_file_between_flists icon_themes_prebuilt.txt common_list.txt $OOINSTBASE/basis$VERSION/share/config/images.zip
	fi
	
	# Mandriva packaging
	if test "$VENDORNAME" = "Mandriva"; then
		# Not used
		remove_file common_list.txt $OOINSTBASE/share/gallery/htmltheme.orig
		remove_file common_list.txt $OOINSTBASE/share/dict/ooo/dictionary.lst

		# And these are in -draw package
		mv_file_between_flists draw_list.txt common_list.txt $OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_drawgraphics_filters.xcu
		mv_file_between_flists draw_list.txt common_list.txt $OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_drawgraphics_types.xcu

		# And these are in -impress package
		mv_file_between_flists impress_list.txt common_list.txt $OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_impressgraphics_filters.xcu
		mv_file_between_flists impress_list.txt common_list.txt $OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/TypeDetection/Types/fcfg_impressgraphics_types.xcu

		# Split out the gallery
		rm -f gallery_list.txt
		mv_file_between_flists gallery_list.txt common_list.txt "$OOINSTBASE/basis$VERSION/share/gallery.*"
		test -r galleries.txt && cat galleries.txt >> gallery_list.txt

		# Split out dtd-officedocument1.0
		rm -f dtd_list.txt
		mv_file_between_flists dtd_list.txt common_list.txt "$OOINSTBASE/share/dtd/officedocument.*"

		# Split out java stuff
		rm -f java_common_list.txt
		mv_file_between_flists java_common_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/JREProperties.class
		mv_file_between_flists java_common_list.txt common_list.txt "$OOINSTBASE/basis$VERSION/program/classes.*"
		mv_file_between_flists java_common_list.txt common_list.txt $OOINSTBASE/basis$VERSION/program/libofficebean.so
		mv_file_between_flists java_common_list.txt common_list.txt "$OOINSTBASE/basis$VERSION/share/Scripts/java.*"
		mv_file_between_flists java_common_list.txt filter-binfilter_list.txt $OOINSTBASE/basis$VERSION/program/classes/aportisdoc.jar
		mv_file_between_flists java_common_list.txt filter-binfilter_list.txt $OOINSTBASE/basis$VERSION/program/classes/pocketword.jar
		mv_file_between_flists java_common_list.txt filter-binfilter_list.txt $OOINSTBASE/basis$VERSION/program/classes/pexcel.jar
		mv_file_between_flists java_common_list.txt writer_list.txt $OOINSTBASE/basis$VERSION/program/classes/writer2latex.jar

		# Move arch-dependent/dup files from common to core
		rm -f core_list.txt
		for f in \
			".*\.so" \
			".*\.so\..*" \
			"program/.*\.rdb" \
			program/configimport.bin \
			program/javaldx \
			program/msfontextract \
			program/nsplugin \
			program/oosplash.bin \
			program/pagein \
			program/pagein-calc \
			program/pagein-common \
			program/pagein-draw \
			program/pagein-impress \
			program/pagein-writer \
			program/pkgchk.bin \
			program/pluginapp.bin \
			program/setofficelang.bin \
			program/soffice.bin \
			program/spadmin.bin \
			program/uno.bin \
			program/unopkg.bin \
			program/uri-encode
		do
			mv_file_between_flists core_list.txt common_list.txt "$OOINSTBASE/basis$VERSION/$f"
		done

		# Put gtk/gnome stuff into gnome package
		mv_file_between_flists gnome_list.txt core_list.txt $OOINSTBASE/basis$VERSION/program/gnome-open-url.bin
		mv_file_between_flists gnome_list.txt core_list.txt $OOINSTBASE/basis$VERSION/program/fps_gnome.uno.so
		mv_file_between_flists gnome_list.txt core_list.txt $OOINSTBASE/basis$VERSION/program/ucpgvfs1.uno.so
		mv_file_between_flists gnome_list.txt core_list.txt $OOINSTBASE/basis$VERSION/program/libeggtray680li.so

		# Ship ooqstart for gnome in gnome package
		mv_file_between_flists gnome_list.txt core_list.txt "$OOINSTBASE/program/libqstart_gtk680.*"

		# themes are included in other packages
		# don't use remove_file as we don't want them removed from the buildroot.
		mv_file_between_flists /dev/null common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_crystal.zip
		mv_file_between_flists /dev/null common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_hicontrast.zip
		mv_file_between_flists /dev/null common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_industrial.zip
		mv_file_between_flists /dev/null common_list.txt $OOINSTBASE/basis$VERSION/share/config/images_tango.zip
		mv_file_between_flists /dev/null common_list.txt $OOINSTBASE/basis$VERSION/share/config/images.zip

                # mono
                echo "$OOINSTBASE/ure/lib/cli_uno_bridge.dll.config" >> mono_list.txt
                # gnome duplicates
                mv gnome_list.txt gnome_list.txt_old
                sed 's/^.*ucpgvfs1.*$//' gnome_list.txt_old > gnome_list.txt
 		echo $OOINSTBASE/basis$VERSION/program/ucpgvfs1.uno.so >> gnome_list.txt
                rm -rf gnome_list.txt_old
                # for a better look put lib gtk as default vcl plug
               mv_file_between_flists common_list.txt gnome_list.txt $OOINSTBASE/basis$VERSION/program/libvclplug_gtkl.*.so

               # moving some help files from lang to help packages
               for l in `echo $OOO_LANGS_LIST`; do
                    f=`echo $l | sed -e s/-/_/g `
                    mv_file_between_flists help_${f}_list.txt lang_${f}_list.txt %dir.*/basis$VERSION/help/${l}/.*
                    mv_file_between_flists help_${f}_list.txt lang_${f}_list.txt $OOINSTBASE/basis$VERSION/help.*
                    mv_file_between_flists /dev/null lang_${f}_list.txt %dir.*/basis$VERSION/help.*
               done

               cat $BUILDDIR/lang_en_US_list.txt >> $BUILDDIR/common_list.txt
               rm $BUILDDIR/lang_en_US_list.txt
  
 	       # help en files are in help en_US package right now
               mv_file_between_flists /dev/null common_list.txt %dir.*/basis$VERSION/help.*

	fi

	# remove known duplicities to do not have files packaged in two packages
	# the Bulgarian fixes can be removed after the issue #54110 is fixed
	remove_duplicity_from_flists common_list.txt lang_bg_list.txt $OOINSTBASE/basis$VERSION/presets/config/arrowhd.soe
	remove_duplicity_from_flists common_list.txt lang_bg_list.txt $OOINSTBASE/basis$VERSION/presets/config/classic.sog
	remove_duplicity_from_flists common_list.txt lang_bg_list.txt $OOINSTBASE/basis$VERSION/presets/config/hatching.soh
	remove_duplicity_from_flists common_list.txt lang_bg_list.txt $OOINSTBASE/basis$VERSION/presets/config/modern.sog
	remove_duplicity_from_flists common_list.txt lang_bg_list.txt $OOINSTBASE/basis$VERSION/presets/config/palette.soc
	remove_duplicity_from_flists common_list.txt lang_bg_list.txt $OOINSTBASE/basis$VERSION/presets/config/styles.sod
	# the British fixes can be removed after the issue #54113 is fixed
	remove_duplicity_from_flists common_list.txt lang_en-GB_list.txt $OOINSTBASE/basis$VERSION/presets/config/standard.sog
else
	echo "Creating package directories..."

	test -d pkg && rm -r pkg || :

	# Create package tree (needed by Debian's dpkg)
	# create_package_directory <list_file> <directory_name>
	create_package_directory()
	{
		listfile=$1
		directory="$2"
		perl -nl \
			-e " if(/^%dir (.*)/)
					{system('mkdir', '-p', '-m', '755', \"$directory\".\$1);}
				else
					{rename('./'.\$_, \"$directory\".\$_);}
				" \
			$listfile
	}

	create_package_directory gid_Module_Root_Ure_Hidden		pkg/ure

        create_package_directory gid_Module_Root                        pkg/openoffice.org-common
        create_package_directory gid_Module_Root_Brand                  pkg/openoffice.org-common
	create_package_directory gid_Module_Root_Files_Images           pkg/openoffice.org-common
	create_package_directory gid_Module_Oo_Linguistic               pkg/openoffice.org-common
        create_package_directory gid_Module_Optional_Xsltfiltersamples  pkg/openoffice.org-common
	create_package_directory gid_Module_Optional_Javafilter		pkg/openoffice.org-common
	if [ -f gid_Module_Optional_Binfilter ]; then 
        	create_package_directory gid_Module_Optional_Binfilter          pkg/openoffice.org-filter-binfilter
        fi
	create_package_directory gid_Module_Optional_Grfflt             pkg/openoffice.org-draw
        create_package_directory gid_Module_Prg_Calc_Bin                pkg/openoffice.org-calc
        create_package_directory gid_Module_Prg_Math_Bin                pkg/openoffice.org-math	
        create_package_directory gid_Module_Prg_Draw_Bin                pkg/openoffice.org-draw
        create_package_directory gid_Module_Prg_Wrt_Bin                 pkg/openoffice.org-writer
        create_package_directory gid_Module_Prg_Impress_Bin             pkg/openoffice.org-impress
        create_package_directory gid_Module_Prg_Base_Bin                pkg/openoffice.org-base
        create_package_directory gid_Module_Brand_Prg_Calc              pkg/openoffice.org-calc
        create_package_directory gid_Module_Brand_Prg_Math              pkg/openoffice.org-math	
        create_package_directory gid_Module_Brand_Prg_Draw              pkg/openoffice.org-draw
        create_package_directory gid_Module_Brand_Prg_Wrt               pkg/openoffice.org-writer
        create_package_directory gid_Module_Brand_Prg_Impress           pkg/openoffice.org-impress
        create_package_directory gid_Module_Brand_Prg_Base              pkg/openoffice.org-base
        create_package_directory gid_Module_Optional_Pyuno		pkg/python-uno
        create_package_directory gid_Module_Optional_Gnome		pkg/openoffice.org-gnome
        create_package_directory gid_Module_Optional_Kde                pkg/openoffice.org-kde

        create_package_directory gid_Module_Root_Files_2                pkg/openoffice.org-common
        create_package_directory gid_Module_Root_Files_3                pkg/openoffice.org-common
        create_package_directory gid_Module_Root_Files_4                pkg/openoffice.org-common
        create_package_directory gid_Module_Root_Files_5                pkg/openoffice.org-common
        create_package_directory gid_Module_Root_Files_6                pkg/openoffice.org-common
        create_package_directory gid_Module_Root_Files_7                pkg/openoffice.org-common
        create_package_directory gid_Module_Optional_Testtool           pkg/openoffice.org-common
        if [ -e gid_Module_Optional_Pymailmerge ]; then
		create_package_directory gid_Module_Optional_Pymailmerge	pkg/openoffice.org-emailmerge
	else # post m26
		mkdir -p pkg/openoffice.org-emailmerge/$OOINSTBASE/basis$VERSION/program
		mv pkg/openoffice.org-common/$OOINSTBASE/basis$VERSION/program/mailmerge.py \
			pkg/openoffice.org-emailmerge/$OOINSTBASE/basis$VERSION/program/mailmerge.py
		mkdir -p pkg/openoffice.org-emailmerge/$OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/Office/Writer
		mv pkg/openoffice.org-common/$OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/Office/Writer/Writer-javamail.xcu \
			pkg/openoffice.org-emailmerge/$OOINSTBASE/basis$VERSION/share/registry/modules/org/openoffice/Office/Writer/Writer-javamail.xcu
	fi

	create_package_directory gid_Module_Root_SDK                    pkg/openoffice.org-dev

	for l in `echo $OOO_LANGS_LIST`; do
		for p in Impress Draw Math Calc Base Writer; do
			create_package_directory  gid_Module_Langpack_${p}_`echo $l | sed -e s/-/_/g`   pkg/openoffice.org-l10n-$l
		done
		create_package_directory gid_Module_Langpack_Basis_`echo $l | sed -e s/-/_/g`	pkg/openoffice.org-l10n-$l
		create_package_directory gid_Module_Langpack_Brand_`echo $l | sed -e s/-/_/g`	pkg/openoffice.org-l10n-$l
		create_package_directory gid_Module_Langpack_Resource_`echo $l | sed -e s/-/_/g`        pkg/openoffice.org-l10n-$l
		create_package_directory gid_Module_Langpack_Help_`echo $l | sed -e s/-/_/g`    pkg/openoffice.org-help-$l
		if [ -f gid_Module_Optional_Binfilter ]; then
			if [ "$l" = "en-US" ]; then
				create_package_directory gid_Module_Langpack_Binfilter_en_US    pkg/openoffice.org-filter-binfilter
			else
				create_package_directory gid_Module_Langpack_Binfilter_`echo $l | sed -e s/-/_/g`    pkg/openoffice.org-l10n-$l
			fi
		fi
		# some help files are in _Langpack_{Writer,Impress,...}_<lang>
		# move them from -l10n to -help
		if [ "$l" = "en-US" ]; then d=en; else d=$l; fi
		mv pkg/openoffice.org-l10n-$l/$OOINSTBASE/basis$VERSION/help/$d/* \
			pkg/openoffice.org-help-$l/$OOINSTBASE/basis$VERSION/help/$d && \
		rmdir pkg/openoffice.org-l10n-$l/$OOINSTBASE/basis$VERSION/help/$d
	done

	# move_wrappers <directory_name> <name> [...]
	move_wrappers()
	{
		directory=$1
		shift
		mkdir -m755 -p "$directory"/usr/bin
		while test -n "$1"; do
			mv usr/*bin/"$1$BINSUFFIX" "$directory"/usr/bin
			shift
		done
	}
	move_wrappers pkg/openoffice.org-common ooffice oofromtemplate soffice unopkg
	move_wrappers pkg/openoffice.org-base oobase
	move_wrappers pkg/openoffice.org-writer oowriter ooweb
	move_wrappers pkg/openoffice.org-calc oocalc
	move_wrappers pkg/openoffice.org-impress ooimpress
	move_wrappers pkg/openoffice.org-math oomath
	move_wrappers pkg/openoffice.org-draw oodraw
	
	# Move all libraries, binaries, *.rdb from -common to -core
	for d in $OOINSTBASE/basis$VERSION/program $OOINSTBASE/program; do \
	  if [ ! -d $OODESTDIR/pkg/openoffice.org-core/$d ]; then \
	  mkdir -p $OODESTDIR/pkg/openoffice.org-core/$d; \
	  fi &&
	  ( cd pkg/openoffice.org-common/$d
	    find -maxdepth 1 -type f \
	       -regex '\./\(.*\.so.*\|.*\.bin\|pagein\|nsplugin\|kdefilepicker\|msfontextract\|.*\.rdb\|javaldx\|uri-encode\)' \
		   -exec mv {} $OODESTDIR/pkg/openoffice.org-core/$d \;
	  ); \
	done

	# install additional ooo-build scripts & misc stuff
	mkdir -p pkg/openoffice.org-common/usr/share/man/man1
	mv usr/share/man/man1/openoffice$BINSUFFIX.1 \
		pkg/openoffice.org-common/usr/share/man/man1
	mkdir -p pkg/openoffice.org-common/etc/bash_completion.d
	mv etc/bash_completion.d/ooffice$BINSUFFIX.sh \
		pkg/openoffice.org-common/etc/bash_completion.d
	mv .$OOINSTBASE/basis$VERSION/program/java-set-classpath \
		pkg/openoffice.org-common/$OOINSTBASE/program
	if echo $OOO_LANGS_LIST | grep -q en-US; then
		for i in forms/resume.ott officorr/project-proposal.ott; do \
			mkdir -p pkg/openoffice.org-common/$OOINSTBASE/basis$VERSION/share/template/en-US/`dirname $i`; \
			mv .$OOINSTBASE/basis$VERSION/share/template/en-US/$i \
				pkg/openoffice.org-common/$OOINSTBASE/basis$VERSION/share/template/en-US/$i; \
		done; \
	fi
	# Warn for any remaining files
	find . -path './pkg' -prune -o -not -name 'gid_Module_*' -not -type d -exec echo "File not packaged: {}" \;
fi

echo "Cleaning up lists of files...";
mv -f $OODESTDIR/gid_Module_* $BUILDDIR

cd $BUILDDIR

# mark the config files
if test "z$RPM_CONFIG_FILE_TAGS" != "z" ; then
    perl -pi -e "s|^($OOINSTBASE/help/.*\.xsl)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/help/.*\.css)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/program/[a-zA-Z0-9_\.]*rc)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/program/.*\.xsl)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/share/config/[a-zA-Z0-9]*rc)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/share/dict/ooo/.*\.lst)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/share/psprint/.*\.conf)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/share/registry/.*\.xcu)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/share/registry/.*\.properties)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/share/registry/.*\.xcs)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	    -e "s|^($OOINSTBASE/user/config/.*\.so.)\$|$RPM_CONFIG_FILE_TAGS \\1|;" \
	*_list.txt
fi

# Red Hat Post-install cleanup
if test "z$VENDORNAME" = "zRedHat" ; then
	# Fix openoffice/share/kde/net/applnk paths
	perl -pi -e "/^Module gid_Module_Optional_Kde/ .. /^End/ and s|YES|NO|g" $OOINSTBASE/program/instdb.ins
	perl -pi -e "/^Installation gid_Installation/ .. /^End/ and s|$PREFIX||g" $OOINSTBASE/program/instdb.ins
	perl -pi -e "/^Directory gid_Dir_Home_Gnome_Apps_Product/ .. /^End/ and s|OpenOffice\.org\ 1\.1\.0|OpenOffice\.org|g" $OOINSTBASE/program/instdb.ins
	perl -pi -e "/^Directory gid_Dir_Share_Kde_Net_Applnk_Product/ .. /^End/ and s|OpenOffice\.org\ 1\.1\.0|OpenOffice\.org|g" $OOINSTBASE/program/instdb.ins
	perl -pi -e "/^Directory gid_Dir_Kde_Share_Applnk_Product/ .. /^End/ and s|OpenOffice\.org\ 1\.1\.0|OpenOffice\.org|g" $OOINSTBASE/program/instdb.ins
	perl -pi -e "/^Procedure gid_Procedure_Kde_Inst/ .. /^End/ and s|OpenOffice\.org\ 1\.1\.0|OpenOffice\.org|g" $OOINSTBASE/program/instdb.ins
	perl -pi -e "/^Procedure gid_Procedure_Gnome_Install/ .. /^End/ and s|OpenOffice\.org\ 1\.1\.0|OpenOffice\.org|g" $OOINSTBASE/program/instdb.ins
	perl -pi -e "/^Procedure gid_Procedure_Gnome_Deinstall/ .. /^End/ and s|1\.1\.0||g" $OOINSTBASE/program/instdb.ins

	## Fix instdb.ins, to *not* install local copies of these
	for entry in Kdeapplnk Kdemimetext Kdeicons Gnome_Apps Gnome_Icons Gnome2_Apps; do
		perl -pi -e "/^File gid_File_Extra_$entry/ .. /^End/ and (\
			s|^\tSize\s+\= .*|\tSize\t\t = 0;\r| or \
			s|^\tArchiveFiles\s+\= .*|\tArchiveFiles\t = 0;\r| or \
			s|^\tArchiveSize\s+\= .*|\tArchiveSize\t = 0;\r| or \
			s|^\tContains\s+\= .*|\tContains\t = ();\r| or \
			s|\t\t\t\t\t\".*|\r|g)" \
			$OOINSTBASE/program/instdb.ins
	done
fi

echo "Fixing permissions..."
for dir in $DOCDIR $OOINSTDIR/basis$VERSION/sdk/examples ; do
    if test -d $dir -a -w $dir ; then
	find "$dir" -type f \( -name "*.txt" -o -name "*.java" -o -name "*.xml"    -o \
			       -name "*.xcu" -o -name "*.xcs"  -o -name "*.html"   -o \
			       -name "*.pdf" -o -name "*.ps"   -o -name "*.gif"    -o \
			       -name "*.png" -o -name "*.jpg"  -o -name "Makefile" -o \
			       -name "manifest.mf" \) -exec chmod 644 {} \;
    fi
done

if test "z$OODESTDIR" != "z" ; then
    echo "Checking for DESTDIR inside installed files..."
    found_destdir=
    for file in `find $OODESTDIR -type f` ; do
	grep -q "$OODESTDIR" $file && echo "$file: includes the string \"$OODESTDIR\"" && found_destdir=1
    done
    if test "z$found_destdir" != "z" ; then
	echo "!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!"
	echo "The path DESTDIR:$OODESTDIR was found inside some"
	echo "installed files. It is probably a bug."
	echo 
	echo "Especially, if the DESTDIR is set to \$RPM_BUILD_ROOT"
	echo "when creating RPM packages. Even it could be a security hole"
	echo "if the application searches /var/tmp for binaries or"
	echo "config files because the directory is world-writable."
	echo "!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!"
    fi
fi

echo "Packaging succeeded";
exit 0;