<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Build FAQ for OpenOffice.org</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>

<h1>Build FAQ for OpenOffice.org</h1>
Date: 09 April 2003 FAQ

<table border="1" width="100%" cellspacing="0" cellpadding="2" bordercolor="#99ccff" bgcolor="#FFFFFF">
  <td bgcolor="#f0f0f0">
    These faq have been compiled over the span of OpenOffice's lifetime.
    Most of the information is now out of date.
    See <a href="https://wiki.openoffice.org/wiki/Documentation/FAQ">the OpenOffice FAQ page</a> on our official wiki
    for up-to-date information.
    If you find instances that need updating, let us know by sending a note to <a href="mailto:dev@openoffice.apache.org">dev@openoffice.apache.org</a>.
  </td>
</table>

<h3>Table of contents</h3>
<ul>
  <li><a href="#whatsource">What source code will be available at
www.OpenOffice.org?</a></li>
  <li><a href="#platforms">What platforms has OpenOffice been built on?</a></li>
  <li><a href="#build">How does OpenOffice.org build?</a></li>
  <li><a href="#diskspace">How much hard drive space needed for a full
build of
OpenOffice including source?</a></li>
  <li><a href="#howlong">How long does an OpenOffice.org build take?</a></li>
  <li><a href="#staroffice">How do developers work with StarOffice?</a></li>
  <li><a href="#projects">How many projects are there?</a></li>
  <li><a href="#source">How much source code is there?</a></li>
  <li><a href="#missing">What is missing from the release(and why)?</a></li>
  <li><a href="#branch">Can someone explain what these child workspace
are ?</a></li>
  <li><a href="#help">Where do I go to get help?</a></li>
  <li><a href="#aware">What else should I be aware of?</a></li>
  <li><a href="#bugs">Any known build problems?</a></li>
</ul>
<h3>FAQ</h3>
<p><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif">
<a name="whatsource"></a></p>
<p><a name="whatsource"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>What source code will be available at
www.OpenOffice.org?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>The source code for OpenOffice.org will be nearly all the
source code in development
for StarOffice. The source code not available for OpenOffice.org is
source
code or binaries which have been licensed to Sun Microsystems from
external
parties which Sun Microsystems is not entitled to distribute.&nbsp; Any
code which cannot be distributed has been identified and removed. In
order
that OpenOffice.org builds, instructions will be available to source
external
code or the code will be stubbed. OpenOffice.org could benefit from
work in
this area.
      <p>Developers working on StarOffice will continue to commit
changes
to the same CVS tree as accessible at www.OpenOffice.org.
      </p>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="whatsource"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="platforms">
</a></p>
<p><a name="platforms"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>What platforms has OpenOffice been built on?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>OpenOffice.org has been built on Linux (RedHat 8) , Solaris
(Sparc 2.6-2.9) and
WindowsNT.
      <br>
A port for the Mac OS X is currently in development and on going work
is available in the CVS tree.
      <br>
For OS/2, HP/UX and other platforms previously supported, the source
is available but has not been built.
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="platforms"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="build">
</a></p>
<p><a name="build"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>How does OpenOffice.org build?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>Sun Microsystems has made changes to the build environment to
make it possible
to build OpenOffice.org outside the highly customized and optimized
environment
that is used by the development team. Where possible, OpenOffice.org
uses open
source build tools but there may be scope to use more. Source code is
available
for all build tools.
      <p>Although work has been done to make the build experience as
close as
possible to the open source norm, the complexity and size of the
application
means that the build experience is different to the open source norm.
For more details please see <a href="http://tools.openoffice.org#Build">http://tools.openoffice.org#Build</a><br>
      </p>
      <br>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="build"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="diskspace">
</a></p>
<p><a name="diskspace"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>How much hard drive space needed for a full build
of OpenOffice including
source?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>The current recommendation is 3GB.
      <p>The source code is ~400MB
      </p>
      <p>The build requires about 3GB in total including source.
      </p>
      <p>The creation of an installation set requires ~300MB.
      </p>
      <p>Adding symbols to the build will add a further 5 gig
approximately to the build size.
Developers typically only build specific directories with full
debugging for this reason using `build debug=true`
      </p>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="diskspace"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="howlong">
</a></p>
<p><a name="howlong"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>How long does an OpenOffice.org build take?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>Our current experience is that a full build of OpenOffice.org
is approximately
20 hours on a single CPU Pentium III with 256MB of RAM running Linux.
      <p>Using CC="ccache gcc" CXX="ccache g++" has a complete build
cycle about 4 hours on a 1.8Ghz Pentium.
      </p>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="howlong"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="staroffice">
</a></p>
<p><a name="staroffice"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>How do developers work with StarOffice?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>Release Engineering in Sun do a full build of StarOffice once
a week, in
an optimised environment. On successful completion of the full build,
the
latest solver is made available to all developers. Developers build
their
CVS module(s) against the current solver. After code changes,
developers
build the CVS module(s) and "deliver" the shared headers, shared
libraries
and binaries to their copy of the current solver for testing.
      <p>Incompatible changes are allowed between full builds. So that
incompatible
work is not mixed, the name of each shared library/DLL includes the
build
number, which is incremented by one each week.
      </p>
      <p>In order to assist the OpenOffice.org community, Sun plan to
provide a similar
environment because the code base is so large and current developers
use
this. Sun intend to provide one tarball of solver for each of a number
of platforms on a regular basis on www.OpenOffice.org. These will be
known
as milestones.
      </p>
      <p>Therefore the proposed process for development will be :
      <br>
