#!/bin/bash -x # # Skript pro build OpenOffice.org 1.1 RC3 # # # (c) Pavel Janík , 2002, 2003 # (c) Dan Ohnesorg , 2002 # (c) Josef Cacek , 2002, 2003 # # # 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. # # # Zdrojové texty v adresáři Sources # # OpenOffice.org source code # CVS # # General Polygon Clipper source code # ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.tar.Z # # ccache # http://ccache.samba.org/ # # Adresář Windows obsahuje buildovací skript pro prostředí 4NT (Make_*.btm) # a případné opravy zdrojového stromu, které jsou nutné k úspěšné kompilaci # pro Microsoft Windows. # # # Slovníky # # # Český slovník pro MySpell # http://dict.progbits.com/cs_CZ.zip # Slovenský slovník pro MySpell # http://dict.progbits.com/sk_SK.zip # # Systém, na kterém probíhá build # [ `uname -s` = "Linux" ] && export OOO_BUILD_SYSTEM=Linux [ `uname -s` = "SunOS" ] && export OOO_BUILD_SYSTEM=Solaris [ `uname -s | grep CYGWIN` ] && export OOO_BUILD_SYSTEM=Windows [ ${OOO_BUILD_SYSTEM} = "Windows" ] && export BASE_DIRECTORY=/cygdrive/d/OOo/oocz [ ${OOO_BUILD_SYSTEM} = "Linux" ] && export BASE_DIRECTORY=~/ [ ${OOO_BUILD_SYSTEM} = "Solaris" ] && export BASE_DIRECTORY=/ultra export PATCHES=${BASE_DIRECTORY}/Patches export FILES=${BASE_DIRECTORY}/Files export SOURCES=${BASE_DIRECTORY}/Sources export BUILD=${BASE_DIRECTORY}/BuildDir # # Na GNU/Linuxu musíme přidat cestu pro překladač gcc-3.0.4 a jeho knihovny # if [ ${OOO_BUILD_SYSTEM} = "Linux" ] then export OOO_GCC_PATH="/opt/experimental" # Pro snowwhite [ ! -d ${OOO_GCC_PATH} ] && export OOO_GCC_PATH="/usr" export PATH=${OOO_GCC_PATH}/bin/:${PATH} export LD_LIBRARY_PATH=${OOO_GCC_PATH}/lib:${LD_LIBRARY_PATH} export JDKPATH=/usr/lib/SunJava2-1.4.1/ [ ! -d ${JDKPATH} ] && export JDKPATH="/usr/lib/java" fi # Java pro Sun Solaris/SPARC [ ${OOO_BUILD_SYSTEM} = "Solaris" ] && export JDKPATH=/usr/java # # Na platformách Windows do cesty přidáme cestu ke kompilátoru, aby configure nehlásilo chyby # [ ${OOO_BUILD_SYSTEM} = "Windows" ] && export PATH="${PATH}:/cygdrive/c/Progra~1/Micros~3/VC98/Bin:/cygdrive/c/Progra~1/Micros~3/Common/MSDev98/Bin" # # GNU tar, GNU patch a GNU cp # export TAR=`which tar` export PATCH=`which patch` export CP=`which cp` # Na Solarisu není standardně GNU tar, GNU patch a GNU cp a původní patch # ani neumí aplikovat některé patche, které jsou součástí OpenOffice.org. if [ ${OOO_BUILD_SYSTEM} = "Solaris" ] then export TAR=/usr/local/bin/tar export PATCH=/usr/local/bin/patch export CP=/usr/local/bin/cp fi # # Výstupní strom je na všech architekturách v jiném adresáři # [ ${OOO_BUILD_SYSTEM} = "Linux" ] && export OOOUTPATH=unxlngi4 [ ${OOO_BUILD_SYSTEM} = "Solaris" ] && export OOOUTPATH=unxsols4 [ ${OOO_BUILD_SYSTEM} = "Windows" ] && export OOOUTPATH=wntmsci7 # # Soubor s proměnnými prostředí se na všech architekturách jmenuje jinak # [ ${OOO_BUILD_SYSTEM} = "Linux" ] && export OOARCHENVIRONMENT=LinuxIntel [ ${OOO_BUILD_SYSTEM} = "Solaris" ] && export OOARCHENVIRONMENT=SolarisSparc # # V každém systému je jiné prostředí - win nebo unx # [ ${OOO_BUILD_SYSTEM} = "Linux" -o ${OOO_BUILD_SYSTEM} = "Solaris" ] && export ENVI=unx [ ${OOO_BUILD_SYSTEM} = "Windows" ] && export ENVI=wnt # # Příprava buildovacího stromu # VERSION=11rc3 CCACHEVERSION=2.2 SUPPORTEDLANGUAGES=ENUS,CZECH,SLOVAK rm -rf ${BUILD} mkdir -p ${BUILD} cd ${BUILD} # Přeložíme ccache a umístíme do adresáře ${BUILD} if [ ${OOO_BUILD_SYSTEM} != "Windows" ] then ${TAR} xvfz ${SOURCES}/ccache-${CCACHEVERSION}.tar.gz ( cd ccache-${CCACHEVERSION}; ./configure; make; cp ccache ${BUILD} ) fi ${TAR} xvfz ${SOURCES}/OOo_${VERSION}_source.tar.gz cd ooo_${VERSION}_src # Dodatečné soubory k Windows buildu [ ${OOO_BUILD_SYSTEM} = "Windows" ] && cp -f -R ${SOURCES}/Windows/* . # Rozbalíme externí zdrojové texty - GPC ( cd external/gpc ${TAR} xvfz ${SOURCES}/gpc231.tar.Z mv gpc231/* . rmdir gpc231 ) # # Patches # # # SPARC specifické úpravy # if [ ${OOO_BUILD_SYSTEM} = "Solaris" ] then # Issue #14581: Coredump while running regcomp ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-SPARC-only-fix-regcomp-coredump.diff fi # # Patch pouze pro Microsoft Windows # # Řeší pády při překladu svtools a external, neinteraktivní mazání v instsetoo, # Issue #10706: formát 8.3 pro instalaci [readme.htm, license.htm] [ ${OOO_BUILD_SYSTEM} = "Windows" ] && ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-windows_for_NT4.diff # # Generické úpravy # # TEMP Issue #15843: crashrep: pkg-config and other... (temp) ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-temp-disable-crashrep.diff # FIXME: !!! ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-temp-remove-officecfg-schema-from-localize-output.diff ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-Linux-only-allow-Java-1.4.1.diff # Issue #15640: Tools/Options/External applications ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-remove-word-Option.diff # Pro SMP build # FIXME: vyzkoušet v OpenOffice.org 1.1 RC až bude hotová čeština # ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-SMP-build-MAXPROCESS.diff # # České a slovenské úpravy # # Kontrola pravopisu a dělení slov i pro češtinu a slovenštinu ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-add-czech-and-slovak-dictionaries.diff # Kontrola pravopisu bude implicitně zapnuta # FIXME: nefunguje... # ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-spellchecking-on-by-default.diff # Úprava importu a exportu do Wordu 6 a Wordu 95 ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-fixes_for_word_6_and_95.diff # Úprava exportu vlastností dokumentu do Wordu 6 a Wordu 95 # Exportujeme všechno jako 1250, i pro novější Word ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-properties_fixes_for_word_6_and_95.diff # Upravení exportu do RTF # FIXME: reportovat s příkladem ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-save_RTF_as_Eastern_European_not_ANSI.diff # Ukládej v HTML znaky, ne entity ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-do-not-export-chars-as-html-entities.diff # Nenahrazuj fonty při tisku (problémy s písmeny s diakritikou) ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}_source-psprint-do-not-substitute.diff # # Příprava na překlad # # Pro překlad budeme používat ccache, jak na Linuxu tak i na Solarisu if [ ${OOO_BUILD_SYSTEM} = "Linux" ] then export CC="${BUILD}/ccache ${OOO_GCC_PATH}/bin/gcc" export CXX="${BUILD}/ccache ${OOO_GCC_PATH}/bin/g++" fi if [ ${OOO_BUILD_SYSTEM} = "Solaris" ] then export CC="${BUILD}/ccache cc" export CXX=CC fi # Konfigurace OpenOffice.org ( cd config_office [ ${OOO_BUILD_SYSTEM} = "Linux" -o ${OOO_BUILD_SYSTEM} = "Solaris" ] && ./configure --with-jdk-home=${JDKPATH} --with-dict=ALL --with-lang=${SUPPORTEDLANGUAGES} --with-gnu-patch=${PATCH} --with-gnu-cp=${CP} --disable-crashdump [ ${OOO_BUILD_SYSTEM} = "Windows" ] && ./configure --with-jdk-home=/cygdrive/c/jdk1.4.1 \ --with-unzip-home=/cygdrive/d/OOo/InfoZip \ --with-mspdb-path=/cygdrive/c/Progra~1/Micros~3/Common/MSDev98/Bin/MSPDB60.DLL \ --with-dict=ALL --with-lang=${SUPPORTEDLANGUAGES} --with-asm-home=/cygdrive/d/OOo/ml ) # # Archívy mozilly pro gcc 3.0.4 # # FIXME: pro snowwhite/gcc 3.3 zakomentovat [ ${OOO_BUILD_SYSTEM} = "Linux" ] && cp -f ${SOURCES}/Linux/* moz/zipped # # Soubory # # Úvodní obrázek s českou a slovenskou vlajkou cp -f ${FILES}/openintro.bmp offmgr/res/openintro.bmp # # Doplnění češtiny a slovenštiny do dictionaries # mkdir -p dictionaries/{cs_CZ,sk_SK} # Vzory pro české a slovenské dělení slov cp ${FILES}/hyph_cs.dic dictionaries/cs_CZ cp ${FILES}/hyph_sk.dic dictionaries/sk_SK # Český slovník pro kontrolu pravopisu unzip ${SOURCES}/Dictionaries/cs_CZ.zip cp cs_CZ.aff cs_CZ.dic dictionaries/cs_CZ # Slovenský slovník pro kontrolu pravopisu unzip ${SOURCES}/Dictionaries/sk_SK.zip cp sk_SK.aff sk_SK.dic dictionaries/sk_SK # FIXME: soubory pro thesaurus # FIXME: rozbalení souborů pro cs_CZ a sk_SK thesaurus a makefily... ${TAR} xvfz ${FILES}/czech-and-slovak-dictionaries-files.tar.gz # # Slovenské extras kopií českých # # Issue #15822: Slovenske extras ( cd extras for i in `find . -name czech -type d` do cp -r $i `dirname $i`/slovak done ) ${TAR} xvfz ${FILES}/extras-slovak.tar.gz # # Kopie základní adresářové struktury nápovědy # FIXME: proč tohle musíme udělat, když to na konci stejně přeplácneme # z archívu helpu? Reportovat. # ( cd helpcontent/${ENVI} for i in common s* do cp -r $i/english_us $i/czech cp -r $i/english_us $i/slovak done ) # # Připravíme si i debug verzi GSI souborů # awk -F' ' 'BEGIN{OFS=" "; NUMBER=0} {if ($10 == "42") {$11=NUMBER ":" $11; $12=NUMBER ":" $12; $13=NUMBER ":" $13; $14=NUMBER ":" $14; NUMBER++}; print }' <${FILES}/cs_new_bastard.txt >${FILES}/cs_new_debug_bastard.txt awk -F' ' 'BEGIN{OFS=" "; NUMBER=0} {if ($10 == "43") {$11=NUMBER ":" $11; $12=NUMBER ":" $12; $13=NUMBER ":" $13; $14=NUMBER ":" $14; NUMBER++}; print }' <${FILES}/sk_new_bastard.txt >${FILES}/sk_new_debug_bastard.txt # # Ještě nezbytné úpravy pro MS Windows (úprava prostředí) a můžeme přejít # na DOS 4NT # if [ ${OOO_BUILD_SYSTEM} = "Windows" ] then # Snad funkční v novější verzi 4NT # mv winenv.bat winenv.old # grep -v "IF DEFINED" winenv.old | sed -e 's#\^#\&\&#g' >winenv.bat echo "Pokracovani buildu je v prostredi DOS 4NT ..." exit fi # # Pro build na SMP stroji zvýšit # export MAXPROCESS=1 ./bootstrap . ${OOARCHENVIRONMENT}Env.Set.sh # Sestavení lokalizačních nástrojů pushd . cd transex3 ../solenv/bin/build.pl --all ../solenv/bin/deliver.pl popd # Upgrade překladů localize -m -i 42 -l 42 -f ${FILES}/cs_new_bastard.txt localize -m -i 43 -l 43 -f ${FILES}/sk_new_bastard.txt # Chybný merge ${PATCH} -p1 <${PATCHES}/OOo_${VERSION}-czech-localize-bugs.diff # FIXME: pro snowwhite, ale už by nemělo být nutné - používáme libstdc++.so.5 # mkdir -p solver/645/${OOOUTPATH}.pro/lib/ # cp /data/pavel/staroffice6.0/program/libstdc++.so.3.0.1 solver/645/${OOOUTPATH}.pro/lib/libstdc++.so.3 dmake # # Vlastní česká a slovenská nápověda # # Issue #15542: Provide source files for helpcontent translation ${TAR} xvfz ${FILES}/helpcontent_42_unix.tgz -C solver/645/${OOOUTPATH}.pro/pck ${TAR} xvfz ${FILES}/helpcontent_43_unix.tgz -C solver/645/${OOOUTPATH}.pro/pck # # Česká a slovenská licence # cp ${FILES}/cs-LICENSE solver/645/${OOOUTPATH}.pro/bin/42/osl/LICENSE cp ${FILES}/cs-LICENSE solver/645/${OOOUTPATH}.pro/bin/42/osl/LICENSE42 cp ${FILES}/cs-license.html solver/645/${OOOUTPATH}.pro/bin/42/osl/LICENSE42.html cp ${FILES}/sk-LICENSE solver/645/${OOOUTPATH}.pro/bin/43/osl/LICENSE cp ${FILES}/sk-LICENSE solver/645/${OOOUTPATH}.pro/bin/43/osl/LICENSE43 cp ${FILES}/sk-license.html solver/645/${OOOUTPATH}.pro/bin/43/osl/LICENSE43.html # # Instalační sady # pushd . # Zkopírujeme si i SDK cp odk/${OOOUTPATH}*/bin/odk*.tar.gz ${BASE_DIRECTORY}/ rm -rf instsetoo/${OOOUTPATH}* cd instsetoo/util dmake strip=true cd ../${OOOUTPATH}*/42 mv normal install # Přidáme do instalačního archívu i instalační příručku a FAQ cp ${FILES}/{faq.html,installation_guide.pdf} install ${TAR} cvfz ${BASE_DIRECTORY}/OOo_${VERSION}-czech-${OOARCHENVIRONMENT}_install.tar.gz install cd ../43 mv normal install cp ${FILES}/installation_guide.pdf install ${TAR} cvfz ${BASE_DIRECTORY}/OOo_${VERSION}-slovak-${OOARCHENVIRONMENT}_install.tar.gz install popd # Na Solarisu nebuildíme debug build. Máme pomalý stroj. [ ${OOO_BUILD_SYSTEM} = "Solaris" ] && exit localize -m -l 42 -f ${FILES}/cs_new_debug_bastard.txt localize -m -l 43 -f ${FILES}/sk_new_debug_bastard.txt dmake # # Ladící instalační sady # pushd . rm -rf instsetoo/${OOOUTPATH}* cd instsetoo/util dmake strip=true cd ../${OOOUTPATH}*/42 mv normal install ${TAR} cvfz ${BASE_DIRECTORY}/OOo_${VERSION}-czech-debug-${OOARCHENVIRONMENT}_install.tar.gz install cd ../43 mv normal install ${TAR} cvfz ${BASE_DIRECTORY}/OOo_${VERSION}-slovak-debug-${OOARCHENVIRONMENT}_install.tar.gz install popd