#!/bin/bash # # Additional functions for the OpenOffice.org build script. # # Czech Native-Lang team (http://cs.openoffice.org/) # # # (c) Pavel Janík , 2003-2009 # (c) Josef Cacek , 2003-2004 # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # Function unpacking the source file if it exists or check it out from CVS # # Syntax: UnpackSource UnpackSource () { if [ -f ${SOURCES}/OOo_${VERSION}_source.tar.gz ] then ${TAR} xfz ${SOURCES}/OOo_${VERSION}_source.tar.gz else echo "Checking out ${VERSION} from CVS..." mkdir -p ooo_${VERSION}_src cd ooo_${VERSION}_src date >ooo_${VERSION}_src.cvslog 2>&1 cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z9 co -r ${VERSION} OpenOffice2 >>ooo_${VERSION}_src.cvslog 2>&1 || { echo ERROR; exit; } date >>ooo_${VERSION}_src.cvslog 2>&1 cd .. ${TAR} cfz ${SOURCES}/OOo_${VERSION}_source.tar.gz ooo_${VERSION}_src fi } # Apply patch and exit in case of error # # Syntax: ApplyPatch ApplyPatch () { APPLYPATCHARGS=-p1 [ "x$2" != "x" ] && APPLYPATCHARGS=$2 if [ -f ${BUILD}/$1 ] then APPLYPATCH=${BUILD}/$1 else APPLYPATCH=${PATCHES}/$1 fi # First test if the patch is OK ${PATCH} --dry-run ${APPLYPATCHARGS} <${APPLYPATCH} || { echo "patch $1 not applied correctly, please fix it and press Enter to continue!" read } # If it is, apply it! ${PATCH} ${APPLYPATCHARGS} <${APPLYPATCH} } # Apply patch from child workspace # # Syntax: ApplyCWSPatch module patch # ApplyCWSPatch () { cd $1 ApplyPatch $2 -p0 cd .. } # Apply child workspace changes # # Syntax: ApplyCWS cwsname # ApplyCWS () { CWS=$1 for module in `ls -1 ${PATCHES}/CWS-${CWS}*|sed "s#.diff##"|sed "s#.*CWS-${CWS}-##"` do ApplyCWSPatch $module CWS-${CWS}-$module.diff done [ -d ${SOURCES}/${CWS} ] && ${CP} -rav ${SOURCES}/${CWS}/* . } # Unpack gpc # # Syntax: UnpackGPC # UnpackGPC () { ( # external/gpc is obsolete! if [ -d external/gpc ] then cd external/gpc ${TAR} xvfz ${SOURCES}/gpc231.tar.Z mv gpc231/* . rmdir gpc231 fi ) } # Prepare ccache # # Syntax: PrepareCCache # PrepareCCache () { # Use ccache already available on the system # Do not use system ccache, but current ccache version # [ -x /usr/bin/ccache ] && return # which ccache on MacOS X returns 0 even if there is no ccache ;-) ${TAR} xfz ${SOURCES}/ccache-${CCACHEVERSION}.tar.gz ( cd ccache-${CCACHEVERSION} ./configure --prefix=${BUILD} make make install rm -rf ../ccache-${CCACHEVERSION} ) } # Prepare make # # Syntax: PrepareMake # PrepareMake () { ${TAR} xfz ${SOURCES}/make-${MAKEVERSION}.tar.gz ( cd make-${MAKEVERSION} ./configure --prefix=${BUILD} make make install rm -rf ../make-${MAKEVERSION} ) } # Prepare statifier # # Syntax: PrepareStatifier # PrepareStatifier () { ${TAR} xfz ${SOURCES}/statifier-1.6.8.tar.gz ( cd statifier-1.6.8 sh configure make make install DESTDIR=${BUILD}/statifier cp -rav ${BUILD}/statifier/usr/* ${BUILD} rm -rf ../statifier-1.6.8 ${BUILD}/statifier ) } # Provide static binary of gsicheck # # Syntax: ProvideStaticGsicheck # ProvideStaticGsicheck () { OUTDIR=${BUILD_OUTPUT_DIRECTORY}/TranslationQA mkdir -p ${OUTDIR} export STATIFIER_ROOT_DIR=${BUILD}/lib/statifier statifier `which gsicheck` ${OUTDIR}/gsicheck.static } # Prepare dpkg # # Syntax: PrepareDpkg # PrepareDpkg () { ${TAR} xfz ${SOURCES}/dpkg_${DPKGVERSION}.tar.gz ( cd dpkg-${DPKGVERSION} ./configure --prefix=${BUILD} --disable-nls --without-sgml-doc make make install rm -rf ../dpkg-${DPKGVERSION} ) } # Prepare translate tools # # Syntax: PrepareTranslate # PrepareTranslate () { ${TAR} xfj ${SOURCES}/translate-toolkit-${TRANSLATEVERSION}.tar.bz2 ( cd translate-toolkit-${TRANSLATEVERSION} ${PATCH} -p1 <${SOURCES}/translate-toolkit-${TRANSLATEVERSION}-helptexts.diff ./setup.py install --home=${BUILD} rm -rf ../translate-toolkit-${TRANSLATEVERSION} ) } # Prepare Ant # # Syntax: PrepareAnt # PrepareAnt () { unzip -q ${SOURCES}/apache-ant-${ANTVERSION}-bin.zip chmod 755 apache-ant-${ANTVERSION}/bin/ant [ -f ${SOURCES}/apache-ant-${ANTVERSION}-bin.diff ] && patch -p0 <${SOURCES}/apache-ant-${ANTVERSION}-bin.diff } # Prepare JUnit # # Syntax: PrepareJUnit # PrepareJUnit () { JUNITVERSION=4.8.2 cp ${SOURCES}/junit-${JUNITVERSION}.jar . # FIXME: redirect to SSL, ... # wget http://github.com/downloads/KentBeck/junit/junit-${JUNITVERSION}.jar } # Prepare Windows only requirements # # Syntax: PrepareWindowsRequirements # PrepareWindowsRequirements () { # Prepare files needed for Mozilla compilation ( cd moz/download wget ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc71/vc71-glib-1.2.10-bin.zip wget ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc71/vc71-libIDL-0.6.8-bin.zip wget http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip ) if [ `hostname` = "drogo" ] then cp "/cygdrive/c/Program Files/Microsoft Visual Studio .NET 2003/Common7/IDE/dbghelp.dll" external/dbghelp/DbgHelp.Dll fi if [ `hostname` = "drogo2" ] then # Microsoft_VC90_CRT_x86.msm/policy_9_0_Microsoft_VC90_CRT_x86.msm mkdir -p external/msm90 cp /cygdrive/c/Program\ Files/Common\ Files/Merge\ Modules/Microsoft_VC90_CRT_x86.msm external/msm90 cp /cygdrive/c/Program\ Files/Common\ Files/Merge\ Modules/policy_9_0_Microsoft_VC90_CRT_x86.msm external/msm90 mkdir -p external/msi ( cd external/msi wget http://download.microsoft.com/download/WindowsInstaller/Install/2.0/NT45/EN-US/InstMsiW.exe && mv InstMsiW.exe instmsiw.exe wget http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe && mv InstMsiA.exe instmsia.exe chmod 755 instmsi*.exe ) fi } # Prepare localization tools # # Syntax: PrepareLocalizeTool # PrepareLocalizeTool () { BuildPhaseStarted BUILDING_TRANSEX3 cd l10ntools build.pl ${MAXMODULESFLAG} ${JOBFLAGS} --all --html --dontgraboutput -- ${MAXPROCESSESFLAG} || { BuildPhaseError BUILDING_TRANSEX3 "Can't prepare localize tool!" } deliver.pl cd .. BuildPhaseFinished BUILDING_TRANSEX3 } # Merge GSI file to sources # # Syntax: MergeGSI cs # MergeGSI () { ISOCODE=$1 BuildMessage INFO "Merging ${ISOCODE} GSI file." LOCALIZE_PATH=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin LOCALIZE=localize GSI=../GSI_${ISOCODE}.sdf WARNFILE=${BUILD_OUTPUT_DIRECTORY}/build/GSI_${ISOCODE}.sdf.warnings ERRFILE=${BUILD_OUTPUT_DIRECTORY}/build/GSI_${ISOCODE}.sdf.err [ ! -r ${GSI} ] && { echo "GSI file ${GSI} is not readable, fix it!" exit } mkdir -p ${BUILD_OUTPUT_DIRECTORY}/build PATH=${LOCALIZE_PATH}:$PATH ${LOCALIZE} -m -x -l ${ISOCODE} -f ${GSI} 2>${WARNFILE} [ ! -s ${WARNFILE} ] && rm -f ${WARNFILE} [ ${OOO_BUILD_SYSTEM} != "Linux" ] && rm -f ${WARNFILE} [ ${OOO_BUILD_SYSTEM} == "Linux" ] && gsicheck -c ${GSI} >${ERRFILE} 2>&1 [ ! -s ${ERRFILE} ] && rm -f ${ERRFILE} } # Check GSI file # # Syntax: CheckGSI cs # CheckGSI () { ISOCODE=$1 GSIFILE=l10n/source/${ISOCODE}/localize.sdf BuildMessage INFO "Checking GSI file ${GSIFILE}." SOLVER_PATH=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin SOLVER_LIBS=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/lib GSICHECK=gsicheck WARNFILE=${BUILD_OUTPUT_DIRECTORY}/build/GSI_${ISOCODE}.sdf.warnings ERRFILE=${BUILD_OUTPUT_DIRECTORY}/build/GSI_${ISOCODE}.sdf.err mkdir -p ${BUILD_OUTPUT_DIRECTORY}/build PATH=${SOLVER_PATH}:$PATH LD_LIBRARY_PATH=${SOLVER_LIBS} DYLD_LIBRARY_PATH=${SOLVER_LIBS} ${GSICHECK} -c ${GSIFILE} -wcf ${GSIFILE}.correct >${WARNFILE} 2>&1 mv ${GSIFILE}.correct ${GSIFILE} [ ! -s ${WARNFILE} ] && rm -f ${WARNFILE} [ ! -s ${ERRFILEFILE} ] && rm -f ${ERRFILEFILE} } # Create native language packages # # Syntax: CreateNativeLangPacks # CreateNativeLangPacks () { # Do not remove RPM packages for language packs (see #i36837#) export DONT_REMOVE_PACKAGE="yes" # Create the directory where language packs will be copied LANGPACKSDIRECTORY=${BUILD_OUTPUT_DIRECTORY}/OOo_${VERSIONNAME}_native_${OOARCHENVIRONMENT}_langpacks ( cd instsetoo_native/util dmake ooolanguagepack ) # Remove useless shell scripts. rm -rf instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/*/install/*/{RPMS,packages}/*sh if [ ${OOO_BUILD_SYSTEM} == "Windows" ] then mkdir -p ${LANGPACKSDIRECTORY} ( cd instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/msi/install/ for LANGUAGE in ${SUPPORTEDLANGUAGES} do [ -d ${LANGUAGE}_download ] && mv ${LANGUAGE}_download/*.exe ${LANGPACKSDIRECTORY} [ -d en-US_${LANGUAGE}_download ] && mv en-US_${LANGUAGE}_download/*.exe ${LANGPACKSDIRECTORY} # VERIFY: remove directory not needed rm -rf ${LANGUAGE} en-US_${LANGUAGE} done ) elif [ ${OOO_BUILD_SYSTEM} == "Linux" -o ${OOO_BUILD_SYSTEM} == "LinuxX86-64" ] then mkdir -p ${LANGPACKSDIRECTORY}_rpm # cp -r instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/rpm/install/*/RPMS/* ${LANGPACKSDIRECTORY}_rpm cp -r instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/rpm/install/*/*gz ${LANGPACKSDIRECTORY}_rpm mkdir -p ${LANGPACKSDIRECTORY}_deb # cp -r instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/deb/install/*/DEBS/*.deb ${LANGPACKSDIRECTORY}_deb cp -r instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/deb/install/*/*gz ${LANGPACKSDIRECTORY}_deb elif [ ${OOO_BUILD_SYSTEM} == "Solaris" ] then mkdir -p ${LANGPACKSDIRECTORY} # FIXME: verify! tar.gz pack packages? cp -r instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/pkg/install/*/packages/* ${LANGPACKSDIRECTORY} elif [ ${OOO_BUILD_SYSTEM} == "MacOSXPPC" -o ${OOO_BUILD_SYSTEM} == "MacOSXX86" ] then mkdir -p ${LANGPACKSDIRECTORY} cp -r instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack/dmg/install/*/*.dmg ${LANGPACKSDIRECTORY} fi } # Create native packages for installers # # Syntax: CreateNativeInstallers # CreateNativeInstallers () { BuildPhaseStarted CREATENATIVEINSTALLERS INSTSETSDIR=instsetoo_native/${OOOUTPATH}.pro/OpenOffice/rpm/install INSTSETSSOLARIS=instsetoo_native/${OOOUTPATH}.pro/OpenOffice/pkg/install INSTSETSDIRDEB=instsetoo_native/${OOOUTPATH}.pro/OpenOffice/deb/install INSTSETSDIRWIN=instsetoo_native/${OOOUTPATH}.pro/OpenOffice/msi/install if [ ${OOO_BUILD_SYSTEM} = "Windows" ] then ( cd ${INSTSETSDIRWIN} for LANGUAGE in ${SUPPORTEDLANGUAGES} do mv ${LANGUAGE}_download/*.exe ${BUILD_OUTPUT_DIRECTORY} [ -d en-US_${LANGUAGE}_download ] && mv en-US_${LANGUAGE}_download/*.exe ${BUILD_OUTPUT_DIRECTORY} # VERIFY: remove directory not needed done ) elif [ ${OOO_BUILD_SYSTEM} == "Linux" -o ${OOO_BUILD_SYSTEM} == "LinuxX86-64" ] then # RPM packages ( # Save user installation scripts to copy them back to instsets later cp -r solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin/userscripts/* ${BUILD_OUTPUT_DIRECTORY} cd ${INSTSETSDIR} for LANGUAGE in ${SUPPORTEDLANGUAGES} do cd $LANGUAGE cp -r ${BUILD_OUTPUT_DIRECTORY}/{install,uninstall} . tar cvfz ${BUILD_OUTPUT_DIRECTORY}/OOo_${VERSIONNAME}_${OOARCHENVIRONMENT}_install_${LANGUAGE}_rpm.tar.gz \ RPMS install uninstall rm -rf RPMS cd .. done rm ${BUILD_OUTPUT_DIRECTORY}/{install,uninstall} ) ( cd ${INSTSETSDIRDEB} for LANGUAGE in * do [ ! -d $LANGUAGE/DEBS ] && continue cd $LANGUAGE tar cvfz ${BUILD_OUTPUT_DIRECTORY}/OOo_${VERSIONNAME}_${OOARCHENVIRONMENT}_install_${LANGUAGE}_deb.tar.gz DEBS rm -rf DEBS cd .. done ) elif [ ${OOO_BUILD_SYSTEM} = "Solaris" ] then ( # VERIFY: complete installations packaging... cp -r solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin/userscripts/* ${BUILD_OUTPUT_DIRECTORY} cd ${INSTSETSSOLARIS} for LANGUAGE in ${SUPPORTEDLANGUAGES} do cd $LANGUAGE cp -r ${BUILD_OUTPUT_DIRECTORY}/{install,uninstall,admin} . # FIXME: test! /usr/bin/tar cvfE - packages install uninstall admin | gzip -c > ${BUILD_OUTPUT_DIRECTORY}/OOo_${VERSIONNAME}_${OOARCHENVIRONMENT}_install_${LANGUAGE}.tar.gz cd .. done rm ${BUILD_OUTPUT_DIRECTORY}/{admin,install,uninstall} ) elif [ ${OOO_BUILD_SYSTEM} = "MacOSXPPC" -o ${OOO_BUILD_SYSTEM} = "MacOSXX86" ] then # VERIFY for Mac OS X on Intel... mv instsetoo_native/${OOOUTPATH}.pro/OpenOffice/dmg/install/*/OOo*.dmg ${BUILD_OUTPUT_DIRECTORY} fi BuildPhaseFinished CREATENATIVEINSTALLERS } # Copy URE packages # # Syntax: CreateURE # CreateURE () { INSTSETSDIR=instsetoo_native/${OOOUTPATH}.pro/URE/rpm/install INSTSETSDIRDEB=instsetoo_native/${OOOUTPATH}.pro/URE/deb/install INSTSETSDIRWIN=instsetoo_native/${OOOUTPATH}.pro/URE/msi/install UREDESTDIR=${BUILD_OUTPUT_DIRECTORY}/URE mkdir -p ${UREDESTDIR} if [ ${OOO_BUILD_SYSTEM} = "Windows" ] then mv ${INSTSETSDIRWIN}/en-US_download/*.exe ${UREDESTDIR} elif [ ${OOO_BUILD_SYSTEM} == "Linux" -o ${OOO_BUILD_SYSTEM} == "LinuxX86-64" ] then mv ${INSTSETSDIR}/en-US/RPMS/*.rpm ${UREDESTDIR} mv ${INSTSETSDIRDEB}/en-US/DEBS/*.deb ${UREDESTDIR} elif [ ${OOO_BUILD_SYSTEM} = "Solaris" ] then # FIXME echo FIXME elif [ ${OOO_BUILD_SYSTEM} = "MacOSXX86" -o ${OOO_BUILD_SYSTEM} = "MacOSXPPC" ] then # VERIFY mv instsetoo_native/${OOOUTPATH}.pro/URE/install/*/OpenOffice.org*.dmg ${BUILD_OUTPUT_DIRECTORY}/URE fi } # Create SDK archive # # Syntax: CopySDK # CopySDK() { BuildPhaseStarted COPY_SDK SDKOUT=${BUILD_OUTPUT_DIRECTORY}/SDK mkdir -p ${SDKOUT} INSTSETSDIR=instsetoo_native/${OOOUTPATH}.pro/OpenOffice_SDK/rpm/install INSTSETSDIRDEB=instsetoo_native/${OOOUTPATH}.pro/OpenOffice_SDK/deb/install INSTSETSDIRWIN=instsetoo_native/${OOOUTPATH}.pro/OpenOffice_SDK/msi/install if [ ${OOO_BUILD_SYSTEM} = "Windows" ] then mv ${INSTSETSDIRWIN}/en-US_download/*.exe ${SDKOUT} elif [ ${OOO_BUILD_SYSTEM} == "Linux" -o ${OOO_BUILD_SYSTEM} == "LinuxX86-64" ] then mv ${INSTSETSDIR}/en-US/RPMS/*.rpm ${SDKOUT} mv ${INSTSETSDIRDEB}/en-US/DEBS/*.deb ${SDKOUT} elif [ ${OOO_BUILD_SYSTEM} = "Solaris" ] then # FIXME echo FIXME elif [ ${OOO_BUILD_SYSTEM} = "MacOSXPPC" -o ${OOO_BUILD_SYSTEM} = "MacOSXX86" ] then # VERIFY mv instsetoo_native/${OOOUTPATH}.pro/OpenOffice_SDK/install/*/OpenOffice.org*.dmg ${BUILD_OUTPUT_DIRECTORY}/SDK fi BuildPhaseFinished COPY_SDK } # Copy Report Builder into final directory for upload # # Syntax: CopyReportBuilder # CopyReportBuilder() { BuildPhaseStarted COPY_REPORTBUILDER REPORTBUILDEROUT=${BUILD_OUTPUT_DIRECTORY}/ReportBuilder/${OOOUTPATH}.pro REPORTBUILDER=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin/report-builder.oxt mkdir -p ${REPORTBUILDEROUT} if [ -f ${REPORTBUILDER} ] then cp ${REPORTBUILDER} ${REPORTBUILDEROUT} else BuildPhaseWarning COPY_REPORTBUILDER "${REPORTBUILDER} does not exist" fi BuildPhaseFinished COPY_REPORTBUILDER } # Copy Presentation Minimizer into final directory for upload # # Syntax: CopyPresentationMinimizer # CopyPresentationMinimizer() { BuildPhaseStarted PRESENTATIONMINIMIZER PRESENTATIONMINIMIZEROUT=${BUILD_OUTPUT_DIRECTORY}/Presentation_Minimizer/${OOOUTPATH}.pro PRESENTATIONMINIMIZER=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin/minimizer/presentation-minimizer.oxt mkdir -p ${PRESENTATIONMINIMIZEROUT} ( cd sdext build.pl deliver.pl ) if [ -f ${PRESENTATIONMINIMIZER} ] then cp ${PRESENTATIONMINIMIZER} ${PRESENTATIONMINIMIZEROUT} else BuildPhaseWarning PRESENTATIONMINIMIZER "${PRESENTATIONMINIMIZER} not found" fi BuildPhaseFinished PRESENTATIONMINIMIZER } # Copy Presentation Screen into final directory for upload # # Syntax: CopyPresentationScreen # CopyPresentationScreen() { BuildPhaseStarted PRESENTATIONSCREEN PRESENTATIONSCREENOUT=${BUILD_OUTPUT_DIRECTORY}/PresentationScreen/${OOOUTPATH}.pro PRESENTATIONSCREEN=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin/presenter/presenter-screen.oxt mkdir -p ${PRESENTATIONSCREENOUT} if [ -f ${PRESENTATIONSCREEN} ] then cp ${PRESENTATIONSCREEN} ${PRESENTATIONSCREENOUT} else BuildPhaseWarning PRESENTATIONSCREEN "${PRESENTATIONSCREEN} not found" fi BuildPhaseFinished PRESENTATIONSCREEN } # Copy PDF Import into final directory for upload # # Syntax: CopyPDFImport # CopyPDFImport() { BuildPhaseStarted PDFIMPORT PDFIMPORTOUT=${BUILD_OUTPUT_DIRECTORY}/PDFImport/${OOOUTPATH}.pro PDFIMPORT=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin/pdfimport/pdfimport.oxt mkdir -p ${PDFIMPORTOUT} if [ -f ${PDFIMPORT} ] then cp ${PDFIMPORT} ${PDFIMPORTOUT} else BuildPhaseWarning PDFIMPORT "${PDFIMPORT} not found" fi BuildPhaseFinished PDFIMPORT } # Copy Wiki Publisher extension into final directory for upload # # Syntax: CopyWikiPublisher # CopyWikiPublisher() { BuildPhaseStarted WIKIPUBLISHER WIKIPUBLISHEROUT=${BUILD_OUTPUT_DIRECTORY}/WikiPublisher/${OOOUTPATH}.pro WIKIPUBLISHER=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin/swext/wiki-publisher.oxt mkdir -p ${WIKIPUBLISHEROUT} if [ -f ${WIKIPUBLISHER} ] then cp ${WIKIPUBLISHER} ${WIKIPUBLISHEROUT} else BuildPhaseWarning WIKIPUBLISHER "${WIKIPUBLISHER} not found" fi BuildPhaseFinished WIKIPUBLISHER } # # This function extracts GSI files for all supported languages # # VERIFY ExtractGSI () { LOCALIZE_PATH=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin LOCALIZE=localize [ ${OOO_BUILD_SYSTEM} = "Windows" ] && LOCALIZE="guw.pl -env ${LOCALIZE}" # VERIFY: Use $alllanguages from postset.mk somehow? LANGUAGESINSOURCE=`grep ^completelangiso solenv/inc/postset.mk |sed 's#completelangiso=##'` GSIOUT=${BUILD_OUTPUT_DIRECTORY}/GSI mkdir -p ${GSIOUT} for language in ${LANGUAGESINSOURCE} do # FIXME: skip en-US? PATH=${LOCALIZE_PATH}:$PATH ${LOCALIZE} -e -l en-US,${language}=en-US -f ${GSIOUT}/${language}.sdf done } # # This function extracts the file allfiles.tree for helpcontent2 QA # ExtractHelpTree () { mkdir -p ${BUILD_OUTPUT_DIRECTORY}/HelpQA wget http://documentation.openoffice.org/online_help/helpers/helpdebug/allfiles.pl cd helpcontent2 perl ../allfiles.pl >${BUILD_OUTPUT_DIRECTORY}/HelpQA/allfiles.tree cd .. } # # This function extracts PO files for all supported languages # # VERIFY ExtractPO () { unset PYTHONHOME export PYTHONPATH=${BUILD}/lib/python GSIOUT=${BUILD_OUTPUT_DIRECTORY}/GSI POOUT=${BUILD_OUTPUT_DIRECTORY}/PO mkdir -p ${POOUT} LANGUAGESINSOURCE=`grep ^completelangiso solenv/inc/postset.mk |sed 's#completelangiso=##'` for language in ${LANGUAGESINSOURCE} do # Do not generate PO files for English and German [ ${language} = "en-US" ] && continue [ ${language} = "de" ] && continue mkdir -p ${language} # FIXME: still produces error messages when there is only one entry for string (en-US only) ${BUILD}/bin/oo2po ${GSIOUT}/${language}.sdf ${language} tar cvfz ${POOUT}/OpenOffice.org-${VERSION}-PO-${language}.tar.gz ${language} rm -rf ${language} done } # # This function extracts POT files # ExtractPOT () { BuildPhaseStarted EXTRACT_POT GSIOUT=${BUILD_OUTPUT_DIRECTORY}/GSI POTOUT=${BUILD_OUTPUT_DIRECTORY}/POT mkdir -p ${GSIOUT} ${POTOUT} LOCALIZE_PATH=solver/${BUILD_NUMBER}/${OOOUTPATH}.pro/bin LOCALIZE=localize [ ${OOO_BUILD_SYSTEM} = "Windows" ] && LOCALIZE="guw.pl -env ${LOCALIZE}" echo "Generating English (US) GSI/SDF file..." PATH=${LOCALIZE_PATH}:$PATH ${LOCALIZE} -e -l en-US -f ${GSIOUT}/en-US.sdf -d unset PYTHONHOME export PYTHONPATH=${BUILD}/lib/python mkdir -p pot echo "Generating English (US) POT files..." ${BUILD}/bin/oo2po -P ${GSIOUT}/en-US.sdf pot cp ${GSIOUT}/en-US.sdf . tar cvfz ${POTOUT}/OpenOffice.org-${VERSION}-POT.tar.gz pot en-US.sdf rm -rf pot BuildPhaseFinished EXTRACT_POT } # # This function extracts all README.html files for all supported languages # # VERIFY! ExtractREADME () { READMEOUT=${BUILD_OUTPUT_DIRECTORY}/READMEs mkdir -p ${READMEOUT} ( export WITH_LANG=ALL cd readlicense_oo build.pl ) cp `find readlicense_oo/${OOOUTPATH}.pro -name readme*.html` ${READMEOUT} }