1. Developer downloads milestone solver tarball for given platform
      <br>
2. CVS checkout of the relevant project for the same milestone
      <br>
3. Change code
      <br>
4. Build. (This will build against the contents of solver and, on
successful
completion, deliver the results to solver.)
      <br>
5. Test the new version.
      <br>
6. Submit patch
      </p>
      <p>OpenOffice.org has a large code base. CVS is used as a
synchronisation mechanism
between development teams. API changes in low level CVS modules are
checked
in to give higher level
modules a chance to reflect these. Between (incompatible) milestone
builds it's a common circumstance that API changes have started in low
level modules and not all modules using these APIs have been changed
already. Therefore, the build using the head
revision build may not always be successful.
      </p>
      <p>A new methodology is being introduced now. Head may be a
buildable master workspace shortly.
      </p>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="staroffice"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="projects">
</a></p>
<p><a name="projects"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>How many projects are there?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>Approximately 20 projects will be created for OpenOffice.org.
These projects
are an attempt to facilitate community communication. Examples of
projects
include XML Office, Porting, Localization, Applications, and Build
Tools.
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="projects"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="source">
</a></p>
<p><a name="source"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>How much source code is there?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>OpenOffice.org source will have approx. 30,000 source files.
      <p>OpenOffice.org will have approx.&nbsp; 9,000,000 lines of
code. The majority
of the code is C++.
      </p>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="source"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="missing">
</a></p>
<p><a name="missing"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>What is missing from the release(and why)?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>The source of some external StarOffice components, licensed
to StarOffice,
will not available with the OpenOffice.org source code. These
components include:
      <br>
* L&amp;H International CorrectSpell, Intl. Electronic Thesaurus -
spell checking, international dictionaries &amp; thesaurus
      <br>
* Inso Word for Word - document filters for document formats other
than MS Office
      <br>
* Adabas D - database engine
      <p>Instructions will be available to download external source
code which
cannot be distributed on www.OpenOffice.org
      </p>
      <p>The GPC code is a special case and must be obtained separately
by the OOo developer. See the build guides.
      </p>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="missing"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="branch">
</a></p>
<p><a name="branch"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>Can someone explain what are these child workspaces
are?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>The main points are:
      <ul>
        <li>only fully tested code gets into the main cvs branch -&gt;
less regressions.
        </li>
        <li>all snapshots from the milestone are close to production
quality.
        </li>
        <li>contribution get into the development tree faster (because
review and tests can be made directly on the cvs tree).</li>
      </ul>
More information are available on <a href="http://tools.openoffice.org">http://tools.openoffice.org</a><br>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="branch"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="help">
</a></p>
<p><a name="help"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>Where do I go to get help?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>Firstly you might want to look through the dev@openoffice.apache.org
      <a
 href="//servlets/SummarizeList?listName=dev">mailing
archives</a> for similar problems.
      <p>Secondly you might want to post a message there outlining your
problem. If
you have a more specific question then you will be directed to another
mailing
list specific to your question, like dev@sw.openoffice.org for word
processing
questions</p>
      <p>For a quick question or a chat then you might like to talk on
IRC to other
developers. IRC is not only for developers however quite a few are
there a lot
and can help out with quick questions and good advice.</p>
      <ul>
        <li>server: irc.libera.chat</li>
        <li>channel: #openoffice</li>
        <li>A quick IRC HOWTO:
          <p>first, grab yourself a client:</p>
          <p>For windows, you can use mIRC - http://www.mirc.com</p>
          <p>For *nix - there are lots, but others recommend kvirc
http://www.kvirc.net</p>
          <p>then, once your client is up, you can type in the
commandbar:</p>
          <p>/SERVER irc.libera.chat and after you are logged in,
you can type:</p>
          <br>
/JOIN #openoffice
        </li>
      </ul>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="help"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="aware">
</a></p>
<p><a name="aware"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>What else should I be aware of?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>Most comments are in German and some are in English. In the
future all new comments will be in English.
      <p>There will be a number prerequisites required to download and
build OpenOffice.org. Please see <a
 href="http://tools.openoffice.org#Build">http://tools.openoffice.org#Build</a>
for a full list.
      <br>
      <br>
&nbsp;
      <br>
&nbsp;
      </p>
      </td>
    </tr>
  </tbody>
</table>
</p>
<p><a name="aware"><img src="/branding/images/dotted_line.gif"><img
 src="/branding/images/dotted_line.gif"></a><a name="bugs">
</a></p>
<p><a name="bugs"><img src="/branding/images/q.gif"> <font
 color="#003399"><b>Any known bugs?</b></font>
<br>
<br>
</a>
<table border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td valign="top"><img src="/branding/images/arrow.gif"></td>
      <td>
      <p>We have a few build problems</p>
      <ul>
        <li><a
 href="//issues/show_bug.cgi?id=11386">Bison
1.875</a> - This release has a problem, try to upgrade to bison 1.875a.
        </li>
        <li>Xwindows 4.3 - I know one person that had problems, I don't
know how
'solved' the problems were. Let us know!</li>
        <li>undefined symbol: _Z16XineramaIsActiveP9_XDisplay
          <br>
This is a problem with your headers, add 'extern "C" {' and '}' around
'#include &lt;X11/extensions/Xinerama.h&gt;, and then build through
libvcl644li.so.
        </li>
      </ul>
      </td>
    </tr>
  </tbody>
</table>
</p>
</body>
</html>
