Difference between revisions of "Compiling the new chart module"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Moved this content here from the Chart2 page)
 
 
(10 intermediate revisions by 3 users not shown)
Line 11: Line 11:
 
Vanilla is the "standard" way to compile OOo. To compile OOo the "Vanilla" way,
 
Vanilla is the "standard" way to compile OOo. To compile OOo the "Vanilla" way,
 
you only need to download the sources, unzip them, and follow the instructions given
 
you only need to download the sources, unzip them, and follow the instructions given
on the page [Add a link to the build steps from]. We will give Chart-specific details
+
on this [http://tools.openoffice.org/dev_docs/build_linux.html page]. We will give Chart-specific details
 
about this in the following sections.
 
about this in the following sections.
  
Line 35: Line 35:
  
 
Once you have all the dependencies installed, you will need to download the sources
 
Once you have all the dependencies installed, you will need to download the sources
of OOo. When working on a specific cws (for us, the "chart2mst3" cws) you will need
+
of OOo. When working on a specific cws you will need
 
to follow two steps :
 
to follow two steps :
  
Line 43: Line 43:
 
==== Download the milestone ====
 
==== Download the milestone ====
  
For the chart module, you will need to download the m172 milestone. The milestone
+
For the new chart module, you will need to download the SRC680_m213 milestone or higher.
needed will change from time to time, so stay tuned ;-)
+
  
 
To download the milestone, you have several choices.
 
To download the milestone, you have several choices.
Line 57: Line 56:
 
Some advices :
 
Some advices :
  
I would recommend that you download a pre-packaged version of m172 from the  
+
I would recommend that you download a pre-packaged version from the  
 
following link :
 
following link :
 
http://go-ooo.org/packages/SRC680/
 
http://go-ooo.org/packages/SRC680/
Line 66: Line 65:
 
If you still want to download it from the cvs, you can use the following :
 
If you still want to download it from the cvs, you can use the following :
 
<pre>
 
<pre>
cvs -z3 co -r SRC680_m172 OpenOffice
+
cvs -z3 co -r SRC680_m213 OpenOffice
 
</pre>
 
</pre>
  
Line 72: Line 71:
  
  
Once you downloaded the "standard" sources (also called HEAD), you need to update
+
Once you downloaded the "standard" sources (also called HEAD), you now can update
them because the chart module modifications are in a separated cws called chart2mst3.
+
the CWS modifications.
 
You need to update only the modified modules. To know which modules have been modified,
 
You need to update only the modified modules. To know which modules have been modified,
 
check the  
 
