#!/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;