check the  
[http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Id=1074&Path=SRC680%2Fchart2mst3 EIS page related to the chart module.]
+
[http://eis.services.openoffice.org/ EIS page]. Here you can search for your CWS.
On this page, you will find a section called "Modules & Files" which describes the
+
On the CWS page then you will find a section called "Modules & Files" which lists the
 
modified modules.
 
modified modules.
  
Line 84: Line 83:
 
<pre>
 
<pre>
 
cd name_of_the_module
 
cd name_of_the_module
cvs -z3 update -dP -r cws_src680_chart2mst3
+
cvs -z3 update -dP -r cws_src680_XXX
 
</pre>
 
</pre>
 +
 +
wherein XXX is the name of your CWS.
  
 
See also cws-extract from oobuild, if you want/need to
 
See also cws-extract from oobuild, if you want/need to
 
work with diffs (which will get HUGE, though)
 
work with diffs (which will get HUGE, though)
 
Note : cwsclone ??? What's its use ??
 
  
 
=== dependencies ===
 
=== dependencies ===
Line 142: Line 141:
  
 
<pre>
 
<pre>
cd openOffice.org_m172/
+
cd openOffice.org_m213/
 
./bootstrap
 
./bootstrap
 
</pre>
 
</pre>
Line 179: Line 178:
 
<pre>
 
<pre>
 
cd smoketestoo_native/
 
cd smoketestoo_native/
setenv TEMP "/home/pagalmes/workspace/chart2_m172_exec"
+
setenv TEMP "/home/tmp/smoketest"
 
dmake noremove
 
dmake noremove
 
</pre>
 
</pre>
Line 194: Line 193:
 
=== Downloading the sources ===
 
=== Downloading the sources ===
  
 
+
[[Category:Chart2]]
== The errors reported and the solutions for m166. ==
+
 
+
During the compiling step, you will not be able to compile the whole code without
+
facing a small number of issues. Here are the issues we already found and ways to
+
correct them.
+
 
+
 
+
=== ERROR 1 : unoxml, xmerge, xmlhelp, chart2 ===
+
 
+
While compiling, the following error will rise :
+
 
+
<pre>
+
LINK: ../uiconfig/sglobal/statusbar/statusbar.xml -> /home/pagalmes/workspace/chart2_m166/src680-m166/solver/680/unxlngi6.pro/xml/uiconfig/
+
modules/sglobal/statusbar/statusbar.xml
+
Use of uninitialized value in string eq at /home/pagalmes/workspace/chart2_m166/src680-m166/solenv/bin/deliver.pl line 791.
+
LOG: writing /home/pagalmes/workspace/chart2_m166/src680-m166/solver/680/unxlngi6.pro/inc/sw/deliver.log
+
Statistics:
+
Files copied: 137
+
Files unchanged/not matching: 6
+
 
+
4 module(s):
+
        unoxml
+
        xmerge
+
        xmlhelp
+
        chart2
+
need(s) to be rebuilt
+
 
+
Reason(s):
+
 
+
ERROR: error 65280 occurred while making /home/pagalmes/workspace/chart2_m166/src680-m166/xmlhelp/source/com/sun/star/help
+
ERROR: error 65280 occurred while making /home/pagalmes/workspace/chart2_m166/src680-m166/xmerge/source/xmerge
+
ERROR: error 65280 occurred while making /home/pagalmes/workspace/chart2_m166/src680-m166/chart2/source/tools
+
ERROR: error 65280 occurred while making /home/pagalmes/workspace/chart2_m166/src680-m166/unoxml/source/service
+
 
+
Attention: if you build and deliver the above module(s) you may prolongue your the build issuing command "build --from unoxml xmerge xmlhelp chart2"
+
</pre>
+
 
+
=== the solution ===
+
 
+
==== the unoxml problem ====
+
 
+
As explained in issue [http://www.openoffice.org/issues/show_bug.cgi?id=65110 65110],
+
in the file unoxml/prj/build.lst the first line has to be changed to add 'tools' in it :
+
 
+
<pre>
+
ux  unoxml  : '''tools''' offuh cppuhelper LIBXML2:libxml2 NULL
+
ux  unoxml\source\dom    nmake - all ux_dom      NULL
+
ux  unoxml\source\xpath    nmake - all ux_xpath    ux_dom NULL
+
ux  unoxml\source\events    nmake - all ux_events  ux_dom NULL
+
ux  unoxml\source\service  nmake - all ux_service  ux_dom ux_xpath ux_events NULL
+
</pre>
+
 
+
Then, to rebuild, just type :
+
 
+
<pre>
+
cd unoxml; build; cd ../instsetoo_native; build --all
+
</pre>
+
 
+
==== the xmerge problem ====
+
 
+
This is only a problem if you try to compile OOo with Java 1.5
+
The issue  [http://www.openoffice.org/issues/show_bug.cgi?id=59368 59368]
+
explains it in a more detailed way.
+
 
+
To solve this, you only need to apply the patch attached to the issue :
+
 
+
<pre>
+
cd src680-m166
+
patch -p0 < [filename]
+
</pre>
+
 
+
=== ERROR 2 : The InternalDataProvider.cxx include error ===
+
 
+
This error has been reported as issue [http://www.openoffice.org/issues/show_bug.cgi?id=63012 63012] :
+
 
+
<pre>
+
/home/pagalmes/workspace/OpenOffice/chart2/source/tools
+
------------------------------
+
Making: ../../unxlngi6/slo/InternalDataProvider.obj
+
g++ -Wreturn-type -fmessage-length=0 -c -I.  -I. -I../inc -I../../source/inc -I../../inc -I../../unx/inc -I../../unxlngi6/inc -I.
+
-I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/stl -I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/external
+
-I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc -I/home/pagalmes/workspace/OpenOffice/solenv/unxlngi6/inc
+
-I/home/pagalmes/workspace/OpenOffice/solenv/inc -I/home/pagalmes/workspace/OpenOffice/res
+
-I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/stl -I/home/pagalmes/workspace/OpenOffice/solenv/inc/Xp31
+
-I/opt/j2sdk1.4.2_09/include -I/opt/j2sdk1.4.2_09/include/linux -I/opt/j2sdk1.4.2_09/include/native_threads/include -I/usr/X11R6/include
+
-I. -I../../res -I. -g  -O0  -pipe -mtune=pentiumpro -Wno-ctor-dtor-privacy -fvisibility-inlines-hidden -g -fexceptions -fno-enforce-eh-specs
+
-fpic -DLINUX -DUNX -DVCL -DGCC -DC341 -DINTEL -D_STLP_DEBUG -DCVER=C341 -D_USE_NAMESPACE -DNPTL -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR
+
-D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3
+
-DGXX_INCLUDE_PATH=/usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2 -DSUPD=680 -DDEBUG -DDBG_UTIL -DOSL_DEBUG_LEVEL=2
+
-DEXCEPTIONS_ON -DCUI -DSOLAR_JAVA -DSRC680=SRC680  -DSHAREDLIB -D_DLL_  -DMULTITHREAD  -o ../../unxlngi6/slo/InternalDataProvider.o
+
 
+
/home/pagalmes/workspace/OpenOffice/chart2/source/tools/InternalDataProvider.cxx
+
/home/pagalmes/workspace/OpenOffice/chart2/source/tools/InternalDataProvider.cxx
+
/usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2/bits/cpp_type_traits.h:100:
+
erreur: use of ?__false_type? is ambiguous
+
/usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2/bits/cpp_type_traits.h:94:
+
erreur:  first declared as ?struct __false_type? here
+
/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/stl/stl/type_traits.h:65:
+
erreur:  also declared as ?struct _STLD::__false_type? here
+
 
+
[...]
+
dmake:  Error code 1, while making '../../unxlngi6/slo/InternalDataProvider.obj'
+
'---* tg_merge.mk *---'
+
 
+
ERROR: Error 65280 occurred while making
+
/home/pagalmes/workspace/OpenOffice/chart2/source/tools
+
</pre>
+
 
+
 
+
=== The solution ===
+
 
+
The following line at the beginning of the file chart2/source/tools/InternalDataProvider.cxx :
+
 
+
<pre>
+
#include <valarray>
+
</pre>
+
 
+
Has to be put as the first include in the file. No solution has been found for now.
+

Latest revision as of 12:07, 28 March 2010

The first step anyone need to achieve before starting to develop on the chart module is compiling OpenOffice.org with the needed modifications for the new chart module. OpenOffice.org provides two main ways to compile it : the "Vanilla" way and the "OOoBuild" way. Let's explain what they are and the differences between those two ways.

Compiling OpenOffice.org : the theory

Vanilla

Vanilla is the "standard" way to compile OOo. To compile OOo the "Vanilla" way, you only need to download the sources, unzip them, and follow the instructions given on this page. We will give Chart-specific details about this in the following sections.

OOoBuild

To make it simple, OOoBuild is a "wrapper" around the OpenOffice.org build process to make compiling OOo more straight-forward. Some of the enhancements added are :

  • patches for known compiling problems
  • integration with "ccache" and "icecream" to speed-up the process
  • linux distribution specific compiling steps (specific splash screen for Fedora...)

So, to compile OOo with OOoBuild, just just need to download OOoBuild and put the OOo standard sources in a specific directory.

Compiling OpenOffice.org : the practice

Commmon steps

Getting the sources

Introduction

Once you have all the dependencies installed, you will need to download the sources of OOo. When working on a specific cws you will need to follow two steps :

  • downloading the OOo sources at a specific milestone
  • downloading the specific modifications for the cws from the repository

Download the milestone

For the new chart module, you will need to download the SRC680_m213 milestone or higher.

To download the milestone, you have several choices.

  • Download from the cvs servers
  • Download a pre-packaged version
  • Download from the main OOo servers

Have a look at the following page for more explanations : http://wiki.services.openoffice.org/wiki/Getting_It

Some advices :

I would recommend that you download a pre-packaged version from the following link : http://go-ooo.org/packages/SRC680/

This will save you time compared to downloading the cvs version.


If you still want to download it from the cvs, you can use the following :

cvs -z3 co -r SRC680_m213 OpenOffice

Update the CWS modifications

Once you downloaded the "standard" sources (also called HEAD), you now can update the CWS modifications. You need to update only the modified modules. To know which modules have been modified, check the EIS page. Here you can search for your CWS. On the CWS page then you will find a section called "Modules & Files" which lists the modified modules.

For each module (subdir) you will need to do :

cd name_of_the_module
cvs -z3 update -dP -r cws_src680_XXX

wherein XXX is the name of your CWS.

See also cws-extract from oobuild, if you want/need to work with diffs (which will get HUGE, though)

dependencies

First of all before starting to compile anything, you will need to install all the dependencies and tools needed for the compiling steps. On the Tools project page, you should find all the information on the "Building the source" section :

http://tools.openoffice.org/

There, you should read the different sub-sections, they will give you a nice introduction on how everything works. You should also notice that the steps are different on each OS.

Vanilla

Configuring

Once you downloaded all the sources, you can start configuring the build.


cd config_office
./configure

If you forgot to install some dependencies, the configure will remind you which one are lacking. You can check the one needed on the tool page


A nice trick for configuring OOo is to create a script in which you write all the options activated for your build. This helps if you want to see which options where enabled during the build some days after you compiled everything. Here is an example :

#! /usr/bin/batch
./configure  --with-jdk-home="/home/pagalmes/bin/jdk1.5.0_06/"  --with-ant-home="/usr/bin/ant" --with-lang="en fr"

Building the tools (dmake...)

During the compiling step, the compiling process needs some tools to achieve the build. Before compiling, you need to build those tools. For example,

  • dmake
  • ...

To compile the tools, just type :

cd openOffice.org_m213/
./bootstrap

Setting the environment

Before starting to compile OOo, you need to set all the environment variables

tcsh
source LinuxIntelEnv.Set
setenv nodep "TRUE" ; setenv NO_HIDS "TRUE" ; setenv MAXPROCESS 2
rehash
  • nodep  : inhibits generation of dependency files
  • maxprocess : sets the number of parallel dmakes per dir
  • NO_HIDS prevents generation of HIDs (that's used for automated testing)

Compiling (finally...;-)

cd instsetoo_native
build -P2 --dlv_switch -link --all
  • -P2 : fires up more than one dmake in _different_ dirs - thus, you end up with a maximum for 4 parallel compilations
  • --dlv_switch -link : tells deliver not to copy files to solver, but link instead -> saves space

Smoke tests

Once everything compiled, you should launch the "smoke tests". Those are tests to verify that the basic functions of OpenOffice.org work. To launch the smoke tests, issue the following command lines :

cd smoketestoo_native/
setenv TEMP "/home/tmp/smoketest"
dmake noremove

Note : sometimes those tests will fail but you can just ignore them.

OOoBuild

For this section, you should read the part called "Getting started with OOo development" on the wiki : http://wiki.services.openoffice.org/wiki/Main_Page

Downloading OOoBuild

Downloading the sources

Personal tools