<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hdu</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hdu"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Hdu"/>
	<updated>2026-04-08T06:56:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=235752</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=235752"/>
		<updated>2014-11-27T08:46:38Z</updated>

		<summary type="html">&lt;p&gt;Hdu: XCode 6 has the same extra requirements as XCode5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice from source code follows the &lt;br /&gt;
platform independent [[Documentation/Building_Guide_AOO| building guide]]&lt;br /&gt;
when the build requirements outlined below are fulfilled.&lt;br /&gt;
&lt;br /&gt;
= General build requirements =&lt;br /&gt;
&lt;br /&gt;
Please see the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] page.&lt;br /&gt;
&lt;br /&gt;
= Mac specific requirements for building AOO 4.1 (and newer) =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. For Xcode 5 (or newer) some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| OSX&amp;lt;=10.8 contains the tool directly, for OSX&amp;gt;=10.9 some [[#OSX109|extra steps]] are needed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
= Requirements for Xcode 5 (or newer) =&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Xcode commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|-&lt;br /&gt;
| autoconf&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.bz2&lt;br /&gt;
 tar xvjf autoconf-2.69.tar.bz2&lt;br /&gt;
 pushd autoconf-2.69&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;OSX109&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OSX 10.9 (or newer) specific requirements =&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2&lt;br /&gt;
 tar xvjf tar-1.27.tar.bz2&lt;br /&gt;
 pushd tar-1.27&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=235751</id>
		<title>Documentation/Building Guide/Building on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=235751"/>
		<updated>2014-11-27T08:15:48Z</updated>

		<summary type="html">&lt;p&gt;Hdu: too many building guides...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building OpenOffice 3.x or Apache OpenOffice 4.0 on Mac OSX}}&lt;br /&gt;
[[Category:MacOSX]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;!-- insert comment --&amp;gt;&lt;br /&gt;
= Overview =&lt;br /&gt;
This document explains how to build older OpenOffice source code on Mac OS X systems. &lt;br /&gt;
{{Template:Documentation/Note|&amp;lt;code&amp;gt;$SRC_ROOT&amp;lt;/code&amp;gt; will denote the directory in which the source code of Apache OpenOffice is stored.}}&lt;br /&gt;
{{Template:Documentation/Tip|You are advised to check the release notes for the release you are building to inform yourself about changes since previous releases.}}&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&lt;br /&gt;
To build the office on Mac OS X several requirements/prerequisites have to be fulfilled. &lt;br /&gt;
&lt;br /&gt;
== Mandatory Requirements ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039; version 10.4 (aka Tiger) or later (if using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac 10.4 SDK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XCode&amp;#039;&amp;#039;&amp;#039; version 2.4.1 or any XCode 3. If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].  On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;dmake&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of dmake that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;epm&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of epm (easy package manager) that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.  &lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|XCode 3 and SDK 10.4 is currently required for building trunk or the releases. Work on supporting XCode&amp;gt;=4 is ongoing.}}&lt;br /&gt;
&lt;br /&gt;
== Optional Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unowinreg.dll ===&lt;br /&gt;
&lt;br /&gt;
This library is Windows only but will be packed in the Apache OpenOffice SDK to ensure that it is available on all platforms. The library provides some glue code to setup a working UNO environment for UNO client applications connecting to an office and doing some remote automation via API. The library should be stored in &amp;#039;&amp;#039;main/external/unowinreg&amp;#039;&amp;#039;. Only necessary for building the SDK.&lt;br /&gt;
&lt;br /&gt;
The library can be downloaded under &lt;br /&gt;
* http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recommended tools ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ccache&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If you intend to build Apache OpenOffice several times, you probably can benefit of ccache since it will speed up your future builds. The first time you make a build with ccache you won&amp;#039;t notice it, but the next time the build will go up to five times faster.&lt;br /&gt;
&lt;br /&gt;
You can install it using &amp;#039;&amp;#039;&amp;#039;[http://www.finkproject.org/ Fink]&amp;#039;&amp;#039;&amp;#039;. It is simply named &amp;quot;ccache&amp;quot;. For &amp;#039;&amp;#039;&amp;#039;[http://www.macports.org/ MacPorts]&amp;#039;&amp;#039;&amp;#039; users the package is called &amp;quot;ccache&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t use fink, you can download and build it yourself using the source provided at http://ccache.samba.org/&lt;br /&gt;
&lt;br /&gt;
There are two ways to enable ccache - one is to set environment variables, the other way is to use symlinks.&lt;br /&gt;
&lt;br /&gt;
Using environment variables:&lt;br /&gt;
 export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
 export CXX=&amp;quot;ccache g++&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the symlink approach:&lt;br /&gt;
 # create a directory for the links &lt;br /&gt;
 mkdir ~/bin&lt;br /&gt;
 # create the symlinks pointing to ccache with the name of the compiler&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/gcc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/g++&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/cc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/c++&lt;br /&gt;
 # no all you need to enable ccache is to prepend ~/bin to your PATH&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
for both methody, you can add the &amp;quot;export ...&amp;quot; lines to your ~/.profile - that way you don&amp;#039;t need to manually set it when building. You can still temporarily disable ccache (export CCACHE_DISABLE=1) in case you don&amp;#039;t want to use it.&lt;br /&gt;
&lt;br /&gt;
Since OOo is rather huge, you should increase the cache-size to 1 GB or more &lt;br /&gt;
 ccache -M 1G&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;subversion&amp;#039;&amp;#039;&amp;#039; version &amp;#039;&amp;#039;&amp;#039;1.5.4 or later&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Since OOo&amp;#039;s source code is managed using Subversion currently, you also need the svn client to checkout sources (otherwise you would be bount to source-tarballs that aren&amp;#039;t generated that frequently). You can either compile yourself or use the subversion universal binaries from the [http://subversion.tigris.org subversion project] Version 1.5.4 or later is required because of important fixes related to the merge-feature.&lt;br /&gt;
&lt;br /&gt;
== Get the source and prepare to build it ==&lt;br /&gt;
&lt;br /&gt;
=== Get the source from SVN ===&lt;br /&gt;
&lt;br /&gt;
You need about 4.7 GB for a checkout from the svn repository. Building the source requires another 5GB.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;check out the latest source from svn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
=== One-Time preparation and scripts ===&lt;br /&gt;
&lt;br /&gt;
Apache OpenOffice build environment is configured using the open-source configuration-management package &amp;#039;autoconf&amp;#039;. So you can do your beloved &amp;#039;./configure&amp;#039; command, is now done in the &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; source directory. &lt;br /&gt;
&lt;br /&gt;
To save the configure parameters and use them with different milestones it is useful to create your own build script to configure the environment and to trigger the build.&lt;br /&gt;
&lt;br /&gt;
The directory structure when you have checked out the sources from svn looks like:&lt;br /&gt;
&lt;br /&gt;
 aoo/&lt;br /&gt;
 aoo/main &lt;br /&gt;
 aoo/extras&lt;br /&gt;
 aoo/test&lt;br /&gt;
 aoo/ext_libraries&lt;br /&gt;
 aoo/ext_sources&lt;br /&gt;
&lt;br /&gt;
Move into &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; and configure a minimal environment to build your first version of Apache OpenOffice:&lt;br /&gt;
 &lt;br /&gt;
 cd main&lt;br /&gt;
&lt;br /&gt;
Run the autoconf command to prepare a new configure based on the latest changes in configure.in&lt;br /&gt;
&lt;br /&gt;
 autoconf&lt;br /&gt;
&lt;br /&gt;
Run configure &lt;br /&gt;
&lt;br /&gt;
 ./configure --without-stlport --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
This commands prepares a minimal environment to build the office without any category-b enabled external libraries. A pure Apache license compatible version. See also the configure switches &amp;#039;&amp;#039;--with-dmake-path&amp;#039;&amp;#039; and &amp;#039;&amp;#039;--with-epm&amp;#039;&amp;#039; to specify prebuilt versions of dmake or epm.&lt;br /&gt;
&lt;br /&gt;
Finally you should run bootstrap to trigger further preparations and to create platform specific shell script to setup a working build environment. On Mac OS x for example &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; on a Intel based system.  &lt;br /&gt;
&lt;br /&gt;
=== Build environment with enabled category-b dependencies ===&lt;br /&gt;
&lt;br /&gt;
To prepare a build environment that provides more features and make use of further external libraries which are under copyleft but viral licenses you have to explicitly enable this &amp;#039;&amp;#039;&amp;#039;category-b&amp;#039;&amp;#039;&amp;#039; components.&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
     --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz \&lt;br /&gt;
     --disable-build-mozilla \&lt;br /&gt;
     --without-stlport \&lt;br /&gt;
     --enable-verbose \&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;--enable-category-b&amp;#039;&amp;#039;&amp;#039;\&lt;br /&gt;
     --enable-wiki-publisher&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example build script to simplify user specific configurations===&lt;br /&gt;
As mentioned before to save the configure parameters and use them with different versions it is useful to create your own build script to configure the environment.&lt;br /&gt;
&lt;br /&gt;
Create &amp;#039;build.sh&amp;#039; (to be written) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for unowinreg.dll ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./external/unowinreg/unowinreg.dll ]; then&lt;br /&gt;
    wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  unowinreg.dll found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for moz prebuild libs ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./moz/zipped/MACOSXGCCIinc.zip ]; then&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIinc.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIinc.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIlib.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIlib.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIruntime.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIruntime.zip&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  moz prebuild libs found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! -e  ./configure ]; then&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    autoconf&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    rm ./configure&lt;br /&gt;
    autoconf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### Configure&amp;quot;&lt;br /&gt;
./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
#./configure --with-build-version=&amp;quot;$(date +&amp;quot;%Y-%m-%d %H:%M:%S (%a, %d %b %Y)&amp;quot;) - Rev. $(echo $(svn info) | sed -e &amp;#039;s/^.*Last Changed Rev: //g&amp;#039; -e &amp;#039;s/ .*//g&amp;#039;)&amp;quot; \&lt;br /&gt;
    --disable-build-mozilla \&lt;br /&gt;
    --enable-verbose --enable- category-b --enable-minimizer --enable-presenter-console --enable-wiki-publisher \&lt;br /&gt;
    --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
    --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
./bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put this script into ~/bin and make sure it is executable : &lt;br /&gt;
&lt;br /&gt;
 chmod ug+x ~/bin/build.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;We used the bash shell in all example, since to our belief users of the C-shell are smart enough to figure out the differences anyway. If you want to dig deeper into the build process, please have a look at the description  [http://tools.openoffice.org/build_env.html OpenOffice.org&amp;#039;s Build Environment].&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Doing the build ==&lt;br /&gt;
&lt;br /&gt;
After running configure and bootstrap we should have a working build environment and all necessary scripts should have been created. From now on you can use &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; to prepare a new shell with a working build environment.&lt;br /&gt;
&lt;br /&gt;
=== On Mac Intel ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXX86Env.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P4 &lt;br /&gt;
&lt;br /&gt;
=== On PowerPC ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXPPCEnv.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P2 &lt;br /&gt;
&lt;br /&gt;
=== Comments on above ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO TODO TODO ....&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
if you run into trouble with --dlv_switch (see: {{Bug|77360}})&lt;br /&gt;
&lt;br /&gt;
The main purpose of the &amp;#039;&amp;#039;&amp;#039;bootstrap&amp;#039;&amp;#039;&amp;#039; script is to build (if necessary) the dmake utility used. Dmake once was a unix make-clone made by wticorp but got incorporated into OpenOffice since it was orphaned. For more information about dmake, it&amp;#039;s history and manpage have a look here: http://tools.openoffice.org/dmake/index.html&lt;br /&gt;
&lt;br /&gt;
Sourcing MacOSXPPCEnv.Set.sh is very important not only for building but also for &amp;#039;&amp;#039;&amp;#039;running&amp;#039;&amp;#039;&amp;#039; svdem later on. Here all the Environment-Variables for the Build will be set up. For a detailed description see [[Environment_Variables]]. Please note that on Intel machines, &amp;#039;MacOSXPPCEnv.Set.sh&amp;#039; should be substituted with &amp;#039;MacOSXX86Env.Set.sh&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
This Build process takes on my box (Dual 1.8 GHz G5, 1.5GB RAM) roughly 10 hours, and 3 to 6 hours on Mac Intel (3:30h on a 2GHz DualCore INTEL iMac). Be patient.&lt;br /&gt;
&lt;br /&gt;
If you want to see how the progress on that build  is you can use two &amp;#039;&amp;#039;&amp;#039;build&amp;#039;&amp;#039;&amp;#039; options to get a comfortable view:&lt;br /&gt;
&lt;br /&gt;
 build ... &amp;lt;see above&amp;gt; ... --html --html_path /Users/$USER/Sites&lt;br /&gt;
&lt;br /&gt;
where $USER is your user name. Then you can load in Firefox (not Safari!) the HTML file &amp;#039;&amp;#039;&amp;#039;unxmacxi.pro.build.html&amp;#039;&amp;#039;&amp;#039; via the in Mac OS X included Apache web server or diretctly form the directory &amp;#039;&amp;#039;/Users/$USER/Sites/&amp;#039;&amp;#039;. This file is automatically being updated and is showing the status of the build and also the time needed since the build started.&lt;br /&gt;
&lt;br /&gt;
If you build on Snow Leopard (aka Mac OS X 10.6): Set DYLD_INSERT_LIBRARIES to point to the correct libsqlite3.dylib:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DYLD_INSERT_LIBRARIES=/usr/lib/libsqlite3.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Installing, preparing and running OpenOffice.org&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039; Find the Bundle&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Once the build completed, the final product ( en-US version ) is named :  OOo_3.0.0_*_MacOSXIntel_install.dmg ( for version 3.0beta e.g.) &lt;br /&gt;
&lt;br /&gt;
And is located in instsetoo_native/unxmacxi.pro/OpenOffice/dmg/install/en-US  directory ( replace en-US with your locale )&lt;br /&gt;
&lt;br /&gt;
[[Image:Bundle_Location3.0beta.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Install the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double-click on the *.dmg icon&lt;br /&gt;
* drag the OpenOffice icon into a folder of your choice&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Run the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double click the application icon in that folder&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Screenshots&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Now you can start to work with this [[Aqua_Screenshots | amazing productivity suite]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Contribute by finding, isolating, debugging or solving issues&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Isolate a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Reduce a problem&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
* make a problem reproducable&lt;br /&gt;
* reduce it to a test case that is as small and simple as possible&lt;br /&gt;
* if a problem is specific to a document then please attach it to the issue. A mininal excerpt of the document that still shows the problem is even better.&lt;br /&gt;
* a screenshot of is a good idea if it clearly shows the problem&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Using application switches&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Application switches are often valuable for isolating a problem. Most of OpenOffice.org&amp;#039;s options can be found its Tools-&amp;gt;Options menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Some switches are so special that there is no user interface to change them. They are only useful for debugging and isolating a problem, but they are very valuable a that. So a developer might suggest to isolate a problem by setting an environment variable before running the application. E.g. for isolating problems with the menubar a developer might suggest to set the environment variable [[AQUA_NATIVE_MENUS]] to false. This is done by typing these commands into a terminal:&lt;br /&gt;
* cd &amp;lt;INSTALL_DIR&amp;gt;/OpenOffice.org/Contents/MacOS&lt;br /&gt;
* export AQUA_NATIVE_MENUS=false&lt;br /&gt;
* ./soffice.bin&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Provide a call stack for crash problems&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Please note that bugs involving crashes should provide a description of how to reproduce the problem and a callstack.&lt;br /&gt;
There are several ways to provide the callstack:&lt;br /&gt;
* the preferred method is to use OOo&amp;quot;s builtin [[CrashReporting|crash reporting tool]]&lt;br /&gt;
* developers may provide a [[Providing_a_gdb_backtrace | gdb backtrace]] of the problem&lt;br /&gt;
* if the above two methods don&amp;quot;t work then please attach a file with the details provided by the AppleCrashReporter&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Check against known issues&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Check the list of [http://www.openoffice.org/issues/buglist.cgi?issue_status=UNCONFIRMED&amp;amp;issue_status=NEW&amp;amp;issue_status=STARTED&amp;amp;issue_status=REOPENED&amp;amp;email1=&amp;amp;emailtype1=exact&amp;amp;emailassigned_to1=1&amp;amp;email2=&amp;amp;emailtype2=exact&amp;amp;emailreporter2=1&amp;amp;issueidtype=include&amp;amp;issue_id=&amp;amp;changedin=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=&amp;amp;chfieldvalue=&amp;amp;short_desc=&amp;amp;short_desc_type=fulltext&amp;amp;long_desc=&amp;amp;long_desc_type=fulltext&amp;amp;issue_file_loc=&amp;amp;issue_file_loc_type=fulltext&amp;amp;status_whiteboard=&amp;amp;status_whiteboard_type=fulltext&amp;amp;keywords=aqua&amp;amp;keywords_type=anytokens&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0=&amp;amp;cmdtype=doit&amp;amp;newqueryname=&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;Submit+query=Submit+query open issues]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Report a new issue&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Report [http://qa.openoffice.org/issue_handling/pre_submission.html new issues] after you have [[AquaBuild#Isolate_a_problem | isolated the problem]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Debug a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Debugging problems is often easier in an development environment:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With XCode: [[MacOSX_Debug_OpenOffice.org_using_XCode]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xemacs: [http://www.mikesicotte.com/2007/02/21/debugging-ooo-with-xemacs-and-gdb Michael Sicotte&amp;#039;s blog entry]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that XCode still has some problems with the executable named soffice.bin (because of the dot in the name). The issue has been reported to xcode-users list.&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Current Work in progress (Aqua specific work only)&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
With OOO300 the Aqua port became a mainstream port, so most Aqua issues are handled in regular GSL-Layer childworkspaces instead of dedicated Aqua CWSses. Other CWSses that are purely Aqua specific are being tracked below:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|ogltrans4mac|DEV300}}&amp;#039;&amp;#039;&amp;#039; : Implement the 3D (OpenGL) transitions in Impress ( see :  [[Mac_OS_X_Porting_-_OpenGL_transitions|  OpenGL transitions on Mac OS X ]] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in development&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote03|DEV300}}&amp;#039;&amp;#039;&amp;#039; :  use the contextual menu in presentation mode with Impress. preliminary step&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|hotmac|OOO300}}&amp;#039;&amp;#039;&amp;#039; : fix memory deallocation problems in exit()&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|macosxscanner01|DEV300}}&amp;#039;&amp;#039;&amp;#039; (planned)&lt;br /&gt;
&lt;br /&gt;
All patches that developers have that need testing or peer review should be added here.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in testing (closed for development)&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|macmiscfixes}}&amp;#039;&amp;#039;&amp;#039; : misc fixes for mac&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|maccrashrep}}&amp;#039;&amp;#039;&amp;#039; : support crash reporting for OSX builds&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|quicklookplugin01}}&amp;#039;&amp;#039;&amp;#039; : a plugin for the QuickLook system available in MacOSX from versions 10.5 onwards&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces waiting for integration&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote02|DEV300}}&amp;#039;&amp;#039;&amp;#039; : improve the Apple Remote use with Impress (use MEDIA_COMMAND stuff, improve code robustness, and portability )&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child Workspaces integrated into OpenOffice&amp;#039;s trunk&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
A historical overview of [[Aqua_Integrated_CWS | old Aqua specific ChildWorkspaces]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Known build issues &amp;#039;&amp;#039;&amp;#039;==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Tiger&amp;#039;&amp;#039;&amp;#039;:  no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Snow Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Mountain Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;left&amp;quot; style=&amp;quot;color:grey; font-size:12px&amp;quot;&amp;gt;[[AquaBuild/Some Background | &amp;#039;&amp;#039;&amp;#039;Some Background (what is a CWS, EIS) (click me to know more) &amp;#039;&amp;#039;&amp;#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;External links&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
* [https://issues.apache.org/ooo Apache OpenOffice Issuezilla] : a database of bugs, changes and enhancements &lt;br /&gt;
* There are [[MacOSXPortMeetings | regular meetings]] on IRC (archives are [[Previous_Mac_Meeting_logs | available]]).&lt;br /&gt;
* Apache OpenOffice has a complicated code base. [[Source_code_directories | Here]] is an overview.&lt;br /&gt;
* the official Apache OpenOffice blog is at [https://blogs.apache.org/OOo/]&lt;br /&gt;
* [http://www.cocoadev.com Cocoadev] provides great resources to get up to speed in Cocoa development&lt;br /&gt;
* Pierre Chatelier&amp;#039;s excellent [http://ktd.club.fr/programmation/objective-c.php Objective C for C++ developers] is available in both english and french versions&lt;br /&gt;
* Details about OSX&amp;#039;s [http://developer.apple.com/cocoa Cocoa API] are available in the XCode documentation&lt;br /&gt;
&lt;br /&gt;
[[Category:Aqua]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=235681</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=235681"/>
		<updated>2014-10-08T08:27:40Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Xcode 5 specific requirements */ fixed link for autoconf tarball&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice from source code follows the &lt;br /&gt;
platform independent [[Documentation/Building_Guide_AOO| building guide]]&lt;br /&gt;
when the build requirements outlined below are fulfilled.&lt;br /&gt;
&lt;br /&gt;
= General build requirements =&lt;br /&gt;
&lt;br /&gt;
Please see the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] page.&lt;br /&gt;
&lt;br /&gt;
= Mac specific requirements for building AOO 4.1 (and newer) =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. If you got Xcode 5.x some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| OSX&amp;lt;=10.8 contains the tool directly, for OSX&amp;gt;=10.9 some [[#OSX109|extra steps]] are needed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
= Xcode 5 specific requirements =&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Xcode commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|-&lt;br /&gt;
| autoconf&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.bz2&lt;br /&gt;
 tar xvjf autoconf-2.69.tar.bz2&lt;br /&gt;
 pushd autoconf-2.69&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;OSX109&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OSX 10.9 (or newer) specific requirements =&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2&lt;br /&gt;
 tar xvjf tar-1.27.tar.bz2&lt;br /&gt;
 pushd tar-1.27&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=235176</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=235176"/>
		<updated>2014-05-21T13:56:46Z</updated>

		<summary type="html">&lt;p&gt;Hdu: removed obsolete Xcode2/Xcode3 requirements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice from source code follows the &lt;br /&gt;
platform independent [[Documentation/Building_Guide_AOO| building guide]]&lt;br /&gt;
when the build requirements outlined below are fulfilled.&lt;br /&gt;
&lt;br /&gt;
= General build requirements =&lt;br /&gt;
&lt;br /&gt;
Please see the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] page.&lt;br /&gt;
&lt;br /&gt;
= Mac specific requirements for building AOO 4.1 (and newer) =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. If you got Xcode 5.x some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| OSX&amp;lt;=10.8 contains the tool directly, for OSX&amp;gt;=10.9 some [[#OSX109|extra steps]] are needed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
= Xcode 5 specific requirements =&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Xcode commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|-&lt;br /&gt;
| autoconf&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/autoconf-2.69.tar.bz2&lt;br /&gt;
 tar xvjf autoconf-2.69.tar.bz2&lt;br /&gt;
 pushd autoconf-2.69&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;OSX109&amp;quot;&amp;gt;&lt;br /&gt;
= OSX 10.9 (or newer) specific requirements =&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2&lt;br /&gt;
 tar xvjf tar-1.27.tar.bz2&lt;br /&gt;
 pushd tar-1.27&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234971</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234971"/>
		<updated>2014-05-14T11:29:00Z</updated>

		<summary type="html">&lt;p&gt;Hdu: xcode5 doesn&amp;#039;t contain autoconf anymore&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. If you got Xcode 5.x some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| OSX&amp;lt;=10.8 contains the tool directly, for OSX&amp;gt;=10.9 some [[#OSX109|extra steps]] are needed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for Xcode 5 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Xcode commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|-&lt;br /&gt;
| autoconf&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/autoconf-2.69.tar.bz2&lt;br /&gt;
 tar xvjf autoconf-2.69.tar.bz2&lt;br /&gt;
 pushd autoconf-2.69&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;OSX109&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for OSX &amp;gt;= 10.9 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2&lt;br /&gt;
 tar xvjf tar-1.27.tar.bz2&lt;br /&gt;
 pushd tar-1.27&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234951</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234951"/>
		<updated>2014-05-14T08:09:29Z</updated>

		<summary type="html">&lt;p&gt;Hdu: minor rephrasing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. If you got Xcode 5.x some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| OSX&amp;lt;=10.8 contains the tool directly, for OSX&amp;gt;=10.9 some [[#OSX109|extra steps]] are needed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for Xcode 5 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Xcode commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;OSX109&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for OSX &amp;gt;= 10.9 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2&lt;br /&gt;
 tar xvjf tar-1.27.tar.bz2&lt;br /&gt;
 pushd tar-1.27&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234950</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234950"/>
		<updated>2014-05-14T08:07:40Z</updated>

		<summary type="html">&lt;p&gt;Hdu: minor cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. If you got Xcode 5.x some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| is include in OSX&amp;lt;=10.8, for OSX&amp;gt;=10.9 some [[#OSX109|extra steps]] are needed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for Xcode 5 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Xcode commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;OSX109&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for OSX &amp;gt;= 10.9 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2&lt;br /&gt;
 tar xvjf tar-1.27.tar.bz2&lt;br /&gt;
 pushd tar-1.27&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar&lt;br /&gt;
 popd&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234949</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234949"/>
		<updated>2014-05-14T08:04:33Z</updated>

		<summary type="html">&lt;p&gt;Hdu: gnutar is no longer installed in OSX&amp;gt;=10.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. If you got Xcode 5.x some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
| gnutar&lt;br /&gt;
| is include in OSX&amp;lt;=10.8, for OSX&amp;gt;=10.9 some [[#OSX109|extra steps]] are needed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for Xcode 5 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Install the commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;OSX109&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for OSX &amp;gt;= 10.9 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Get gnutar&lt;br /&gt;
| Run these commands in a terminal&lt;br /&gt;
 curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2&lt;br /&gt;
 tar xvjf tar-1.27.tar.bz2&lt;br /&gt;
 cd tar-1.27&lt;br /&gt;
 ./configure --prefix=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234948</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=234948"/>
		<updated>2014-05-14T07:50:42Z</updated>

		<summary type="html">&lt;p&gt;Hdu: Xcode5 doesn&amp;#039;t directly install the command line tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| Xcode version 4.5 or later.&lt;br /&gt;
| Use the App Store application to get and install it. If you got Xcode 5.x some [[#XCODE5|extra steps]] are needed.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for thas. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XCODE5&amp;quot;&amp;gt;&lt;br /&gt;
== Extra Requirements for Xcode 5 ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|Step&lt;br /&gt;
! What to do&lt;br /&gt;
|-&lt;br /&gt;
| Install the commandline tools&lt;br /&gt;
| run this command in a terminal&lt;br /&gt;
 sudo xcode-select --install&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=234947</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=234947"/>
		<updated>2014-05-14T07:33:01Z</updated>

		<summary type="html">&lt;p&gt;Hdu: unxmacci target was never released (unxmacci 32bit Xode4+ clang based build)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
* Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
* Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
* Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
* Install office&lt;br /&gt;
* Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
==Status==&lt;br /&gt;
This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.  However, there are still some things not explained in the necessary detail on this page:&lt;br /&gt;
* How to use ccache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appeares accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features.  A typical call starts like this&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.  You may want to erase the output of a previous compilation:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step Step-by-Step Building Guide for Different Platforms] =&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=234586</id>
		<title>Office Open XML/Legacy Implementation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=234586"/>
		<updated>2014-03-25T10:34:30Z</updated>

		<summary type="html">&lt;p&gt;Hdu: update repo links to their post-graduation location&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OOXML Basics =&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Office Open XML&amp;quot; is an XML based file format that has been published as [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376]. It is used as default file format by Microsoft Office 2007/2010.&lt;br /&gt;
&lt;br /&gt;
There are plans to support this file format in OpenOffice.org for interoperation with Microsoft Office 2007/2010.&lt;br /&gt;
&lt;br /&gt;
There are 3 major types of formats with 2 minor types as important supplement.&lt;br /&gt;
&lt;br /&gt;
* [[WordprocessingML]] - For word processor documents (file extensions may be docx, docm)&lt;br /&gt;
* [[SpreadsheetML]] - For spreadsheet documents (file extensions may be xlsx, xlsm)&lt;br /&gt;
* [[PresentationML]] - For presentation documents (file extensions may be pptx, pptm)&lt;br /&gt;
* [[DrawingML]] - Used by other markup language to represent graphics data.&lt;br /&gt;
* [[VML]] - A legacy vector markup.&lt;br /&gt;
&lt;br /&gt;
== Packaging Conventions ==&lt;br /&gt;
OpenXML document is a package that consists of a flat collection of &amp;#039;&amp;#039;&amp;#039;&amp;quot;parts&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  Each &amp;quot;part&amp;quot; has a case-&amp;#039;&amp;#039;insensitive&amp;#039;&amp;#039; part name that consists of a slash (/) delimited sequence of segment names such as &amp;quot;/pres/slides/slide1.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For the most part, the ZIP compression is used to package the parts, in which case the term &amp;#039;&amp;#039;&amp;#039;&amp;quot;package&amp;quot;&amp;#039;&amp;#039;&amp;#039; refers to the ZIP archive, and the parts refer to the individual files archived within.  The part name in this case is the file path within the archive.&lt;br /&gt;
&lt;br /&gt;
Each part also has a &amp;#039;&amp;#039;&amp;#039;content type&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;/[Content_Types].xml&amp;#039;&amp;#039;&amp;#039; provides the content type of each part within the archive.&lt;br /&gt;
&lt;br /&gt;
== Relationships ==&lt;br /&gt;
Packages and parts can contains &amp;#039;&amp;#039;&amp;#039;explicit relationships&amp;#039;&amp;#039;&amp;#039; to other parts as well as to external resources.  Every explicit relationship has an ID and a type, and relationship types are named using URIs.&lt;br /&gt;
&lt;br /&gt;
The set of explicit relationships for each package or part is stored in a relationship part whose name (or path) follows a specific convention e.g. the relationship part for a part called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/c.xml&amp;quot;&amp;#039;&amp;#039;&amp;#039; is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/_rels/c.xml.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  As a special case, the relationship part for the package as a whole is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/_rels/.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= AOO.o Implementation =&lt;br /&gt;
&lt;br /&gt;
Spreadsheet and Presentation import are both in the [[Oox]] module.&lt;br /&gt;
Word document import is in the [[WriterFilter]] module.&lt;br /&gt;
&lt;br /&gt;
Some legacy notes:&lt;br /&gt;
&lt;br /&gt;
The initial version of [[Oox]] from the CWS xmlfilter02 has been integrated into SRC680_m243. The continuing [[CWS]] is xmlfilter03 in SRC680. ([http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter03 view the workspace on EIS])&lt;br /&gt;
&lt;br /&gt;
To fetch the oox code from CVS (using CVSROOT is set properly):&lt;br /&gt;
&lt;br /&gt;
 cvs co -r cws_src680_xmlfilter03 -d oox xml/oox&lt;br /&gt;
&lt;br /&gt;
Bonsai is also convenient to follow the changes:&lt;br /&gt;
&lt;br /&gt;
[http://bonsai.go-oo.org/cvsquery.cgi?treeid=default&amp;amp;module=all&amp;amp;branch=cws_src680_xmlfilter03&amp;amp;branchtype=match&amp;amp;dir=xml%2Foox&amp;amp;file=&amp;amp;filetype=match&amp;amp;who=&amp;amp;whotype=match&amp;amp;sortby=Date&amp;amp;hours=2&amp;amp;date=week&amp;amp;mindate=&amp;amp;maxdate=&amp;amp;cvsroot=%2Fhome%2Fooweb%2Fcvsup  the changes done in the last 2 weeks]&lt;br /&gt;
&lt;br /&gt;
== Oox ==&lt;br /&gt;
&lt;br /&gt;
There is some code in [[Oox]] module  from the [[Xml]] project. To fetch the oox code from SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/openoffice/trunk/main/oox aoo/oox&lt;br /&gt;
&lt;br /&gt;
One important note: we use the term &amp;#039;&amp;#039;&amp;#039;fragment&amp;#039;&amp;#039;&amp;#039; in the name of our source files to correspond with what the standard calls &amp;#039;&amp;#039;&amp;#039;part&amp;#039;&amp;#039;&amp;#039;.  For instance, the source file that contains class definition that handles the workbook part in [[SpreadsheetML]] is called workbookfragment.cxx.  This convention is prevalent across all application types within [[Oox]] module.&lt;br /&gt;
&lt;br /&gt;
== Writerfilter ==&lt;br /&gt;
&lt;br /&gt;
To fetch code from [[Writerfilter]] module from SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/openoffice/trunk/main/writerfilter aoo/writerfilter&lt;br /&gt;
&lt;br /&gt;
== Implementation Generalities == &lt;br /&gt;
&lt;br /&gt;
The whole [[Oox]] filter makes use of [[FastParser]] service to implement an event driven [[SAX]] parser.&lt;br /&gt;
&lt;br /&gt;
= How to open in OpenOffice.org 3.4 =&lt;br /&gt;
&lt;br /&gt;
* [[Documentation/FAQ/General/OpeningMSO2007Files|Opening Microsoft Office 2007 files]]&lt;br /&gt;
&lt;br /&gt;
= Various Resources =&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_filters_using_the_XML_based_file_format|OpenOffice filters using the XML based file format]]&lt;br /&gt;
* [http://books.evc-cit.info/ OASIS OpenDocument Essentials]&lt;br /&gt;
* http://blogs.sun.com/GullFOSS/entry/office_open_xml_import_filter&lt;br /&gt;
* [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter03 CWS on EIS]&lt;br /&gt;
* [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA published standard]&lt;br /&gt;
* [http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm Ecma Office Open XML File Formats Standard]&lt;br /&gt;
* [http://blogs.msdn.com/brian_jones/archive/2005/06/20/430892.aspx Brian Jones introduction to the Office 12 File Format]&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=234585</id>
		<title>OpenOffice NetBeans Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=234585"/>
		<updated>2014-03-25T10:22:42Z</updated>

		<summary type="html">&lt;p&gt;Hdu: update repo link to their post-graduation location&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:OOo-Netbeans-Plugin.png|right]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).&lt;br /&gt;
&lt;br /&gt;
= Download and Installation =&lt;br /&gt;
Download the latest version from within NetBeans by clicking on Tools - Plugins. You can find the plugin in the &amp;amp;quot;Available Plugins&amp;amp;quot; section as &amp;amp;quot;OpenOffice.org API Plugin&amp;amp;quot;. Install it and try it out! The configuration is self explanatory, for detailed information see [[OpenOffice_NetBeans_Integration#Configuration|Configuration]]. The plugin appears automatically in Netbeans 6.5.x, 6.7.x, 6.8 (version 2.0.6) but is not listed for later version (up to 7.1). You can download the [http://people.apache.org/~cmarcum/devtools/org-openoffice-extensions-3.0.0.beta.nbm org-openoffice-extensions-3.0.0.beta.nbm] version for NetBeans 7.2 provided by Carl Marcum. This version is under active development and will be made available in the NetBeans plugin manager list when finished. Until then, remember that it is an &amp;#039;&amp;#039;&amp;#039;Beta&amp;#039;&amp;#039;&amp;#039; version.&lt;br /&gt;
&lt;br /&gt;
The source is available in the Apache OpenOffice.org source SVN repository in the &amp;#039;&amp;#039;&amp;#039;devtools&amp;#039;&amp;#039;&amp;#039; tree. The trunk is under development and the tagged 3.0.0.beta will build and run.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Build and Install from Source =&lt;br /&gt;
There is a tagged version of 3.0.0.beta in the SVN repository. To checkout this version using subversion to a directory aoo-netbeans:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
svn co http://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/tags/3.0.0.beta aoo-netbeans&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start Netbeans 7.x then select File -&amp;gt; Open Project and navigate to the aoo-netbeans directory the source was checked out to.&amp;lt;br /&amp;gt;&lt;br /&gt;
In the projects window RMB on project -&amp;gt; Create NBM. The .nbm file will be located in the build sub-directory of the project.&amp;lt;br /&amp;gt;&lt;br /&gt;
Select Tools -&amp;gt; Plugins and select Downloaded Tab -&amp;gt; Add and select org-openoffice-extensions.nbm from project build directory then check box and Install.&lt;br /&gt;
&lt;br /&gt;
Setup AOO Installation and SDK Settings below are still valid.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
Overview of the features included in the current plugin.&lt;br /&gt;
== Project Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New Project...&amp;amp;quot; and choose category &amp;amp;quot;OpenOffice.org&amp;amp;quot; to open a new project. All project types create working code. Once the project wizard is finished, a working&lt;br /&gt;
compilable project is created. It may not do anything, but it can be used&lt;br /&gt;
in OpenOffice.org from the beginning.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE client application project with additional support of the &lt;br /&gt;
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client &lt;br /&gt;
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an office extension package. The wizard collects the necessary information for new &lt;br /&gt;
Calc built-in functions and abstracts from the underlying UNO technology.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[General_UNO_Component_Project_Type|General UNO Component Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a&lt;br /&gt;
UNO component library and an OpenOffice.org extension package. The wizard collects information about services &lt;br /&gt;
and additional optional interfaces which should be implemented. Additional IDL types can also be&lt;br /&gt;
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an &lt;br /&gt;
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New File...&amp;amp;quot; and select &amp;amp;quot;OpenOffice.org&amp;amp;quot; as category to create a new file for an OpenOffice.org project. Note, that the OpenOffice.org category is available in all projects, although it only makes sense to use it in one of the projects stated above.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcu file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcu file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcs file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcs file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UNO idl file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
You can use a file type wizard to create idl files. In the first step, you must select the name location&lt;br /&gt;
and UNO type (e.g. Service or Interface). You can add additional &lt;br /&gt;
information in the second step. When an interface is created, the second step asks about&lt;br /&gt;
the functions that the interface should contain. A complete working idl file is created, and NetBeans provides syntax highlighting. When you choose&lt;br /&gt;
to also create an implementation object (only available for service or interface), a Java skeleton file implementing&lt;br /&gt;
your new idl file will also be created.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Java UNO Object file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This file wizard creates a Java skeleton file that implements all functions defined in an interface or service idl file. If you choose a service, the Java implementation file will also be &lt;br /&gt;
registered in OpenOffice.org when your extension is deployed.&lt;br /&gt;
&lt;br /&gt;
== Create, deploy and debug ==&lt;br /&gt;
These are actions that are available in the context menu of an extension project in the &amp;amp;quot;Project&amp;amp;quot; &lt;br /&gt;
view.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Debug Extension in Target OpenOffice.org&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation. To trigger the registered extension, an appropriate action must be done in OpenOffice.org.&lt;br /&gt;
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deploy and Run OpenOffice.org Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org. Then OpenOffice.org is started.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Create OXT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the &amp;amp;quot;dist&amp;amp;quot; directory of the project.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Publish Extension on OpenOffice.org Website&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The starting page for uploading and publishing your extension on api.services.openoffice.org is loaded in your default web browser.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Jars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension&amp;#039;s classpath. A registered extension in OpenOffice.org can still use the functionality provided there.&lt;br /&gt;
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
Find here links to the specifications of the plugin on the api.openoffice.org page.&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration.odt OpenOffice.org Plugin for NetBeans]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-addon-wizard.odt OpenOffice.org Plugin for NetBeans: Add-On Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-calc-addin-wizard.odt OpenOffice.org Plugin for NetBeans: Add-In Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-component-wizard.odt OpenOffice.org Plugin for NetBeans: Component Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-debug-component.odt OpenOffice.org Plugin for NetBeans: Debug Feature]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-new-idl-type.odt OpenOffice.org Plugin for NetBeans: IDL type support]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-description-xml.odt OpenOffice.org Plugin for NetBeans: Support description.xml]&lt;br /&gt;
&lt;br /&gt;
= Working with the plugin =&lt;br /&gt;
The following section describes how you can work with the plugin and describes the requirements because the plugin  make use of some external stuff provided by an office and the OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The plugin works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK). The minimal suggested version is OpenOffice.org 2.0.4. With earlier versions, some features of the plugin will not work.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org OpenOffice.org]&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;[http://www.sun.com/staroffice StarOffice 8]&amp;#039;&amp;#039;&amp;#039; or higher versions of both programs&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK)]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Note that the versions of OpenOffice.org and the OpenOffice.org SDK must match for everything to work.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* As default settings, a standard installation will be found by the plugin - but only if OpenOffice.org together with the SDK are present.&lt;br /&gt;
* When you choose the OpenOffice.org installation and an appropriate SDK is found, that SDK is chosen, the &amp;amp;quot;OpenOffice.org SDK Installation&amp;amp;quot; field is then disabled.&lt;br /&gt;
* If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for projects created from now on only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For changing the office and SDK installation please choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API plugin&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
and select a valid OpenOffice.org and OpenOffice.org SDK installation. &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]&amp;lt;br&amp;gt;&lt;br /&gt;
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.&lt;br /&gt;
&lt;br /&gt;
Note: on Debian/Ubuntu, the OpenOffice.org installation directory is &amp;lt;code&amp;gt;/usr/lib/openoffice/&amp;lt;/code&amp;gt;. For other *nix platforms the location may vary, but you can find the location by inspecting the shell script &amp;lt;code&amp;gt;/usr/bin/ooffice&amp;lt;/code&amp;gt; to see where the &amp;lt;code&amp;gt;ooqstart&amp;lt;/code&amp;gt; executable is in your installation.&lt;br /&gt;
&lt;br /&gt;
== Working with new Project Types ==&lt;br /&gt;
The plugin integrates four new project types under the category &amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Add-On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Calc Add-Ins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Client Application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;File -&amp;gt; New Project -&amp;gt; OpenOffice.org -&amp;gt; &amp;lt;project_type&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
For more details about the project types please take a look at&lt;br /&gt;
*[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org UNO Client Application Project Type]]&lt;br /&gt;
*[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&lt;br /&gt;
*[[General_UNO_Component_Project_Type|OpenOffice.org Component Project Type]]&lt;br /&gt;
*[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&lt;br /&gt;
&lt;br /&gt;
== Migrate Projects ==&lt;br /&gt;
To migrate projects from an older version of the plugin to a new one is not necessary - the plugin itself will take care of that: build-uno-impl.xml and the project-uno.properties are updated, when updated versions of these files are needed for new features of the updated plugin. Note that build-uno-impl.xml will be overwritten, but project-uno.properties not. In the properties file, only new entries are added, existing ones are kept as they are. The update of the files happens when an old project is opened with a new version of the plugin and for all opened projects when the new plugin is downloaded and installed.&lt;br /&gt;
&lt;br /&gt;
When migrating from one Office version to another (or porting a project across platforms), only a library has to be changed, called &amp;amp;quot;OpenOffice.org &amp;lt;version_number&amp;gt;&amp;amp;quot; (or &amp;amp;quot;StarOffice &amp;lt;version_number&amp;gt;&amp;amp;quot;). Choose &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Libraries&amp;#039;&amp;#039;&amp;#039; to get an overview of the existing libraries. A library is created when a valid OpenOffice.org and OpenOffice.org SDK is selected in &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API Plugin&amp;#039;&amp;#039;&amp;#039; (See [[OpenOffice_NetBeans_Integration#Configuration|Configuration]] for more details).&lt;br /&gt;
* To change the library, click right on the project in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window and open the properties. Select &amp;#039;&amp;#039;&amp;#039;Libraries&amp;#039;&amp;#039;&amp;#039; as category and remove the one that points to the old installation and add the new one.&lt;br /&gt;
* When porting the project across platforms, NetBeans notifies that a reference problem exists. The steps for changing the libraries also help in this case.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Missing Features ==&lt;br /&gt;
&lt;br /&gt;
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.&lt;br /&gt;
* &amp;amp;quot;Red Dot Problem&amp;amp;quot;: When you have created a project that supports own idl files (e.g. a Clac AddIn), a &amp;amp;quot;clean&amp;amp;quot; on the project will produce &amp;amp;quot;red dots&amp;amp;quot; that show that imported functionality is missing. The cause for this is the deleted jar file with the idl types that are used in your project. Although this does not seem to be the case, a compile will work and solve the problem. Sometimes the signs appear when &amp;amp;quot;clean and build&amp;amp;quot; is chosen - here the compiled idl files exist, but NetBeans does not recognize that. Open the offending Java file to solve that. Solution: compile idl files in the background and produce a &amp;amp;quot;shadow&amp;amp;quot; jar file in a temp directory that can be used even if the &amp;amp;quot;official&amp;amp;quot; file in the &amp;lt;project_name&amp;gt;/dist folder is deleted.&lt;br /&gt;
* With NetBeans versions at least 6.1 there is an update problem regarding NetBeans property sheets and node views: property sheet changes are not reflected in the node view. Seems like the notify mechanism for these updates has changed.&lt;br /&gt;
&lt;br /&gt;
= Releases =&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=5 cellspacing=0 border=1 style=&amp;quot;border-collapse:collapse; margin-left: 3em; border-color: #333;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #DEDEDE;&amp;quot;&lt;br /&gt;
| Release Version || Planned Release Date || Release Date || Planned Features&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.0 || 05/08/07 || 05/08/07 || -&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1 || 09/01/07 || 09/18/07 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1| see 1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.1 || 03/08 || 03/20/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.2 || 04/08 || 04/30/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.2]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.3 || 06/30/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.3]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0 || 09/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_2.0| see 2.0]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.3 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.4 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.5 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.6 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.7.alpha || - || - || changes to support NetBeans 6.9, opnly available in the file section of the API project, [http://api.openoffice.org/files/documents/22/4772/org-openoffice-extensions-2.0.7.alpha.nbm org-openoffice-extensions-2.0.7.alpha.nbm]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;Detailed download statistics can be found [[OpenOffice_NetBeans_Integration/Releases/Download_Statistic| here]] (not up-to-date)&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Releases/Release_1.2#Current_issues_concerning_NetBeans_6|Issues]] for using the plugin with NetBeans 6.&lt;br /&gt;
&lt;br /&gt;
= Planned Features =&lt;br /&gt;
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.&lt;br /&gt;
&lt;br /&gt;
== New Project Types ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_SmartTag_Project_Type|OpenOffice.org SmartTag Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will simplify the development of SmartTags for the OpenOffice.org Writer application.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type should create a &amp;#039;&amp;#039;Library Wrapper Module&amp;#039;&amp;#039; to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.&lt;br /&gt;
&lt;br /&gt;
== Common Features ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Editor for xcu files&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.&lt;br /&gt;
&lt;br /&gt;
= Quality Assurance =&lt;br /&gt;
&lt;br /&gt;
If you find bugs please submit a new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=DEFECT issue] in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration_QA|Schedule for OpenOffice.org NetBeans Integration QA ]]&lt;br /&gt;
&lt;br /&gt;
= Localization =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Localization|Localization Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Things to be done =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/To-Dos|ToDo list]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
We will continuously extend and improve the plugin in the future and your feedback is welcome and highly appreciated. We would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).&lt;br /&gt;
&lt;br /&gt;
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NetBeans]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Effort]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Object_Inspector&amp;diff=234584</id>
		<title>Object Inspector</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Object_Inspector&amp;diff=234584"/>
		<updated>2014-03-25T10:12:04Z</updated>

		<summary type="html">&lt;p&gt;Hdu: update repo link to post-graduation location&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Object Inspector is an OpenOffice.org extension created to help the developer to inspect arbitrary UNO-Objects. &lt;br /&gt;
UNO provides a service-oriented API with abstract service descriptions exporting defined interfaces. The capabilities of a UNO Object do not open up to the developer at design time, mainly due to several &amp;quot;deficiencies&amp;quot;. &lt;br /&gt;
Please note that the Object Inspector is still under development.&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
Generic interfaces like [http://api.openoffice.org/docs/common/ref/com/sun/star/beans/XPropertySet.html XPropertySet] or [http://api.openoffice.org/docs/common/ref/com/sun/star/container/XIndexAccess.html XIndexAccess] do not define their exact return value. Service descriptions that export these interfaces mostly do not contain such information either.&lt;br /&gt;
&lt;br /&gt;
It is not always clear at design time which services a UNO object actually supports.&lt;br /&gt;
&lt;br /&gt;
Documentation bugs: as service descriptions do not always show up all actually exported interfaces or properties, there may be a certain difference between the theoretical and the practical capabilities of a UNO object.&lt;br /&gt;
&lt;br /&gt;
== The Solution ==&lt;br /&gt;
&lt;br /&gt;
The conclusion is that a runtime inspection is necessary to determine what respective capabilities a UNO object actually has. &lt;br /&gt;
The Object Inspector is an OpenOffice.org extension that has been evolved from the ancient instance inspector that is part of the OpenOffice.org SDK. It displays the total capabilities of a &amp;quot;living UNO-object&amp;quot; such as all supported services, exported interfaces, and their respective methods and properties in a TreeView window.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The Object Inspector may be installed using the package manager (menu &amp;quot;Tools/Options&amp;quot;) by adding the package from [http://api.openoffice.org/Projects/ObjectInspector/Inspector.oxt Inspector.oxt] . &lt;br /&gt;
&lt;br /&gt;
Together with the new package a new toolbar is added from which the object inspector may be started. &lt;br /&gt;
The initial UNO object is the document of the active frame. The UNO object of this document is represented by the root node of the treelist control. Expanding this node will create subnodes referencing all subordinate objects, properties, methods and other values of the root object. All this information is presented in various facets:&lt;br /&gt;
&lt;br /&gt;
Methods of UNO objects are presented as subnodes below a &amp;quot;Method&amp;quot; node. All methods are listed below this node, no matter what their parental interfaces are.&lt;br /&gt;
&lt;br /&gt;
Properties of UNO objects are presented as subnodes below a &amp;quot;Properties&amp;quot; node. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Interface&amp;quot; nodes offer a view to all methods by arranging them under their respective interface.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Service&amp;quot; nodes offer a view to all supported services of a UNO object and their respectively exported interfaces and properties.&lt;br /&gt;
&lt;br /&gt;
Expanding any arbitrary subnode will inspect the UNO object that is represented by the node in the same way as described above.&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
&lt;br /&gt;
[[Image:ObjectInspector.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Calling from a Basic Macro ===&lt;br /&gt;
&lt;br /&gt;
The Object Inspector may be instantiated within a Basic script as can be seen in the following examplary script, where the current document is inspected:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub Main&lt;br /&gt;
	oInspector = createUnoService(&amp;quot;org.openoffice.InstanceInspector&amp;quot;)&lt;br /&gt;
	oInspector.inspect(ThisComponent, &amp;quot;My Document&amp;quot;)&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode generation ===&lt;br /&gt;
&lt;br /&gt;
The Object Inspector is also able to generate Sourcecode snippets that show how to:&lt;br /&gt;
&lt;br /&gt;
* query an interface (if necessary in the selected language)&lt;br /&gt;
* invoke a method&lt;br /&gt;
* retrieve a property value&lt;br /&gt;
&lt;br /&gt;
Currently there are code generators for Java, C++, Python and Basic. The resulting code is not perfect, but &amp;#039;&amp;#039;should&amp;#039;&amp;#039; compile well. See [[ObjectInspectorComparison|Object Inspector Comparison]].&lt;br /&gt;
&lt;br /&gt;
=== IDL help ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Currently broken&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user may retrieve help about selected nodes from the IDL files of the respective interface and service descriptions.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
&lt;br /&gt;
You will find the Object Inspector source code within the OpenOffice.org Subversion Repository:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://svn.apache.org/repos/asf/openoffice/trunk/main/odk/examples/java/Inspector/&lt;br /&gt;
&lt;br /&gt;
The checked in source contains a complete NetBeans project, so that one can immediately start hacking around. Feel free to commit bugfixes and changes or contact cli(at)openoffice.org if you like to take over the project.&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
&lt;br /&gt;
The Object inspector is still under development and the following list points to some known unresolved defects.&lt;br /&gt;
&lt;br /&gt;
* Filtering is slow and uncomfortable as nodes are collapsing and need to be expanded manually&lt;br /&gt;
* IDL help is not working (including context sensitive help)&lt;br /&gt;
* C++ code not properly generated (it was better with previous version). [[Programming_OOoWriter#Going_further_with_Inspector|Read more here]] particularly [[Programming_OOoWriter#Java_Inspector_2| Java Inspector 2]] section.&lt;br /&gt;
&lt;br /&gt;
=== Future Enhancements ===&lt;br /&gt;
&lt;br /&gt;
* Invocation of methods with complex parameters should be implemented. It should be implemented in several steps&lt;br /&gt;
** Implementation of Array parameters with primitive elements.&lt;br /&gt;
** Implementation of structs.&lt;br /&gt;
** Implementation of an input mask to refer to UNO-Objects as method parameters.&lt;br /&gt;
**Consider multidimensional arrays as method parameters and for return values.&lt;br /&gt;
&lt;br /&gt;
* An additional UNO GUI should be created, so that the extension integrates well in OOo and NetBeans. The existing model can be easily adapted to another GUI, hopefully.&lt;br /&gt;
&lt;br /&gt;
* Interfaces that are exported by an UNO object although not being exported by any of the supported services should be distinguished from the other interfaces. There should be displayed some kind of alert as their usage is potentially hazardous, because it is merely based on an implementation detail.&lt;br /&gt;
&lt;br /&gt;
* Add a &amp;quot;Container&amp;quot; meta node that can be expanded to retrieve information about Elements. This node is only applicable when the UNO object also depicts a container that exports interfaces like XIndexAccess.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [http://api.openoffice.org/servlets/ProjectDocumentList?folderID=636&amp;amp;expandFolder=636&amp;amp;folderID=0  Object Inspector binary file]&lt;br /&gt;
* [[ObjectInspectorComparison|Object Inspector Comparison]]&lt;br /&gt;
* [[Constructing_Helpers#Reflection_Helper|C++ Reflection Helper]]&lt;br /&gt;
* Bernard Marcelly&amp;#039;s [[Extensions_development_basic#Xray_tool|XRay tool description]] in this wiki.&lt;br /&gt;
* [http://extensions.services.openoffice.org/project/MRI MRI an Object Inspector] written on Python from the Extension Website.&lt;br /&gt;
* [[IDL_Files_and_Cpp#Core_reflection_service__and_its_Interfaces| Core Reflection Service]]&lt;br /&gt;
* [[IDL_Files_and_Cpp#Using_Java_Inspector|Using Java Inspector]] (C++ and AOOBasic)&lt;br /&gt;
* Using [[Programming_OOoWriter#Going_further_with_Inspector|the new object inspector]] with AOOWriter&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Aw080_documentation&amp;diff=234583</id>
		<title>Aw080 documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Aw080_documentation&amp;diff=234583"/>
		<updated>2014-03-25T10:09:37Z</updated>

		<summary type="html">&lt;p&gt;Hdu: update repo link to post-graduation location&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Branch aw080 ==&lt;br /&gt;
&lt;br /&gt;
This document describes the branch aw080 and changes done there up to now (18th May 2012). The branch (now at Apache under https://svn.apache.org/repos/asf/openoffice/branches/alg/aw080) has a quite long history, I started developing it back at Oracle times. It is intended to move quite some stuff forward to get a better, faster and more stable DrawingLayer.&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
A presentation I held about this can be found here [[Media:ArminVortragIV.odp]]. It contains more or less a condensed (but still big) version of the following pages. At the time of doing the presentation, the diff to the trunk was about 340.000 lines.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
The branch is following a mixture of goals, all intended to overcome some pretty old limitations of the DrawingLayer in the OpenOffice code. The codebase is now nearly 20 years old and was extended by quite some people. Naturally, these used all their own styles and ideas to do so and had various backgrounds (e.g. knowing about linear algebra or not). Together with the bugfixes done (which is good) sometimes by people not knowing the basic principles of the module (which is not good) quite some non-optimal places were changed and leaded to non-optimal situations. The DrawingLayer itself has to be seen as a big, very central component and can be split at least in three basic parts: &lt;br /&gt;
&lt;br /&gt;
#The DrawingLayer Core which defines the DrawingLayer Model&lt;br /&gt;
#The Renderer which is responsible for visualisation of the Model&lt;br /&gt;
#The Controller which implements and offers all basic interactions with Drawinglayer objects, including Drag&amp;amp;Drop and others. &lt;br /&gt;
&lt;br /&gt;
There are currently ca. 14 users of Drawinglayer, not only the visible applications but also Dialogs and various others. All these have to be taken care of and being adapted when making changes to DrawingLayer. All in all it&amp;#039;s like a gordian knot and it&amp;#039;s hard to even find parts to cut out and to replace. The main users are the Draw/Impress application, the DrawingLayer is more or less the basic Application on which these are based.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
The goals fall in different categories:&lt;br /&gt;
&lt;br /&gt;
#Reworks&lt;br /&gt;
#Cleanups&lt;br /&gt;
#Simplifications&lt;br /&gt;
#Restructurings&lt;br /&gt;
#Modernizations&lt;br /&gt;
&lt;br /&gt;
It has shown that it is impossible to move the DrawingLayer code forward with just one goal in mind. The dependencies are too huge; often when trying to cleanup one aspect you stumble over something else which is in the way and needs to be changed first; usually this extends to closed circles and thus prevents the changes. The goal for aw080 is to make as view as necessary compromizes to do this, but also to be brave in breaking those dependencies; with each change the first thought should be: How would this look in an ideal Drawinglayer? This gives the necessary global overview to even change things in the right direction without seeing the whole picture. To do so it is necessary to have an ideal picture of the DrawingLayer, something I needed years to develop the needed overview. This alone shows that it&amp;#039;s not too well structured.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
The branch is based on work done already, namely CWS (ChildWorkSpace, comparable with a branch) aw033 (very technical docu about it can be found here) and sume successors using the changes. It added Primtives, ViewObjectContacts and lead – together with extensions in VCL – to AntiAliasing. It already cut some places in that gordian knot and prepared the way to continue with aw080. It represents a good in-between break in the renewal of the Drawinglayer. From my overview it should be roughly the 2nd third of needed changes to get it to a future-proof state where using it further will be possible and useful.&lt;br /&gt;
&lt;br /&gt;
== Changes done ==&lt;br /&gt;
&lt;br /&gt;
I will now try to list the changes already done in aw080 and comment them. I will use no special order. This is not easy, it already is made up of 3000 changed files, the diff has 289031 lines (not even the current one, there happened more until today). I will also not be able to list all changes done but will concentrate on the bigger ones which stand for fundamental changes.&lt;br /&gt;
I may have roughly added 80% of the changes. For better readability I have splitted them into three categories:&lt;br /&gt;
&lt;br /&gt;
#[[Paradigm changes]]&lt;br /&gt;
Changes that deeply influence relationships of objects between each other or principally different handling of model data, relationships of objects or processing of data.&lt;br /&gt;
#[[Double precision changes]]&lt;br /&gt;
Changes that influence the used number format, mainly changes from unsigned 32-bit to floating point, including usages of Linear Algebra solutions for object transformations.&lt;br /&gt;
#[[Other changes]]&lt;br /&gt;
Changes that apply to cleanup of old stuff, better readability and/or functionality and speed.&lt;br /&gt;
&lt;br /&gt;
== Things to be done ==&lt;br /&gt;
&lt;br /&gt;
This is definitely work in progress. The changes need to be tested carefully before aw080 can be reintegrated. While the built version already runs stable, a lot of investigations and fixes in not yet working properly mechanisms has to be done before it can be integrated. There will be no further deep and basic paradigm changes (at least I have none planned), but stabilizing and finishing the current changes will still take some work. Also, the overhaul of all SdrObjects is not finished yet. There also needs to be taken care for connector stuff, glue points and other special things which are often forgotten, but need to be taken into account, too.&lt;br /&gt;
There are e.g. the export filters to various formats which need to take care of the fact that now objects may be mirrored in X and/or Y. Since the old mechanism was to apply the mirroring to the object geometry this needs to be taken care of.&lt;br /&gt;
I will certainly start to provide test builds as soon as the branch is stable enough and stabilization is far enough (short: I see no big problems anymore by just playing around with it). This will be the time where Your help will be deeply needed and welcome! Be prepared, but it will take some more time.&lt;br /&gt;
I also got a question already how this will influence DrawingLayer performance. There will not be too many boosts, but quite some due to the changes for broadcasting and the changes for primitive creation.&lt;br /&gt;
For questions please use the Apache OpenOffice development list! When more questions arrive, it will be worth to add a Q&amp;amp;A section to this page eventually.&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
        Armin&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Symphony&amp;diff=234575</id>
		<title>Symphony</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Symphony&amp;diff=234575"/>
		<updated>2014-03-24T13:40:13Z</updated>

		<summary type="html">&lt;p&gt;Hdu: replaced link to the incubator repository&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IBM announced plan to contribute Symphony code to Apache Software Foundation on July 15, 2011. &lt;br /&gt;
The the code is formally ready on 18 Jun 2012.  &lt;br /&gt;
&lt;br /&gt;
This page is an introduction of the code contribution and how it can be used. &lt;br /&gt;
&lt;br /&gt;
==Introduction of the code base==&lt;br /&gt;
&lt;br /&gt;
Symphony is quite like OpenOffice with an Java Wrapper. The code contribution doesn&amp;#039;t include the Java wrapper which is based on Eclipse. So if you try with the binary build provided below, you will see the property sidebar, but not the MDI view in Symphony.&lt;br /&gt;
&lt;br /&gt;
==Where to get the source code==&lt;br /&gt;
&lt;br /&gt;
The code is now ready at&lt;br /&gt;
&lt;br /&gt;
https://svn.apache.org/repos/asf/openoffice/symphony/trunk&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;IMPORTANT:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You still need get some extra source modules from AOO3.4 to make the code base buildable, which includes main/ext_libraries, main/ext_sources.  And icu 4.8.1 source can be download from http://download.icu-project.org/files/icu4c/4.8.1/icu4c-4_8_1-src.tgz, then change it&amp;#039;s name to af36f635271a239d76d038d6cf8da8df-icu4c-4_8_1-src.tgz and put it in main/ext_sources directory.&lt;br /&gt;
&lt;br /&gt;
==Build guide==&lt;br /&gt;
&lt;br /&gt;
Please follow [http://wiki.services.openoffice.org/wiki/How_to_build_Symphony%27s_source_code this guide] to build Symphony&amp;#039;s source code.&lt;br /&gt;
&lt;br /&gt;
==The binary build==&lt;br /&gt;
&lt;br /&gt;
You can build this out yourself by following the build guide. You can also get it from link below.&lt;br /&gt;
&lt;br /&gt;
*[http://people.apache.org/~zhangjf/symphony/build Symphony binary installation package]&lt;br /&gt;
&lt;br /&gt;
Please notice that if you have Apache OpenOffice.org 3.4 installed already, you need uninstall it first. Or you can install it parallel to Apache OpenOffice 3.4 by following guide&lt;br /&gt;
*[http://wiki.services.openoffice.org/wiki/Run_OOo_versions_parallel described here]&lt;br /&gt;
&lt;br /&gt;
==Feature Description==&lt;br /&gt;
*[[Symphony contribution]]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: What is the difference between this build and Symphony?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: Since the java part of Symphony is not contributed. Feature, like MDI, Home page and Embedded browser in Symphony won&amp;#039;t be available in this build.&lt;br /&gt;
And menu, toolbar, statusbar also have different look&amp;amp;feel from that in Symphony. &lt;br /&gt;
&lt;br /&gt;
The Mail Merge panel in Symhony is implented in Java. It is also updated with related part in OO.o3.x.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: I can find two kinds of help content in the source code, why?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: The help system of Symphony 3.1 is eclipse based.  The Symphony help content can&amp;#039;t be consumed by AOO directly. AOO or OO.o help mechanism is used in the code contribution.&lt;br /&gt;
&lt;br /&gt;
OO.o 3.x help content is there to be packaged in the the binary build of the &amp;quot;Symphony code contribution&amp;quot;. Symphony 3.1 help content is there for reference of Symphony features.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: Does this contain everything we get in AOO 3.4? Or what is the difference?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: This is not based on AOO 3.4. Symphony 3.0 was developed based on OO.o3.1. And while it goes some improvments from AOO 3.2, 3.3 and 3.4beta were also integrated. Before it was contributed to ASF, most of changes from AOO 3.4 were also integrated. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Svn_practices&amp;diff=234574</id>
		<title>Svn practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Svn_practices&amp;diff=234574"/>
		<updated>2014-03-24T13:37:54Z</updated>

		<summary type="html">&lt;p&gt;Hdu: replaced links to incubator pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;This page is under review. This line will be removed after it is done.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This page gathered svn practices frequently used by contributors and committers. If you have any advice to this page, please feel free to update it or discuss your idea in ooo-dev mail list.&lt;br /&gt;
&lt;br /&gt;
SVN Client 1.7 is recommanded to use for AOO development. It&amp;#039;s strongly recommended use alternative name for svn&amp;#039;s subcommand, like co-checkout, ci-commit, up-update, di-diff, and so on.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Read-only access==&lt;br /&gt;
*Grab the whole source code from main trunk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Grab a branch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/openoffice/branches/AOO410 aoo410&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Grab a specific directory from a branch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/openoffice/branches/AOO410/main/sw sw&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This gets the source code for Writer module (named &amp;quot;sw&amp;quot;) from the AOO410 branch&lt;br /&gt;
&lt;br /&gt;
*Get the latest changes into your working copy&lt;br /&gt;
&lt;br /&gt;
Change into the working directory such as aoo or sw for the above case and run&lt;br /&gt;
 svn update&lt;br /&gt;
This command will merge the public changes with the local changes if there are any.&lt;br /&gt;
&lt;br /&gt;
*Update to a specific revision&lt;br /&gt;
&lt;br /&gt;
 svn update -r xxxx&lt;br /&gt;
&lt;br /&gt;
*Check changes history&lt;br /&gt;
&lt;br /&gt;
 svn log&amp;lt;br /&amp;gt;&lt;br /&gt;
 svn log filename&lt;br /&gt;
&lt;br /&gt;
Also show information about the paths that were changed in each displayed revision. &lt;br /&gt;
 svn log -v&lt;br /&gt;
&lt;br /&gt;
Show for specific revision.&lt;br /&gt;
 svn log -r m&lt;br /&gt;
&lt;br /&gt;
*Organize logical changes by changelist&lt;br /&gt;
Use cl instead of changelist for convenience.&lt;br /&gt;
&lt;br /&gt;
 svn changelist tocload-feature filename1 filename2 ...&lt;br /&gt;
&lt;br /&gt;
*Check changes and create a patch from local changes&lt;br /&gt;
When creating patch, combine all your changes into a patch.&lt;br /&gt;
&lt;br /&gt;
The path in patch should at least start in &amp;quot;main&amp;quot; or top directory.&lt;br /&gt;
&lt;br /&gt;
 svn diff filename1 filename2 &amp;gt; n.patch&lt;br /&gt;
&lt;br /&gt;
*Create patch from a specific revision:&lt;br /&gt;
&lt;br /&gt;
 svn diff -c m &amp;gt; n.patch&lt;br /&gt;
&lt;br /&gt;
*For changes consisting of many revisions n..m use&lt;br /&gt;
&lt;br /&gt;
 svn diff -r m:n &amp;gt; n.patch&lt;br /&gt;
instead.&lt;br /&gt;
&lt;br /&gt;
*Discard local changes and revert to unmodified state&lt;br /&gt;
&lt;br /&gt;
 svn revert&lt;br /&gt;
&lt;br /&gt;
==Write access==&lt;br /&gt;
*Apply patch when review other&amp;#039;s code change&lt;br /&gt;
Make sure current directory is consistent with path in patch, like &amp;quot;main&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 svn patch n.patch&lt;br /&gt;
&lt;br /&gt;
Reverse patch:&lt;br /&gt;
&lt;br /&gt;
 svn patch --reverse-diff n.patch&lt;br /&gt;
&lt;br /&gt;
*Check changes before committing them&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
and / or&lt;br /&gt;
 svn diff&lt;br /&gt;
 svn diff --changelist tocload-feature&lt;br /&gt;
&lt;br /&gt;
*Commit your changes&lt;br /&gt;
Don&amp;#039;t forget to specify the list of files/dirs that are changed to avoid accidentally committing unwanted changes.&lt;br /&gt;
&lt;br /&gt;
 svn commit -m &amp;quot;comment&amp;quot; [filenames]&lt;br /&gt;
 svn commit -m &amp;quot;comment&amp;quot; --changelist tocload-feature&lt;br /&gt;
&lt;br /&gt;
*Committing a patch&lt;br /&gt;
Prepare a commit-comment file (e.g. mychangelog.txt) by using the relevant parts of this template:&lt;br /&gt;
&lt;br /&gt;
   Patch by:&lt;br /&gt;
   Suggested by:&lt;br /&gt;
   Found by:&lt;br /&gt;
   Review by:&lt;br /&gt;
   Tested by:&lt;br /&gt;
&lt;br /&gt;
and then commit it by running either&lt;br /&gt;
 svn commit -F mychangelog.txt [filenames]&lt;br /&gt;
 svn commit -F mychangelog.txt --changelist tocload-feature&lt;br /&gt;
&lt;br /&gt;
*Update Bugzilla&lt;br /&gt;
Update [https://issues.apache.org/ooo/ bugzilla] with revision information for cross reference when you are done with the commit and know the revision numbers.&lt;br /&gt;
&lt;br /&gt;
== Working with a branch ==&lt;br /&gt;
There at least two situations that you need to work with a branch.&lt;br /&gt;
* If the changes you are about to make are complicated or you want to share them with others during development.&lt;br /&gt;
&lt;br /&gt;
* There are interesting upstream branches created by others. For example, after AOO 3.4 is released, a branch for the AOO 3.4.x micro releases was created. &lt;br /&gt;
&lt;br /&gt;
Instead of doing &amp;#039;svn commit&amp;#039; both on trunk and the release branch use &amp;#039;svn merge&amp;#039; if your fix needs to be submitted to both code lines.&lt;br /&gt;
&lt;br /&gt;
There are also other cases in which you don&amp;#039;t want to commit in development mainline directly. &lt;br /&gt;
&lt;br /&gt;
*How to create a branch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 svn copy https://svn.apache.org/repos/asf/openoffice/trunk  \&lt;br /&gt;
           https://svn.apache.org/repos/asf/openoffice/branches/tocloading \&lt;br /&gt;
      -m &amp;quot;Creating a private branch for toc loading of word document.&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Keep a branch in sync&lt;br /&gt;
Subversion is aware of the history of your branch and knows when it split away from the mainline. To perform a sync merge, first make sure your working copy of the branch is “clean”—that it has no local modifications reported by &amp;#039;svn status&amp;#039;. Then simply run:&lt;br /&gt;
&lt;br /&gt;
 $ pwd&lt;br /&gt;
 /home/user/tocloading &lt;br /&gt;
 $ svn merge ^/ooo/trunk&lt;br /&gt;
&lt;br /&gt;
*Reintegrate a branch&lt;br /&gt;
When your new feature is done. It needs to be merged back to mainline. Before do that, sync the brache with mainline and commit your changes. Then&lt;br /&gt;
&lt;br /&gt;
 $ svn merge --reintegrate ^/ooo/branches/tocloading&lt;br /&gt;
&lt;br /&gt;
and commit again&lt;br /&gt;
&lt;br /&gt;
*Remove a branch&lt;br /&gt;
Once a branch is integrated back it has become useless and can be removed.&lt;br /&gt;
&lt;br /&gt;
 $ svn delete ^/ooo/branches/tocloading -m &amp;quot;Remove branch of toc loading&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
SVN Basics&lt;br /&gt;
http://openoffice.apache.org/svn-basics.html&lt;br /&gt;
&lt;br /&gt;
A guide for new committers:&lt;br /&gt;
http://www.apache.org/dev/new-committers-guide.html&lt;br /&gt;
&lt;br /&gt;
Merge Instruction from FreeBSD:&lt;br /&gt;
http://wiki.freebsd.org/SubversionPrimer/Merging&lt;br /&gt;
&lt;br /&gt;
SVN book:&lt;br /&gt;
http://svnbook.red-bean.com/en/1.7/svn-book.html&lt;br /&gt;
&lt;br /&gt;
SVN Best Practices&lt;br /&gt;
http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232973</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232973"/>
		<updated>2014-01-30T13:50:55Z</updated>

		<summary type="html">&lt;p&gt;Hdu: XCode is also available in the App Store&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| XCode version 4.5 or later&lt;br /&gt;
| Use the App Store application to get and install it.&lt;br /&gt;
You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for this. &lt;br /&gt;
|- &lt;br /&gt;
| MacOSX SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are automatically provided by installing XCode 4.5 or newer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232972</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232972"/>
		<updated>2014-01-30T13:09:14Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* for building AOO 4.1 and newer */ XCode&amp;gt;=4.5 provides SDKs compatible with an OSX 10.7 deployment target&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| XCode version 4.5 or later&lt;br /&gt;
| You need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it]&lt;br /&gt;
|- &lt;br /&gt;
| Mac SDK&lt;br /&gt;
| SDKs compatible with OSX 10.7 are provided directly by installing XCode &amp;gt;= 4.5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=232879</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=232879"/>
		<updated>2014-01-22T10:57:30Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Building */ added unxmacci platform&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
* Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
* Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
* Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
* Install office&lt;br /&gt;
* Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
==Status==&lt;br /&gt;
This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.  However, there are still some things not explained in the necessary detail on this page:&lt;br /&gt;
* How to use ccache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appeares accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features.  A typical call starts like this&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacxi&lt;br /&gt;
| MacOSXX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.  You may want to erase the output of a previous compilation:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step Step-by-Step Building Guide for Different Platforms] =&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_Windows&amp;diff=232878</id>
		<title>Documentation/Building Guide AOO/Building on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_Windows&amp;diff=232878"/>
		<updated>2014-01-21T12:01:50Z</updated>

		<summary type="html">&lt;p&gt;Hdu: MSVC2008 with SP1 requirement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on Windows}}&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Windows|This document explains the platform specific details.}}&lt;br /&gt;
For building Apache OpenOffice the [http://www.cygwin.com Cygwin environment] is required.  Cygwin is a set of programs that run on Windows but emulate a complete Unix command line environment. &lt;br /&gt;
&lt;br /&gt;
As compiler we use Microsoft&amp;#039;s Visual C++ 2008 SP1, not the gcc from Cygwin.  Therefore Visual Studio Express/Professional (version 2008 or later) can be used for debugging.&lt;br /&gt;
&lt;br /&gt;
To use this document you should be familiar with a bourne command line interpreter (sh or bash), but you need not be a UNIX shell wizard.&lt;br /&gt;
{{Template:Documentation/Tip|If you have never used a Unix shell, you might want to take a look at the [http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/index.html shell introduction at TLDP].}}&lt;br /&gt;
&lt;br /&gt;
=Build requirements=&lt;br /&gt;
&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 25%&amp;quot;|What&lt;br /&gt;
! Where to get&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|How to install&lt;br /&gt;
|-&lt;br /&gt;
| Windows 7 (recommended), Windows Vista, Windows XP&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cygwin&lt;br /&gt;
| http://www.cygwin.com, &amp;#039;&amp;#039;&amp;#039;32bit version&amp;#039;&amp;#039;&amp;#039;, minimum version: 1.5.10, preferred: current version]&lt;br /&gt;
&lt;br /&gt;
See [[#Setting up Cywin|below]] for setting up cygwin and the required packages.&lt;br /&gt;
| (default)&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1&lt;br /&gt;
| http://www.microsoft.com/en-us/download/details.aspx?id=3138&lt;br /&gt;
&lt;br /&gt;
It brings the Visual Studio 2008 C++ compiler with it.&lt;br /&gt;
&lt;br /&gt;
This is either a DVD image or a net installer. You can either mount the DVD with a suitable tool, burn it do a DVD or use tools like winrar or 7zip to extract files from the ISO file directly. You don&amp;#039;t need to install samples or documentation (saves a lot of disk space). It will also install the .NET Framework 3.5 SDK.  It might be best to install the Windows SDK into the default directory, and if not that into one without capital letters in the path.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)&lt;br /&gt;
| vcredist_x86.exe, download found [http://www.microsoft.com/en-us/download/search.aspx?q=Microsoft%20Visual%20C%2b%2b%202008%20Redistributable%20Package&amp;amp;p=0&amp;amp;r=10&amp;amp;t=&amp;amp;s=availabledate~Descending here]&lt;br /&gt;
It is just packed as it is into the installation package.&lt;br /&gt;
&lt;br /&gt;
The exact download URL may have changed. In that case you have to search Microsoft&amp;#039;s website.&lt;br /&gt;
| main/external/vcredist&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)&lt;br /&gt;
| vcredist_x64.exe, download found [http://www.microsoft.com/en-us/download/search.aspx?q=Microsoft%20Visual%20C%2b%2b%202008%20Redistributable%20Package&amp;amp;p=0&amp;amp;r=10&amp;amp;t=&amp;amp;s=availabledate~Descending here]&lt;br /&gt;
It is just packed as it is into the installation package.&lt;br /&gt;
&lt;br /&gt;
The exact download URL may have changed. In that case you have to search Microsoft&amp;#039;s website.&lt;br /&gt;
| main/external/vcredist&lt;br /&gt;
|-&lt;br /&gt;
| GDI+ Redistributable&lt;br /&gt;
| http://www.microsoft.com/downloads/details.aspx?familyid=6A63AB9C-DF12-4D41-933C-BE590FEAA05A&amp;amp;displaylang=en.  Genuine Windows Validation required.&lt;br /&gt;
| main/external/gdiplus&lt;br /&gt;
|-&lt;br /&gt;
| Runtime libraries 10.0&lt;br /&gt;
| msvcp100.dll and msvcr100.dll for Java 7 support - see issue [https://issues.apache.org/ooo/show_bug.cgi?id=120979 120979].&lt;br /&gt;
Get them from the Microsoft Visual C++ 2010 Redistributable Package (x86) from the Microsoft site - http://www.microsoft.com/en-us/download/search.aspx?q=Microsoft+Visual+C%2b%2b+2010+Redistributable&lt;br /&gt;
| main/external/msvcp100&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| dbghelp.dll&lt;br /&gt;
| http://msdn.microsoft.com/en-us/library/windows/desktop/ms679309%28v=vs.85%29.aspx&lt;br /&gt;
&lt;br /&gt;
The exact download URL may have changed. In that case you have to search Microsoft&amp;#039;s website.&lt;br /&gt;
&lt;br /&gt;
Search for it on your PC or on the web. E.g., it is part of the Windows Driver Kit.&lt;br /&gt;
| main/external/dbghelp&lt;br /&gt;
|-&lt;br /&gt;
| Windows Driver Kit Version 7.1.0&lt;br /&gt;
| http://www.microsoft.com/downloads/details.aspx?id=11800&lt;br /&gt;
&lt;br /&gt;
To enable ATL and ActiveX in the build - it is optional&lt;br /&gt;
&lt;br /&gt;
related configure options are:&lt;br /&gt;
--with-atl-include, --with-atl-lib-dir, --with-mfc-include-dir, --with-mfc-lib-dir&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Microsoft DirectX SDK&lt;br /&gt;
| http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=6812&lt;br /&gt;
&lt;br /&gt;
To enable DirectX in the build - it is optional&lt;br /&gt;
&lt;br /&gt;
related configure option is:&lt;br /&gt;
--with-directx-home&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Unicode NSIS, version 2.46.5&lt;br /&gt;
| http://code.google.com/p/unsis/downloads/detail?name=nsis-2.46.5-Unicode-setup.exe&amp;amp;can=2&amp;amp;q= &lt;br /&gt;
&lt;br /&gt;
If Unicode NSIS is available, a self contained Windows installer is created in addition to the MSI installer files - it is optional&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When building Apache OpenOffice 3.4.x or 4.0.x you need to provide some additional binaries:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Runtime libraries 7.1&lt;br /&gt;
| msvcr71.dll for Mozilla libraries. Search for them on the web or on your PC. These files should be named as all lower case. Sometimes when downloaded they are upper case and this will cause &amp;#039;file not found&amp;#039; errors towards the end of the build))&lt;br /&gt;
| main/external/msvcp71 &lt;br /&gt;
|-&lt;br /&gt;
| Runtime libraries 8.0&lt;br /&gt;
| msvcp80.dll and msvcr80.dll for Mozilla libraries. Search for them on the web or on your PC.&lt;br /&gt;
| main/external/msvcp80&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Remarks=&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|OOo uses some Mozilla libraries. Building the corresponding sources is only possible with the VC2003 compiler so you have to use precompiled libraries that require the msvx71 libraries mentioned above. On Windows the Mozilla libraries are needed only for Mozilla address book support. Unfortunately a bug in the module dependencies makes it necessary that the Mozilla libaries are used anyway as otherwise building the module &amp;lt;tt&amp;gt;xmlsecurity&amp;lt;/tt&amp;gt; fails.}}&lt;br /&gt;
&lt;br /&gt;
= Setting up Cygwin =&lt;br /&gt;
&lt;br /&gt;
Go to http://www.cygwin.com/ and download and install the current 32bit version.&lt;br /&gt;
{{Template:Documentation/Caution|Make sure that you keep the filetype set to “Unix/binary”.}}&lt;br /&gt;
{{Template:Documentation/Caution|Make sure that the PATH variable in your cygwin shell does not contain any unquoted blanks and quotes, otherwise configure will not work}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Additional packages for Cygwin to serve the AOO build ===&lt;br /&gt;
&lt;br /&gt;
Cygwin consists of some basic and a lot of optional packages. As building AOO needs some of these optional packages you have to select them in the installer.&lt;br /&gt;
Here&amp;#039;s a complete list of the required packages:&lt;br /&gt;
* Category Archive:&lt;br /&gt;
** unzip&lt;br /&gt;
** zip&lt;br /&gt;
* Category Devel :&lt;br /&gt;
** autoconf&lt;br /&gt;
** bison&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-g++&lt;br /&gt;
** gperf&lt;br /&gt;
** make&lt;br /&gt;
** patch&lt;br /&gt;
** readline&lt;br /&gt;
** subversion (if you want to use svn inside the cygwin shell to checkout and update your working copy of AOO)&lt;br /&gt;
* Category Net&lt;br /&gt;
** openssh&lt;br /&gt;
** openssl&lt;br /&gt;
* Category Perl&lt;br /&gt;
** perl - see [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO#General_Build_Requirements General Build Requirements] for additional Perl modules&lt;br /&gt;
* Category Shells&lt;br /&gt;
** mintty&lt;br /&gt;
* Category Utils&lt;br /&gt;
** gnupg&lt;br /&gt;
* Category Web&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|The installer will automatically check and download some more packages needed by whose listed here. The whole process takes roughly 20 minutes.}}&lt;br /&gt;
&lt;br /&gt;
=== Breaking links to executable ===&lt;br /&gt;
&lt;br /&gt;
Within the Cygwin Toolkit, some executables might be symlinks: awk.exe and gunzip.exe, tar.exe (in older releases only). This can lead to a break of the build later, and the symlinks should be replaced by copies of the command they link to. &lt;br /&gt;
&lt;br /&gt;
To check this, execute:&lt;br /&gt;
&lt;br /&gt;
 ls -l /bin/awk.exe&lt;br /&gt;
&lt;br /&gt;
whether e.g. awk.exe is a symlink. In version 1.5.24-2 awk.exe is a link to gawk.exe. The shell will show this by putting out “awk.exe -&amp;gt; gawk.exe”. In this case gawk.exe must be copied to awk.exe by executing: &lt;br /&gt;
&lt;br /&gt;
 cd /bin&lt;br /&gt;
 rm awk.exe&lt;br /&gt;
 cp gawk.exe awk.exe&lt;br /&gt;
&lt;br /&gt;
In case you overlook something here or you have a newer Cygwin version with additional symlinks not mentioned here it&amp;#039;s not a problem. You will get a helpful error message about an existing link in the configuration step (configure) later. The message will tell you which link you have to remove and you can do it following the advice given above for the awk.exe/gawk.exe pair.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing additional perl modules in cygwin ===&lt;br /&gt;
&lt;br /&gt;
As explained some perl modules must be installed with CPAN. The necessary command in the cygwin shell is&lt;br /&gt;
&lt;br /&gt;
 perl -MCPAN -e shell&lt;br /&gt;
&lt;br /&gt;
If this command is executed the first time CPAN will ask for configuration. Choose autoconfiguration. &lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution|Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the &amp;#039;&amp;#039;CPAN build and cache directory&amp;#039;&amp;#039;, change the default suggestion to &amp;lt;tt&amp;gt;/cpan&amp;lt;/tt&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
At the end the CPAN shell appeared and is ready to accept commands for installations. Each module is installed by typing &amp;lt;code&amp;gt;install $MODULENAME&amp;lt;/code&amp;gt;. The modules that must be installed are:&lt;br /&gt;
&lt;br /&gt;
* Archive::Zip&lt;br /&gt;
* LWP::UserAgent&lt;br /&gt;
* XML::Parser (though it seems that this is already installed; doesn&amp;#039;t hurt to do it)&lt;br /&gt;
&lt;br /&gt;
CPAN will detect if a selected module depends on other modules and it will offer to download them also. As explained please just confirm this.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution|I got an error message from CPAN somewhat like the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\cygwin\bin\perl.exe: *** unable to remap C:\cygwin\bin\cygiconv-2.dll to same&lt;br /&gt;
address as parent(0x7C0000) != 0x7D0000&amp;lt;/pre&amp;gt;&lt;br /&gt;
To fix this, I had to exit the Cygwin shell, run cmd.exe, then type &amp;quot;c:\cygwin\bin\ash.exe&amp;quot; to start the minimal shell, then type &amp;lt;code&amp;gt;/bin/rebaseall&amp;lt;/code&amp;gt;. Then CPAN worked when I ran it again.}}&lt;br /&gt;
&lt;br /&gt;
= Configure switches (Windows specific) =&lt;br /&gt;
&lt;br /&gt;
Additionally to the general [[Documentation/Building_Guide_AOO#Configuration_and_bootstrapping|configure switches]] there are several that only have to be used on Windows or have Windows specific values.&lt;br /&gt;
&lt;br /&gt;
Typical values for the compiler and SDK. If default installation paths are used these configure switches are not needed:&lt;br /&gt;
  --with-frame-home=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0&amp;quot;&lt;br /&gt;
  --with-psdk-home=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0&amp;quot;&lt;br /&gt;
  --with-midl-path=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0/Bin&amp;quot;&lt;br /&gt;
For DirectX:&lt;br /&gt;
  --with-directx-home=&amp;quot;C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)&amp;quot;&lt;br /&gt;
For ATL and ActiveX:&lt;br /&gt;
  --with-atl-include-dir=/cygdrive/c/WinDDK/7600.16385.1/inc/atl71&lt;br /&gt;
  --with-atl-lib-dir=/cygdrive/c/WinDDK/7600.16385.1/lib/ATL/i386&lt;br /&gt;
  --with-mfc-include-dir=/cygdrive/c/WinDDK/7600.16385.1/inc/mfc42&lt;br /&gt;
  --with-mfc-lib-dir=/cygdrive/c/WinDDK/7600.16385.1/lib/Mfc/i386&lt;br /&gt;
&lt;br /&gt;
And some more:&lt;br /&gt;
  --enable-pch&lt;br /&gt;
  --enable-dbgutil&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_and_Eclipse&amp;diff=232695</id>
		<title>OpenOffice and Eclipse</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_and_Eclipse&amp;diff=232695"/>
		<updated>2014-01-09T08:55:57Z</updated>

		<summary type="html">&lt;p&gt;Hdu: _MSC_VER already predefined&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With current versions of Eclipse (4.3) it is possible to create C/C++&lt;br /&gt;
projects for OpenOffice modules and use code assist, refactoring,&lt;br /&gt;
lookup of definitions and declarations and all the other nice things&lt;br /&gt;
that a modern IDE provides.&lt;br /&gt;
&lt;br /&gt;
There are two different approaches to import the OpenOffice source code into&lt;br /&gt;
Eclipse:&lt;br /&gt;
* The whole repository at once.&lt;br /&gt;
:You will need a not-yet-released nightly build of CDT to prevent major memory leaks and still have to increase memory limits for Eclipse.&lt;br /&gt;
* Module by module.&lt;br /&gt;
:This approach works with vanilla Eclipse.  You only import individual modules (say sw/ and sfx/ into your workspace).&lt;br /&gt;
:This approach is described below.&lt;br /&gt;
&lt;br /&gt;
==OpenOffice in Eclipse: Some Highlights==&lt;br /&gt;
&lt;br /&gt;
Here are some highlights of developing OpenOffice with Eclipse illustrated with the &amp;lt;code&amp;gt;sfx2&amp;lt;/code&amp;gt; module and its &amp;lt;code&amp;gt;sfx2/source/sidebar/AsynchronousCall&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
* Syntax coloring and code formatting&lt;br /&gt;
: Both are very customizable (in the &amp;#039;Preferences&amp;#039; dialog: C/C++-&amp;gt;Editor-&amp;gt;Syntax Coloring respectively C/C++-&amp;gt;Code Style-&amp;gt;Formatter)&lt;br /&gt;
[[File:AfterStart.png|500px]]&lt;br /&gt;
* Switch between .hxx and implementing .cxx&lt;br /&gt;
* Follow header inclusion&lt;br /&gt;
* Extended tooltips that can display declaration/definition of classes, methods, variables, constants.&lt;br /&gt;
[[File:Hover.png|300px|Find out how the constant is defined without leaving the editor]]&lt;br /&gt;
* Visualization of whether code enclosed by #ifdef/#endif is active or not&lt;br /&gt;
[[File:ifdef.png|300px]]&lt;br /&gt;
* Tooltips can be focused =&amp;gt; you can explore a class definition without switching your editor to another file.&lt;br /&gt;
[[File:MacroExpansion.png|300px|&amp;#039;Simple&amp;#039; macro expansion on hover]] [[File:MacroExpansion2.png|500px|Press F2 to see more details]]&lt;br /&gt;
* Find out from where a function or method is called&lt;br /&gt;
* Explore the type hierarchy of a class&lt;br /&gt;
* Code assist while typing.&lt;br /&gt;
* Integration of bugzilla (via Mylyn), don&amp;#039;t line how the bugzilla data is presented? Just open an inplace browser to have the same experience as you have now.&lt;br /&gt;
* Static code analysis (CODAN)&lt;br /&gt;
&lt;br /&gt;
==Module by Module==&lt;br /&gt;
The following describes how to set up Eclipse for the module by module approach.&lt;br /&gt;
&lt;br /&gt;
===Install Eclipse===&lt;br /&gt;
Install a current version of Eclipse (http://www.eclipse.org/downloads/).&lt;br /&gt;
* Version 4.3 (Kepler) is known to work.  Older 4.* versions may also work.&lt;br /&gt;
* A version with focus on C/C++ (titled &amp;quot;Eclipse IDE for C/C++ Developers) works best but other versions with the CDT addon installed should work also.&lt;br /&gt;
&lt;br /&gt;
===Prepare a workspace===&lt;br /&gt;
Start Eclipse and select or create an empty workspace.  The empty workspace is not a&lt;br /&gt;
hard requirement but with one Eclipse project per OpenOffice module&lt;br /&gt;
you may loose track otherwise.  You can freely choose the location of&lt;br /&gt;
the workspace, just don&amp;#039;t use the OpenOffice source code directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Add module to workspace===&lt;br /&gt;
*Open the import wizard via menu &amp;lt;code&amp;gt;File-&amp;gt;New-&amp;gt;Other&amp;lt;/code&amp;gt;.&lt;br /&gt;
*In the dialog choose the &amp;lt;code&amp;gt;C/C++ -&amp;gt; Makefile Project with Existing Code&amp;lt;/code&amp;gt; wizard.&lt;br /&gt;
*In the &amp;#039;Import Existing Code&amp;#039; wizard &lt;br /&gt;
**use the &amp;#039;Browse...&amp;#039; button to set the &amp;#039;Existing Code Location&amp;#039; to the top-level directory of a module.  This will also set the &amp;#039;Project Name&amp;#039;.&lt;br /&gt;
**Select the correct tool chain for your platform. &lt;br /&gt;
:Tool chains for the individual platforms:&lt;br /&gt;
:Windows : Microsoft Visual C++&lt;br /&gt;
**Close the import wizard via the &amp;lt;code&amp;gt;Finish&amp;lt;/code&amp;gt; button to start the module import.&lt;br /&gt;
&lt;br /&gt;
===Setup project properties===&lt;br /&gt;
A few changes to the project properties are necessary for the indexer to find all include files and use the correct compiler definitions.&lt;br /&gt;
*Open the properties dialog via the menu &amp;lt;code&amp;gt;Project-&amp;gt;Properties&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Activate the &amp;lt;code&amp;gt;C/C++ General-&amp;gt;Paths and Symbols&amp;lt;/code&amp;gt; page.&lt;br /&gt;
*In the &amp;#039;Languages&amp;#039; list (left center) activate &amp;#039;GNU C++&amp;#039;, (for some reason this name does not change even when you use the MSVC tool chain).&lt;br /&gt;
*Click &amp;#039;Add...&amp;#039; and in the new dialog &amp;#039;File system...&amp;#039; and browse to &amp;lt;code&amp;gt;main/solver/VERSION/PLATFORM/inc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Click &amp;#039;OK&amp;#039; two times to get back to the properties dialog.&lt;br /&gt;
*Repeat the last two steps to add &amp;lt;code&amp;gt;main/solver/VERSION/PLATFORM/inc/offuh&amp;lt;/code&amp;gt; for the header created for the UNO IDL files.  Note that these includes only exist when the &amp;lt;code&amp;gt;offuh/&amp;lt;/code&amp;gt; module has been built.browse to &amp;lt;code&amp;gt;main/solver/VERSION/PLATFORM/inc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Go to the &amp;#039;Symbols&amp;#039; tab page.&lt;br /&gt;
*Click &amp;#039;Add...&amp;#039; and add macro definitions&lt;br /&gt;
:Windows: WNT (empty value)&lt;br /&gt;
*Click OK to close the dialog.&lt;br /&gt;
*Rebuild the index via &amp;#039;Project-&amp;gt;C/C++ Index-&amp;gt;Rebuild&amp;#039;.  This time the indexer should runs longer because it has to index no only the files in the module but also all include files in &amp;lt;code&amp;gt;solver/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using Mylyn for integrating Bugzilla===&lt;br /&gt;
Eclipse has a very powerful plugin for integrating bug trackers into the IDE.  Bugzilla is supported out of the box.  Support for eg. Jira exists also.&lt;br /&gt;
Setup for OpenOffice Bugzilla:&lt;br /&gt;
* Open the &amp;#039;Task List&amp;#039; via &amp;#039;Window-&amp;gt;Show View-&amp;gt;Task List&amp;#039;.  Note that this is not the same view as &amp;#039;Tasks&amp;#039;.&lt;br /&gt;
* If you do this for the first time you will see a &amp;#039;Connect&amp;#039; link at the bottom of the new view.  Click it.&lt;br /&gt;
* Otherwise open the &amp;#039;Task Repositories&amp;#039; view via &amp;#039;Window-&amp;gt;Show View-&amp;gt;Other...&amp;#039;&lt;br /&gt;
** In the &amp;#039;Show View&amp;#039; dialog select &amp;#039;Mylyn-&amp;gt;Task Repositories&amp;#039;&lt;br /&gt;
** Click on the &amp;#039;Add Task Repository...&amp;#039; button in the tool bar of the view.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;Add Task Repository...&amp;#039; dialog:&lt;br /&gt;
* Choose &amp;#039;Bugzilla (supports 3.6 and later)&amp;#039;&lt;br /&gt;
* Click &amp;#039;Next &amp;gt;&amp;#039;&lt;br /&gt;
* Enter &amp;#039;https://issues.apache.org/ooo/&amp;#039; ino the &amp;#039;Server&amp;#039; field.&lt;br /&gt;
* Enter &amp;#039;OpenOffice Bugzilla&amp;#039; or some other descriptive string into the &amp;#039;Label&amp;#039; field.&lt;br /&gt;
* Fill out &amp;#039;User ID&amp;#039; and &amp;#039;Password&amp;#039; fields&lt;br /&gt;
* (Optional) Check  the &amp;#039;Save Password&amp;#039;&lt;br /&gt;
* Click &amp;#039;Finish&amp;#039; and answer any popups as you like.&lt;br /&gt;
&lt;br /&gt;
Search for tasks in Bugzilla in the &amp;#039;Task List&amp;#039; view:&lt;br /&gt;
* Insert the task id in the search field.  Click the now visible link &amp;#039;Search repository for key or summary...&amp;#039;.&lt;br /&gt;
* In the &amp;#039;Search&amp;#039; dialog:&lt;br /&gt;
** Make sure that &amp;#039;Repository&amp;#039; is set to &amp;#039;OpenOffice Bugzilla&amp;#039;&lt;br /&gt;
** The &amp;#039;Task Key/ID&amp;#039; field should show the task id you entered earlier.&lt;br /&gt;
** Click on &amp;#039;Search&amp;#039;&lt;br /&gt;
* A new editor opens in the editor area with the details about the found bug.&lt;br /&gt;
* If you don&amp;#039;t like this view, click on the &amp;#039;Open with Web Browser&amp;#039; button in the toolbar of the editor.&lt;br /&gt;
* There seems to be a bug that prevents submitting changes. I get a &amp;#039;Submit failed:...&amp;#039; error message.&lt;br /&gt;
* In the &amp;#039;Task List&amp;#039; view there is now a new tree view with root node &amp;#039;Uncategorized&amp;#039;.&lt;br /&gt;
** Expand it to see your bug&lt;br /&gt;
** A double click on the bug entry opens the Bugzilla editor with that bug.&lt;br /&gt;
&lt;br /&gt;
There exists the concept of &amp;#039;Context&amp;#039; which defines a set of files for each bug.  This is activated by clicking on the &amp;#039;Activate...&amp;#039; link in the &amp;#039;Task List&amp;#039; view.&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232685</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232685"/>
		<updated>2014-01-08T14:45:11Z</updated>

		<summary type="html">&lt;p&gt;Hdu: split build requirements into sub-sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build requirements =&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
&lt;br /&gt;
== for building AOO 4.1 and newer ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
| provided by Apple&lt;br /&gt;
|- &lt;br /&gt;
| XCode version 4.5 or later&lt;br /&gt;
| You need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it]&lt;br /&gt;
|- &lt;br /&gt;
| Mac 10.7 SDK&lt;br /&gt;
| Is provided directly by XCode 4.5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== for building AOO 3.4 and 4.0 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232684</id>
		<title>Documentation/Building Guide AOO/Building on MacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_MacOsX&amp;diff=232684"/>
		<updated>2014-01-08T14:36:42Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Build requirements */ for AOO 4.1 and above&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on MacOSX}}&lt;br /&gt;
[[Category:MacOSX]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
See also this slightly older [[Documentation/Building_Guide/Building_on_MacOSX|building guide]].&lt;br /&gt;
&lt;br /&gt;
=Build requirements for AOO 4.1 and newer =&lt;br /&gt;
&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.7 (aka Lion) or later&lt;br /&gt;
|- &lt;br /&gt;
| XCode version 4.5 or later&lt;br /&gt;
|- &lt;br /&gt;
| Mac 10.7 SDK&lt;br /&gt;
| Is provided directly by XCode 4.5&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
=Build requirements for AOO 3.4 and 4.0 =&lt;br /&gt;
&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Where to get / Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X version 10.4 (aka Tiger) or later&lt;br /&gt;
| If you are using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]].&lt;br /&gt;
|- &lt;br /&gt;
|Mac 10.4 SDK&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|XCode version 2.4.1 or later&lt;br /&gt;
|&lt;br /&gt;
*For Mac OS X 10.7 (aka Lion), XCode 3.2.6 has be installed. &lt;br /&gt;
*If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].&lt;br /&gt;
*On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|XCode 4 is currently not tested because of the missing support in XCode and the office dependency to the 10.4 SDK}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;br /&gt;
&lt;br /&gt;
Patches to make it build with 1.6 are very welcome.  Feel free to submit your patches to the ooo-dev@incubator.apache.org mailing list or file issues.&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_and_Eclipse&amp;diff=232683</id>
		<title>OpenOffice and Eclipse</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_and_Eclipse&amp;diff=232683"/>
		<updated>2014-01-08T13:36:16Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Setup project properties */ _MSC_VER&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With current versions of Eclipse (4.3) it is possible to create C/C++&lt;br /&gt;
projects for OpenOffice modules and use code assist, refactoring,&lt;br /&gt;
lookup of definitions and declarations and all the other nice things&lt;br /&gt;
that a modern IDE provides.&lt;br /&gt;
&lt;br /&gt;
There are two different approaches to import the OpenOffice source code into&lt;br /&gt;
Eclipse:&lt;br /&gt;
* The whole repository at once.&lt;br /&gt;
:You will need a not-yet-released nightly build of CDT to prevent major memory leaks and still have to increase memory limits for Eclipse.&lt;br /&gt;
* Module by module.&lt;br /&gt;
:This approach works with vanilla Eclipse.  You only import individual modules (say sw/ and sfx/ into your workspace).&lt;br /&gt;
:This approach is described below.&lt;br /&gt;
&lt;br /&gt;
==OpenOffice in Eclipse: Some Highlights==&lt;br /&gt;
&lt;br /&gt;
Here are some highlights of developing OpenOffice with Eclipse illustrated with the &amp;lt;code&amp;gt;sfx2&amp;lt;/code&amp;gt; module and its &amp;lt;code&amp;gt;sfx2/source/sidebar/AsynchronousCall&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
* Syntax coloring and code formatting&lt;br /&gt;
: Both are very customizable (in the &amp;#039;Preferences&amp;#039; dialog: C/C++-&amp;gt;Editor-&amp;gt;Syntax Coloring respectively C/C++-&amp;gt;Code Style-&amp;gt;Formatter)&lt;br /&gt;
[[File:AfterStart.png|500px]]&lt;br /&gt;
* Switch between .hxx and implementing .cxx&lt;br /&gt;
* Follow header inclusion&lt;br /&gt;
* Extended tooltips that can display declaration/definition of classes, methods, variables, constants.&lt;br /&gt;
[[File:Hover.png|300px|Find out how the constant is defined without leaving the editor]]&lt;br /&gt;
* Visualization of whether code enclosed by #ifdef/#endif is active or not&lt;br /&gt;
[[File:ifdef.png|300px]]&lt;br /&gt;
* Tooltips can be focused =&amp;gt; you can explore a class definition without switching your editor to another file.&lt;br /&gt;
[[File:MacroExpansion.png|300px|&amp;#039;Simple&amp;#039; macro expansion on hover]] [[File:MacroExpansion2.png|500px|Press F2 to see more details]]&lt;br /&gt;
* Find out from where a function or method is called&lt;br /&gt;
* Explore the type hierarchy of a class&lt;br /&gt;
* Code assist while typing.&lt;br /&gt;
* Integration of bugzilla (via Mylyn), don&amp;#039;t line how the bugzilla data is presented? Just open an inplace browser to have the same experience as you have now.&lt;br /&gt;
* Static code analysis (CODAN)&lt;br /&gt;
&lt;br /&gt;
==Module by Module==&lt;br /&gt;
The following describes how to set up Eclipse for the module by module approach.&lt;br /&gt;
&lt;br /&gt;
===Install Eclipse===&lt;br /&gt;
Install a current version of Eclipse (http://www.eclipse.org/downloads/).&lt;br /&gt;
* Version 4.3 (Kepler) is known to work.  Older 4.* versions may also work.&lt;br /&gt;
* A version with focus on C/C++ (titled &amp;quot;Eclipse IDE for C/C++ Developers) works best but other versions with the CDT addon installed should work also.&lt;br /&gt;
&lt;br /&gt;
===Prepare a workspace===&lt;br /&gt;
Start Eclipse and select or create an empty workspace.  The empty workspace is not a&lt;br /&gt;
hard requirement but with one Eclipse project per OpenOffice module&lt;br /&gt;
you may loose track otherwise.  You can freely choose the location of&lt;br /&gt;
the workspace, just don&amp;#039;t use the OpenOffice source code directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Add module to workspace===&lt;br /&gt;
*Open the import wizard via menu &amp;lt;code&amp;gt;File-&amp;gt;New-&amp;gt;Other&amp;lt;/code&amp;gt;.&lt;br /&gt;
*In the dialog choose the &amp;lt;code&amp;gt;C/C++ -&amp;gt; Makefile Project with Existing Code&amp;lt;/code&amp;gt; wizard.&lt;br /&gt;
*In the &amp;#039;Import Existing Code&amp;#039; wizard &lt;br /&gt;
**use the &amp;#039;Browse...&amp;#039; button to set the &amp;#039;Existing Code Location&amp;#039; to the top-level directory of a module.  This will also set the &amp;#039;Project Name&amp;#039;.&lt;br /&gt;
**Select the correct tool chain for your platform. &lt;br /&gt;
:Tool chains for the individual platforms:&lt;br /&gt;
:Windows : Microsoft Visual C++&lt;br /&gt;
**Close the import wizard via the &amp;lt;code&amp;gt;Finish&amp;lt;/code&amp;gt; button to start the module import.&lt;br /&gt;
&lt;br /&gt;
===Setup project properties===&lt;br /&gt;
A few changes to the project properties are necessary for the indexer to find all include files and use the correct compiler definitions.&lt;br /&gt;
*Open the properties dialog via the menu &amp;lt;code&amp;gt;Project-&amp;gt;Properties&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Activate the &amp;lt;code&amp;gt;C/C++ General-&amp;gt;Paths and Symbols&amp;lt;/code&amp;gt; page.&lt;br /&gt;
*In the &amp;#039;Languages&amp;#039; list (left center) activate &amp;#039;GNU C++&amp;#039;, (for some reason this name does not change even when you use the MSVC tool chain).&lt;br /&gt;
*Click &amp;#039;Add...&amp;#039; and in the new dialog &amp;#039;File system...&amp;#039; and browse to &amp;lt;code&amp;gt;main/solver/VERSION/PLATFORM/inc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Click &amp;#039;OK&amp;#039; two times to get back to the properties dialog.&lt;br /&gt;
*Repeat the last two steps to add &amp;lt;code&amp;gt;main/solver/VERSION/PLATFORM/inc/offuh&amp;lt;/code&amp;gt; for the header created for the UNO IDL files.  Note that these includes only exist when the &amp;lt;code&amp;gt;offuh/&amp;lt;/code&amp;gt; module has been built.browse to &amp;lt;code&amp;gt;main/solver/VERSION/PLATFORM/inc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Go to the &amp;#039;Symbols&amp;#039; tab page.&lt;br /&gt;
*Click &amp;#039;Add...&amp;#039; and add macro definitions&lt;br /&gt;
:Windows: WNT (empty value) and _MSC_VER=1500&lt;br /&gt;
*Click OK to close the dialog.&lt;br /&gt;
*Rebuild the index via &amp;#039;Project-&amp;gt;C/C++ Index-&amp;gt;Rebuild&amp;#039;.  This time the indexer should runs longer because it has to index no only the files in the module but also all include files in &amp;lt;code&amp;gt;solver/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using Mylyn for integrating Bugzilla===&lt;br /&gt;
Eclipse has a very powerful plugin for integrating bug trackers into the IDE.  Bugzilla is supported out of the box.  Support for eg. Jira exists also.&lt;br /&gt;
Setup for OpenOffice Bugzilla:&lt;br /&gt;
* Open the &amp;#039;Task List&amp;#039; via &amp;#039;Window-&amp;gt;Show View-&amp;gt;Task List&amp;#039;.  Note that this is not the same view as &amp;#039;Tasks&amp;#039;.&lt;br /&gt;
* If you do this for the first time you will see a &amp;#039;Connect&amp;#039; link at the bottom of the new view.  Click it.&lt;br /&gt;
* Otherwise open the &amp;#039;Task Repositories&amp;#039; view via &amp;#039;Window-&amp;gt;Show View-&amp;gt;Other...&amp;#039;&lt;br /&gt;
** In the &amp;#039;Show View&amp;#039; dialog select &amp;#039;Mylyn-&amp;gt;Task Repositories&amp;#039;&lt;br /&gt;
** Click on the &amp;#039;Add Task Repository...&amp;#039; button in the tool bar of the view.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;Add Task Repository...&amp;#039; dialog:&lt;br /&gt;
* Choose &amp;#039;Bugzilla (supports 3.6 and later)&amp;#039;&lt;br /&gt;
* Click &amp;#039;Next &amp;gt;&amp;#039;&lt;br /&gt;
* Enter &amp;#039;https://issues.apache.org/ooo/&amp;#039; ino the &amp;#039;Server&amp;#039; field.&lt;br /&gt;
* Enter &amp;#039;OpenOffice Bugzilla&amp;#039; or some other descriptive string into the &amp;#039;Label&amp;#039; field.&lt;br /&gt;
* Fill out &amp;#039;User ID&amp;#039; and &amp;#039;Password&amp;#039; fields&lt;br /&gt;
* (Optional) Check  the &amp;#039;Save Password&amp;#039;&lt;br /&gt;
* Click &amp;#039;Finish&amp;#039; and answer any popups as you like.&lt;br /&gt;
&lt;br /&gt;
Search for tasks in Bugzilla in the &amp;#039;Task List&amp;#039; view:&lt;br /&gt;
* Insert the task id in the search field.  Click the now visible link &amp;#039;Search repository for key or summary...&amp;#039;.&lt;br /&gt;
* In the &amp;#039;Search&amp;#039; dialog:&lt;br /&gt;
** Make sure that &amp;#039;Repository&amp;#039; is set to &amp;#039;OpenOffice Bugzilla&amp;#039;&lt;br /&gt;
** The &amp;#039;Task Key/ID&amp;#039; field should show the task id you entered earlier.&lt;br /&gt;
** Click on &amp;#039;Search&amp;#039;&lt;br /&gt;
* A new editor opens in the editor area with the details about the found bug.&lt;br /&gt;
* If you don&amp;#039;t like this view, click on the &amp;#039;Open with Web Browser&amp;#039; button in the toolbar of the editor.&lt;br /&gt;
* There seems to be a bug that prevents submitting changes. I get a &amp;#039;Submit failed:...&amp;#039; error message.&lt;br /&gt;
* In the &amp;#039;Task List&amp;#039; view there is now a new tree view with root node &amp;#039;Uncategorized&amp;#039;.&lt;br /&gt;
** Expand it to see your bug&lt;br /&gt;
** A double click on the bug entry opens the Bugzilla editor with that bug.&lt;br /&gt;
&lt;br /&gt;
There exists the concept of &amp;#039;Context&amp;#039; which defines a set of files for each bug.  This is activated by clicking on the &amp;#039;Activate...&amp;#039; link in the &amp;#039;Task List&amp;#039; view.&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_Windows&amp;diff=232369</id>
		<title>Documentation/Building Guide AOO/Building on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_Windows&amp;diff=232369"/>
		<updated>2013-11-22T15:45:09Z</updated>

		<summary type="html">&lt;p&gt;Hdu: old msvc runtime dlls are no longer needed for AOO&amp;gt;=4.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on Windows}}&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent page]].&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Windows|This document explains the platform specific details.}}&lt;br /&gt;
For building Apache OpenOffice the [http://www.cygwin.com Cygwin environment] is required.  Cygwin is a set of programs that run on Windows but emulate a complete Unix command line environment. &lt;br /&gt;
&lt;br /&gt;
As compiler we use Microsoft&amp;#039;s Visual C++, not the gcc from Cygwin.  Therefore Visual Studio Express can be used for debugging.&lt;br /&gt;
&lt;br /&gt;
To use this document you should be familiar with a bourne command line interpreter (sh or bash), but you need not be a UNIX shell wizard.&lt;br /&gt;
{{Template:Documentation/Tip|If you have never used a Unix shell, you might want to take a look at the [http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/index.html shell introduction at TLDP].}}&lt;br /&gt;
&lt;br /&gt;
=Build requirements=&lt;br /&gt;
&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 25%&amp;quot;|What&lt;br /&gt;
! Where to get&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|How to install&lt;br /&gt;
|-&lt;br /&gt;
| Windows 7 (recommended), Windows Vista, Windows XP&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cygwin&lt;br /&gt;
| http://www.cygwin.com, &amp;#039;&amp;#039;&amp;#039;32bit version&amp;#039;&amp;#039;&amp;#039;, minimum version: 1.5.10, preferred: current version]&lt;br /&gt;
&lt;br /&gt;
See [[#Setting up Cywin|below]] for setting up cygwin and the required packages.&lt;br /&gt;
| (default)&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1&lt;br /&gt;
| http://www.microsoft.com/en-us/download/details.aspx?id=3138&lt;br /&gt;
&lt;br /&gt;
It brings the Visual Studio 2008 C++ compiler with it.&lt;br /&gt;
&lt;br /&gt;
This is either a DVD image or a net installer. You can either mount the DVD with a suitable tool, burn it do a DVD or use tools like winrar or 7zip to extract files from the ISO file directly. You don&amp;#039;t need to install samples or documentation (saves a lot of disk space). It will also install the .NET Framework 3.5 SDK.  It might be best to install the Windows SDK into the default directory, and if not that into one without capital letters in the path.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)&lt;br /&gt;
| vcredist_x86.exe, download found [http://www.microsoft.com/en-us/download/search.aspx?q=Microsoft%20Visual%20C%2b%2b%202008%20Redistributable%20Package&amp;amp;p=0&amp;amp;r=10&amp;amp;t=&amp;amp;s=availabledate~Descending here]&lt;br /&gt;
It is just packed as it is into the installation package.&lt;br /&gt;
&lt;br /&gt;
The exact download URL may have changed. In that case you have to search Microsoft&amp;#039;s website.&lt;br /&gt;
| main/external/vcredist&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)&lt;br /&gt;
| vcredist_x64.exe, download found [http://www.microsoft.com/en-us/download/search.aspx?q=Microsoft%20Visual%20C%2b%2b%202008%20Redistributable%20Package&amp;amp;p=0&amp;amp;r=10&amp;amp;t=&amp;amp;s=availabledate~Descending here]&lt;br /&gt;
It is just packed as it is into the installation package.&lt;br /&gt;
&lt;br /&gt;
The exact download URL may have changed. In that case you have to search Microsoft&amp;#039;s website.&lt;br /&gt;
| main/external/vcredist&lt;br /&gt;
|-&lt;br /&gt;
| GDI+ Redistributable&lt;br /&gt;
| http://www.microsoft.com/downloads/details.aspx?familyid=6A63AB9C-DF12-4D41-933C-BE590FEAA05A&amp;amp;displaylang=en.  Genuine Windows Validation required.&lt;br /&gt;
| main/external/gdiplus&lt;br /&gt;
|-&lt;br /&gt;
| Runtime libraries 10.0&lt;br /&gt;
| msvcp100.dll and msvcr100.dll for Java 7 support - see issue [https://issues.apache.org/ooo/show_bug.cgi?id=120979 120979].&lt;br /&gt;
Get them from the Microsoft Visual C++ 2010 Redistributable Package (x86) from the Microsoft site - http://www.microsoft.com/en-us/download/search.aspx?q=Microsoft+Visual+C%2b%2b+2010+Redistributable&lt;br /&gt;
| main/external/msvcp100&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| dbghelp.dll&lt;br /&gt;
| http://msdn.microsoft.com/en-us/library/windows/desktop/ms679309%28v=vs.85%29.aspx&lt;br /&gt;
&lt;br /&gt;
The exact download URL may have changed. In that case you have to search Microsoft&amp;#039;s website.&lt;br /&gt;
&lt;br /&gt;
Search for it on your PC or on the web. E.g., it is part of the Windows Driver Kit.&lt;br /&gt;
| main/external/dbghelp&lt;br /&gt;
|-&lt;br /&gt;
| Windows Driver Kit Version 7.1.0&lt;br /&gt;
| http://www.microsoft.com/downloads/details.aspx?id=11800&lt;br /&gt;
&lt;br /&gt;
To enable ATL and ActiveX in the build - it is optional&lt;br /&gt;
&lt;br /&gt;
related configure options are:&lt;br /&gt;
--with-atl-include, --with-atl-lib-dir, --with-mfc-include-dir, --with-mfc-lib-dir&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Microsoft DirectX SDK&lt;br /&gt;
| http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=6812&lt;br /&gt;
&lt;br /&gt;
To enable DirectX in the build - it is optional&lt;br /&gt;
&lt;br /&gt;
related configure option is:&lt;br /&gt;
--with-directx-home&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Unicode NSIS, version 2.46.5&lt;br /&gt;
| http://code.google.com/p/unsis/downloads/detail?name=nsis-2.46.5-Unicode-setup.exe&amp;amp;can=2&amp;amp;q= &lt;br /&gt;
&lt;br /&gt;
If Unicode NSIS is available, a self contained Windows installer is created in addition to the MSI installer files - it is optional&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When building Apache OpenOffice 3.4.x or 4.0.x you need to provide some additional binaries:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Runtime libraries 7.1&lt;br /&gt;
| msvcr71.dll for Mozilla libraries. Search for them on the web or on your PC. These files should be named as all lower case. Sometimes when downloaded they are upper case and this will cause &amp;#039;file not found&amp;#039; errors towards the end of the build))&lt;br /&gt;
| main/external/msvcp71 &lt;br /&gt;
|-&lt;br /&gt;
| Runtime libraries 8.0&lt;br /&gt;
| msvcp80.dll and msvcr80.dll for Mozilla libraries. Search for them on the web or on your PC.&lt;br /&gt;
| main/external/msvcp80&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Remarks=&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|OOo uses some Mozilla libraries. Building the corresponding sources is only possible with the VC2003 compiler so you have to use precompiled libraries that require the msvx71 libraries mentioned above. On Windows the Mozilla libraries are needed only for Mozilla address book support. Unfortunately a bug in the module dependencies makes it necessary that the Mozilla libaries are used anyway as otherwise building the module &amp;lt;tt&amp;gt;xmlsecurity&amp;lt;/tt&amp;gt; fails.}}&lt;br /&gt;
&lt;br /&gt;
= Setting up Cygwin =&lt;br /&gt;
&lt;br /&gt;
Go to http://www.cygwin.com/ and download and install the current 32bit version.&lt;br /&gt;
{{Template:Documentation/Caution|Make sure that you keep the filetype set to “Unix/binary”.}}&lt;br /&gt;
{{Template:Documentation/Caution|Make sure that the PATH variable in your cygwin shell does not contain any unquoted blanks and quotes, otherwise configure will not work}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Additional packages for Cygwin to serve the AOO build ===&lt;br /&gt;
&lt;br /&gt;
Cygwin consists of some basic and a lot of optional packages. As building AOO needs some of these optional packages you have to select them in the installer.&lt;br /&gt;
Here&amp;#039;s a complete list of the required packages:&lt;br /&gt;
* Category Archive:&lt;br /&gt;
** unzip&lt;br /&gt;
** zip&lt;br /&gt;
* Category Devel :&lt;br /&gt;
** autoconf&lt;br /&gt;
** bison&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-g++&lt;br /&gt;
** gperf&lt;br /&gt;
** make&lt;br /&gt;
** patch&lt;br /&gt;
** readline&lt;br /&gt;
** subversion (if you want to use svn inside the cygwin shell to checkout and update your working copy of AOO)&lt;br /&gt;
* Category Net&lt;br /&gt;
** openssh&lt;br /&gt;
** openssl&lt;br /&gt;
* Category Perl&lt;br /&gt;
** perl - see [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO#General_Build_Requirements General Build Requirements] for additional Perl modules&lt;br /&gt;
* Category Shells&lt;br /&gt;
** mintty&lt;br /&gt;
* Category Utils&lt;br /&gt;
** gnupg&lt;br /&gt;
* Category Web&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|The installer will automatically check and download some more packages needed by whose listed here. The whole process takes roughly 20 minutes.}}&lt;br /&gt;
&lt;br /&gt;
=== Breaking links to executable ===&lt;br /&gt;
&lt;br /&gt;
Within the Cygwin Toolkit, some executables might be symlinks: awk.exe and gunzip.exe, tar.exe (in older releases only). This can lead to a break of the build later, and the symlinks should be replaced by copies of the command they link to. &lt;br /&gt;
&lt;br /&gt;
To check this, execute:&lt;br /&gt;
&lt;br /&gt;
 ls -l /bin/awk.exe&lt;br /&gt;
&lt;br /&gt;
whether e.g. awk.exe is a symlink. In version 1.5.24-2 awk.exe is a link to gawk.exe. The shell will show this by putting out “awk.exe -&amp;gt; gawk.exe”. In this case gawk.exe must be copied to awk.exe by executing: &lt;br /&gt;
&lt;br /&gt;
 cd /bin&lt;br /&gt;
 rm awk.exe&lt;br /&gt;
 cp gawk.exe awk.exe&lt;br /&gt;
&lt;br /&gt;
In case you overlook something here or you have a newer Cygwin version with additional symlinks not mentioned here it&amp;#039;s not a problem. You will get a helpful error message about an existing link in the configuration step (configure) later. The message will tell you which link you have to remove and you can do it following the advice given above for the awk.exe/gawk.exe pair.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing additional perl modules in cygwin ===&lt;br /&gt;
&lt;br /&gt;
As explained some perl modules must be installed with CPAN. The necessary command in the cygwin shell is&lt;br /&gt;
&lt;br /&gt;
 perl -MCPAN -e shell&lt;br /&gt;
&lt;br /&gt;
If this command is executed the first time CPAN will ask for configuration. Choose autoconfiguration. &lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution|Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the &amp;#039;&amp;#039;CPAN build and cache directory&amp;#039;&amp;#039;, change the default suggestion to &amp;lt;tt&amp;gt;/cpan&amp;lt;/tt&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
At the end the CPAN shell appeared and is ready to accept commands for installations. Each module is installed by typing &amp;lt;code&amp;gt;install $MODULENAME&amp;lt;/code&amp;gt;. The modules that must be installed are:&lt;br /&gt;
&lt;br /&gt;
* Archive::Zip&lt;br /&gt;
* LWP::UserAgent&lt;br /&gt;
* XML::Parser (though it seems that this is already installed; doesn&amp;#039;t hurt to do it)&lt;br /&gt;
&lt;br /&gt;
CPAN will detect if a selected module depends on other modules and it will offer to download them also. As explained please just confirm this.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution|I got an error message from CPAN somewhat like the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\cygwin\bin\perl.exe: *** unable to remap C:\cygwin\bin\cygiconv-2.dll to same&lt;br /&gt;
address as parent(0x7C0000) != 0x7D0000&amp;lt;/pre&amp;gt;&lt;br /&gt;
To fix this, I had to exit the Cygwin shell, run cmd.exe, then type &amp;quot;c:\cygwin\bin\ash.exe&amp;quot; to start the minimal shell, then type &amp;lt;code&amp;gt;/bin/rebaseall&amp;lt;/code&amp;gt;. Then CPAN worked when I ran it again.}}&lt;br /&gt;
&lt;br /&gt;
= Configure switches (Windows specific) =&lt;br /&gt;
&lt;br /&gt;
Additionally to the general [[Documentation/Building_Guide_AOO#Configuration_and_bootstrapping|configure switches]] there are several that only have to be used on Windows or have Windows specific values.&lt;br /&gt;
&lt;br /&gt;
Typical values for the compiler and SDK. If default installation paths are used these configure switches are not needed:&lt;br /&gt;
  --with-frame-home=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0&amp;quot;&lt;br /&gt;
  --with-psdk-home=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0&amp;quot;&lt;br /&gt;
  --with-midl-path=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0/Bin&amp;quot;&lt;br /&gt;
For DirectX:&lt;br /&gt;
  --with-directx-home=&amp;quot;C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)&amp;quot;&lt;br /&gt;
For ATL and ActiveX:&lt;br /&gt;
  --with-atl-include-dir=/cygdrive/c/WinDDK/7600.16385.1/inc/atl71&lt;br /&gt;
  --with-atl-lib-dir=/cygdrive/c/WinDDK/7600.16385.1/lib/ATL/i386&lt;br /&gt;
  --with-mfc-include-dir=/cygdrive/c/WinDDK/7600.16385.1/inc/mfc42&lt;br /&gt;
  --with-mfc-lib-dir=/cygdrive/c/WinDDK/7600.16385.1/lib/Mfc/i386&lt;br /&gt;
&lt;br /&gt;
And some more:&lt;br /&gt;
  --enable-pch&lt;br /&gt;
  --enable-dbgutil&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Build_Environment_Effort/External_source_tarballs&amp;diff=232192</id>
		<title>Build Environment Effort/External source tarballs</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Build_Environment_Effort/External_source_tarballs&amp;diff=232192"/>
		<updated>2013-11-09T09:11:40Z</updated>

		<summary type="html">&lt;p&gt;Hdu: default TARFILE_LOCATION=ext_sources&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Environment Effort}}&lt;br /&gt;
== Integration of external source tarballs in our build process  ==&lt;br /&gt;
&lt;br /&gt;
=== General assumptions  ===&lt;br /&gt;
&lt;br /&gt;
Most available tarballs can be built (theoretically) by following three steps: &lt;br /&gt;
&lt;br /&gt;
#unpack &lt;br /&gt;
#configure &lt;br /&gt;
#build&lt;br /&gt;
&lt;br /&gt;
Taking this as the generic way some targets are implemented in our makefiles to ease the integration of external projects. &lt;br /&gt;
&lt;br /&gt;
=== What can be done?  ===&lt;br /&gt;
&lt;br /&gt;
With a single dmake you can unpack, patch, configure and build an alien tarball, provided that the according makefile.mk is correct. Each of these steps is skipped when run successfully once. The files in &amp;quot;&amp;amp;lt;module&amp;amp;gt;/&amp;amp;lt;platform&amp;amp;gt;/misc/build&amp;quot; reflect the already done parts and can be deleted to force rerunning a particular step. &lt;br /&gt;
&lt;br /&gt;
Additionally there are some targets for common use actions which can be used with &amp;quot;dmake TARGET&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
*create_clean: unpack tarball without modifying it.&lt;br /&gt;
&lt;br /&gt;
*patch: apply the patchfiles from &amp;quot;&amp;#039;&amp;#039;PATCH_FILES&amp;#039;&amp;#039;&amp;quot; to source tree. The tree is created if not already existing.&lt;br /&gt;
&lt;br /&gt;
*create_patch: a patchfile (named &amp;lt;tarball basename&amp;gt;-newpatch-rename_me +.patch) is created, reflecting all new changes to files from the tarball, done additionally to previous patches. Note that you still have to give that patch a sensible name and add it to PATCH_FILES Additional files have to be set in the variable &amp;quot;ADDITIONAL_FILES&amp;quot; to get into the patch.&lt;br /&gt;
&lt;br /&gt;
=== Where are those tarballs?  ===&lt;br /&gt;
&lt;br /&gt;
The tarballs reside outside of the main source code. Setting up a build environment will set an environment variable named TARFILE_LOCATION which is typically set to &amp;#039;&amp;#039;ext_sources&amp;#039;&amp;#039;. The tarballs are stored with their checksum as &amp;quot;&amp;amp;lt;md5-checksum&amp;amp;gt;-tarfilename&amp;quot; (see also TARFILE_MD5 in the example). &lt;br /&gt;
&lt;br /&gt;
To initially fill this directory, a script called &amp;#039;&amp;#039;fetch_tarballs.sh&amp;#039;&amp;#039; is called. The only parameter is the list of all required tarfiles for this specific revision, found in the repository root. Thus &lt;br /&gt;
&amp;lt;pre&amp;gt;fetch_tarballs.sh external_deps.lst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
checks for the required tarballs and downloads them from the URL given in the first line of this list. This step by default is done in the bootstrap step of setting up an environment. &lt;br /&gt;
&lt;br /&gt;
=== How to get new tarballs upstream? ===&lt;br /&gt;
&lt;br /&gt;
To get new archives to the download directory, please contact the lead of the external project, [mailto://mh@openoffice.org Martin Hollmichel].&lt;br /&gt;
&lt;br /&gt;
Update the file external_deps.lst in the repository root with the file name of the new tarball exactly as it appears in $TARFILE_LOCATION.&lt;br /&gt;
&lt;br /&gt;
=== What&amp;#039;s missing?  ===&lt;br /&gt;
&lt;br /&gt;
*Dependencies are only between the supported steps or tarball internal.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;text-decoration: none;&amp;quot;&amp;gt;Known feature like &amp;quot;dmake&amp;lt;/span&amp;gt; debug&amp;quot; only work in modules that add dmake makefiles to build the external sources.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*switching to a gcc environment on win32 .&lt;br /&gt;
&lt;br /&gt;
*external projects are build as one job. There is no parallelization the build the external project -- this might create a bottleneck for highly parallelized builds, if the external project is big.&lt;br /&gt;
&lt;br /&gt;
=== How to write a makefile.mk for an external tarball  ===&lt;br /&gt;
&lt;br /&gt;
This example is taken from the so_berkeley project. &lt;br /&gt;
&lt;br /&gt;
 #*************************************************************************&lt;br /&gt;
 &lt;br /&gt;
 PRJ=.&lt;br /&gt;
 &lt;br /&gt;
 PRJNAME=so_berkeleydb&lt;br /&gt;
 TARGET=so_berkeleydb&lt;br /&gt;
 &lt;br /&gt;
 # --- Settings&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 .INCLUDE : settings.mk&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # --- Files&lt;br /&gt;
 &lt;br /&gt;
 # Basename of the tarball which is supposed to reside in a direcrory named pointed to by the environment variable TARFILE_LOCATION. &lt;br /&gt;
 TARFILE_NAME=db-3.2.9&lt;br /&gt;
 &lt;br /&gt;
 # md5 checksum of the tarball &lt;br /&gt;
 TARFILE_MD5=d70951c80dabecc2892c919ff5d07172&lt;br /&gt;
 &lt;br /&gt;
 # Name of the patch file if needed. Used to apply patches to the original tarball needed &lt;br /&gt;
 # to build (e.g. for win32...). &lt;br /&gt;
 &lt;br /&gt;
 PATCH_FILES=db-3.2.9.patch&lt;br /&gt;
 &lt;br /&gt;
 .IF &amp;quot;$(GUI)&amp;quot;==&amp;quot;UNX&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # sometimes it makes sense to call the configure command from a different directory. &lt;br /&gt;
 CONFIGURE_DIR=out&lt;br /&gt;
 &lt;br /&gt;
 #relative to CONFIGURE_DIR&lt;br /&gt;
 &lt;br /&gt;
 # command to configure package and switches. If no &amp;quot;CONFIGURE_ACTION&amp;quot; is supplied &lt;br /&gt;
 # all other configure variables are ignored. &lt;br /&gt;
 &lt;br /&gt;
 CONFIGURE_ACTION=..$/dist$/configure&lt;br /&gt;
 &lt;br /&gt;
 CONFIGURE_FLAGS=--enable-cxx --enable-java --enable-dynamic --enable-shared&lt;br /&gt;
 &lt;br /&gt;
 # same as with configure. &lt;br /&gt;
 BUILD_DIR=$(CONFIGURE_DIR)&lt;br /&gt;
 BUILD_ACTION=make&lt;br /&gt;
 &lt;br /&gt;
 # copy libraries to the &amp;quot;lib&amp;quot; directory in the local output tree known from own projects. &lt;br /&gt;
 OUT2LIB=$(BUILD_DIR)$/.libs$/libdb*.so&lt;br /&gt;
 &lt;br /&gt;
 # same as above. copy to $(BIN) &lt;br /&gt;
 OUT2BIN=java$/classes$/db.jar&lt;br /&gt;
 &lt;br /&gt;
 .ENDIF # &amp;quot;$(GUI)&amp;quot;==&amp;quot;UNX&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 .IF &amp;quot;$(GUI)&amp;quot;==&amp;quot;WNT&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 BUILD_DIR=build_win32 &lt;br /&gt;
 &lt;br /&gt;
 # build a msdev project without GUI. &lt;br /&gt;
 BUILD_ACTION=msdev Berkeley_DB.dsw /useenv /MAKE &amp;quot;db_buildall - RELEASE&amp;quot; /MAKE &amp;quot;db_java - RELEASE&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 OUT2BIN=java$/classes$/db.jar \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb_java32.dll \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb32.dll&lt;br /&gt;
 &lt;br /&gt;
 OUT2LIB= \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb_java32.lib \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb32.lib&lt;br /&gt;
 &lt;br /&gt;
 .ENDIF # &amp;quot;$(GUI)&amp;quot;==&amp;quot;WNT&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # make the created patch contain the new files comments.txt &lt;br /&gt;
 ADDITIONAL_FILES= build_w32$/comment.txt&lt;br /&gt;
 &lt;br /&gt;
 OUT2INC= \&lt;br /&gt;
     $(BUILD_DIR)$/db.h \&lt;br /&gt;
     include$/db_185.h \&lt;br /&gt;
     include$/db_cxx.h&lt;br /&gt;
 &lt;br /&gt;
 OUT2CLASS=java$/classes$/db.jar&lt;br /&gt;
 &lt;br /&gt;
 # --- Targets&lt;br /&gt;
 &lt;br /&gt;
 # contains some nessecary variables. &lt;br /&gt;
 .INCLUDE : set_ext.mk&lt;br /&gt;
 .INCLUDE : target.mk&lt;br /&gt;
 &lt;br /&gt;
 # contains the &amp;quot;magic&amp;quot; to create targets out of the set variables. &lt;br /&gt;
 .INCLUDE : tg_ext.mk&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Build_Environment_Effort/External_source_tarballs&amp;diff=232191</id>
		<title>Build Environment Effort/External source tarballs</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Build_Environment_Effort/External_source_tarballs&amp;diff=232191"/>
		<updated>2013-11-09T09:06:58Z</updated>

		<summary type="html">&lt;p&gt;Hdu: ooo.lst has been renamed to external_deps.lst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Environment Effort}}&lt;br /&gt;
== Integration of external source tarballs in our build process  ==&lt;br /&gt;
&lt;br /&gt;
=== General assumptions  ===&lt;br /&gt;
&lt;br /&gt;
Most available tarballs can be built (theoretically) by following three steps: &lt;br /&gt;
&lt;br /&gt;
#unpack &lt;br /&gt;
#configure &lt;br /&gt;
#build&lt;br /&gt;
&lt;br /&gt;
Taking this as the generic way some targets are implemented in our makefiles to ease the integration of external projects. &lt;br /&gt;
&lt;br /&gt;
=== What can be done?  ===&lt;br /&gt;
&lt;br /&gt;
With a single dmake you can unpack, patch, configure and build an alien tarball, provided that the according makefile.mk is correct. Each of these steps is skipped when run successfully once. The files in &amp;quot;&amp;amp;lt;module&amp;amp;gt;/&amp;amp;lt;platform&amp;amp;gt;/misc/build&amp;quot; reflect the already done parts and can be deleted to force rerunning a particular step. &lt;br /&gt;
&lt;br /&gt;
Additionally there are some targets for common use actions which can be used with &amp;quot;dmake TARGET&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
*create_clean: unpack tarball without modifying it.&lt;br /&gt;
&lt;br /&gt;
*patch: apply the patchfiles from &amp;quot;&amp;#039;&amp;#039;PATCH_FILES&amp;#039;&amp;#039;&amp;quot; to source tree. The tree is created if not already existing.&lt;br /&gt;
&lt;br /&gt;
*create_patch: a patchfile (named &amp;lt;tarball basename&amp;gt;-newpatch-rename_me +.patch) is created, reflecting all new changes to files from the tarball, done additionally to previous patches. Note that you still have to give that patch a sensible name and add it to PATCH_FILES Additional files have to be set in the variable &amp;quot;ADDITIONAL_FILES&amp;quot; to get into the patch.&lt;br /&gt;
&lt;br /&gt;
=== Where are those tarballs?  ===&lt;br /&gt;
&lt;br /&gt;
With the integration of the {{CWS|ause110}} the tarballs no longer reside in the source code repository. Setting up a build environment will set an environment variable named TARFILE_LOCATION. For solving problems with unversioned source archives, files are stored as &amp;quot;&amp;amp;lt;md5-checksum&amp;amp;gt;-tarfilename&amp;quot; (see also TARFILE_MD5 in the example). &lt;br /&gt;
&lt;br /&gt;
To initially fill this directory, a script called &amp;#039;&amp;#039;fetch_tarballs.sh&amp;#039;&amp;#039; is called. The only parameter is the list of all required tarfiles for this specific revision, found in the repository root. Thus &lt;br /&gt;
&amp;lt;pre&amp;gt;fetch_tarballs.sh external_deps.lst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
checks for the required tarballs and downloads them from the URL given in the first line of this list. This step by default is done in the bootstrap step of setting up an environment. &lt;br /&gt;
&lt;br /&gt;
=== How to get new tarballs upstream? ===&lt;br /&gt;
&lt;br /&gt;
To get new archives to the download directory, please contact the lead of the external project, [mailto://mh@openoffice.org Martin Hollmichel].&lt;br /&gt;
&lt;br /&gt;
Update the file external_deps.lst in the repository root with the file name of the new tarball exactly as it appears in $TARFILE_LOCATION.&lt;br /&gt;
&lt;br /&gt;
=== What&amp;#039;s missing?  ===&lt;br /&gt;
&lt;br /&gt;
*Dependencies are only between the supported steps or tarball internal.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;text-decoration: none;&amp;quot;&amp;gt;Known feature like &amp;quot;dmake&amp;lt;/span&amp;gt; debug&amp;quot; only work in modules that add dmake makefiles to build the external sources.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*switching to a gcc environment on win32 .&lt;br /&gt;
&lt;br /&gt;
*external projects are build as one job. There is no parallelization the build the external project -- this might create a bottleneck for highly parallelized builds, if the external project is big.&lt;br /&gt;
&lt;br /&gt;
=== How to write a makefile.mk for an external tarball  ===&lt;br /&gt;
&lt;br /&gt;
This example is taken from the so_berkeley project. &lt;br /&gt;
&lt;br /&gt;
 #*************************************************************************&lt;br /&gt;
 &lt;br /&gt;
 PRJ=.&lt;br /&gt;
 &lt;br /&gt;
 PRJNAME=so_berkeleydb&lt;br /&gt;
 TARGET=so_berkeleydb&lt;br /&gt;
 &lt;br /&gt;
 # --- Settings&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 .INCLUDE : settings.mk&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # --- Files&lt;br /&gt;
 &lt;br /&gt;
 # Basename of the tarball which is supposed to reside in a direcrory named pointed to by the environment variable TARFILE_LOCATION. &lt;br /&gt;
 TARFILE_NAME=db-3.2.9&lt;br /&gt;
 &lt;br /&gt;
 # md5 checksum of the tarball &lt;br /&gt;
 TARFILE_MD5=d70951c80dabecc2892c919ff5d07172&lt;br /&gt;
 &lt;br /&gt;
 # Name of the patch file if needed. Used to apply patches to the original tarball needed &lt;br /&gt;
 # to build (e.g. for win32...). &lt;br /&gt;
 &lt;br /&gt;
 PATCH_FILES=db-3.2.9.patch&lt;br /&gt;
 &lt;br /&gt;
 .IF &amp;quot;$(GUI)&amp;quot;==&amp;quot;UNX&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # sometimes it makes sense to call the configure command from a different directory. &lt;br /&gt;
 CONFIGURE_DIR=out&lt;br /&gt;
 &lt;br /&gt;
 #relative to CONFIGURE_DIR&lt;br /&gt;
 &lt;br /&gt;
 # command to configure package and switches. If no &amp;quot;CONFIGURE_ACTION&amp;quot; is supplied &lt;br /&gt;
 # all other configure variables are ignored. &lt;br /&gt;
 &lt;br /&gt;
 CONFIGURE_ACTION=..$/dist$/configure&lt;br /&gt;
 &lt;br /&gt;
 CONFIGURE_FLAGS=--enable-cxx --enable-java --enable-dynamic --enable-shared&lt;br /&gt;
 &lt;br /&gt;
 # same as with configure. &lt;br /&gt;
 BUILD_DIR=$(CONFIGURE_DIR)&lt;br /&gt;
 BUILD_ACTION=make&lt;br /&gt;
 &lt;br /&gt;
 # copy libraries to the &amp;quot;lib&amp;quot; directory in the local output tree known from own projects. &lt;br /&gt;
 OUT2LIB=$(BUILD_DIR)$/.libs$/libdb*.so&lt;br /&gt;
 &lt;br /&gt;
 # same as above. copy to $(BIN) &lt;br /&gt;
 OUT2BIN=java$/classes$/db.jar&lt;br /&gt;
 &lt;br /&gt;
 .ENDIF # &amp;quot;$(GUI)&amp;quot;==&amp;quot;UNX&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 .IF &amp;quot;$(GUI)&amp;quot;==&amp;quot;WNT&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 BUILD_DIR=build_win32 &lt;br /&gt;
 &lt;br /&gt;
 # build a msdev project without GUI. &lt;br /&gt;
 BUILD_ACTION=msdev Berkeley_DB.dsw /useenv /MAKE &amp;quot;db_buildall - RELEASE&amp;quot; /MAKE &amp;quot;db_java - RELEASE&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 OUT2BIN=java$/classes$/db.jar \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb_java32.dll \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb32.dll&lt;br /&gt;
 &lt;br /&gt;
 OUT2LIB= \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb_java32.lib \&lt;br /&gt;
     $(BUILD_DIR)$/Release$/libdb32.lib&lt;br /&gt;
 &lt;br /&gt;
 .ENDIF # &amp;quot;$(GUI)&amp;quot;==&amp;quot;WNT&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # make the created patch contain the new files comments.txt &lt;br /&gt;
 ADDITIONAL_FILES= build_w32$/comment.txt&lt;br /&gt;
 &lt;br /&gt;
 OUT2INC= \&lt;br /&gt;
     $(BUILD_DIR)$/db.h \&lt;br /&gt;
     include$/db_185.h \&lt;br /&gt;
     include$/db_cxx.h&lt;br /&gt;
 &lt;br /&gt;
 OUT2CLASS=java$/classes$/db.jar&lt;br /&gt;
 &lt;br /&gt;
 # --- Targets&lt;br /&gt;
 &lt;br /&gt;
 # contains some nessecary variables. &lt;br /&gt;
 .INCLUDE : set_ext.mk&lt;br /&gt;
 .INCLUDE : target.mk&lt;br /&gt;
 &lt;br /&gt;
 # contains the &amp;quot;magic&amp;quot; to create targets out of the set variables. &lt;br /&gt;
 .INCLUDE : tg_ext.mk&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=232187</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=232187"/>
		<updated>2013-11-08T09:28:38Z</updated>

		<summary type="html">&lt;p&gt;Hdu: the mod module has been removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
* Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
* Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
* Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
* Install office&lt;br /&gt;
* Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
==Status==&lt;br /&gt;
This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.  However, there are still some things not explained in the necessary detail on this page:&lt;br /&gt;
* How to use ccache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appeares accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features.  A typical call starts like this&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacxi&lt;br /&gt;
| MacOSXX86Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.  You may want to erase the output of a previous compilation:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step Step-by-Step Building Guide for Different Platforms] =&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232180</id>
		<title>BUGZILLA/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232180"/>
		<updated>2013-11-07T12:06:00Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Meaning of bracketed branch names in the summary */  using the branch tag for problems introduced by a branch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several FAQ how to use the [https://issues.apache.org/ooo/ AOO-BUGZILLA]&lt;br /&gt;
&lt;br /&gt;
== Attachments and Sample Documents ==&lt;br /&gt;
&lt;br /&gt;
=== What are good Sample Documents? ===&lt;br /&gt;
Providing a sample document usually helps to reproduce a problem and to test the fix.&lt;br /&gt;
Sample documents should be minimal, e.g. if you notice a bug in the upper left corner on page 345 of a 1000 page document then it is advisable to check whether the bug can still be replicated if the other pages are removed. Removing as much content that does not impact the reproducibility of the bug helps everyone who wants to work on that bug report.&lt;br /&gt;
&lt;br /&gt;
=== How to use attached sample documents for multiple Bug Reports ===&lt;br /&gt;
If an appropriate document to reproduce the problem or to show the problem (screenshot) already does exist in Bugzilla, please [https://wiki.documentfoundation.org/QA/Bugzilla/FAQ#How_to_use_attached_sample_documents_for_multiple_Bug_Reports cite the document instead of attaching it again]. That saves time, because other users, who might know the existing attachment, do not need to check whether the new attachment contains new information (and only looks similar) or simply is a clone.&lt;br /&gt;
&lt;br /&gt;
== Bug Summary ==&lt;br /&gt;
Be as concise as possible in the bug Summary. The more specific a bug summary is the more useful it is for others such as when you report a new bug you will notice that bugzilla tries to find similar bugs that might be of interest. So instead of having a summary &amp;quot;Bug in Writer!!!&amp;quot; please be more specific and write e.g. &amp;quot;Writer prints green text underlines as blue on a Windows GDI printer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed branch names in the summary ===&lt;br /&gt;
Development often happens in [https://en.wikipedia.org/wiki/Branching_%28revision_control%29 code branches]. Development branches are usually very interesting because they contain important new features or major cleanups. But code in branches is mostly not yet ready for general consumptions and needs to be extensively tested before it can be integrated. When such branches are tested the bugs found are very valuable for everyone working on that branch but of little value for the general public. So if a problem occurs only on a development branch then please use the bracketed branch name in the bug summary to make things as clear as possible. Examples of such tags used were e.g. [sidebar], [ia2], [aw080], etc. If the integration of a code branch into the mainline has introduced problems then adding the branch tag also makes very much sense.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed pseudo key words in the summary ===&lt;br /&gt;
In order to make bug summaries as concise as possible experienced bug reporters used pseudo tags directly in the summary. They are often obsolete nowadays because some bugzilla fields are better suited for marking the kind of bug.&lt;br /&gt;
&lt;br /&gt;
Examples for pseudo tags that were used are:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[Regression]&amp;#039;&amp;#039;&amp;#039; Deprecated tag for AOO regression issues. The &amp;quot;regression&amp;quot; keyword should be added to the &amp;#039;&amp;#039;&amp;#039;Keywords&amp;#039;&amp;#039;&amp;#039; field instead.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[RFE]&amp;#039;&amp;#039;&amp;#039; deprecated for &amp;#039;&amp;#039;Request For Enhancement&amp;#039;&amp;#039;. Set the &amp;#039;&amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039;&amp;#039; selector to ENHANCEMENT instead.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[WW8]&amp;#039;&amp;#039;&amp;#039; Bug related to WW8 import filter (for Word.Document.8) &lt;br /&gt;
&lt;br /&gt;
== Bug STATUS ==&lt;br /&gt;
&lt;br /&gt;
=== CONFIRMED ===&lt;br /&gt;
==== Should I report new bugs with initial Status CONFIRMED? ====&lt;br /&gt;
The CONFIRMED status means that the bug report is clear enough and has sufficient details for another person to replicate the bug on another system.&lt;br /&gt;
So the answer is generally &amp;#039;&amp;#039;&amp;#039;no&amp;#039;&amp;#039;&amp;#039;! Even if you are pretty sure that you found a real bug and added lots of relevant information, generally following the [http://en.wikipedia.org/wiki/Two-man_rule#Other_uses Two Men Rule] results in better reports, what leads to faster bug fixing costing less developer resources. But of course, if you are an experienced bug tester (relevant contribution in more than 100 bugs or similar qualification), you might find good reasons to ignore the Two Men Rule and to select initial Status CONFIRMED&lt;br /&gt;
&lt;br /&gt;
==== When should I change Status from UNCONFIRMED to CONFIRMED? ==== &lt;br /&gt;
Please do not change to CONFIRMED only because you were able to reproduce reporter&amp;#039;s observations. The right moment for CONFIRMED is when [http://www.openoffice.org/qa/issue_handling/basic_rules.html#complete all relevant information]  has been gained. &lt;br /&gt;
# Report is a [[QA/HowToFileIssue#Principles|Good Bug Report]]&lt;br /&gt;
## Check for duplicates has been proceeded?&lt;br /&gt;
## Summary is clear and specific enough to distinguish the reported bug from other similar ones&lt;br /&gt;
## Sample Document available? Even if it seems to be simple for QA staff to create own sample documents, it saves a lot of time if a sample is attached. and Additionally the sample document can contribute additional relevant information (Localization, Language, Formatting caused by repoerter&amp;#039;s very special &amp;#039;&amp;#039;New Document Templates&amp;#039;&amp;#039;, ...&lt;br /&gt;
# Other selectors with correct contents?&lt;br /&gt;
## Relation to Operating System checked?&lt;br /&gt;
## Most early OO Version with what the bug has been observed selected (if possible, do your own tests with older versions)&lt;br /&gt;
## Appropriate Importance?&lt;br /&gt;
## Keywords appropriate?&lt;br /&gt;
# All or at least most relevant aspects of the bug are listed in the report&lt;br /&gt;
&lt;br /&gt;
If these conditions are fulfilled you should select CONFIRMED. But of course, it&amp;#039;s a matter of consideration, an important CRASH-Regression should be taken by developers as soon as possible, here it would be inappropriate to leave Status UNCONFIRMED because some minor questions are without answer.&lt;br /&gt;
&lt;br /&gt;
== Mixed ==&lt;br /&gt;
=== From where can I download latest test versions? ===&lt;br /&gt;
You can test latest bug fixes with unstable test builds from [http://ci.apache.org/projects/openoffice/index.html here].&lt;br /&gt;
&lt;br /&gt;
=== How To Crash AOO ===&lt;br /&gt;
For some investigations it is necessary to provoke a crash. You can find possibilities how to crash AOO with this [https://issues.apache.org/ooo/buglist.cgi?bug_status=CONFIRMED&amp;amp;bug_status=ACCEPTED&amp;amp;bug_status=REOPENED&amp;amp;f1=days_elapsed&amp;amp;list_id=79579&amp;amp;longdesc=crash&amp;amp;longdesc_type=allwordssubstr&amp;amp;o1=lessthan&amp;amp;query_format=advanced&amp;amp;resolution=---&amp;amp;short_desc=crash&amp;amp;short_desc_type=allwordssubstr&amp;amp;v1=100 Bugzilla query], what shows current crash-bugs.&lt;br /&gt;
&lt;br /&gt;
=== What is the appropriate &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; in Bugzilla Version selector? ===&lt;br /&gt;
The most early AOO or OOo version with what the problem has been observed.  For &amp;#039;&amp;#039;Regression&amp;#039;&amp;#039; bugs &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; information will help developers to find the code change what causes the problem.&lt;br /&gt;
&lt;br /&gt;
In August 2013 the syntax for &amp;#039;&amp;#039;&amp;#039;AOO&amp;#039;&amp;#039;&amp;#039; versions in the selector has been changed, the &amp;#039;&amp;#039;AOO&amp;#039;&amp;#039; prefix has been dropped for most AOO versions. For historical reasons (?)[https://issues.apache.org/ooo/report.cgi?x_axis_field=product&amp;amp;y_axis_field=component&amp;amp;z_axis_field=&amp;amp;no_redirect=1&amp;amp;query_format=report-table&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;longdesc_type=allwordssubstr&amp;amp;longdesc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_id=&amp;amp;bug_id_type=anyexact&amp;amp;votes=&amp;amp;votes_type=greaterthaneq&amp;amp;version=AOO340-dev&amp;amp;version=AOO400-dev&amp;amp;version=AOO410-dev&amp;amp;version=AOO+3.4.0&amp;amp;version=AOO+3.4.1&amp;amp;version=AOO+4.0&amp;amp;version=AOO+4.0.0&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;emailtype3=substring&amp;amp;email3=&amp;amp;chfieldvalue=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;j_top=AND&amp;amp;f1=noop&amp;amp;o1=noop&amp;amp;v1=&amp;amp;format=table&amp;amp;action=wrap some Versions] with AOO prefix remained. If you work on such a bug report please always think about switching to a &amp;quot;modern&amp;quot; version.&lt;br /&gt;
&lt;br /&gt;
=== How to connect a Bug report to a Tracking Bug ===&lt;br /&gt;
If you want to add a Bug report (like [https://issues.apache.org/ooo/show_bug.cgi?id=122762 Bug 122762]) to a TASK Tracking Bug (like [https://issues.apache.org/ooo/show_bug.cgi?id=122364 Tracking  Bug 122364]), the best way is &lt;br /&gt;
# Add Bug number to &amp;#039;&amp;#039;Depends on&amp;#039;&amp;#039; field in TASK Tracking Bug&lt;br /&gt;
# [https://issues.apache.org/ooo/show_bug.cgi?id=122364#c3 Cite] complete Heading line of &amp;quot;Depends-On-Bug&amp;quot; in a &amp;#039;&amp;#039;Comment&amp;#039;&amp;#039; in the TASK Tracking Bug. &lt;br /&gt;
:: So all interested users listed in CC of TASK Tracking Bug will get a summary of the new bug with mail from bugzilla@apache.org and can see immediately what the reported problem is - no need for a detour to the tracking Bug (and several clicks).&lt;br /&gt;
&lt;br /&gt;
=== How to attach screenshots with additional graphic contents ===&lt;br /&gt;
If you want to add some graphic contents to a screenshot to make it more comprehensible, you should copy the clipboard contents with the screenshot to a new DRAW document and add emphasis, text ideas, callouts, pointer arrows or whatever in the Draw document. If you save it with &amp;#039;File -&amp;gt; Properties -&amp;gt; Security - open File Readonly&amp;#039; before aou attach it in the Bug, the document is protected against unintended edits, but can be edited if appropriate by other users.&lt;br /&gt;
&lt;br /&gt;
=== What is the best file type for screenshots? ===&lt;br /&gt;
Graphic formats with lossless compression like &amp;quot;PNG&amp;quot; are much more suitable than JPG, because no compression artifacts compound recognition of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232177</id>
		<title>BUGZILLA/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232177"/>
		<updated>2013-11-07T12:00:01Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Meaning of bracketed branch names in the summary */  minor rephrasing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several FAQ how to use the [https://issues.apache.org/ooo/ AOO-BUGZILLA]&lt;br /&gt;
&lt;br /&gt;
== Attachments and Sample Documents ==&lt;br /&gt;
&lt;br /&gt;
=== What are good Sample Documents? ===&lt;br /&gt;
Providing a sample document usually helps to reproduce a problem and to test the fix.&lt;br /&gt;
Sample documents should be minimal, e.g. if you notice a bug in the upper left corner on page 345 of a 1000 page document then it is advisable to check whether the bug can still be replicated if the other pages are removed. Removing as much content that does not impact the reproducibility of the bug helps everyone who wants to work on that bug report.&lt;br /&gt;
&lt;br /&gt;
=== How to use attached sample documents for multiple Bug Reports ===&lt;br /&gt;
If an appropriate document to reproduce the problem or to show the problem (screenshot) already does exist in Bugzilla, please [https://wiki.documentfoundation.org/QA/Bugzilla/FAQ#How_to_use_attached_sample_documents_for_multiple_Bug_Reports cite the document instead of attaching it again]. That saves time, because other users, who might know the existing attachment, do not need to check whether the new attachment contains new information (and only looks similar) or simply is a clone.&lt;br /&gt;
&lt;br /&gt;
== Bug Summary ==&lt;br /&gt;
Be as concise as possible in the bug Summary. The more specific a bug summary is the more useful it is for others such as when you report a new bug you will notice that bugzilla tries to find similar bugs that might be of interest. So instead of having a summary &amp;quot;Bug in Writer!!!&amp;quot; please be more specific and write e.g. &amp;quot;Writer prints green text underlines as blue on a Windows GDI printer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed branch names in the summary ===&lt;br /&gt;
Development often happens in [https://en.wikipedia.org/wiki/Branching_%28revision_control%29 code branches]. Development branches are usually very interesting because they contain important new features or major cleanups. But code in branches is mostly not yet ready for general consumptions and needs to be extensively tested before it can be integrated. When such branches are tested the bugs found are very valuable for everyone working on that branch but of little value for the general public. So if a problem occurs only on a development branch then please use the bracketed branch name in the bug summary to make things as clear as possible. Examples of such tags used were e.g. [sidebar], [ia2], [aw080], etc.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed pseudo key words in the summary ===&lt;br /&gt;
In order to make bug summaries as concise as possible experienced bug reporters used pseudo tags directly in the summary. They are often obsolete nowadays because some bugzilla fields are better suited for marking the kind of bug.&lt;br /&gt;
&lt;br /&gt;
Examples for pseudo tags that were used are:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[Regression]&amp;#039;&amp;#039;&amp;#039; Deprecated tag for AOO regression issues. The &amp;quot;regression&amp;quot; keyword should be added to the &amp;#039;&amp;#039;&amp;#039;Keywords&amp;#039;&amp;#039;&amp;#039; field instead.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[RFE]&amp;#039;&amp;#039;&amp;#039; deprecated for &amp;#039;&amp;#039;Request For Enhancement&amp;#039;&amp;#039;. Set the &amp;#039;&amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039;&amp;#039; selector to ENHANCEMENT instead.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[WW8]&amp;#039;&amp;#039;&amp;#039; Bug related to WW8 import filter (for Word.Document.8) &lt;br /&gt;
&lt;br /&gt;
== Bug STATUS ==&lt;br /&gt;
&lt;br /&gt;
=== CONFIRMED ===&lt;br /&gt;
==== Should I report new bugs with initial Status CONFIRMED? ====&lt;br /&gt;
The CONFIRMED status means that the bug report is clear enough and has sufficient details for another person to replicate the bug on another system.&lt;br /&gt;
So the answer is generally &amp;#039;&amp;#039;&amp;#039;no&amp;#039;&amp;#039;&amp;#039;! Even if you are pretty sure that you found a real bug and added lots of relevant information, generally following the [http://en.wikipedia.org/wiki/Two-man_rule#Other_uses Two Men Rule] results in better reports, what leads to faster bug fixing costing less developer resources. But of course, if you are an experienced bug tester (relevant contribution in more than 100 bugs or similar qualification), you might find good reasons to ignore the Two Men Rule and to select initial Status CONFIRMED&lt;br /&gt;
&lt;br /&gt;
==== When should I change Status from UNCONFIRMED to CONFIRMED? ==== &lt;br /&gt;
Please do not change to CONFIRMED only because you were able to reproduce reporter&amp;#039;s observations. The right moment for CONFIRMED is when [http://www.openoffice.org/qa/issue_handling/basic_rules.html#complete all relevant information]  has been gained. &lt;br /&gt;
# Report is a [[QA/HowToFileIssue#Principles|Good Bug Report]]&lt;br /&gt;
## Check for duplicates has been proceeded?&lt;br /&gt;
## Summary is clear and specific enough to distinguish the reported bug from other similar ones&lt;br /&gt;
## Sample Document available? Even if it seems to be simple for QA staff to create own sample documents, it saves a lot of time if a sample is attached. and Additionally the sample document can contribute additional relevant information (Localization, Language, Formatting caused by repoerter&amp;#039;s very special &amp;#039;&amp;#039;New Document Templates&amp;#039;&amp;#039;, ...&lt;br /&gt;
# Other selectors with correct contents?&lt;br /&gt;
## Relation to Operating System checked?&lt;br /&gt;
## Most early OO Version with what the bug has been observed selected (if possible, do your own tests with older versions)&lt;br /&gt;
## Appropriate Importance?&lt;br /&gt;
## Keywords appropriate?&lt;br /&gt;
# All or at least most relevant aspects of the bug are listed in the report&lt;br /&gt;
&lt;br /&gt;
If these conditions are fulfilled you should select CONFIRMED. But of course, it&amp;#039;s a matter of consideration, an important CRASH-Regression should be taken by developers as soon as possible, here it would be inappropriate to leave Status UNCONFIRMED because some minor questions are without answer.&lt;br /&gt;
&lt;br /&gt;
== Mixed ==&lt;br /&gt;
=== From where can I download latest test versions? ===&lt;br /&gt;
You can test latest bug fixes with unstable test builds from [http://ci.apache.org/projects/openoffice/index.html here].&lt;br /&gt;
&lt;br /&gt;
=== How To Crash AOO ===&lt;br /&gt;
For some investigations it is necessary to provoke a crash. You can find possibilities how to crash AOO with this [https://issues.apache.org/ooo/buglist.cgi?bug_status=CONFIRMED&amp;amp;bug_status=ACCEPTED&amp;amp;bug_status=REOPENED&amp;amp;f1=days_elapsed&amp;amp;list_id=79579&amp;amp;longdesc=crash&amp;amp;longdesc_type=allwordssubstr&amp;amp;o1=lessthan&amp;amp;query_format=advanced&amp;amp;resolution=---&amp;amp;short_desc=crash&amp;amp;short_desc_type=allwordssubstr&amp;amp;v1=100 Bugzilla query], what shows current crash-bugs.&lt;br /&gt;
&lt;br /&gt;
=== What is the appropriate &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; in Bugzilla Version selector? ===&lt;br /&gt;
The most early AOO or OOo version with what the problem has been observed.  For &amp;#039;&amp;#039;Regression&amp;#039;&amp;#039; bugs &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; information will help developers to find the code change what causes the problem.&lt;br /&gt;
&lt;br /&gt;
In August 2013 the syntax for &amp;#039;&amp;#039;&amp;#039;AOO&amp;#039;&amp;#039;&amp;#039; versions in the selector has been changed, the &amp;#039;&amp;#039;AOO&amp;#039;&amp;#039; prefix has been dropped for most AOO versions. For historical reasons (?)[https://issues.apache.org/ooo/report.cgi?x_axis_field=product&amp;amp;y_axis_field=component&amp;amp;z_axis_field=&amp;amp;no_redirect=1&amp;amp;query_format=report-table&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;longdesc_type=allwordssubstr&amp;amp;longdesc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_id=&amp;amp;bug_id_type=anyexact&amp;amp;votes=&amp;amp;votes_type=greaterthaneq&amp;amp;version=AOO340-dev&amp;amp;version=AOO400-dev&amp;amp;version=AOO410-dev&amp;amp;version=AOO+3.4.0&amp;amp;version=AOO+3.4.1&amp;amp;version=AOO+4.0&amp;amp;version=AOO+4.0.0&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;emailtype3=substring&amp;amp;email3=&amp;amp;chfieldvalue=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;j_top=AND&amp;amp;f1=noop&amp;amp;o1=noop&amp;amp;v1=&amp;amp;format=table&amp;amp;action=wrap some Versions] with AOO prefix remained. If you work on such a bug report please always think about switching to a &amp;quot;modern&amp;quot; version.&lt;br /&gt;
&lt;br /&gt;
=== How to connect a Bug report to a Tracking Bug ===&lt;br /&gt;
If you want to add a Bug report (like [https://issues.apache.org/ooo/show_bug.cgi?id=122762 Bug 122762]) to a TASK Tracking Bug (like [https://issues.apache.org/ooo/show_bug.cgi?id=122364 Tracking  Bug 122364]), the best way is &lt;br /&gt;
# Add Bug number to &amp;#039;&amp;#039;Depends on&amp;#039;&amp;#039; field in TASK Tracking Bug&lt;br /&gt;
# [https://issues.apache.org/ooo/show_bug.cgi?id=122364#c3 Cite] complete Heading line of &amp;quot;Depends-On-Bug&amp;quot; in a &amp;#039;&amp;#039;Comment&amp;#039;&amp;#039; in the TASK Tracking Bug. &lt;br /&gt;
:: So all interested users listed in CC of TASK Tracking Bug will get a summary of the new bug with mail from bugzilla@apache.org and can see immediately what the reported problem is - no need for a detour to the tracking Bug (and several clicks).&lt;br /&gt;
&lt;br /&gt;
=== How to attach screenshots with additional graphic contents ===&lt;br /&gt;
If you want to add some graphic contents to a screenshot to make it more comprehensible, you should copy the clipboard contents with the screenshot to a new DRAW document and add emphasis, text ideas, callouts, pointer arrows or whatever in the Draw document. If you save it with &amp;#039;File -&amp;gt; Properties -&amp;gt; Security - open File Readonly&amp;#039; before aou attach it in the Bug, the document is protected against unintended edits, but can be edited if appropriate by other users.&lt;br /&gt;
&lt;br /&gt;
=== What is the best file type for screenshots? ===&lt;br /&gt;
Graphic formats with lossless compression like &amp;quot;PNG&amp;quot; are much more suitable than JPG, because no compression artifacts compound recognition of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232174</id>
		<title>BUGZILLA/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232174"/>
		<updated>2013-11-07T10:10:00Z</updated>

		<summary type="html">&lt;p&gt;Hdu: minor cleanup, remove deprecated tags from TOC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several FAQ how to use the [https://issues.apache.org/ooo/ AOO-BUGZILLA]&lt;br /&gt;
&lt;br /&gt;
== Attachments and Sample Documents ==&lt;br /&gt;
&lt;br /&gt;
=== What are good Sample Documents? ===&lt;br /&gt;
Providing a sample document usually helps to reproduce a problem and to test the fix.&lt;br /&gt;
Sample documents should be minimal, e.g. if you notice a bug in the upper left corner on page 345 of a 1000 page document then it is advisable to check whether the bug can still be replicated if the other pages are removed. Removing as much content that does not impact the reproducibility of the bug helps everyone who wants to work on that bug report.&lt;br /&gt;
&lt;br /&gt;
=== How to use attached sample documents for multiple Bug Reports ===&lt;br /&gt;
If an appropriate document to reproduce the problem or to show the problem (screenshot) already does exist in Bugzilla, please [https://wiki.documentfoundation.org/QA/Bugzilla/FAQ#How_to_use_attached_sample_documents_for_multiple_Bug_Reports cite the document instead of attaching it again]. That saves time, because other users, who might know the existing attachment, do not need to check whether the new attachment contains new information (and only looks similar) or simply is a clone.&lt;br /&gt;
&lt;br /&gt;
== Bug Summary ==&lt;br /&gt;
Be as concise as possible in the bug Summary. The more specific a bug summary is the more useful it is for others such as when you report a new bug you will notice that bugzilla tries to find similar bugs that might be of interest. So instead of having a summary &amp;quot;Bug in Writer!!!&amp;quot; please be more specific and write e.g. &amp;quot;Writer prints green text underlines as blue on a Windows GDI printer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed branch names in the summary ===&lt;br /&gt;
Development often happens in [https://en.wikipedia.org/wiki/Branching_%28revision_control%29 code branches]. Development branches are usually very interesting because they contain important new features or major cleanups. But that code is often not yet ready for general consumptions and needs to be extensively tested before it can be integrated. When such branches are tested the bugs found are not of interest to general users but are very interesting for everyone working on that branch.&lt;br /&gt;
&lt;br /&gt;
So it has become customary to add the bracketed branch name to the bug summary to make it clear that a problem only happens on a development branch. Such development branches are e.g. [sidebar], [ia2], [aw080], etc.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed pseudo key words in the summary ===&lt;br /&gt;
In order to make bug summaries as concise as possible experienced bug reporters used pseudo tags directly in the summary. They are often obsolete nowadays because some bugzilla fields are better suited for marking the kind of bug.&lt;br /&gt;
&lt;br /&gt;
Examples for pseudo tags that were used are:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[Regression]&amp;#039;&amp;#039;&amp;#039; Deprecated tag for AOO regression issues. The &amp;quot;regression&amp;quot; keyword should be added to the &amp;#039;&amp;#039;&amp;#039;Keywords&amp;#039;&amp;#039;&amp;#039; field instead.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[RFE]&amp;#039;&amp;#039;&amp;#039; deprecated for &amp;#039;&amp;#039;Request For Enhancement&amp;#039;&amp;#039;. Set the &amp;#039;&amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039;&amp;#039; selector to ENHANCEMENT instead.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[WW8]&amp;#039;&amp;#039;&amp;#039; Bug related to WW8 import filter (for Word.Document.8) &lt;br /&gt;
&lt;br /&gt;
== Bug STATUS ==&lt;br /&gt;
&lt;br /&gt;
=== CONFIRMED ===&lt;br /&gt;
==== Should I report new bugs with initial Status CONFIRMED? ====&lt;br /&gt;
The CONFIRMED status means that the bug report is clear enough and has sufficient details for another person to replicate the bug on another system.&lt;br /&gt;
So the answer is generally &amp;#039;&amp;#039;&amp;#039;no&amp;#039;&amp;#039;&amp;#039;! Even if you are pretty sure that you found a real bug and added lots of relevant information, generally following the [http://en.wikipedia.org/wiki/Two-man_rule#Other_uses Two Men Rule] results in better reports, what leads to faster bug fixing costing less developer resources. But of course, if you are an experienced bug tester (relevant contribution in more than 100 bugs or similar qualification), you might find good reasons to ignore the Two Men Rule and to select initial Status CONFIRMED&lt;br /&gt;
&lt;br /&gt;
==== When should I change Status from UNCONFIRMED to CONFIRMED? ==== &lt;br /&gt;
Please do not change to CONFIRMED only because you were able to reproduce reporter&amp;#039;s observations. The right moment for CONFIRMED is when [http://www.openoffice.org/qa/issue_handling/basic_rules.html#complete all relevant information]  has been gained. &lt;br /&gt;
# Report is a [[QA/HowToFileIssue#Principles|Good Bug Report]]&lt;br /&gt;
## Check for duplicates has been proceeded?&lt;br /&gt;
## Summary is clear and specific enough to distinguish the reported bug from other similar ones&lt;br /&gt;
## Sample Document available? Even if it seems to be simple for QA staff to create own sample documents, it saves a lot of time if a sample is attached. and Additionally the sample document can contribute additional relevant information (Localization, Language, Formatting caused by repoerter&amp;#039;s very special &amp;#039;&amp;#039;New Document Templates&amp;#039;&amp;#039;, ...&lt;br /&gt;
# Other selectors with correct contents?&lt;br /&gt;
## Relation to Operating System checked?&lt;br /&gt;
## Most early OO Version with what the bug has been observed selected (if possible, do your own tests with older versions)&lt;br /&gt;
## Appropriate Importance?&lt;br /&gt;
## Keywords appropriate?&lt;br /&gt;
# All or at least most relevant aspects of the bug are listed in the report&lt;br /&gt;
&lt;br /&gt;
If these conditions are fulfilled you should select CONFIRMED. But of course, it&amp;#039;s a matter of consideration, an important CRASH-Regression should be taken by developers as soon as possible, here it would be inappropriate to leave Status UNCONFIRMED because some minor questions are without answer.&lt;br /&gt;
&lt;br /&gt;
== Mixed ==&lt;br /&gt;
=== From where can I download latest test versions? ===&lt;br /&gt;
You can test latest bug fixes with unstable test builds from [http://ci.apache.org/projects/openoffice/index.html here].&lt;br /&gt;
&lt;br /&gt;
=== How To Crash AOO ===&lt;br /&gt;
For some investigations it is necessary to provoke a crash. You can find possibilities how to crash AOO with this [https://issues.apache.org/ooo/buglist.cgi?bug_status=CONFIRMED&amp;amp;bug_status=ACCEPTED&amp;amp;bug_status=REOPENED&amp;amp;f1=days_elapsed&amp;amp;list_id=79579&amp;amp;longdesc=crash&amp;amp;longdesc_type=allwordssubstr&amp;amp;o1=lessthan&amp;amp;query_format=advanced&amp;amp;resolution=---&amp;amp;short_desc=crash&amp;amp;short_desc_type=allwordssubstr&amp;amp;v1=100 Bugzilla query], what shows current crash-bugs.&lt;br /&gt;
&lt;br /&gt;
=== What is the appropriate &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; in Bugzilla Version selector? ===&lt;br /&gt;
The most early AOO or OOo version with what the problem has been observed.  For &amp;#039;&amp;#039;Regression&amp;#039;&amp;#039; bugs &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; information will help developers to find the code change what causes the problem.&lt;br /&gt;
&lt;br /&gt;
In August 2013 the syntax for &amp;#039;&amp;#039;&amp;#039;AOO&amp;#039;&amp;#039;&amp;#039; versions in the selector has been changed, the &amp;#039;&amp;#039;AOO&amp;#039;&amp;#039; prefix has been dropped for most AOO versions. For historical reasons (?)[https://issues.apache.org/ooo/report.cgi?x_axis_field=product&amp;amp;y_axis_field=component&amp;amp;z_axis_field=&amp;amp;no_redirect=1&amp;amp;query_format=report-table&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;longdesc_type=allwordssubstr&amp;amp;longdesc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_id=&amp;amp;bug_id_type=anyexact&amp;amp;votes=&amp;amp;votes_type=greaterthaneq&amp;amp;version=AOO340-dev&amp;amp;version=AOO400-dev&amp;amp;version=AOO410-dev&amp;amp;version=AOO+3.4.0&amp;amp;version=AOO+3.4.1&amp;amp;version=AOO+4.0&amp;amp;version=AOO+4.0.0&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;emailtype3=substring&amp;amp;email3=&amp;amp;chfieldvalue=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;j_top=AND&amp;amp;f1=noop&amp;amp;o1=noop&amp;amp;v1=&amp;amp;format=table&amp;amp;action=wrap some Versions] with AOO prefix remained. If you work on such a bug report please always think about switching to a &amp;quot;modern&amp;quot; version.&lt;br /&gt;
&lt;br /&gt;
=== How to connect a Bug report to a Tracking Bug ===&lt;br /&gt;
If you want to add a Bug report (like [https://issues.apache.org/ooo/show_bug.cgi?id=122762 Bug 122762]) to a TASK Tracking Bug (like [https://issues.apache.org/ooo/show_bug.cgi?id=122364 Tracking  Bug 122364]), the best way is &lt;br /&gt;
# Add Bug number to &amp;#039;&amp;#039;Depends on&amp;#039;&amp;#039; field in TASK Tracking Bug&lt;br /&gt;
# [https://issues.apache.org/ooo/show_bug.cgi?id=122364#c3 Cite] complete Heading line of &amp;quot;Depends-On-Bug&amp;quot; in a &amp;#039;&amp;#039;Comment&amp;#039;&amp;#039; in the TASK Tracking Bug. &lt;br /&gt;
:: So all interested users listed in CC of TASK Tracking Bug will get a summary of the new bug with mail from bugzilla@apache.org and can see immediately what the reported problem is - no need for a detour to the tracking Bug (and several clicks).&lt;br /&gt;
&lt;br /&gt;
=== How to attach screenshots with additional graphic contents ===&lt;br /&gt;
If you want to add some graphic contents to a screenshot to make it more comprehensible, you should copy the clipboard contents with the screenshot to a new DRAW document and add emphasis, text ideas, callouts, pointer arrows or whatever in the Draw document. If you save it with &amp;#039;File -&amp;gt; Properties -&amp;gt; Security - open File Readonly&amp;#039; before aou attach it in the Bug, the document is protected against unintended edits, but can be edited if appropriate by other users.&lt;br /&gt;
&lt;br /&gt;
=== What is the best file type for screenshots? ===&lt;br /&gt;
Graphic formats with lossless compression like &amp;quot;PNG&amp;quot; are much more suitable than JPG, because no compression artifacts compound recognition of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232173</id>
		<title>BUGZILLA/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232173"/>
		<updated>2013-11-07T09:44:40Z</updated>

		<summary type="html">&lt;p&gt;Hdu: bracketed branch names and pseudo tags in issue summaries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several FAQ how to use the [https://issues.apache.org/ooo/ AOO-BUGZILLA]&lt;br /&gt;
&lt;br /&gt;
== Attachments and Sample Documents ==&lt;br /&gt;
&lt;br /&gt;
=== What are good Sample Documents? ===&lt;br /&gt;
Providing a sample document usually helps to reproduce a problem and to test the fix.&lt;br /&gt;
Sample documents should be minimal, e.g. if you notice a bug in the upper left corner on page 345 of a 1000 page document then it is advisable to check whether the bug can still be replicated if the other pages are removed. Removing as much content that does not impact the reproducibility of the bug helps everyone who wants to work on that bug report.&lt;br /&gt;
&lt;br /&gt;
=== How to use attached sample documents for multiple Bug Reports ===&lt;br /&gt;
If an appropriate document to reproduce the problem or to show the problem (screenshot) already does exist in Bugzilla, please [https://wiki.documentfoundation.org/QA/Bugzilla/FAQ#How_to_use_attached_sample_documents_for_multiple_Bug_Reports cite the document instead of attaching it again]. That saves time, because other users, who might know the existing attachment, do not need to check whether the new attachment contains new information (and only looks similar) or simply is a clone.&lt;br /&gt;
&lt;br /&gt;
== Bug Summary ==&lt;br /&gt;
Be as concise as possible in the bug Summary. The more specific a bug summary is the more useful it is for others such as when you report a new bug you will notice that bugzilla tries to find similar bugs that might be of interest. So instead of having a summary &amp;quot;Bug my cousin noticed in Writer!&amp;quot; please be more specific and write e.g. &amp;quot;Writer prints green text underlines as blue on a Windows GDI printer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed branch names in the summary ===&lt;br /&gt;
Development often happens in [https://en.wikipedia.org/wiki/Branching_%28revision_control%29 code branches]. Development branches are usually very interesting because they contain important new features or major cleanups. But that code is often not yet ready for general consumptions and needs to be extensively tested before it can be integrated. When such branches are tested the bugs founds are not of interest to general users but are very interesting for everyone working on that branch.&lt;br /&gt;
&lt;br /&gt;
So it has become customary to add the bracketed branch name to the bug summary to make it clear that a problem only happens on a development branch. Such development branches are e.g. [sidebar], [ia2], [aw080], etc.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of bracketed pseudo key words in the summary ===&lt;br /&gt;
In order to make bug summaries as concise as possible experienced bug reporters used pseudo tags directly in the summary. They are often obsolete nowadays because some bugzilla fields are better suited for marking the kind of bug.&lt;br /&gt;
&lt;br /&gt;
Examples for pseudo tags that were used are:&lt;br /&gt;
==== [Regression]  ==== &lt;br /&gt;
Deprecated tag for AOO regression issues. The &amp;quot;regression&amp;quot; keyword should be added to the &amp;#039;&amp;#039;&amp;#039;Keywords&amp;#039;&amp;#039;&amp;#039; field instead.&lt;br /&gt;
==== [RFE] ==== &lt;br /&gt;
Request For Enhancement: deprecated, please set &amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039; selector to ENHANCEMENT.&lt;br /&gt;
==== [WW8] ====&lt;br /&gt;
Bug related to WW8 import filter (for Word.Document.8) &lt;br /&gt;
&lt;br /&gt;
== Bug STATUS ==&lt;br /&gt;
&lt;br /&gt;
=== CONFIRMED ===&lt;br /&gt;
==== Should I report new bugs with initial Status CONFIRMED? ====&lt;br /&gt;
The CONFIRMED status means that the bug report is clear enough and has sufficient details for another person to replicate the bug on another system.&lt;br /&gt;
So the answer is generally &amp;#039;&amp;#039;&amp;#039;no&amp;#039;&amp;#039;&amp;#039;! Even if you are pretty sure that you found a real bug and added lots of relevant information, generally following the [http://en.wikipedia.org/wiki/Two-man_rule#Other_uses Two Men Rule] results in better reports, what leads to faster bug fixing costing less developer resources. But of course, if you are an experienced bug tester (relevant contribution in more than 100 bugs or similar qualification), you might find good reasons to ignore the Two Men Rule and to select initial Status CONFIRMED&lt;br /&gt;
&lt;br /&gt;
==== When should I change Status from UNCONFIRMED to CONFIRMED? ==== &lt;br /&gt;
Please do not change to CONFIRMED only because you were able to reproduce reporter&amp;#039;s observations. The right moment for CONFIRMED is when [http://www.openoffice.org/qa/issue_handling/basic_rules.html#complete all relevant information]  has been gained. &lt;br /&gt;
# Report is a [[QA/HowToFileIssue#Principles|Good Bug Report]]&lt;br /&gt;
## Check for duplicates has been proceeded?&lt;br /&gt;
## Summary is clear and specific enough to distinguish the reported bug from other similar ones&lt;br /&gt;
## Sample Document available? Even if it seems to be simple for QA staff to create own sample documents, it saves a lot of time if a sample is attached. and Additionally the sample document can contribute additional relevant information (Localization, Language, Formatting caused by repoerter&amp;#039;s very special &amp;#039;&amp;#039;New Document Templates&amp;#039;&amp;#039;, ...&lt;br /&gt;
# Other selectors with correct contents?&lt;br /&gt;
## Relation to Operating System checked?&lt;br /&gt;
## Most early OO Version with what the bug has been observed selected (if possible, do your own tests with older versions)&lt;br /&gt;
## Appropriate Importance?&lt;br /&gt;
## Keywords appropriate?&lt;br /&gt;
# All or at least most relevant aspects of the bug are listed in the report&lt;br /&gt;
&lt;br /&gt;
If these conditions are fulfilled you should select CONFIRMED. But of course, it&amp;#039;s a matter of consideration, an important CRASH-Regression should be taken by developers as soon as possible, here it would be inappropriate to leave Status UNCONFIRMED because some minor questions are without answer.&lt;br /&gt;
&lt;br /&gt;
== Mixed ==&lt;br /&gt;
=== From where can I download latest test versions? ===&lt;br /&gt;
You can test latest bug fixes with unstable test builds from [http://ci.apache.org/projects/openoffice/index.html here].&lt;br /&gt;
&lt;br /&gt;
=== How To Crash AOO ===&lt;br /&gt;
For some investigations it is necessary to provoke a crash. You can find possibilities how to crash AOO with this [https://issues.apache.org/ooo/buglist.cgi?bug_status=CONFIRMED&amp;amp;bug_status=ACCEPTED&amp;amp;bug_status=REOPENED&amp;amp;f1=days_elapsed&amp;amp;list_id=79579&amp;amp;longdesc=crash&amp;amp;longdesc_type=allwordssubstr&amp;amp;o1=lessthan&amp;amp;query_format=advanced&amp;amp;resolution=---&amp;amp;short_desc=crash&amp;amp;short_desc_type=allwordssubstr&amp;amp;v1=100 Bugzilla query], what shows current crash-bugs.&lt;br /&gt;
&lt;br /&gt;
=== What is the appropriate &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; in Bugzilla Version selector? ===&lt;br /&gt;
The most early AOO or OOo version with what the problem has been observed.  For &amp;#039;&amp;#039;Regression&amp;#039;&amp;#039; bugs &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; information will help developers to find the code change what causes the problem.&lt;br /&gt;
&lt;br /&gt;
In August 2013 the syntax for &amp;#039;&amp;#039;&amp;#039;AOO&amp;#039;&amp;#039;&amp;#039; versions in the selector has been changed, the &amp;#039;&amp;#039;AOO&amp;#039;&amp;#039; prefix has been dropped for most AOO versions. For historical reasons (?)[https://issues.apache.org/ooo/report.cgi?x_axis_field=product&amp;amp;y_axis_field=component&amp;amp;z_axis_field=&amp;amp;no_redirect=1&amp;amp;query_format=report-table&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;longdesc_type=allwordssubstr&amp;amp;longdesc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_id=&amp;amp;bug_id_type=anyexact&amp;amp;votes=&amp;amp;votes_type=greaterthaneq&amp;amp;version=AOO340-dev&amp;amp;version=AOO400-dev&amp;amp;version=AOO410-dev&amp;amp;version=AOO+3.4.0&amp;amp;version=AOO+3.4.1&amp;amp;version=AOO+4.0&amp;amp;version=AOO+4.0.0&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;emailtype3=substring&amp;amp;email3=&amp;amp;chfieldvalue=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;j_top=AND&amp;amp;f1=noop&amp;amp;o1=noop&amp;amp;v1=&amp;amp;format=table&amp;amp;action=wrap some Versions] with AOO prefix remained. If you work on such a bug report please always think about switching to a &amp;quot;modern&amp;quot; version.&lt;br /&gt;
&lt;br /&gt;
=== How to connect a Bug report to a Tracking Bug ===&lt;br /&gt;
If you want to add a Bug report (like [https://issues.apache.org/ooo/show_bug.cgi?id=122762 Bug 122762]) to a TASK Tracking Bug (like [https://issues.apache.org/ooo/show_bug.cgi?id=122364 Tracking  Bug 122364]), the best way is &lt;br /&gt;
# Add Bug number to &amp;#039;&amp;#039;Depends on&amp;#039;&amp;#039; field in TASK Tracking Bug&lt;br /&gt;
# [https://issues.apache.org/ooo/show_bug.cgi?id=122364#c3 Cite] complete Heading line of &amp;quot;Depends-On-Bug&amp;quot; in a &amp;#039;&amp;#039;Comment&amp;#039;&amp;#039; in the TASK Tracking Bug. &lt;br /&gt;
:: So all interested users listed in CC of TASK Tracking Bug will get a summary of the new bug with mail from bugzilla@apache.org and can see immediately what the reported problem is - no need for a detour to the tracking Bug (and several clicks).&lt;br /&gt;
&lt;br /&gt;
=== How to attach screenshots with additional graphic contents ===&lt;br /&gt;
If you want to add some graphic contents to a screenshot to make it more comprehensible, you should copy the clipboard contents with the screenshot to a new DRAW document and add emphasis, text ideas, callouts, pointer arrows or whatever in the Draw document. If you save it with &amp;#039;File -&amp;gt; Properties -&amp;gt; Security - open File Readonly&amp;#039; before aou attach it in the Bug, the document is protected against unintended edits, but can be edited if appropriate by other users.&lt;br /&gt;
&lt;br /&gt;
=== What is the best file type for screenshots? ===&lt;br /&gt;
Graphic formats with lossless compression like &amp;quot;PNG&amp;quot; are much more suitable than JPG, because no compression artifacts compound recognition of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232172</id>
		<title>BUGZILLA/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232172"/>
		<updated>2013-11-07T09:14:01Z</updated>

		<summary type="html">&lt;p&gt;Hdu: concise bug summary (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several FAQ how to use the [https://issues.apache.org/ooo/ AOO-BUGZILLA]&lt;br /&gt;
&lt;br /&gt;
== Attachments and Sample Documents ==&lt;br /&gt;
&lt;br /&gt;
=== What are good Sample Documents? ===&lt;br /&gt;
Providing a sample document usually helps to reproduce a problem and to test the fix.&lt;br /&gt;
Sample documents should be minimal, e.g. if you notice a bug in the upper left corner on page 345 of a 1000 page document then it is advisable to check whether the bug can still be replicated if the other pages are removed. Removing as much content that does not impact the reproducibility of the bug helps everyone who wants to work on that bug report.&lt;br /&gt;
&lt;br /&gt;
=== How to use attached sample documents for multiple Bug Reports ===&lt;br /&gt;
If an appropriate document to reproduce the problem or to show the problem (screenshot) already does exist in Bugzilla, please [https://wiki.documentfoundation.org/QA/Bugzilla/FAQ#How_to_use_attached_sample_documents_for_multiple_Bug_Reports cite the document instead of attaching it again]. That saves time, because other users, who might know the existing attachment, do not need to check whether the new attachment contains new information (and only looks similar) or simply is a clone.&lt;br /&gt;
&lt;br /&gt;
== Bug Summary ==&lt;br /&gt;
Be as concise as possible in the bug Summary. The more specific a bug summary is the more useful it is for others such as when you report a new bug you will notice that bugzilla tries to find similar bugs that might be of interest. So instead of having a summary &amp;quot;Bug my cousin noticed in Writer!&amp;quot; please be more specific and write e.g. &amp;quot;Writer prints green text underlines as blue on a Windows GDI printer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Meaning of pseudo key words  ===&lt;br /&gt;
(often in brackets)&lt;br /&gt;
&lt;br /&gt;
==== [sidebar]  ==== &lt;br /&gt;
Related to the new Sidebar feature in AOO 4&lt;br /&gt;
&lt;br /&gt;
==== [cws dba24a]  ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [ia2]  ==== &lt;br /&gt;
The &amp;#039;&amp;#039;ia2&amp;#039;&amp;#039; AOO code branch is implementing an [http://en.wikipedia.org/wiki/IAccessible2 IAccessible2] native bridge of UNO Accessibility API (UAA) events for Windows, similar to the NX Accessibility and ATK/AT-SPI bridges in place for OSX and Linux.  The native bridge replaces the Java JRE implemented Java Accessibility API that requires the Java Access Bridge to connect to UAA events.&lt;br /&gt;
&lt;br /&gt;
==== [PyUNO] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Presenter Screen] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Memory Leak] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Regression]  ==== &lt;br /&gt;
Deprecated tag for AOO performance issues, Key Word should be used.&lt;br /&gt;
&lt;br /&gt;
==== [Automation] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [dba32a] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [postgre sdbc] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [RFE] ==== &lt;br /&gt;
Request For Enhancement: deprecated, please use &amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039; selector.&lt;br /&gt;
&lt;br /&gt;
==== [WW8] ====&lt;br /&gt;
Bug related to WW8 import filter (for Word.Document.8) &lt;br /&gt;
&lt;br /&gt;
== Bug STATUS ==&lt;br /&gt;
&lt;br /&gt;
=== CONFIRMED ===&lt;br /&gt;
==== Should I report new bugs with initial Status CONFIRMED? ====&lt;br /&gt;
The CONFIRMED status means that the bug report is clear enough and has sufficient details for another person to replicate the bug on another system.&lt;br /&gt;
So the answer is generally &amp;#039;&amp;#039;&amp;#039;no&amp;#039;&amp;#039;&amp;#039;! Even if you are pretty sure that you found a real bug and added lots of relevant information, generally following the [http://en.wikipedia.org/wiki/Two-man_rule#Other_uses Two Men Rule] results in better reports, what leads to faster bug fixing costing less developer resources. But of course, if you are an experienced bug tester (relevant contribution in more than 100 bugs or similar qualification), you might find good reasons to ignore the Two Men Rule and to select initial Status CONFIRMED&lt;br /&gt;
&lt;br /&gt;
==== When should I change Status from UNCONFIRMED to CONFIRMED? ==== &lt;br /&gt;
Please do not change to CONFIRMED only because you were able to reproduce reporter&amp;#039;s observations. The right moment for CONFIRMED is when [http://www.openoffice.org/qa/issue_handling/basic_rules.html#complete all relevant information]  has been gained. &lt;br /&gt;
# Report is a [[QA/HowToFileIssue#Principles|Good Bug Report]]&lt;br /&gt;
## Check for duplicates has been proceeded?&lt;br /&gt;
## Summary is clear and specific enough to distinguish the reported bug from other similar ones&lt;br /&gt;
## Sample Document available? Even if it seems to be simple for QA staff to create own sample documents, it saves a lot of time if a sample is attached. and Additionally the sample document can contribute additional relevant information (Localization, Language, Formatting caused by repoerter&amp;#039;s very special &amp;#039;&amp;#039;New Document Templates&amp;#039;&amp;#039;, ...&lt;br /&gt;
# Other selectors with correct contents?&lt;br /&gt;
## Relation to Operating System checked?&lt;br /&gt;
## Most early OO Version with what the bug has been observed selected (if possible, do your own tests with older versions)&lt;br /&gt;
## Appropriate Importance?&lt;br /&gt;
## Keywords appropriate?&lt;br /&gt;
# All or at least most relevant aspects of the bug are listed in the report&lt;br /&gt;
&lt;br /&gt;
If these conditions are fulfilled you should select CONFIRMED. But of course, it&amp;#039;s a matter of consideration, an important CRASH-Regression should be taken by developers as soon as possible, here it would be inappropriate to leave Status UNCONFIRMED because some minor questions are without answer.&lt;br /&gt;
&lt;br /&gt;
== Mixed ==&lt;br /&gt;
=== From where can I download latest test versions? ===&lt;br /&gt;
You can test latest bug fixes with unstable test builds from [http://ci.apache.org/projects/openoffice/index.html here].&lt;br /&gt;
&lt;br /&gt;
=== How To Crash AOO ===&lt;br /&gt;
For some investigations it is necessary to provoke a crash. You can find possibilities how to crash AOO with this [https://issues.apache.org/ooo/buglist.cgi?bug_status=CONFIRMED&amp;amp;bug_status=ACCEPTED&amp;amp;bug_status=REOPENED&amp;amp;f1=days_elapsed&amp;amp;list_id=79579&amp;amp;longdesc=crash&amp;amp;longdesc_type=allwordssubstr&amp;amp;o1=lessthan&amp;amp;query_format=advanced&amp;amp;resolution=---&amp;amp;short_desc=crash&amp;amp;short_desc_type=allwordssubstr&amp;amp;v1=100 Bugzilla query], what shows current crash-bugs.&lt;br /&gt;
&lt;br /&gt;
=== What is the appropriate &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; in Bugzilla Version selector? ===&lt;br /&gt;
The most early AOO or OOo version with what the problem has been observed.  For &amp;#039;&amp;#039;Regression&amp;#039;&amp;#039; bugs &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; information will help developers to find the code change what causes the problem.&lt;br /&gt;
&lt;br /&gt;
In August 2013 the syntax for &amp;#039;&amp;#039;&amp;#039;AOO&amp;#039;&amp;#039;&amp;#039; versions in the selector has been changed, the &amp;#039;&amp;#039;AOO&amp;#039;&amp;#039; prefix has been dropped for most AOO versions. For historical reasons (?)[https://issues.apache.org/ooo/report.cgi?x_axis_field=product&amp;amp;y_axis_field=component&amp;amp;z_axis_field=&amp;amp;no_redirect=1&amp;amp;query_format=report-table&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;longdesc_type=allwordssubstr&amp;amp;longdesc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_id=&amp;amp;bug_id_type=anyexact&amp;amp;votes=&amp;amp;votes_type=greaterthaneq&amp;amp;version=AOO340-dev&amp;amp;version=AOO400-dev&amp;amp;version=AOO410-dev&amp;amp;version=AOO+3.4.0&amp;amp;version=AOO+3.4.1&amp;amp;version=AOO+4.0&amp;amp;version=AOO+4.0.0&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;emailtype3=substring&amp;amp;email3=&amp;amp;chfieldvalue=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;j_top=AND&amp;amp;f1=noop&amp;amp;o1=noop&amp;amp;v1=&amp;amp;format=table&amp;amp;action=wrap some Versions] with AOO prefix remained. If you work on such a bug report please always think about switching to a &amp;quot;modern&amp;quot; version.&lt;br /&gt;
&lt;br /&gt;
=== How to connect a Bug report to a Tracking Bug ===&lt;br /&gt;
If you want to add a Bug report (like [https://issues.apache.org/ooo/show_bug.cgi?id=122762 Bug 122762]) to a TASK Tracking Bug (like [https://issues.apache.org/ooo/show_bug.cgi?id=122364 Tracking  Bug 122364]), the best way is &lt;br /&gt;
# Add Bug number to &amp;#039;&amp;#039;Depends on&amp;#039;&amp;#039; field in TASK Tracking Bug&lt;br /&gt;
# [https://issues.apache.org/ooo/show_bug.cgi?id=122364#c3 Cite] complete Heading line of &amp;quot;Depends-On-Bug&amp;quot; in a &amp;#039;&amp;#039;Comment&amp;#039;&amp;#039; in the TASK Tracking Bug. &lt;br /&gt;
:: So all interested users listed in CC of TASK Tracking Bug will get a summary of the new bug with mail from bugzilla@apache.org and can see immediately what the reported problem is - no need for a detour to the tracking Bug (and several clicks).&lt;br /&gt;
&lt;br /&gt;
=== How to attach screenshots with additional graphic contents ===&lt;br /&gt;
If you want to add some graphic contents to a screenshot to make it more comprehensible, you should copy the clipboard contents with the screenshot to a new DRAW document and add emphasis, text ideas, callouts, pointer arrows or whatever in the Draw document. If you save it with &amp;#039;File -&amp;gt; Properties -&amp;gt; Security - open File Readonly&amp;#039; before aou attach it in the Bug, the document is protected against unintended edits, but can be edited if appropriate by other users.&lt;br /&gt;
&lt;br /&gt;
=== What is the best file type for screenshots? ===&lt;br /&gt;
Graphic formats with lossless compression like &amp;quot;PNG&amp;quot; are much more suitable than JPG, because no compression artifacts compound recognition of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232171</id>
		<title>BUGZILLA/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232171"/>
		<updated>2013-11-07T09:03:34Z</updated>

		<summary type="html">&lt;p&gt;Hdu: added &amp;quot;good sample docs&amp;quot; subsection&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several FAQ how to use the [https://issues.apache.org/ooo/ AOO-BUGZILLA]&lt;br /&gt;
&lt;br /&gt;
== Attachments and Sample Documents ==&lt;br /&gt;
&lt;br /&gt;
=== What are good Sample Documents? ===&lt;br /&gt;
Providing a sample document usually helps to reproduce a problem and to test the fix.&lt;br /&gt;
Sample documents should be minimal, e.g. if you notice a bug in the upper left corner on page 345 of a 1000 page document then it is advisable to check whether the bug can still be replicated if the other pages are removed. Removing as much content that does not impact the reproducibility of the bug helps everyone who wants to work on that bug report.&lt;br /&gt;
&lt;br /&gt;
=== How to use attached sample documents for multiple Bug Reports ===&lt;br /&gt;
If an appropriate document to reproduce the problem or to show the problem (screenshot) already does exist in Bugzilla, please [https://wiki.documentfoundation.org/QA/Bugzilla/FAQ#How_to_use_attached_sample_documents_for_multiple_Bug_Reports cite the document instead of attaching it again]. That saves time, because other users, who might know the existing attachment, do not need to check whether the new attachment contains new information (and only looks similar) or simply is a clone.&lt;br /&gt;
&lt;br /&gt;
== Bug Summary ==&lt;br /&gt;
&lt;br /&gt;
=== Meaning of pseudo key words  ===&lt;br /&gt;
(often in brackets)&lt;br /&gt;
&lt;br /&gt;
==== [sidebar]  ==== &lt;br /&gt;
Related to the new Sidebar feature in AOO 4&lt;br /&gt;
&lt;br /&gt;
==== [cws dba24a]  ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [ia2]  ==== &lt;br /&gt;
The &amp;#039;&amp;#039;ia2&amp;#039;&amp;#039; AOO code branch is implementing an [http://en.wikipedia.org/wiki/IAccessible2 IAccessible2] native bridge of UNO Accessibility API (UAA) events for Windows, similar to the NX Accessibility and ATK/AT-SPI bridges in place for OSX and Linux.  The native bridge replaces the Java JRE implemented Java Accessibility API that requires the Java Access Bridge to connect to UAA events.&lt;br /&gt;
&lt;br /&gt;
==== [PyUNO] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Presenter Screen] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Memory Leak] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Regression]  ==== &lt;br /&gt;
Deprecated tag for AOO performance issues, Key Word should be used.&lt;br /&gt;
&lt;br /&gt;
==== [Automation] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [dba32a] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [postgre sdbc] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [RFE] ==== &lt;br /&gt;
Request For Enhancement: deprecated, please use &amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039; selector.&lt;br /&gt;
&lt;br /&gt;
==== [WW8] ====&lt;br /&gt;
Bug related to WW8 import filter (for Word.Document.8) &lt;br /&gt;
&lt;br /&gt;
== Bug STATUS ==&lt;br /&gt;
&lt;br /&gt;
=== CONFIRMED ===&lt;br /&gt;
==== Should I report new bugs with initial Status CONFIRMED? ====&lt;br /&gt;
The CONFIRMED status means that the bug report is clear enough and has sufficient details for another person to replicate the bug on another system.&lt;br /&gt;
So the answer is generally &amp;#039;&amp;#039;&amp;#039;no&amp;#039;&amp;#039;&amp;#039;! Even if you are pretty sure that you found a real bug and added lots of relevant information, generally following the [http://en.wikipedia.org/wiki/Two-man_rule#Other_uses Two Men Rule] results in better reports, what leads to faster bug fixing costing less developer resources. But of course, if you are an experienced bug tester (relevant contribution in more than 100 bugs or similar qualification), you might find good reasons to ignore the Two Men Rule and to select initial Status CONFIRMED&lt;br /&gt;
&lt;br /&gt;
==== When should I change Status from UNCONFIRMED to CONFIRMED? ==== &lt;br /&gt;
Please do not change to CONFIRMED only because you were able to reproduce reporter&amp;#039;s observations. The right moment for CONFIRMED is when [http://www.openoffice.org/qa/issue_handling/basic_rules.html#complete all relevant information]  has been gained. &lt;br /&gt;
# Report is a [[QA/HowToFileIssue#Principles|Good Bug Report]]&lt;br /&gt;
## Check for duplicates has been proceeded?&lt;br /&gt;
## Summary is clear and specific enough to distinguish the reported bug from other similar ones&lt;br /&gt;
## Sample Document available? Even if it seems to be simple for QA staff to create own sample documents, it saves a lot of time if a sample is attached. and Additionally the sample document can contribute additional relevant information (Localization, Language, Formatting caused by repoerter&amp;#039;s very special &amp;#039;&amp;#039;New Document Templates&amp;#039;&amp;#039;, ...&lt;br /&gt;
# Other selectors with correct contents?&lt;br /&gt;
## Relation to Operating System checked?&lt;br /&gt;
## Most early OO Version with what the bug has been observed selected (if possible, do your own tests with older versions)&lt;br /&gt;
## Appropriate Importance?&lt;br /&gt;
## Keywords appropriate?&lt;br /&gt;
# All or at least most relevant aspects of the bug are listed in the report&lt;br /&gt;
&lt;br /&gt;
If these conditions are fulfilled you should select CONFIRMED. But of course, it&amp;#039;s a matter of consideration, an important CRASH-Regression should be taken by developers as soon as possible, here it would be inappropriate to leave Status UNCONFIRMED because some minor questions are without answer.&lt;br /&gt;
&lt;br /&gt;
== Mixed ==&lt;br /&gt;
=== From where can I download latest test versions? ===&lt;br /&gt;
You can test latest bug fixes with unstable test builds from [http://ci.apache.org/projects/openoffice/index.html here].&lt;br /&gt;
&lt;br /&gt;
=== How To Crash AOO ===&lt;br /&gt;
For some investigations it is necessary to provoke a crash. You can find possibilities how to crash AOO with this [https://issues.apache.org/ooo/buglist.cgi?bug_status=CONFIRMED&amp;amp;bug_status=ACCEPTED&amp;amp;bug_status=REOPENED&amp;amp;f1=days_elapsed&amp;amp;list_id=79579&amp;amp;longdesc=crash&amp;amp;longdesc_type=allwordssubstr&amp;amp;o1=lessthan&amp;amp;query_format=advanced&amp;amp;resolution=---&amp;amp;short_desc=crash&amp;amp;short_desc_type=allwordssubstr&amp;amp;v1=100 Bugzilla query], what shows current crash-bugs.&lt;br /&gt;
&lt;br /&gt;
=== What is the appropriate &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; in Bugzilla Version selector? ===&lt;br /&gt;
The most early AOO or OOo version with what the problem has been observed.  For &amp;#039;&amp;#039;Regression&amp;#039;&amp;#039; bugs &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; information will help developers to find the code change what causes the problem.&lt;br /&gt;
&lt;br /&gt;
In August 2013 the syntax for &amp;#039;&amp;#039;&amp;#039;AOO&amp;#039;&amp;#039;&amp;#039; versions in the selector has been changed, the &amp;#039;&amp;#039;AOO&amp;#039;&amp;#039; prefix has been dropped for most AOO versions. For historical reasons (?)[https://issues.apache.org/ooo/report.cgi?x_axis_field=product&amp;amp;y_axis_field=component&amp;amp;z_axis_field=&amp;amp;no_redirect=1&amp;amp;query_format=report-table&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;longdesc_type=allwordssubstr&amp;amp;longdesc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_id=&amp;amp;bug_id_type=anyexact&amp;amp;votes=&amp;amp;votes_type=greaterthaneq&amp;amp;version=AOO340-dev&amp;amp;version=AOO400-dev&amp;amp;version=AOO410-dev&amp;amp;version=AOO+3.4.0&amp;amp;version=AOO+3.4.1&amp;amp;version=AOO+4.0&amp;amp;version=AOO+4.0.0&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;emailtype3=substring&amp;amp;email3=&amp;amp;chfieldvalue=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;j_top=AND&amp;amp;f1=noop&amp;amp;o1=noop&amp;amp;v1=&amp;amp;format=table&amp;amp;action=wrap some Versions] with AOO prefix remained. If you work on such a bug report please always think about switching to a &amp;quot;modern&amp;quot; version.&lt;br /&gt;
&lt;br /&gt;
=== How to connect a Bug report to a Tracking Bug ===&lt;br /&gt;
If you want to add a Bug report (like [https://issues.apache.org/ooo/show_bug.cgi?id=122762 Bug 122762]) to a TASK Tracking Bug (like [https://issues.apache.org/ooo/show_bug.cgi?id=122364 Tracking  Bug 122364]), the best way is &lt;br /&gt;
# Add Bug number to &amp;#039;&amp;#039;Depends on&amp;#039;&amp;#039; field in TASK Tracking Bug&lt;br /&gt;
# [https://issues.apache.org/ooo/show_bug.cgi?id=122364#c3 Cite] complete Heading line of &amp;quot;Depends-On-Bug&amp;quot; in a &amp;#039;&amp;#039;Comment&amp;#039;&amp;#039; in the TASK Tracking Bug. &lt;br /&gt;
:: So all interested users listed in CC of TASK Tracking Bug will get a summary of the new bug with mail from bugzilla@apache.org and can see immediately what the reported problem is - no need for a detour to the tracking Bug (and several clicks).&lt;br /&gt;
&lt;br /&gt;
=== How to attach screenshots with additional graphic contents ===&lt;br /&gt;
If you want to add some graphic contents to a screenshot to make it more comprehensible, you should copy the clipboard contents with the screenshot to a new DRAW document and add emphasis, text ideas, callouts, pointer arrows or whatever in the Draw document. If you save it with &amp;#039;File -&amp;gt; Properties -&amp;gt; Security - open File Readonly&amp;#039; before aou attach it in the Bug, the document is protected against unintended edits, but can be edited if appropriate by other users.&lt;br /&gt;
&lt;br /&gt;
=== What is the best file type for screenshots? ===&lt;br /&gt;
Graphic formats with lossless compression like &amp;quot;PNG&amp;quot; are much more suitable than JPG, because no compression artifacts compound recognition of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232170</id>
		<title>BUGZILLA/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=BUGZILLA/FAQ&amp;diff=232170"/>
		<updated>2013-11-07T08:48:57Z</updated>

		<summary type="html">&lt;p&gt;Hdu: added info about CONFIRMED status (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists several FAQ how to use the [https://issues.apache.org/ooo/ AOO-BUGZILLA]&lt;br /&gt;
&lt;br /&gt;
== Attachments and Sample Documents ==&lt;br /&gt;
&lt;br /&gt;
=== How to use attached sample documents for multiple Bug Reports ===&lt;br /&gt;
If an appropriate document to reproduce the problem or to show the problem (screenshot) already does exist in Bugzilla, please [https://wiki.documentfoundation.org/QA/Bugzilla/FAQ#How_to_use_attached_sample_documents_for_multiple_Bug_Reports cite the document instead of attaching it again]. That saves time, because other users, who might know the existing attachment, do not need to check whether the new attachment contains new information (and only looks similar) or simply is a clone.&lt;br /&gt;
&lt;br /&gt;
== Bug Summary ==&lt;br /&gt;
&lt;br /&gt;
=== Meaning of pseudo key words  ===&lt;br /&gt;
(often in brackets)&lt;br /&gt;
&lt;br /&gt;
==== [sidebar]  ==== &lt;br /&gt;
Related to the new Sidebar feature in AOO 4&lt;br /&gt;
&lt;br /&gt;
==== [cws dba24a]  ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [ia2]  ==== &lt;br /&gt;
The &amp;#039;&amp;#039;ia2&amp;#039;&amp;#039; AOO code branch is implementing an [http://en.wikipedia.org/wiki/IAccessible2 IAccessible2] native bridge of UNO Accessibility API (UAA) events for Windows, similar to the NX Accessibility and ATK/AT-SPI bridges in place for OSX and Linux.  The native bridge replaces the Java JRE implemented Java Accessibility API that requires the Java Access Bridge to connect to UAA events.&lt;br /&gt;
&lt;br /&gt;
==== [PyUNO] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Presenter Screen] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Memory Leak] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [Regression]  ==== &lt;br /&gt;
Deprecated tag for AOO performance issues, Key Word should be used.&lt;br /&gt;
&lt;br /&gt;
==== [Automation] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [dba32a] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [postgre sdbc] ==== &lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== [RFE] ==== &lt;br /&gt;
Request For Enhancement: deprecated, please use &amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039; selector.&lt;br /&gt;
&lt;br /&gt;
==== [WW8] ====&lt;br /&gt;
Bug related to WW8 import filter (for Word.Document.8) &lt;br /&gt;
&lt;br /&gt;
== Bug STATUS ==&lt;br /&gt;
&lt;br /&gt;
=== CONFIRMED ===&lt;br /&gt;
==== Should I report new bugs with initial Status CONFIRMED? ====&lt;br /&gt;
The CONFIRMED status means that the bug report is clear enough and has sufficient details for another person to replicate the bug on another system.&lt;br /&gt;
So the answer is generally &amp;#039;&amp;#039;&amp;#039;no&amp;#039;&amp;#039;&amp;#039;! Even if you are pretty sure that you found a real bug and added lots of relevant information, generally following the [http://en.wikipedia.org/wiki/Two-man_rule#Other_uses Two Men Rule] results in better reports, what leads to faster bug fixing costing less developer resources. But of course, if you are an experienced bug tester (relevant contribution in more than 100 bugs or similar qualification), you might find good reasons to ignore the Two Men Rule and to select initial Status CONFIRMED&lt;br /&gt;
&lt;br /&gt;
==== When should I change Status from UNCONFIRMED to CONFIRMED? ==== &lt;br /&gt;
Please do not change to CONFIRMED only because you were able to reproduce reporter&amp;#039;s observations. The right moment for CONFIRMED is when [http://www.openoffice.org/qa/issue_handling/basic_rules.html#complete all relevant information]  has been gained. &lt;br /&gt;
# Report is a [[QA/HowToFileIssue#Principles|Good Bug Report]]&lt;br /&gt;
## Check for duplicates has been proceeded?&lt;br /&gt;
## Summary is clear and specific enough to distinguish the reported bug from other similar ones&lt;br /&gt;
## Sample Document available? Even if it seems to be simple for QA staff to create own sample documents, it saves a lot of time if a sample is attached. and Additionally the sample document can contribute additional relevant information (Localization, Language, Formatting caused by repoerter&amp;#039;s very special &amp;#039;&amp;#039;New Document Templates&amp;#039;&amp;#039;, ...&lt;br /&gt;
# Other selectors with correct contents?&lt;br /&gt;
## Relation to Operating System checked?&lt;br /&gt;
## Most early OO Version with what the bug has been observed selected (if possible, do your own tests with older versions)&lt;br /&gt;
## Appropriate Importance?&lt;br /&gt;
## Keywords appropriate?&lt;br /&gt;
# All or at least most relevant aspects of the bug are listed in the report&lt;br /&gt;
&lt;br /&gt;
If these conditions are fulfilled you should select CONFIRMED. But of course, it&amp;#039;s a matter of consideration, an important CRASH-Regression should be taken by developers as soon as possible, here it would be inappropriate to leave Status UNCONFIRMED because some minor questions are without answer.&lt;br /&gt;
&lt;br /&gt;
== Mixed ==&lt;br /&gt;
=== From where can I download latest test versions? ===&lt;br /&gt;
You can test latest bug fixes with unstable test builds from [http://ci.apache.org/projects/openoffice/index.html here].&lt;br /&gt;
&lt;br /&gt;
=== How To Crash AOO ===&lt;br /&gt;
For some investigations it is necessary to provoke a crash. You can find possibilities how to crash AOO with this [https://issues.apache.org/ooo/buglist.cgi?bug_status=CONFIRMED&amp;amp;bug_status=ACCEPTED&amp;amp;bug_status=REOPENED&amp;amp;f1=days_elapsed&amp;amp;list_id=79579&amp;amp;longdesc=crash&amp;amp;longdesc_type=allwordssubstr&amp;amp;o1=lessthan&amp;amp;query_format=advanced&amp;amp;resolution=---&amp;amp;short_desc=crash&amp;amp;short_desc_type=allwordssubstr&amp;amp;v1=100 Bugzilla query], what shows current crash-bugs.&lt;br /&gt;
&lt;br /&gt;
=== What is the appropriate &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; in Bugzilla Version selector? ===&lt;br /&gt;
The most early AOO or OOo version with what the problem has been observed.  For &amp;#039;&amp;#039;Regression&amp;#039;&amp;#039; bugs &amp;#039;&amp;#039;Version&amp;#039;&amp;#039; information will help developers to find the code change what causes the problem.&lt;br /&gt;
&lt;br /&gt;
In August 2013 the syntax for &amp;#039;&amp;#039;&amp;#039;AOO&amp;#039;&amp;#039;&amp;#039; versions in the selector has been changed, the &amp;#039;&amp;#039;AOO&amp;#039;&amp;#039; prefix has been dropped for most AOO versions. For historical reasons (?)[https://issues.apache.org/ooo/report.cgi?x_axis_field=product&amp;amp;y_axis_field=component&amp;amp;z_axis_field=&amp;amp;no_redirect=1&amp;amp;query_format=report-table&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;longdesc_type=allwordssubstr&amp;amp;longdesc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_id=&amp;amp;bug_id_type=anyexact&amp;amp;votes=&amp;amp;votes_type=greaterthaneq&amp;amp;version=AOO340-dev&amp;amp;version=AOO400-dev&amp;amp;version=AOO410-dev&amp;amp;version=AOO+3.4.0&amp;amp;version=AOO+3.4.1&amp;amp;version=AOO+4.0&amp;amp;version=AOO+4.0.0&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;emailtype3=substring&amp;amp;email3=&amp;amp;chfieldvalue=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;j_top=AND&amp;amp;f1=noop&amp;amp;o1=noop&amp;amp;v1=&amp;amp;format=table&amp;amp;action=wrap some Versions] with AOO prefix remained. If you work on such a bug report please always think about switching to a &amp;quot;modern&amp;quot; version.&lt;br /&gt;
&lt;br /&gt;
=== How to connect a Bug report to a Tracking Bug ===&lt;br /&gt;
If you want to add a Bug report (like [https://issues.apache.org/ooo/show_bug.cgi?id=122762 Bug 122762]) to a TASK Tracking Bug (like [https://issues.apache.org/ooo/show_bug.cgi?id=122364 Tracking  Bug 122364]), the best way is &lt;br /&gt;
# Add Bug number to &amp;#039;&amp;#039;Depends on&amp;#039;&amp;#039; field in TASK Tracking Bug&lt;br /&gt;
# [https://issues.apache.org/ooo/show_bug.cgi?id=122364#c3 Cite] complete Heading line of &amp;quot;Depends-On-Bug&amp;quot; in a &amp;#039;&amp;#039;Comment&amp;#039;&amp;#039; in the TASK Tracking Bug. &lt;br /&gt;
:: So all interested users listed in CC of TASK Tracking Bug will get a summary of the new bug with mail from bugzilla@apache.org and can see immediately what the reported problem is - no need for a detour to the tracking Bug (and several clicks).&lt;br /&gt;
&lt;br /&gt;
=== How to attach screenshots with additional graphic contents ===&lt;br /&gt;
If you want to add some graphic contents to a screenshot to make it more comprehensible, you should copy the clipboard contents with the screenshot to a new DRAW document and add emphasis, text ideas, callouts, pointer arrows or whatever in the Draw document. If you save it with &amp;#039;File -&amp;gt; Properties -&amp;gt; Security - open File Readonly&amp;#039; before aou attach it in the Bug, the document is protected against unintended edits, but can be edited if appropriate by other users.&lt;br /&gt;
&lt;br /&gt;
=== What is the best file type for screenshots? ===&lt;br /&gt;
Graphic formats with lossless compression like &amp;quot;PNG&amp;quot; are much more suitable than JPG, because no compression artifacts compound recognition of details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Uno/FAQ&amp;diff=231655</id>
		<title>Uno/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Uno/FAQ&amp;diff=231655"/>
		<updated>2013-10-08T13:23:04Z</updated>

		<summary type="html">&lt;p&gt;Hdu: fixed minor typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Uno/FAQ zh|中]]&lt;br /&gt;
&lt;br /&gt;
Frequently Asked Questions about Uno, UDK, URE etc. Based on questions and answers posted to the dev@udk.openoffice.org mailing list. Any comments or questions will also be answered there.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
===Hey, the OpenOffice.org component technology is great. How do I contribute?===&lt;br /&gt;
Great, you&amp;#039;re always welcome. To find some ideas on where to help please browse the [[Uno/To-Dos|open task list]]. If you&amp;#039;ve got any questions about any of these tasks don&amp;#039;t hesitate to ask them. Please post them to the [http://udk.openoffice.org/servlets/SummarizeList?listName=dev dev@udk.openoffice.org] mailing list.&lt;br /&gt;
&lt;br /&gt;
===Does UNO depend on OpenOffice.org?===&lt;br /&gt;
In the near future, there will be an Office Development Kit available for download beside the openoffice.org-setup-set. This development kit contains all files (include-files, libraries, tools, etc.) that are necessary to build components. The development kit will also contain samples. These samples are built with makefiles, that only require gnumake (not the whole openoffice.org build environment). These makefiles can be used as a template to integrate the build of your UNO-components into your build environment.&lt;br /&gt;
&lt;br /&gt;
===Is UNO analogous to MS COM?===&lt;br /&gt;
Yes, UNO can be seen as an component model completely independent from the office itself. It is in direct competition to COM. You can find a feature list [http://udk.openoffice.org/common/man/uno.html here].&lt;br /&gt;
&lt;br /&gt;
===What is the ODK?===&lt;br /&gt;
The Office Development Kit (ODK) extends the UDK with additional documentation, API&amp;#039;s (more IDL&amp;#039;s), and examples. The UDK is a subset of the ODK. If you want to extend the OpenOffice.org, or write solutions with OpenOffice.org, then the ODK fits your needs. The UDK is a stand alone object model, that can be used without OpenOffice.org. The UDK will be the main target of integration discussions with Gnome and XPCOM, for achieving the long term goal of having only one Open Source Object Model. In the future, it should be possible to write components which depend on the ODK and components which are independent from OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
The Office Development Kit enables software engineers to develop components for OpenOffice.org without the need of the bulky OpenOffice.org build environment. Thus, the ODK includes the binaries of the base libraries (+ im&lt;br /&gt;
port libraries), C++ header files, all idl-files, .jar files, and development tools (code generators, tools to register components, etc.) The ODK, additionally, includes some source examples and makefiles, that only require gnumake and a C++-compiler, you can take the makefiles, as an example, to integrate them into your build environment. The development kit will be provided in the future alongside every OpenOffice.org build and will be available as an separate [http://download.openoffice.org/index.html#sdk download].&lt;br /&gt;
&lt;br /&gt;
===Why didn&amp;#039;t you use Java or CORBA as middleware?===&lt;br /&gt;
We wanted a middleware which can be used for components with a fine granularity, at least, in-process. If you use different UNO components in the same language than there is no overhead (e.g., in C++ a call is only a virtual method call). Unfortunately, CORBA has no in-process specification of interfaces and structures. The only way to communicate is through the IIOP protocol. The overhead is too high for in-process communication. We wanted to be programming language independent: let UNO be a mediator between different languages like Java, C++, C and other languages, this isn&amp;#039;t the goal of CORBA. Another goal of UNO is to be the mediator between different object models like COM/DCOM, CORBA, Java, and XPCOM which does not appear to be a goal of other object models.&lt;br /&gt;
&lt;br /&gt;
===What are the differences between UNO and CORBA?===&lt;br /&gt;
UNO does not generate stub code. We did this in the former UNO2 implementation. One problem was, that the generated stub code was quite a heavy load (about 12 MB at former times, even though the API had less types as compared to now!). With UNO3 (the current version), we decided to generically call implementations, without having generated stub code, just by providing bridging code that knows the specific compiler that compiled the implementation. The only thing that is generated for C++, besides the pure virtual classes, are the getCppuType() functions to reflect types. The full type description is read at runtime from a binary storage. This approach has the advantage that on increasing numbers of types, less space is used. To see more the differences between UNO and CORBA, please have a look on the following [http://udk.openoffice.org/common/man/comparison_uno_corba.html comparison].&lt;br /&gt;
&lt;br /&gt;
===What are the differences between UNO IDL and CORBA IDL?===&lt;br /&gt;
UNO IDL has:&lt;br /&gt;
* inheritance of structures and exceptions&lt;br /&gt;
* a stereotype &amp;quot;service&amp;quot; (an abstract class which combines interfaces and properties)&lt;br /&gt;
* can assign specific values to enumeration values&lt;br /&gt;
* no stereotype array (but ad-hoc sequences)&lt;br /&gt;
* no union stereotype &lt;br /&gt;
&lt;br /&gt;
===Can I use OpenOffice.org components as JavaBeans?===&lt;br /&gt;
Yes, the OpenOffice.org bean (OOBean) project enables the use of OpenOffice.org components in Java applications. Please visit  [[OOoBean]] for information, source code, and binary downloads.&lt;br /&gt;
&lt;br /&gt;
The OOo Bean features&lt;br /&gt;
* Embedding OpenOffice.org components into Java application or applets.&lt;br /&gt;
* Accessing the whole StarOffice API from Java, to implement your own applications. &lt;br /&gt;
The project is just starting, so please be aware there may be bugs, incomplete documentation, install problems, etc. We would like everyone with interest in OpenOffice.org and Java to contribute to this project, or just use the bean in their Java application.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
===Can you give me some example code?===&lt;br /&gt;
====C++ Examples====&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; &lt;br /&gt;
| Where || What&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openoffice.org/source/browse/udk/remotebridges/examples/officeclient.cxx udk/remotebridges/examples/officeclient.cxx] || The example shows how to build up an interprocess bridge to an OpenOffice.org document. There are no differences if you write a component for Windows or Linux.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openoffice.org/source/browse/udk/product/examples/ udk/product/examples/] || More examples. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====HTML Documentation====&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; &lt;br /&gt;
| Where || What&lt;br /&gt;
|-&lt;br /&gt;
| http://udk.openoffice.org/cpp/man/tutorial/remotedemo.html || Remote demo tutorial&lt;br /&gt;
|-&lt;br /&gt;
| http://udk.openoffice.org/cpp/man/component_tutorial.html || Component writing in UNO space&lt;br /&gt;
|-&lt;br /&gt;
| http://udk.openoffice.org/cpp/man/tutorial/unointro.html || C++ specific guide to UNO&lt;br /&gt;
|-&lt;br /&gt;
| http://udk.openoffice.org/common/man/concept/unointro.html || Language independent guide to UNO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Java Examples====&lt;br /&gt;
We lack a good document on how to start developing using Java. You have a look at the source directly. There are also some examples in the jurt project, which you can check out using&lt;br /&gt;
&lt;br /&gt;
  $ cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs co udk/jurt&lt;br /&gt;
&lt;br /&gt;
You&amp;#039;ll find some examples in the source code demo-tree: &lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; &lt;br /&gt;
| Where || What&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openoffice.org/source/browse/udk/jurt/demo/com/sun/star/demo/TestOffice.java jurt/demo/com/sun/star/demo/TestOffice.java] || Starts up an interprocess bridge and creates several documents in the office.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openoffice.org/source/browse/udk/jurt/demo/com/sun/star/comp/demo/ jurt/demo/com/sun/star/comp/demo/] || Here some sample code can be found on how to setup a JavaComponent. The sample can be registered with an office and thus runs within the same process as the office.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We also suggest having a look at the sun-developer-connection (http://developers.sun.com/), when you click on Download SDK, you can download the StarOffice Programmers Tutorial. It contains some examples on certain API-topics. Please use the [http://api.openoffice.org/servlets/ProjectMailingListList dev@api.openoffice.org] mailing list for asking high level office API questions.&lt;br /&gt;
&lt;br /&gt;
===How do I generate C++ type definitions?===&lt;br /&gt;
#. create .idl files describing the interface&lt;br /&gt;
#. generate .urd file using unoidl&lt;br /&gt;
#. merge the new type(s) into the system registry with regmerge&lt;br /&gt;
#. create the C++ types using cppumaker (for Java: use javamaker)&lt;br /&gt;
#. for Java: compile the generated interfaces and add them to your CLASSPATH&lt;br /&gt;
&lt;br /&gt;
===What&amp;#039;s the purpose of regcomp?===&lt;br /&gt;
The unoidl converts the IDL description into a binary type library format; this type information is needed for every IDL type at runtime. The generated output file of unoidl contains only the type information of the specified IDL file. It does not contain the complete type descriptions of all types. So, it is necessary to install the new types in the type library applicat.rdb using regmerge. If somebody has developed a UNO component, he must support/export some administration functions (e.g., component_writeInfo). In the component_writeInfo function the developer gives some information about the supported services and the implementation name. This information is later used by the service manager to instantiate the component. So, if you developed your own component, you must install your component to the runtime. This could be done with regcomp. regcomp reads the component_writeInfo function and does some administration work with that information. For example, all supported services of the component are inserted in a global SERVICES section, which is used by the service manager. In this section a relation between the service name and the implementation name is established. Under the reserved area IMPLEMENTATIONS you&amp;#039;ll find the appropriate section for your own component, which is equal to the key defined in the component_writeInfo function. Please have a look at the installed applicat.rdb in your office directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ regview applicat.rdb /SERVICES&lt;br /&gt;
$ regview applicat.rdb /SERVICES/&amp;lt;service_name&amp;gt;&lt;br /&gt;
$ regview applicat.rdb /IMPLEMENTATIONS&lt;br /&gt;
$ regview applicat.rdb /IMPLEMENTATIONS/&amp;lt;implementation_name&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So regcomp is always needed if you want to install a new component. regmerge is needed to install new types in the type library. &lt;br /&gt;
&lt;br /&gt;
Where is the OpenOffice.org API?&lt;br /&gt;
&lt;br /&gt;
Please visit the http://api.openoffice.org project site.&lt;br /&gt;
&lt;br /&gt;
===How do I test my components?===&lt;br /&gt;
If you develop a new component it&amp;#039;ll end up in a shared library or dynamic link library (DLL). The DLL will be loaded on demand if the implemented service is requested. To make the component visible and usable in the OpenOffice.org, you&amp;#039;ll have to register your service as a external component. To achieve this you&amp;#039;ll need to follow these steps:&lt;br /&gt;
&lt;br /&gt;
#. copy your DLL into the .../program directory&lt;br /&gt;
#. copy the tool regcomp into the .../program directory. You will find this tool in the UDK module cpputools&lt;br /&gt;
#. use the regcomp tool &amp;lt;pre&amp;gt;$ regcomp -register -r applicat.rdb -c foo.dll&amp;lt;/pre&amp;gt;&lt;br /&gt;
#. If you develop your own interfaces or new types, then you have to register these new types in the UNO type library. For doing that you need the tool regmerge which you find in the UDK module registry. The unoidl tool generated a foo.urd file which contains the new types. You&amp;#039;ll find this file in the output directory of your component.&lt;br /&gt;
#. use the regmerge tool &amp;lt;pre&amp;gt;$ regmerge applicat.rdb /UCR foo.urd&amp;lt;/pre&amp;gt; All type descriptions of IDL types are stored in the registry under the reserved key UCR (UNO core reflection)&lt;br /&gt;
#. After registration of the component and the new types you are able to instantiate your service via the service manager.&lt;br /&gt;
&lt;br /&gt;
A very easy and fast way to instantiate a new service is by using basic. Start a new basic script and type in the following code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sub Main&lt;br /&gt;
  s = createUnoService(&amp;quot;YourServiceName&amp;quot;)&lt;br /&gt;
  msgbox(s.dbg_supportedinterfaces)&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the instantiation is successful, the message box will show all supported interfaces of the object.&lt;br /&gt;
&lt;br /&gt;
More information can be found in the README files in the directory http://www.openoffice.org/source/browse/udk/product/examples/.&lt;br /&gt;
&lt;br /&gt;
===How many bridges exist?===&lt;br /&gt;
Currently there exist 4 bridges: the C++ bridge, the Java bridge, the [http://udk.openoffice.org/common/man/spec/urp.html UNO Remote Protocol (URP) bridge], and the [http://api.openoffice.org/ IIOP bridge].&lt;br /&gt;
&lt;br /&gt;
===When is a bridge involved?===&lt;br /&gt;
If you develop your components in C++, remember that for in process calling of components compiled by the same compiler, there is no need to bridge any interface. The component loader recognizes this fact and uses the implemented C++ interface directly. But if you use scripting (e.g., basic) to call a Java component or to do remote UNO to some other process, bridging is indeed involved.&lt;br /&gt;
&lt;br /&gt;
===How do I specify default values for structs?===&lt;br /&gt;
It is not possible to specify default values for structs because these defaults cannot be used in other object models (e.g., CORBA). It is also impossible to emulate default values for member variables by modifying the unoidl-generated default constructors for structs. The default constructors set enums to the first enum value, numbers to 0, and the other types use their default constructors. The generated inline default constructor can be found in the .hpp file. The constructor sets the members to known initial values only.&lt;br /&gt;
&lt;br /&gt;
===Hey, my component just dumps core. What&amp;#039;s going wrong?===&lt;br /&gt;
Since it&amp;#039;s hard to tell from a stack trace only, what is going wrong, please send as much information as possible. If you&amp;#039;re lucky, you&amp;#039;re the writer of the service and you can send the component implementation code and the code which instantiates the object as well. If you are not the component developer then you&amp;#039;re forced to contact the component developer.&lt;br /&gt;
&lt;br /&gt;
===Why is it so annoying to write a compiler version dependent C++ bridge?===&lt;br /&gt;
The goal behind UNO is to provide the simplest language binding for the UNO component writer and user, the least amount of generated code, and a maximum of execution speed. With the current technique, the goals are reached. For example, in C++ there is no call overhead, because a C++ to C++ call is only a virtual method call. There is no compile time code generation, it is done by the bridge on the fly. The UNO C++ language binding is smarter than all other (CORBA, COM) bindings. On the other hand, writing a C++ bridge is a hard thing to do, but this has to be done only once for each compiler, operating system, and processor. There are simpler ways to achieve language bindings, but they aren&amp;#039;t better ways. A bridge from cpp to uno is very compiler and abi dependent, and at first glance, it seems that it isn&amp;#039;t portable at all. But it must be noted that the bridge code is pretty similar for most compilers. The main differences are the generated vtables, performing C++ virtual calls, and handling exceptions.&lt;br /&gt;
&lt;br /&gt;
===How do I implement a C++ bridge for a RISC CPU?===&lt;br /&gt;
On RISC machines parameters to functions are passed in registers, whereas, the C++ bridge code manipulates a stack between the C++ layout and the required uno layout. For an example of how this is solved, please see the sunpro5 solaris sparc bridge. Registers are pushed right to stack (extending non-register parameters on the stack [if more than 6]). &lt;br /&gt;
&lt;br /&gt;
===Which PropertyValue should I use when loading an existing document?===&lt;br /&gt;
A document is always opened through a loader with an empty property argument&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
PropertyValue [] szEmptyArgs = new PropertyValue [0];&lt;br /&gt;
String doc = &amp;quot;private:factory/swriter&amp;quot;;&lt;br /&gt;
aDoc = oCLoader.loadComponentFromURL(doc, &amp;quot;_blank&amp;quot;, 0, szEmptyArgs );&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Using these arguments, you can force OpenOffice.org to use a certain filter, open the document read-only, and set a password for password protected documents. The csv-filter for spreadsheet documents has some additional options which are the same as the pick list from the UI,the options are stored in the soffice.ini/sofficerc.&lt;br /&gt;
&lt;br /&gt;
===How do I open an existing document and then save it into HTML format?===&lt;br /&gt;
Here&amp;#039;s some sample code for that:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
PropertyValue [] mypv = new PropertyValue[1];&lt;br /&gt;
mypv[0] = new PropertyValue();&lt;br /&gt;
mypv[0].Name = new String(&amp;quot;FilterName&amp;quot;);&lt;br /&gt;
mypv[0].Value = new String(&amp;quot;scalc: Text - txt&amp;quot;);&lt;br /&gt;
mypv[0].Handle = -1;&lt;br /&gt;
mypv[0].State = PropertyState.DEFAULT_VALUE;&lt;br /&gt;
aStore.storeAsURL(doc, mypv);  //aStore is a XStorable object, and doc is url string&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How do I save a OpenOffice.org document as XML?===&lt;br /&gt;
Here&amp;#039;s some sample code for that:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
sub SaveXML&lt;br /&gt;
  dim mProps(0) as new com.sun.star.beans.PropertyValue&lt;br /&gt;
  mProps(0).Name = &amp;quot;FilterName&amp;quot;&lt;br /&gt;
  &amp;#039;This works with 614&lt;br /&gt;
  mProps(0).Value = &amp;quot;swriter: StarOffice XML (Writer)&amp;quot; &lt;br /&gt;
  oDesk = createUNOService(&amp;quot;com.sun.star.frame.Desktop&amp;quot;)&lt;br /&gt;
  &amp;#039;For some reason, ActiveComponent no longer works:&lt;br /&gt;
  oComponent = oDesk.CurrentComponent()&lt;br /&gt;
  oComponent.storeAsUrl(&amp;quot;file:///C|/Tmp/startemp.xml&amp;quot;,_&lt;br /&gt;
  mProps())&lt;br /&gt;
end sub &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Should I always use queryInterface?===&lt;br /&gt;
You don&amp;#039;t need to call queryInterface directly. A more comfortable way is to use a special reference constructor for this. Instead of&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
  ::com::sun::star::uno::Any x = xI-&amp;gt;queryInterface(&lt;br /&gt;
    ::getCppuType((const ::com::sun::star::uno::Reference&amp;lt; &lt;br /&gt;
      ::com::sun::star::i18n::XTransliteration&amp;gt;*)0));&lt;br /&gt;
  x &amp;gt;&amp;gt;= transRef;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
you should use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
transRef = Reference&amp;lt; XTransliteration &amp;gt;( xI, UNO_QUERY );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What does cannot dump type &amp;#039;com/star/uno/RuntimeException&amp;#039; mean?===&lt;br /&gt;
First, make sure that you followed the FAQ entry [[Uno/FAQ#How_do_I_generate_C.2B.2B_type_definitions.3F|&amp;#039;How do I generate C++ type definitions?&amp;#039;]]. That means: you created a .idl file that &amp;quot;describes&amp;quot; or &amp;quot;defines&amp;quot; the component. You use the unoidl tool to compile the idl file. Run the cppumaker on the resulting .urd file. The cppumaker generates a C++ representation for idl types and it works on a type library which is generated by the unoidl. If you followed these steps and get the error: cppumaker ERROR: cannot dump type &amp;#039;com/star/uno/RuntimeException&amp;#039;, you must integrate your new type into the system type library because the type information is needed at runtime and also for generating the C++ code. For doing that, the easiest way is to merge your &amp;#039;XXX.urd&amp;#039; files into the system type library. The system type library is called applicat.rdb and can be found in the program directory. To merge the type library, you must use the tool regmerge which you should find in the build environment. All type information in the applicat.rdb are saved under a reserved area &amp;#039;UCR&amp;#039;. You must merge your own types also in this reserved area. Using regmerge:&lt;br /&gt;
 $ regmerge applicat.rdb /UCR yourtypes.urd&lt;br /&gt;
There exists another nice tool to view the contents of a registry file (= type library):&lt;br /&gt;
 $ regview applicat.rdb /UCR/com/sun/star/uno&lt;br /&gt;
This shows all types of the module com.sun.star.uno or&lt;br /&gt;
 $ regview  applicat.rdb /UCR/com/sun/star/uno/XInterface&lt;br /&gt;
shows the type information of com.sun.star.uno.XInterface&lt;br /&gt;
&lt;br /&gt;
Additional info about generating code: The cppumaker needs all type information because the cppumaker generates the specified type and all the dependencies. The depent types will be generated recursively, so that you get all the necessary C++ type declarations you need to build your component.&lt;br /&gt;
&lt;br /&gt;
After the regmerge the applicat.rdb contains all types, the ones that comes with Openoffice.org and your new one. Note the regmerge command only modifies the first file, the others are opened read only.&lt;br /&gt;
&lt;br /&gt;
You should now check with regview, that the regmerge really worked and that it now contains your new type. For example:&lt;br /&gt;
 $ regview applicat.rdb /UCR/com/sun/star/uno/RuntimeException&lt;br /&gt;
should give output about the normal RuntimeException.&lt;br /&gt;
 $ regview applicat.rdb /UCR/your/new/types&lt;br /&gt;
should give output about your new type (of course replace your/new/types with the module and typename of the new type in idl).&lt;br /&gt;
&lt;br /&gt;
Then the following command should generate C++ headers below your current working directory:&lt;br /&gt;
 $ cppumaker -O. -Tyour/new/types -BUCR applicat.rdb&lt;br /&gt;
If this doesn&amp;#039;t work, at least the following command should work:&lt;br /&gt;
 $ cppumaker -O. -Tcom/sun/star/uno/RuntimeException -BUCR applicat.rdb&lt;br /&gt;
&lt;br /&gt;
===What does symbol &amp;quot;component_getImplementationEnvironment&amp;quot; could not be found mean?===&lt;br /&gt;
If you try to register your DLL with regcomp like this:&lt;br /&gt;
 $ regcomp -register -r applicat.rdb -c foo.dll&lt;br /&gt;
and get the following error:&lt;br /&gt;
 register component &amp;quot;foo.dll&amp;quot; in registry &amp;quot;applicat.rdb&amp;quot; failed!&lt;br /&gt;
 ERROR: component could not be registered: symbol &amp;quot;component_getImplementationEnvironment&amp;quot; &lt;br /&gt;
 could not be found in &amp;quot;foo.dll&amp;quot;&lt;br /&gt;
Make sure that you defined the function outside any classes in a .cxx file like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extern &amp;quot;C&amp;quot; &lt;br /&gt;
void SAL_CALL component_getImplementationEnvironment( &lt;br /&gt;
                 const sal_Char ** ppEnvTypeName, &lt;br /&gt;
                 uno_Environment ** ppEnv ) &lt;br /&gt;
{ &lt;br /&gt;
        *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are not using a module definition file (DEF file), then you can use a SAL_DLLEXPORT macro in front of your function definition, which expands to __declspec(dllexport). On Win32 platforms check your exports using&lt;br /&gt;
 $ dumpbin /EXPORTS foo.dll&lt;br /&gt;
If this still doesn&amp;#039;t work while registering your DLL, make sure that your path is correct and that all libraries foo.dll is linked against are accessible via your path. On Win32 platforms you can use a tool which is delivered with Developer Studio 6. It&amp;#039;s called depend and shows library imports and missing libraries (marked red). If this still doesn&amp;#039;t help you should debug the function writeRegistryInfo() of the shared library component loader. The loader is located in the CVS module stoc which checks out the directory oo/udk/stoc. Inside the stoc directory the loader is built in the directory source/loader. The built library is called cpld.dll.&lt;br /&gt;
&lt;br /&gt;
===What if regcomp does not find your C++ service===&lt;br /&gt;
If you are testing C++ library registration of your Calc.XlsxExport&lt;br /&gt;
service with regcomp like this:&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (void*, void* key)&lt;br /&gt;
{&lt;br /&gt;
    OSL_TRACE (&amp;quot;%s: Xlsx HELLO&amp;quot;, __PRETTY_FUNCTION__);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
but&lt;br /&gt;
 $ regcomp -register -r foo.rdb -c unxlngx6.pro/lib/libscfilt.so&lt;br /&gt;
 register component &amp;#039;unxlngx6.pro/lib/libscfiltlx.so&amp;#039; in registry &amp;#039;foe.rdb&amp;#039; succesful!&lt;br /&gt;
fails to print HELLO and&lt;br /&gt;
 $ regview foo.rdb | grep Xlsx&lt;br /&gt;
fails to print something like&lt;br /&gt;
   / com.sun.star.comp.Calc.XlsxExport&lt;br /&gt;
            Data = 0 = &amp;quot;com.sun.star.comp.Calc.XlsxExport&amp;quot;&lt;br /&gt;
you can assume safely assume that component_writeInfo is not found.&lt;br /&gt;
&lt;br /&gt;
Make sure to add these functions to the util/NAME.map file, eg&lt;br /&gt;
when adding the first UNO service to calc&amp;#039;s scfilt library, do &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
--- sc/util/scfilt.map&lt;br /&gt;
+++ sc/util/scfilt.map&lt;br /&gt;
@@ -1,6 +1,9 @@&lt;br /&gt;
 SCFILT_1_0 {&lt;br /&gt;
   global:&lt;br /&gt;
     ScFilterCreate;&lt;br /&gt;
+    component_getImplementationEnvironment;&lt;br /&gt;
+    component_writeInfo;&lt;br /&gt;
+    component_getFactory;&lt;br /&gt;
   local:&lt;br /&gt;
     *;&lt;br /&gt;
 };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and that you tell scp2 the library is a UNO library, in the case of scfilt, do&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
--- scp2/source/calc/file_calc.scp&lt;br /&gt;
+++ scp2/source/calc/file_calc.scp&lt;br /&gt;
@@ -49,7 +49,7 @@ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Sc, sc)&lt;br /&gt;
 &lt;br /&gt;
 STD_LIB_FILE_PATCH( gid_File_Lib_Scui, scui)&lt;br /&gt;
 &lt;br /&gt;
-STD_LIB_FILE( gid_File_Lib_Scfilt, scfilt)&lt;br /&gt;
+STD_UNO_LIB_FILE( gid_File_Lib_Scfilt, scfilt)&lt;br /&gt;
 &lt;br /&gt;
 STD_UNO_LIB_FILE( gid_File_Lib_Scd, scd)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How do I unmerge what I added to type library with regmerge?===&lt;br /&gt;
regmerge overwrites existing keys. However, a tool to delete existing keys would be nice to have, but there currently is none.&lt;br /&gt;
&lt;br /&gt;
===Where do I find service descriptions in the type library?===&lt;br /&gt;
Service descriptions are not stored in the type library because reflective information about services aren&amp;#039;t needed at runtime. A service description exists only for modeling purposes.&lt;br /&gt;
&lt;br /&gt;
You can start the IDL compiler with a special option ( -C ) to generate a type library including service descriptions and comments, it is not used in a normal office build, as it approximately doubles the file size.&lt;br /&gt;
&lt;br /&gt;
===How do I create a unique uik number?===&lt;br /&gt;
Some people do it by just copying an existing one and modifying it a little. This is, of course, disapproved of, but it works for now. We currently don&amp;#039;t have our own tool, but you can use the guidgen.exe that comes with the Microsoft compiler.&lt;br /&gt;
&lt;br /&gt;
However, the guides are currently not used. They are there for historical reasons (the former UNO component model needed it) and we left it in for a future bridge, maybe UNO-COM, which would require unique identifiers.&lt;br /&gt;
How can I configure the office to be started in listening mode ?&lt;br /&gt;
There are two ways.&lt;br /&gt;
#. Start the office with an additional parameter :&amp;lt;pre&amp;gt;soffice -accept=socket,host=0,port=2002;urp;StarOffice.ServiceManager&amp;lt;/pre&amp;gt;(Please ensure to quote the ; on a Unix shell).&lt;br /&gt;
#. Place the same string without &amp;#039;-accept=&amp;#039; into a configuration file. You can edit the file &amp;lt;pre&amp;gt;&amp;lt;office-install&amp;gt;/share/config/registry/instance/org/openoffice/Setup.xml&amp;lt;/pre&amp;gt;and replace the tag&amp;lt;pre&amp;gt;&amp;lt;ooSetupConnectionURL cfg:type=&amp;quot;string&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;with &amp;lt;pre&amp;gt;&amp;lt;ooSetupConnectionURL cfg:type=&amp;quot;string&amp;quot;&amp;gt;socket,host=0,port=2002;urp;StarOffice.ServiceManager&amp;lt;/ooSetupConnectionURL&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this change has effect on the whole network installation, which can easily become a very serious security problem. Please also note, that using the host=0 phrase will make the office listen on every network interface, in case you only want to script your office from the same machine, it is definitely better, more secure, to replace the 0 with localhost.&lt;br /&gt;
&lt;br /&gt;
If you want to configure remote connect only for a certain user (in a network installation), you need to do the modification into the user dependent configuration directory in Setup.xml, above. &lt;br /&gt;
&lt;br /&gt;
===How do I start the TestOffice.java?===&lt;br /&gt;
As parameters, please use, for example: uno:socket,host=localhost,port=2002;urp;StarOffice.NamingService&lt;br /&gt;
&lt;br /&gt;
===How do I remotely connect to an OpenOffice.org running on a different machine?===&lt;br /&gt;
When connecting to an OpenOffice.org you supply an Uno URL, which allows to locate a named Uno object in a different process. A Uno URL consists of four parts:&lt;br /&gt;
* The constant string &amp;quot;uno&amp;quot;.&lt;br /&gt;
* A connection specification with optional parameters as key/value pairs.&lt;br /&gt;
* A protocol specification with optional parameters as key/value pairs.&lt;br /&gt;
* The name of the object to be located.&lt;br /&gt;
&lt;br /&gt;
Those four parts are concatenated to a string&lt;br /&gt;
 uno:[connection],params;[protocol],params;[objectname]&lt;br /&gt;
&lt;br /&gt;
An example Uno URL looks like:&lt;br /&gt;
 uno:socket,host=localhost,port=2002;urp;StarOffice.ServiceManager&lt;br /&gt;
&lt;br /&gt;
For more information about Uno URLs please consult http://udk.openoffice.org/common/man/spec/uno-url.html&lt;br /&gt;
&lt;br /&gt;
A string similar to the uno-url is used to configure the accepting process, for instance the office. . You can start the office with&lt;br /&gt;
 soffice &amp;quot;-accept=socket,host=0,port=2002;urp;&amp;quot;&lt;br /&gt;
Note that this string is not specified as strong as the uno-url and other programs may define there own format (e.g. the uno tool coming with the ODK expects a different format). One speciality of the socket connection part is, that you can use &amp;quot;host=0&amp;quot;, which means accept on every network interface available on the current machine including localhost. The &amp;quot;host=0&amp;quot; part cannot be used for connecting to a resource.&lt;br /&gt;
&lt;br /&gt;
Additionally, you don&amp;#039;t need to specify the object name, as the office either way exports multiple objects (StarOffice.NamingService, StarOffice.ServiceManager and [new] StarOffice.ComponentContext).&lt;br /&gt;
&lt;br /&gt;
===What&amp;#039;s the purpose of the UnoUrlResolver?===&lt;br /&gt;
The UnoUrlResolver gets a remote object for a service name specified in an uno-url, especially a StarOffice.ServiceManager. Then, you use the the service managers XNamingService interface in order to retrieve the service manager &amp;#039;registeredObject&amp;#039; via getRegisteredObject in order to be able to queryInterface() for a XMultiServiceFactory. Remember, that the remote OpenOffice.org process has fulfilled its startup phase before the naming service reference is returned. This is necessary to guarantee the availability of all services. As you can see, the naming service is only a container for the service manager. This is done for flexibility reasons, because future versions may export more objects than only the service manager. Understand the uno-url as an entry point into another process; after that, everything else should be handled via normal UNO calls. Perhaps future versions also will remove the naming service&amp;#039;s ability to remove and add objects, which obviously doesn&amp;#039;t make any sense for remote processes.&lt;br /&gt;
How can I be event notified when a remote bridge is being disposed?&lt;br /&gt;
&lt;br /&gt;
A XComponent notifies its event listeners when it is being disposed. Unfortunately a reference to a UnoUrlResolver object is not sufficient to receive a dispose event notification. You&amp;#039;ll need at least a connector and a bridge factory service (see com.sun.star.comp.urlresolver.UnoUrlResolver in the jurt directory for more details) which you can query for a XComponent interface. This queried reference can be used to add a dispose event listener like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
String connection = &amp;quot;socket,host=localhost,port=2002&amp;quot;;&lt;br /&gt;
String protocol = &amp;quot;urp&amp;quot;;&lt;br /&gt;
Object connector = _xMultiServiceFactory.createInstance(&amp;quot;com.sun.star.connection.Connector&amp;quot;);&lt;br /&gt;
XConnector connector_xConnector = (XConnector)UnoRuntime.queryInterface(XConnector.class, connector);&lt;br /&gt;
XConnection xConnection = connector_xConnector.connect(connection);&lt;br /&gt;
xBridge = xBridgeFactory.createBridge(connection + &amp;quot;;&amp;quot; + protocol, protocol, xConnection, null);&lt;br /&gt;
XComponent component = (XComponent)UnoRuntime.queryInterface(XComponent.class, component);&lt;br /&gt;
component.addEventListener(...);     &lt;br /&gt;
&amp;lt;/pre&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
===How can I check out the UDK WWW documentation?===&lt;br /&gt;
The documentation for the UDK project, which can be viewed via http://udk.openoffice.org, can be checked out using the following CVS command&lt;br /&gt;
 $ cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www &lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t want the generated C++ module reference documents you might want to save these commands into a script or batch file and run it from the command shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www/common&lt;br /&gt;
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www/cpp/man&lt;br /&gt;
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www/java&lt;br /&gt;
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www/images &lt;br /&gt;
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www/documentation_structure.html&lt;br /&gt;
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www/faq.html&lt;br /&gt;
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs -z3 co udk/www/index.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Where can I find more information about the UNO security model?===&lt;br /&gt;
Please look at http://udk.openoffice.org/common/man/concept/uno_security.html. The main goal of this draft is to provide a generic API to wrap existing security implementations, this draft is based on Java security and semantics and may change. There are details being discussed, marked in red, for example remote transparency.&lt;br /&gt;
&lt;br /&gt;
===Where can I find more information about the UNO CORBA bridge?===&lt;br /&gt;
Bridging UNO and CORBA is no trivial task, as both component models are based on different fundamental concepts. Therefore, we want to write down the ideas about how to deal with these fundamental differences, before beginning implementation. Please look at http://udk.openoffice.org/common/man/concept/uno_corba.html for more information.&lt;br /&gt;
&lt;br /&gt;
This document currently contains only part that we will have to deal with during development of the bridge. The document is supposed to grow rapidly during the next weeks. Any input on UNO CORBA bridge from the community is very welcome, discussions take place on dev@udk.openoffice.org.&lt;br /&gt;
&lt;br /&gt;
The main goal is to get a CORBA-bridge that supports all features necessary to communicate with the GNOME desktop (http://www.gnome.org). The component model used in GNOME is Bonobo, which is built on top of [http://www.gnome.org/projects/ORBit2/ ORBIT], an open source CORBA ORB (Object Request Broker). A CORBA-UNO bridge would allow to script OpenOffice.org with a GNOME scripting language, for example.&lt;br /&gt;
&lt;br /&gt;
The secondary goal is to develop a &amp;#039;generic&amp;#039; CORBA-UNO-bridge, that allows communication with an arbitrary ORB. This would allow OpenOffice.org to seamlessly integrate into any CORBA environment.&lt;br /&gt;
&lt;br /&gt;
===Where can I find more information about the SOAP-UNO integration?===&lt;br /&gt;
Please have a look at http://udk.openoffice.org/common/man/draft/soap.html.&lt;br /&gt;
&lt;br /&gt;
===Where can I find more information about the OpenOffice.org Bonobo integration?===&lt;br /&gt;
A brief overview about the project OpenOffice.org - Bonobo Integration can be found at http://whiteboard.openoffice.org/bonobo/. Something about motivation and goals of this project is written there. We have checked in some code into CVS, enabling OpenOffice.org to be a Bonobo server for containers like Nautilus. Everyone is welcome to contribute ideas or code, on how to bring OpenOffice.org and GNOME closer together on the level of component technology.&lt;br /&gt;
&lt;br /&gt;
[[Category:Uno]] [[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=231442</id>
		<title>Documentation/Building Guide/Building on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=231442"/>
		<updated>2013-09-27T09:33:24Z</updated>

		<summary type="html">&lt;p&gt;Hdu: updated configure for AOO40x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on Mac OS X}}&lt;br /&gt;
[[Category:MacOSX]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;!-- insert comment --&amp;gt;&lt;br /&gt;
= Overview =&lt;br /&gt;
This document explains how to build the Apache OpenOffice source code on Mac OS X systems. &lt;br /&gt;
{{Template:Documentation/Note|&amp;lt;code&amp;gt;$SRC_ROOT&amp;lt;/code&amp;gt; will denote the directory in which the source code of Apache OpenOffice is stored.}}&lt;br /&gt;
{{Template:Documentation/Tip|You are advised to check the release notes for the release you are building to inform yourself about changes since previous releases.}}&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&lt;br /&gt;
To build the office on Mac OS X several requirements/prerequisites have to be fulfilled. &lt;br /&gt;
&lt;br /&gt;
== Mandatory Requirements ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039; version 10.4 (aka Tiger) or later (if using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac 10.4 SDK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XCode&amp;#039;&amp;#039;&amp;#039; version 2.4.1 or any XCode 3. If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].  On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;dmake&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of dmake that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;epm&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of epm (easy package manager) that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.  &lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|XCode 3 and SDK 10.4 is currently required for building trunk or the releases. Work on supporting XCode&amp;gt;=4 is ongoing.}}&lt;br /&gt;
&lt;br /&gt;
== Optional Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unowinreg.dll ===&lt;br /&gt;
&lt;br /&gt;
This library is Windows only but will be packed in the Apache OpenOffice SDK to ensure that it is available on all platforms. The library provides some glue code to setup a working UNO environment for UNO client applications connecting to an office and doing some remote automation via API. The library should be stored in &amp;#039;&amp;#039;main/external/unowinreg&amp;#039;&amp;#039;. Only necessary for building the SDK.&lt;br /&gt;
&lt;br /&gt;
The library can be downloaded under &lt;br /&gt;
* http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll &lt;br /&gt;
&lt;br /&gt;
=== Prebuilt Mozilla archives (based on seamonkey1.1.13) ===&lt;br /&gt;
&lt;br /&gt;
To enable macros/macro security (disabled by default for security reasons), you&amp;#039;ll have to put the prebuilt archives of mozilla binaries in the &amp;#039;&amp;#039;main/moz/zipped&amp;#039;&amp;#039; directory.&lt;br /&gt;
&lt;br /&gt;
Note: archives are Intel only for now.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Archives to be downloaded&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIinc.zip&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIlib.zip&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIruntime.zip &lt;br /&gt;
&lt;br /&gt;
or from&lt;br /&gt;
&lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIinc.zip &lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIlib.zip&lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIruntime.zip&lt;br /&gt;
&lt;br /&gt;
== Recommended tools ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ccache&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If you intend to build Apache OpenOffice several times, you probably can benefit of ccache since it will speed up your future builds. The first time you make a build with ccache you won&amp;#039;t notice it, but the next time the build will go up to five times faster.&lt;br /&gt;
&lt;br /&gt;
You can install it using &amp;#039;&amp;#039;&amp;#039;[http://www.finkproject.org/ Fink]&amp;#039;&amp;#039;&amp;#039;. It is simply named &amp;quot;ccache&amp;quot;. For &amp;#039;&amp;#039;&amp;#039;[http://www.macports.org/ MacPorts]&amp;#039;&amp;#039;&amp;#039; users the package is called &amp;quot;ccache&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t use fink, you can download and build it yourself using the source provided at http://ccache.samba.org/&lt;br /&gt;
&lt;br /&gt;
There are two ways to enable ccache - one is to set environment variables, the other way is to use symlinks.&lt;br /&gt;
&lt;br /&gt;
Using environment variables:&lt;br /&gt;
 export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
 export CXX=&amp;quot;ccache g++&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the symlink approach:&lt;br /&gt;
 # create a directory for the links &lt;br /&gt;
 mkdir ~/bin&lt;br /&gt;
 # create the symlinks pointing to ccache with the name of the compiler&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/gcc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/g++&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/cc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/c++&lt;br /&gt;
 # no all you need to enable ccache is to prepend ~/bin to your PATH&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
for both methody, you can add the &amp;quot;export ...&amp;quot; lines to your ~/.profile - that way you don&amp;#039;t need to manually set it when building. You can still temporarily disable ccache (export CCACHE_DISABLE=1) in case you don&amp;#039;t want to use it.&lt;br /&gt;
&lt;br /&gt;
Since OOo is rather huge, you should increase the cache-size to 1 GB or more &lt;br /&gt;
 ccache -M 1G&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;subversion&amp;#039;&amp;#039;&amp;#039; version &amp;#039;&amp;#039;&amp;#039;1.5.4 or later&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Since OOo&amp;#039;s source code is managed using Subversion currently, you also need the svn client to checkout sources (otherwise you would be bount to source-tarballs that aren&amp;#039;t generated that frequently). You can either compile yourself or use the subversion universal binaries from the [http://subversion.tigris.org subversion project] Version 1.5.4 or later is required because of important fixes related to the merge-feature.&lt;br /&gt;
&lt;br /&gt;
== Get the source and prepare to build it ==&lt;br /&gt;
&lt;br /&gt;
=== Get the source from SVN ===&lt;br /&gt;
&lt;br /&gt;
You need about 4.7 GB for a checkout from the svn repository. Building the source requires another 5GB.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;check out the latest source from svn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
=== One-Time preparation and scripts ===&lt;br /&gt;
&lt;br /&gt;
Apache OpenOffice build environment is configured using the open-source configuration-management package &amp;#039;autoconf&amp;#039;. So you can do your beloved &amp;#039;./configure&amp;#039; command, is now done in the &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; source directory. &lt;br /&gt;
&lt;br /&gt;
To save the configure parameters and use them with different milestones it is useful to create your own build script to configure the environment and to trigger the build.&lt;br /&gt;
&lt;br /&gt;
The directory structure when you have checked out the sources from svn looks like:&lt;br /&gt;
&lt;br /&gt;
 aoo/&lt;br /&gt;
 aoo/main &lt;br /&gt;
 aoo/extras&lt;br /&gt;
 aoo/test&lt;br /&gt;
 aoo/ext_libraries&lt;br /&gt;
 aoo/ext_sources&lt;br /&gt;
&lt;br /&gt;
Move into &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; and configure a minimal environment to build your first version of Apache OpenOffice:&lt;br /&gt;
 &lt;br /&gt;
 cd main&lt;br /&gt;
&lt;br /&gt;
Run the autoconf command to prepare a new configure based on the latest changes in configure.in&lt;br /&gt;
&lt;br /&gt;
 autoconf&lt;br /&gt;
&lt;br /&gt;
Run configure &lt;br /&gt;
&lt;br /&gt;
 ./configure --without-stlport --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
This commands prepares a minimal environment to build the office without any category-b enabled external libraries. A pure Apache license compatible version. See also the configure switches &amp;#039;&amp;#039;--with-dmake-path&amp;#039;&amp;#039; and &amp;#039;&amp;#039;--with-epm&amp;#039;&amp;#039; to specify prebuilt versions of dmake or epm.&lt;br /&gt;
&lt;br /&gt;
Finally you should run bootstrap to trigger further preparations and to create platform specific shell script to setup a working build environment. On Mac OS x for example &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; on a Intel based system.  &lt;br /&gt;
&lt;br /&gt;
=== Build environment with enabled category-b dependencies ===&lt;br /&gt;
&lt;br /&gt;
To prepare a build environment that provides more features and make use of further external libraries which are under copyleft but viral licenses you have to explicitly enable this &amp;#039;&amp;#039;&amp;#039;category-b&amp;#039;&amp;#039;&amp;#039; components.&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
     --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz \&lt;br /&gt;
     --disable-build-mozilla \&lt;br /&gt;
     --without-stlport \&lt;br /&gt;
     --enable-verbose \&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;--enable-category-b&amp;#039;&amp;#039;&amp;#039;\&lt;br /&gt;
     --enable-wiki-publisher&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example build script to simplify user specific configurations===&lt;br /&gt;
As mentioned before to save the configure parameters and use them with different versions it is useful to create your own build script to configure the environment.&lt;br /&gt;
&lt;br /&gt;
Create &amp;#039;build.sh&amp;#039; (to be written) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for unowinreg.dll ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./external/unowinreg/unowinreg.dll ]; then&lt;br /&gt;
    wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  unowinreg.dll found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for moz prebuild libs ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./moz/zipped/MACOSXGCCIinc.zip ]; then&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIinc.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIinc.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIlib.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIlib.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIruntime.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIruntime.zip&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  moz prebuild libs found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! -e  ./configure ]; then&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    autoconf&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    rm ./configure&lt;br /&gt;
    autoconf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### Configure&amp;quot;&lt;br /&gt;
./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
#./configure --with-build-version=&amp;quot;$(date +&amp;quot;%Y-%m-%d %H:%M:%S (%a, %d %b %Y)&amp;quot;) - Rev. $(echo $(svn info) | sed -e &amp;#039;s/^.*Last Changed Rev: //g&amp;#039; -e &amp;#039;s/ .*//g&amp;#039;)&amp;quot; \&lt;br /&gt;
    --disable-build-mozilla \&lt;br /&gt;
    --enable-verbose --enable- category-b --enable-minimizer --enable-presenter-console --enable-wiki-publisher \&lt;br /&gt;
    --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
    --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
./bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put this script into ~/bin and make sure it is executable : &lt;br /&gt;
&lt;br /&gt;
 chmod ug+x ~/bin/build.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;We used the bash shell in all example, since to our belief users of the C-shell are smart enough to figure out the differences anyway. If you want to dig deeper into the build process, please have a look at the description  [http://tools.openoffice.org/build_env.html OpenOffice.org&amp;#039;s Build Environment].&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Doing the build ==&lt;br /&gt;
&lt;br /&gt;
After running configure and bootstrap we should have a working build environment and all necessary scripts should have been created. From now on you can use &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; to prepare a new shell with a working build environment.&lt;br /&gt;
&lt;br /&gt;
=== On Mac Intel ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXX86Env.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P4 &lt;br /&gt;
&lt;br /&gt;
=== On PowerPC ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXPPCEnv.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P2 &lt;br /&gt;
&lt;br /&gt;
=== Comments on above ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO TODO TODO ....&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
if you run into trouble with --dlv_switch (see: {{Bug|77360}})&lt;br /&gt;
&lt;br /&gt;
The main purpose of the &amp;#039;&amp;#039;&amp;#039;bootstrap&amp;#039;&amp;#039;&amp;#039; script is to build (if necessary) the dmake utility used. Dmake once was a unix make-clone made by wticorp but got incorporated into OpenOffice since it was orphaned. For more information about dmake, it&amp;#039;s history and manpage have a look here: http://tools.openoffice.org/dmake/index.html&lt;br /&gt;
&lt;br /&gt;
Sourcing MacOSXPPCEnv.Set.sh is very important not only for building but also for &amp;#039;&amp;#039;&amp;#039;running&amp;#039;&amp;#039;&amp;#039; svdem later on. Here all the Environment-Variables for the Build will be set up. For a detailed description see [[Environment_Variables]]. Please note that on Intel machines, &amp;#039;MacOSXPPCEnv.Set.sh&amp;#039; should be substituted with &amp;#039;MacOSXX86Env.Set.sh&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
This Build process takes on my box (Dual 1.8 GHz G5, 1.5GB RAM) roughly 10 hours, and 3 to 6 hours on Mac Intel (3:30h on a 2GHz DualCore INTEL iMac). Be patient.&lt;br /&gt;
&lt;br /&gt;
If you want to see how the progress on that build  is you can use two &amp;#039;&amp;#039;&amp;#039;build&amp;#039;&amp;#039;&amp;#039; options to get a comfortable view:&lt;br /&gt;
&lt;br /&gt;
 build ... &amp;lt;see above&amp;gt; ... --html --html_path /Users/$USER/Sites&lt;br /&gt;
&lt;br /&gt;
where $USER is your user name. Then you can load in Firefox (not Safari!) the HTML file &amp;#039;&amp;#039;&amp;#039;unxmacxi.pro.build.html&amp;#039;&amp;#039;&amp;#039; via the in Mac OS X included Apache web server or diretctly form the directory &amp;#039;&amp;#039;/Users/$USER/Sites/&amp;#039;&amp;#039;. This file is automatically being updated and is showing the status of the build and also the time needed since the build started.&lt;br /&gt;
&lt;br /&gt;
If you build on Snow Leopard (aka Mac OS X 10.6): Set DYLD_INSERT_LIBRARIES to point to the correct libsqlite3.dylib:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DYLD_INSERT_LIBRARIES=/usr/lib/libsqlite3.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Installing, preparing and running OpenOffice.org&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039; Find the Bundle&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Once the build completed, the final product ( en-US version ) is named :  OOo_3.0.0_*_MacOSXIntel_install.dmg ( for version 3.0beta e.g.) &lt;br /&gt;
&lt;br /&gt;
And is located in instsetoo_native/unxmacxi.pro/OpenOffice/dmg/install/en-US  directory ( replace en-US with your locale )&lt;br /&gt;
&lt;br /&gt;
[[Image:Bundle_Location3.0beta.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Install the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double click on the *.dmg icon&lt;br /&gt;
* drag the OpenOffice.org icon into a folder of your choice&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Run the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double click the application icon in that folder&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Screenshots&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Now you can start to work with this [[Aqua_Screenshots | amazing productivity suite]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Contribute by finding, isolating, debugging or solving issues&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Isolate a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Reduce a problem&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
* make a problem reproducable&lt;br /&gt;
* reduce it to a test case that is as small and simple as possible&lt;br /&gt;
* if a problem is specific to a document then please attach it to the issue. A mininal excerpt of the document that still shows the problem is even better.&lt;br /&gt;
* a screenshot of is a good idea if it clearly shows the problem&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Using application switches&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Application switches are often valuable for isolating a problem. Most of OpenOffice.org&amp;#039;s options can be found its Tools-&amp;gt;Options menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Some switches are so special that there is no user interface to change them. They are only useful for debugging and isolating a problem, but they are very valuable a that. So a developer might suggest to isolate a problem by setting an environment variable before running the application. E.g. for isolating problems with the menubar a developer might suggest to set the environment variable [[AQUA_NATIVE_MENUS]] to false. This is done by typing these commands into a terminal:&lt;br /&gt;
* cd &amp;lt;INSTALL_DIR&amp;gt;/OpenOffice.org/Contents/MacOS&lt;br /&gt;
* export AQUA_NATIVE_MENUS=false&lt;br /&gt;
* ./soffice.bin&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Provide a call stack for crash problems&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Please note that bugs involving crashes should provide a description of how to reproduce the problem and a callstack.&lt;br /&gt;
There are several ways to provide the callstack:&lt;br /&gt;
* the preferred method is to use OOo&amp;quot;s builtin [[CrashReporting|crash reporting tool]]&lt;br /&gt;
* developers may provide a [[Providing_a_gdb_backtrace | gdb backtrace]] of the problem&lt;br /&gt;
* if the above two methods don&amp;quot;t work then please attach a file with the details provided by the AppleCrashReporter&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Check against known issues&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Check the list of [http://www.openoffice.org/issues/buglist.cgi?issue_status=UNCONFIRMED&amp;amp;issue_status=NEW&amp;amp;issue_status=STARTED&amp;amp;issue_status=REOPENED&amp;amp;email1=&amp;amp;emailtype1=exact&amp;amp;emailassigned_to1=1&amp;amp;email2=&amp;amp;emailtype2=exact&amp;amp;emailreporter2=1&amp;amp;issueidtype=include&amp;amp;issue_id=&amp;amp;changedin=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=&amp;amp;chfieldvalue=&amp;amp;short_desc=&amp;amp;short_desc_type=fulltext&amp;amp;long_desc=&amp;amp;long_desc_type=fulltext&amp;amp;issue_file_loc=&amp;amp;issue_file_loc_type=fulltext&amp;amp;status_whiteboard=&amp;amp;status_whiteboard_type=fulltext&amp;amp;keywords=aqua&amp;amp;keywords_type=anytokens&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0=&amp;amp;cmdtype=doit&amp;amp;newqueryname=&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;Submit+query=Submit+query open issues]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Report a new issue&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Report [http://qa.openoffice.org/issue_handling/pre_submission.html new issues] after you have [[AquaBuild#Isolate_a_problem | isolated the problem]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Debug a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Debugging problems is often easier in an development environment:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With XCode: [[MacOSX_Debug_OpenOffice.org_using_XCode]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xemacs: [http://www.mikesicotte.com/2007/02/21/debugging-ooo-with-xemacs-and-gdb Michael Sicotte&amp;#039;s blog entry]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that XCode still has some problems with the executable named soffice.bin (because of the dot in the name). The issue has been reported to xcode-users list.&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Current Work in progress (Aqua specific work only)&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
With OOO300 the Aqua port became a mainstream port, so most Aqua issues are handled in regular GSL-Layer childworkspaces instead of dedicated Aqua CWSses. Other CWSses that are purely Aqua specific are being tracked below:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|ogltrans4mac|DEV300}}&amp;#039;&amp;#039;&amp;#039; : Implement the 3D (OpenGL) transitions in Impress ( see :  [[Mac_OS_X_Porting_-_OpenGL_transitions|  OpenGL transitions on Mac OS X ]] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in development&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote03|DEV300}}&amp;#039;&amp;#039;&amp;#039; :  use the contextual menu in presentation mode with Impress. preliminary step&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|hotmac|OOO300}}&amp;#039;&amp;#039;&amp;#039; : fix memory deallocation problems in exit()&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|macosxscanner01|DEV300}}&amp;#039;&amp;#039;&amp;#039; (planned)&lt;br /&gt;
&lt;br /&gt;
All patches that developers have that need testing or peer review should be added here.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in testing (closed for development)&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|macmiscfixes}}&amp;#039;&amp;#039;&amp;#039; : misc fixes for mac&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|maccrashrep}}&amp;#039;&amp;#039;&amp;#039; : support crash reporting for OSX builds&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|quicklookplugin01}}&amp;#039;&amp;#039;&amp;#039; : a plugin for the QuickLook system available in MacOSX from versions 10.5 onwards&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces waiting for integration&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote02|DEV300}}&amp;#039;&amp;#039;&amp;#039; : improve the Apple Remote use with Impress (use MEDIA_COMMAND stuff, improve code robustness, and portability )&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child Workspaces integrated into OpenOffice&amp;#039;s trunk&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
A historical overview of [[Aqua_Integrated_CWS | old Aqua specific ChildWorkspaces]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Known build issues &amp;#039;&amp;#039;&amp;#039;==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Tiger&amp;#039;&amp;#039;&amp;#039;:  no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Snow Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Mountain Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;left&amp;quot; style=&amp;quot;color:grey; font-size:12px&amp;quot;&amp;gt;[[AquaBuild/Some Background | &amp;#039;&amp;#039;&amp;#039;Some Background (what is a CWS, EIS) (click me to know more) &amp;#039;&amp;#039;&amp;#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;External links&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
* [https://issues.apache.org/ooo Apache OpenOffice Issuezilla] : a database of bugs, changes and enhancements &lt;br /&gt;
* There are [[MacOSXPortMeetings | regular meetings]] on IRC (archives are [[Previous_Mac_Meeting_logs | available]]).&lt;br /&gt;
* Apache OpenOffice has a complicated code base. [[Source_code_directories | Here]] is an overview.&lt;br /&gt;
* the official Apache OpenOffice blog is at [https://blogs.apache.org/OOo/]&lt;br /&gt;
* [http://www.cocoadev.com Cocoadev] provides great resources to get up to speed in Cocoa development&lt;br /&gt;
* Pierre Chatelier&amp;#039;s excellent [http://ktd.club.fr/programmation/objective-c.php Objective C for C++ developers] is available in both english and french versions&lt;br /&gt;
* Details about OSX&amp;#039;s [http://developer.apple.com/cocoa Cocoa API] are available in the XCode documentation&lt;br /&gt;
&lt;br /&gt;
[[Category:Aqua]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=231441</id>
		<title>Documentation/Building Guide/Building on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=231441"/>
		<updated>2013-09-27T09:24:01Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Mandatory Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on Mac OS X}}&lt;br /&gt;
[[Category:MacOSX]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;!-- insert comment --&amp;gt;&lt;br /&gt;
= Overview =&lt;br /&gt;
This document explains how to build the Apache OpenOffice source code on Mac OS X systems. &lt;br /&gt;
{{Template:Documentation/Note|&amp;lt;code&amp;gt;$SRC_ROOT&amp;lt;/code&amp;gt; will denote the directory in which the source code of Apache OpenOffice is stored.}}&lt;br /&gt;
{{Template:Documentation/Tip|You are advised to check the release notes for the release you are building to inform yourself about changes since previous releases.}}&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&lt;br /&gt;
To build the office on Mac OS X several requirements/prerequisites have to be fulfilled. &lt;br /&gt;
&lt;br /&gt;
== Mandatory Requirements ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039; version 10.4 (aka Tiger) or later (if using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac 10.4 SDK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XCode&amp;#039;&amp;#039;&amp;#039; version 2.4.1 or any XCode 3. If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].  On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;dmake&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of dmake that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;epm&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of epm (easy package manager) that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.  &lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|XCode 3 and SDK 10.4 is currently required for building trunk or the releases. Work on supporting XCode&amp;gt;=4 is ongoing.}}&lt;br /&gt;
&lt;br /&gt;
== Optional Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unowinreg.dll ===&lt;br /&gt;
&lt;br /&gt;
This library is Windows only but will be packed in the Apache OpenOffice SDK to ensure that it is available on all platforms. The library provides some glue code to setup a working UNO environment for UNO client applications connecting to an office and doing some remote automation via API. The library should be stored in &amp;#039;&amp;#039;main/external/unowinreg&amp;#039;&amp;#039;. Only necessary for building the SDK.&lt;br /&gt;
&lt;br /&gt;
The library can be downloaded under &lt;br /&gt;
* http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll &lt;br /&gt;
&lt;br /&gt;
=== Prebuilt Mozilla archives (based on seamonkey1.1.13) ===&lt;br /&gt;
&lt;br /&gt;
To enable macros/macro security (disabled by default for security reasons), you&amp;#039;ll have to put the prebuilt archives of mozilla binaries in the &amp;#039;&amp;#039;main/moz/zipped&amp;#039;&amp;#039; directory.&lt;br /&gt;
&lt;br /&gt;
Note: archives are Intel only for now.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Archives to be downloaded&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIinc.zip&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIlib.zip&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIruntime.zip &lt;br /&gt;
&lt;br /&gt;
or from&lt;br /&gt;
&lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIinc.zip &lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIlib.zip&lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIruntime.zip&lt;br /&gt;
&lt;br /&gt;
== Recommended tools ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ccache&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If you intend to build Apache OpenOffice several times, you probably can benefit of ccache since it will speed up your future builds. The first time you make a build with ccache you won&amp;#039;t notice it, but the next time the build will go up to five times faster.&lt;br /&gt;
&lt;br /&gt;
You can install it using &amp;#039;&amp;#039;&amp;#039;[http://www.finkproject.org/ Fink]&amp;#039;&amp;#039;&amp;#039;. It is simply named &amp;quot;ccache&amp;quot;. For &amp;#039;&amp;#039;&amp;#039;[http://www.macports.org/ MacPorts]&amp;#039;&amp;#039;&amp;#039; users the package is called &amp;quot;ccache&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t use fink, you can download and build it yourself using the source provided at http://ccache.samba.org/&lt;br /&gt;
&lt;br /&gt;
There are two ways to enable ccache - one is to set environment variables, the other way is to use symlinks.&lt;br /&gt;
&lt;br /&gt;
Using environment variables:&lt;br /&gt;
 export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
 export CXX=&amp;quot;ccache g++&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the symlink approach:&lt;br /&gt;
 # create a directory for the links &lt;br /&gt;
 mkdir ~/bin&lt;br /&gt;
 # create the symlinks pointing to ccache with the name of the compiler&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/gcc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/g++&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/cc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/c++&lt;br /&gt;
 # no all you need to enable ccache is to prepend ~/bin to your PATH&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
for both methody, you can add the &amp;quot;export ...&amp;quot; lines to your ~/.profile - that way you don&amp;#039;t need to manually set it when building. You can still temporarily disable ccache (export CCACHE_DISABLE=1) in case you don&amp;#039;t want to use it.&lt;br /&gt;
&lt;br /&gt;
Since OOo is rather huge, you should increase the cache-size to 1 GB or more &lt;br /&gt;
 ccache -M 1G&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;subversion&amp;#039;&amp;#039;&amp;#039; version &amp;#039;&amp;#039;&amp;#039;1.5.4 or later&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Since OOo&amp;#039;s source code is managed using Subversion currently, you also need the svn client to checkout sources (otherwise you would be bount to source-tarballs that aren&amp;#039;t generated that frequently). You can either compile yourself or use the subversion universal binaries from the [http://subversion.tigris.org subversion project] Version 1.5.4 or later is required because of important fixes related to the merge-feature.&lt;br /&gt;
&lt;br /&gt;
== Get the source and prepare to build it ==&lt;br /&gt;
&lt;br /&gt;
=== Get the source from SVN ===&lt;br /&gt;
&lt;br /&gt;
You need about 4.7 GB for a checkout from the svn repository. Building the source requires another 5GB.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;check out the latest source from svn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
=== One-Time preparation and scripts ===&lt;br /&gt;
&lt;br /&gt;
Apache OpenOffice build environment is configured using the open-source configuration-management package &amp;#039;autoconf&amp;#039;. So you can do your beloved &amp;#039;./configure&amp;#039; command, is now done in the &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; source directory. &lt;br /&gt;
&lt;br /&gt;
To save the configure parameters and use them with different milestones it is useful to create your own build script to configure the environment and to trigger the build.&lt;br /&gt;
&lt;br /&gt;
The directory structure when you have checked out the sources from svn looks like:&lt;br /&gt;
&lt;br /&gt;
 aoo/&lt;br /&gt;
 aoo/main &lt;br /&gt;
 aoo/extras&lt;br /&gt;
 aoo/test&lt;br /&gt;
 aoo/ext_libraries&lt;br /&gt;
 aoo/ext_sources&lt;br /&gt;
&lt;br /&gt;
Move into &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; and configure a minimal environment to build your first version of Apache OpenOffice:&lt;br /&gt;
 &lt;br /&gt;
 cd main&lt;br /&gt;
&lt;br /&gt;
Run the autoconf command to prepare a new configure based on the latest changes in configure.in&lt;br /&gt;
&lt;br /&gt;
 autoconf&lt;br /&gt;
&lt;br /&gt;
Run configure &lt;br /&gt;
&lt;br /&gt;
 ./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
This commands prepares a minimal environment to build the office without any category-b enabled external libraries. A pure Apache license compatible version. See also the configure switches &amp;#039;&amp;#039;--with-dmake-path&amp;#039;&amp;#039; and &amp;#039;&amp;#039;--with-epm&amp;#039;&amp;#039; to specify prebuilt versions of dmake or epm.&lt;br /&gt;
&lt;br /&gt;
Finally you should run bootstrap to trigger further preparations and to create platform specific shell script to setup a working build environment. On Mac OS x for example &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; on a Intel based system.  &lt;br /&gt;
&lt;br /&gt;
=== Build environment with enabled category-b dependencies ===&lt;br /&gt;
&lt;br /&gt;
To prepare a build environment that provides more features and make use of further external libraries which are under copyleft but viral licenses you have to explicitly enable this &amp;#039;&amp;#039;&amp;#039;category-b&amp;#039;&amp;#039;&amp;#039; components.&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
     --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz \&lt;br /&gt;
     --disable-build-mozilla \&lt;br /&gt;
     --enable-verbose \&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;--enable-category-b&amp;#039;&amp;#039;&amp;#039;\&lt;br /&gt;
     --enable-minimizer\&lt;br /&gt;
     --enable-presenter-console\&lt;br /&gt;
     --enable-wiki-publisher    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example build script to simplify user specific configurations===&lt;br /&gt;
As mentioned before to save the configure parameters and use them with different versions it is useful to create your own build script to configure the environment.&lt;br /&gt;
&lt;br /&gt;
Create &amp;#039;build.sh&amp;#039; (to be written) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for unowinreg.dll ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./external/unowinreg/unowinreg.dll ]; then&lt;br /&gt;
    wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  unowinreg.dll found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for moz prebuild libs ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./moz/zipped/MACOSXGCCIinc.zip ]; then&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIinc.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIinc.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIlib.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIlib.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIruntime.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIruntime.zip&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  moz prebuild libs found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! -e  ./configure ]; then&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    autoconf&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    rm ./configure&lt;br /&gt;
    autoconf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### Configure&amp;quot;&lt;br /&gt;
./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
#./configure --with-build-version=&amp;quot;$(date +&amp;quot;%Y-%m-%d %H:%M:%S (%a, %d %b %Y)&amp;quot;) - Rev. $(echo $(svn info) | sed -e &amp;#039;s/^.*Last Changed Rev: //g&amp;#039; -e &amp;#039;s/ .*//g&amp;#039;)&amp;quot; \&lt;br /&gt;
    --disable-build-mozilla \&lt;br /&gt;
    --enable-verbose --enable- category-b --enable-minimizer --enable-presenter-console --enable-wiki-publisher \&lt;br /&gt;
    --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
    --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
./bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put this script into ~/bin and make sure it is executable : &lt;br /&gt;
&lt;br /&gt;
 chmod ug+x ~/bin/build.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;We used the bash shell in all example, since to our belief users of the C-shell are smart enough to figure out the differences anyway. If you want to dig deeper into the build process, please have a look at the description  [http://tools.openoffice.org/build_env.html OpenOffice.org&amp;#039;s Build Environment].&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Doing the build ==&lt;br /&gt;
&lt;br /&gt;
After running configure and bootstrap we should have a working build environment and all necessary scripts should have been created. From now on you can use &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; to prepare a new shell with a working build environment.&lt;br /&gt;
&lt;br /&gt;
=== On Mac Intel ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXX86Env.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P4 &lt;br /&gt;
&lt;br /&gt;
=== On PowerPC ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXPPCEnv.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P2 &lt;br /&gt;
&lt;br /&gt;
=== Comments on above ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO TODO TODO ....&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
if you run into trouble with --dlv_switch (see: {{Bug|77360}})&lt;br /&gt;
&lt;br /&gt;
The main purpose of the &amp;#039;&amp;#039;&amp;#039;bootstrap&amp;#039;&amp;#039;&amp;#039; script is to build (if necessary) the dmake utility used. Dmake once was a unix make-clone made by wticorp but got incorporated into OpenOffice since it was orphaned. For more information about dmake, it&amp;#039;s history and manpage have a look here: http://tools.openoffice.org/dmake/index.html&lt;br /&gt;
&lt;br /&gt;
Sourcing MacOSXPPCEnv.Set.sh is very important not only for building but also for &amp;#039;&amp;#039;&amp;#039;running&amp;#039;&amp;#039;&amp;#039; svdem later on. Here all the Environment-Variables for the Build will be set up. For a detailed description see [[Environment_Variables]]. Please note that on Intel machines, &amp;#039;MacOSXPPCEnv.Set.sh&amp;#039; should be substituted with &amp;#039;MacOSXX86Env.Set.sh&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
This Build process takes on my box (Dual 1.8 GHz G5, 1.5GB RAM) roughly 10 hours, and 3 to 6 hours on Mac Intel (3:30h on a 2GHz DualCore INTEL iMac). Be patient.&lt;br /&gt;
&lt;br /&gt;
If you want to see how the progress on that build  is you can use two &amp;#039;&amp;#039;&amp;#039;build&amp;#039;&amp;#039;&amp;#039; options to get a comfortable view:&lt;br /&gt;
&lt;br /&gt;
 build ... &amp;lt;see above&amp;gt; ... --html --html_path /Users/$USER/Sites&lt;br /&gt;
&lt;br /&gt;
where $USER is your user name. Then you can load in Firefox (not Safari!) the HTML file &amp;#039;&amp;#039;&amp;#039;unxmacxi.pro.build.html&amp;#039;&amp;#039;&amp;#039; via the in Mac OS X included Apache web server or diretctly form the directory &amp;#039;&amp;#039;/Users/$USER/Sites/&amp;#039;&amp;#039;. This file is automatically being updated and is showing the status of the build and also the time needed since the build started.&lt;br /&gt;
&lt;br /&gt;
If you build on Snow Leopard (aka Mac OS X 10.6): Set DYLD_INSERT_LIBRARIES to point to the correct libsqlite3.dylib:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DYLD_INSERT_LIBRARIES=/usr/lib/libsqlite3.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Installing, preparing and running OpenOffice.org&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039; Find the Bundle&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Once the build completed, the final product ( en-US version ) is named :  OOo_3.0.0_*_MacOSXIntel_install.dmg ( for version 3.0beta e.g.) &lt;br /&gt;
&lt;br /&gt;
And is located in instsetoo_native/unxmacxi.pro/OpenOffice/dmg/install/en-US  directory ( replace en-US with your locale )&lt;br /&gt;
&lt;br /&gt;
[[Image:Bundle_Location3.0beta.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Install the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double click on the *.dmg icon&lt;br /&gt;
* drag the OpenOffice.org icon into a folder of your choice&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Run the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double click the application icon in that folder&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Screenshots&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Now you can start to work with this [[Aqua_Screenshots | amazing productivity suite]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Contribute by finding, isolating, debugging or solving issues&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Isolate a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Reduce a problem&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
* make a problem reproducable&lt;br /&gt;
* reduce it to a test case that is as small and simple as possible&lt;br /&gt;
* if a problem is specific to a document then please attach it to the issue. A mininal excerpt of the document that still shows the problem is even better.&lt;br /&gt;
* a screenshot of is a good idea if it clearly shows the problem&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Using application switches&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Application switches are often valuable for isolating a problem. Most of OpenOffice.org&amp;#039;s options can be found its Tools-&amp;gt;Options menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Some switches are so special that there is no user interface to change them. They are only useful for debugging and isolating a problem, but they are very valuable a that. So a developer might suggest to isolate a problem by setting an environment variable before running the application. E.g. for isolating problems with the menubar a developer might suggest to set the environment variable [[AQUA_NATIVE_MENUS]] to false. This is done by typing these commands into a terminal:&lt;br /&gt;
* cd &amp;lt;INSTALL_DIR&amp;gt;/OpenOffice.org/Contents/MacOS&lt;br /&gt;
* export AQUA_NATIVE_MENUS=false&lt;br /&gt;
* ./soffice.bin&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Provide a call stack for crash problems&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Please note that bugs involving crashes should provide a description of how to reproduce the problem and a callstack.&lt;br /&gt;
There are several ways to provide the callstack:&lt;br /&gt;
* the preferred method is to use OOo&amp;quot;s builtin [[CrashReporting|crash reporting tool]]&lt;br /&gt;
* developers may provide a [[Providing_a_gdb_backtrace | gdb backtrace]] of the problem&lt;br /&gt;
* if the above two methods don&amp;quot;t work then please attach a file with the details provided by the AppleCrashReporter&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Check against known issues&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Check the list of [http://www.openoffice.org/issues/buglist.cgi?issue_status=UNCONFIRMED&amp;amp;issue_status=NEW&amp;amp;issue_status=STARTED&amp;amp;issue_status=REOPENED&amp;amp;email1=&amp;amp;emailtype1=exact&amp;amp;emailassigned_to1=1&amp;amp;email2=&amp;amp;emailtype2=exact&amp;amp;emailreporter2=1&amp;amp;issueidtype=include&amp;amp;issue_id=&amp;amp;changedin=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=&amp;amp;chfieldvalue=&amp;amp;short_desc=&amp;amp;short_desc_type=fulltext&amp;amp;long_desc=&amp;amp;long_desc_type=fulltext&amp;amp;issue_file_loc=&amp;amp;issue_file_loc_type=fulltext&amp;amp;status_whiteboard=&amp;amp;status_whiteboard_type=fulltext&amp;amp;keywords=aqua&amp;amp;keywords_type=anytokens&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0=&amp;amp;cmdtype=doit&amp;amp;newqueryname=&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;Submit+query=Submit+query open issues]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Report a new issue&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Report [http://qa.openoffice.org/issue_handling/pre_submission.html new issues] after you have [[AquaBuild#Isolate_a_problem | isolated the problem]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Debug a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Debugging problems is often easier in an development environment:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With XCode: [[MacOSX_Debug_OpenOffice.org_using_XCode]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xemacs: [http://www.mikesicotte.com/2007/02/21/debugging-ooo-with-xemacs-and-gdb Michael Sicotte&amp;#039;s blog entry]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that XCode still has some problems with the executable named soffice.bin (because of the dot in the name). The issue has been reported to xcode-users list.&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Current Work in progress (Aqua specific work only)&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
With OOO300 the Aqua port became a mainstream port, so most Aqua issues are handled in regular GSL-Layer childworkspaces instead of dedicated Aqua CWSses. Other CWSses that are purely Aqua specific are being tracked below:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|ogltrans4mac|DEV300}}&amp;#039;&amp;#039;&amp;#039; : Implement the 3D (OpenGL) transitions in Impress ( see :  [[Mac_OS_X_Porting_-_OpenGL_transitions|  OpenGL transitions on Mac OS X ]] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in development&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote03|DEV300}}&amp;#039;&amp;#039;&amp;#039; :  use the contextual menu in presentation mode with Impress. preliminary step&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|hotmac|OOO300}}&amp;#039;&amp;#039;&amp;#039; : fix memory deallocation problems in exit()&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|macosxscanner01|DEV300}}&amp;#039;&amp;#039;&amp;#039; (planned)&lt;br /&gt;
&lt;br /&gt;
All patches that developers have that need testing or peer review should be added here.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in testing (closed for development)&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|macmiscfixes}}&amp;#039;&amp;#039;&amp;#039; : misc fixes for mac&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|maccrashrep}}&amp;#039;&amp;#039;&amp;#039; : support crash reporting for OSX builds&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|quicklookplugin01}}&amp;#039;&amp;#039;&amp;#039; : a plugin for the QuickLook system available in MacOSX from versions 10.5 onwards&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces waiting for integration&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote02|DEV300}}&amp;#039;&amp;#039;&amp;#039; : improve the Apple Remote use with Impress (use MEDIA_COMMAND stuff, improve code robustness, and portability )&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child Workspaces integrated into OpenOffice&amp;#039;s trunk&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
A historical overview of [[Aqua_Integrated_CWS | old Aqua specific ChildWorkspaces]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Known build issues &amp;#039;&amp;#039;&amp;#039;==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Tiger&amp;#039;&amp;#039;&amp;#039;:  no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Snow Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Mountain Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;left&amp;quot; style=&amp;quot;color:grey; font-size:12px&amp;quot;&amp;gt;[[AquaBuild/Some Background | &amp;#039;&amp;#039;&amp;#039;Some Background (what is a CWS, EIS) (click me to know more) &amp;#039;&amp;#039;&amp;#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;External links&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
* [https://issues.apache.org/ooo Apache OpenOffice Issuezilla] : a database of bugs, changes and enhancements &lt;br /&gt;
* There are [[MacOSXPortMeetings | regular meetings]] on IRC (archives are [[Previous_Mac_Meeting_logs | available]]).&lt;br /&gt;
* Apache OpenOffice has a complicated code base. [[Source_code_directories | Here]] is an overview.&lt;br /&gt;
* the official Apache OpenOffice blog is at [https://blogs.apache.org/OOo/]&lt;br /&gt;
* [http://www.cocoadev.com Cocoadev] provides great resources to get up to speed in Cocoa development&lt;br /&gt;
* Pierre Chatelier&amp;#039;s excellent [http://ktd.club.fr/programmation/objective-c.php Objective C for C++ developers] is available in both english and french versions&lt;br /&gt;
* Details about OSX&amp;#039;s [http://developer.apple.com/cocoa Cocoa API] are available in the XCode documentation&lt;br /&gt;
&lt;br /&gt;
[[Category:Aqua]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=231440</id>
		<title>Documentation/Building Guide/Building on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_MacOSX&amp;diff=231440"/>
		<updated>2013-09-27T09:20:10Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Mandatory Requirements */ XCode4 is not yet supported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on Mac OS X}}&lt;br /&gt;
[[Category:MacOSX]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;!-- insert comment --&amp;gt;&lt;br /&gt;
= Overview =&lt;br /&gt;
This document explains how to build the Apache OpenOffice source code on Mac OS X systems. &lt;br /&gt;
{{Template:Documentation/Note|&amp;lt;code&amp;gt;$SRC_ROOT&amp;lt;/code&amp;gt; will denote the directory in which the source code of Apache OpenOffice is stored.}}&lt;br /&gt;
{{Template:Documentation/Tip|You are advised to check the release notes for the release you are building to inform yourself about changes since previous releases.}}&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&lt;br /&gt;
To build the office on Mac OS X several requirements/prerequisites have to be fulfilled. &lt;br /&gt;
&lt;br /&gt;
== Mandatory Requirements ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039; version 10.4 (aka Tiger) or later (if using 10.5 aka Leopard, have a look at [[User:Dyrcona/LeopardBuild#flex]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mac 10.4 SDK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XCode&amp;#039;&amp;#039;&amp;#039; version 2.4.1 or any XCode 3. If you want to use a newer version than the one that is shipped with your Mac OS X installation media, you need to register at the [https://connect.apple.com/ Apple Developer Connection] site (free of charge) to be able to [http://developer.apple.com/technology/xcode.html download it].  On Mac OS X 10.6 (Snow Leopard), make sure to install the optional 10.4 SDK with XCode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;dmake&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of dmake that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;epm&amp;#039;&amp;#039;&amp;#039;, the build environment depends currently on a special patched version of epm (easy package manager) that you can download and build on demand during configure and bootstrap. Or you can provide a prebuilt version and can specify it during configure.  &lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|XCode 4 is currently not tested because of the missing support in XCode and the office dependency to the 10.4 SDK}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|Java: On systems &amp;lt; Mac OS X 10.7 Apache OpenOffice does not build yet using Java SDK 1.6.0. If you didn&amp;#039;t configure Mac OS X for a 1.6, you don&amp;#039;t need to do anything - the default (1.5) is OK. To change the default Java version go to Applications/Utilities/Java and modify accordingly}}&lt;br /&gt;
&lt;br /&gt;
Of course patches to make it build with 1.6 are very welcome and feel free to submit your patches to the dev@openoffice.apache.org mailing list or file issues.&lt;br /&gt;
&lt;br /&gt;
== Optional Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unowinreg.dll ===&lt;br /&gt;
&lt;br /&gt;
This library is Windows only but will be packed in the Apache OpenOffice SDK to ensure that it is available on all platforms. The library provides some glue code to setup a working UNO environment for UNO client applications connecting to an office and doing some remote automation via API. The library should be stored in &amp;#039;&amp;#039;main/external/unowinreg&amp;#039;&amp;#039;. Only necessary for building the SDK.&lt;br /&gt;
&lt;br /&gt;
The library can be downloaded under &lt;br /&gt;
* http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll &lt;br /&gt;
&lt;br /&gt;
=== Prebuilt Mozilla archives (based on seamonkey1.1.13) ===&lt;br /&gt;
&lt;br /&gt;
To enable macros/macro security (disabled by default for security reasons), you&amp;#039;ll have to put the prebuilt archives of mozilla binaries in the &amp;#039;&amp;#039;main/moz/zipped&amp;#039;&amp;#039; directory.&lt;br /&gt;
&lt;br /&gt;
Note: archives are Intel only for now.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Archives to be downloaded&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIinc.zip&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIlib.zip&lt;br /&gt;
* http://tools.openoffice.org/moz_prebuild/OOo3.2/MACOSXGCCIruntime.zip &lt;br /&gt;
&lt;br /&gt;
or from&lt;br /&gt;
&lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIinc.zip &lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIlib.zip&lt;br /&gt;
* http://eric.bachard.free.fr/mac/moz/seamonkey_Intel/MACOSXGCCIruntime.zip&lt;br /&gt;
&lt;br /&gt;
== Recommended tools ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ccache&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If you intend to build Apache OpenOffice several times, you probably can benefit of ccache since it will speed up your future builds. The first time you make a build with ccache you won&amp;#039;t notice it, but the next time the build will go up to five times faster.&lt;br /&gt;
&lt;br /&gt;
You can install it using &amp;#039;&amp;#039;&amp;#039;[http://www.finkproject.org/ Fink]&amp;#039;&amp;#039;&amp;#039;. It is simply named &amp;quot;ccache&amp;quot;. For &amp;#039;&amp;#039;&amp;#039;[http://www.macports.org/ MacPorts]&amp;#039;&amp;#039;&amp;#039; users the package is called &amp;quot;ccache&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t use fink, you can download and build it yourself using the source provided at http://ccache.samba.org/&lt;br /&gt;
&lt;br /&gt;
There are two ways to enable ccache - one is to set environment variables, the other way is to use symlinks.&lt;br /&gt;
&lt;br /&gt;
Using environment variables:&lt;br /&gt;
 export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
 export CXX=&amp;quot;ccache g++&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the symlink approach:&lt;br /&gt;
 # create a directory for the links &lt;br /&gt;
 mkdir ~/bin&lt;br /&gt;
 # create the symlinks pointing to ccache with the name of the compiler&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/gcc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/g++&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/cc&lt;br /&gt;
 ln -s /path/to/ccache ~/bin/c++&lt;br /&gt;
 # no all you need to enable ccache is to prepend ~/bin to your PATH&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
for both methody, you can add the &amp;quot;export ...&amp;quot; lines to your ~/.profile - that way you don&amp;#039;t need to manually set it when building. You can still temporarily disable ccache (export CCACHE_DISABLE=1) in case you don&amp;#039;t want to use it.&lt;br /&gt;
&lt;br /&gt;
Since OOo is rather huge, you should increase the cache-size to 1 GB or more &lt;br /&gt;
 ccache -M 1G&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;subversion&amp;#039;&amp;#039;&amp;#039; version &amp;#039;&amp;#039;&amp;#039;1.5.4 or later&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Since OOo&amp;#039;s source code is managed using Subversion currently, you also need the svn client to checkout sources (otherwise you would be bount to source-tarballs that aren&amp;#039;t generated that frequently). You can either compile yourself or use the subversion universal binaries from the [http://subversion.tigris.org subversion project] Version 1.5.4 or later is required because of important fixes related to the merge-feature.&lt;br /&gt;
&lt;br /&gt;
== Get the source and prepare to build it ==&lt;br /&gt;
&lt;br /&gt;
=== Get the source from SVN ===&lt;br /&gt;
&lt;br /&gt;
You need about 4.7 GB for a checkout from the svn repository. Building the source requires another 5GB.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;check out the latest source from svn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
=== One-Time preparation and scripts ===&lt;br /&gt;
&lt;br /&gt;
Apache OpenOffice build environment is configured using the open-source configuration-management package &amp;#039;autoconf&amp;#039;. So you can do your beloved &amp;#039;./configure&amp;#039; command, is now done in the &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; source directory. &lt;br /&gt;
&lt;br /&gt;
To save the configure parameters and use them with different milestones it is useful to create your own build script to configure the environment and to trigger the build.&lt;br /&gt;
&lt;br /&gt;
The directory structure when you have checked out the sources from svn looks like:&lt;br /&gt;
&lt;br /&gt;
 aoo/&lt;br /&gt;
 aoo/main &lt;br /&gt;
 aoo/extras&lt;br /&gt;
 aoo/test&lt;br /&gt;
 aoo/ext_libraries&lt;br /&gt;
 aoo/ext_sources&lt;br /&gt;
&lt;br /&gt;
Move into &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; and configure a minimal environment to build your first version of Apache OpenOffice:&lt;br /&gt;
 &lt;br /&gt;
 cd main&lt;br /&gt;
&lt;br /&gt;
Run the autoconf command to prepare a new configure based on the latest changes in configure.in&lt;br /&gt;
&lt;br /&gt;
 autoconf&lt;br /&gt;
&lt;br /&gt;
Run configure &lt;br /&gt;
&lt;br /&gt;
 ./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
This commands prepares a minimal environment to build the office without any category-b enabled external libraries. A pure Apache license compatible version. See also the configure switches &amp;#039;&amp;#039;--with-dmake-path&amp;#039;&amp;#039; and &amp;#039;&amp;#039;--with-epm&amp;#039;&amp;#039; to specify prebuilt versions of dmake or epm.&lt;br /&gt;
&lt;br /&gt;
Finally you should run bootstrap to trigger further preparations and to create platform specific shell script to setup a working build environment. On Mac OS x for example &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; on a Intel based system.  &lt;br /&gt;
&lt;br /&gt;
=== Build environment with enabled category-b dependencies ===&lt;br /&gt;
&lt;br /&gt;
To prepare a build environment that provides more features and make use of further external libraries which are under copyleft but viral licenses you have to explicitly enable this &amp;#039;&amp;#039;&amp;#039;category-b&amp;#039;&amp;#039;&amp;#039; components.&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
     --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz \&lt;br /&gt;
     --disable-build-mozilla \&lt;br /&gt;
     --enable-verbose \&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;--enable-category-b&amp;#039;&amp;#039;&amp;#039;\&lt;br /&gt;
     --enable-minimizer\&lt;br /&gt;
     --enable-presenter-console\&lt;br /&gt;
     --enable-wiki-publisher    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example build script to simplify user specific configurations===&lt;br /&gt;
As mentioned before to save the configure parameters and use them with different versions it is useful to create your own build script to configure the environment.&lt;br /&gt;
&lt;br /&gt;
Create &amp;#039;build.sh&amp;#039; (to be written) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for unowinreg.dll ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./external/unowinreg/unowinreg.dll ]; then&lt;br /&gt;
    wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  unowinreg.dll found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### checking for moz prebuild libs ... &amp;quot;&lt;br /&gt;
if [ ! -e  ./moz/zipped/MACOSXGCCIinc.zip ]; then&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIinc.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIinc.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIlib.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIlib.zip&lt;br /&gt;
    wget -O ./moz/zipped/MACOSXGCCIruntime.zip http://www.openoffice.org/tools/moz_prebuild/OOo3.2/MACOSXGCCIruntime.zip&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;  moz prebuild libs found&amp;quot; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! -e  ./configure ]; then&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    autoconf&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;### autoconf ...&amp;quot;&lt;br /&gt;
    rm ./configure&lt;br /&gt;
    autoconf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;### Configure&amp;quot;&lt;br /&gt;
./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
#./configure --with-build-version=&amp;quot;$(date +&amp;quot;%Y-%m-%d %H:%M:%S (%a, %d %b %Y)&amp;quot;) - Rev. $(echo $(svn info) | sed -e &amp;#039;s/^.*Last Changed Rev: //g&amp;#039; -e &amp;#039;s/ .*//g&amp;#039;)&amp;quot; \&lt;br /&gt;
    --disable-build-mozilla \&lt;br /&gt;
    --enable-verbose --enable- category-b --enable-minimizer --enable-presenter-console --enable-wiki-publisher \&lt;br /&gt;
    --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
    --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz&lt;br /&gt;
&lt;br /&gt;
./bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put this script into ~/bin and make sure it is executable : &lt;br /&gt;
&lt;br /&gt;
 chmod ug+x ~/bin/build.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;We used the bash shell in all example, since to our belief users of the C-shell are smart enough to figure out the differences anyway. If you want to dig deeper into the build process, please have a look at the description  [http://tools.openoffice.org/build_env.html OpenOffice.org&amp;#039;s Build Environment].&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Doing the build ==&lt;br /&gt;
&lt;br /&gt;
After running configure and bootstrap we should have a working build environment and all necessary scripts should have been created. From now on you can use &amp;#039;&amp;#039;&amp;#039;MacOSXX86Env.Set.sh&amp;#039;&amp;#039;&amp;#039; to prepare a new shell with a working build environment.&lt;br /&gt;
&lt;br /&gt;
=== On Mac Intel ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXX86Env.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P4 &lt;br /&gt;
&lt;br /&gt;
=== On PowerPC ===&lt;br /&gt;
&lt;br /&gt;
 source MacOSXPPCEnv.Set.sh&lt;br /&gt;
 cd instsetoo_native&lt;br /&gt;
 build --all &lt;br /&gt;
&lt;br /&gt;
 or&lt;br /&gt;
&lt;br /&gt;
 build --all -P2 &lt;br /&gt;
&lt;br /&gt;
=== Comments on above ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO TODO TODO ....&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
if you run into trouble with --dlv_switch (see: {{Bug|77360}})&lt;br /&gt;
&lt;br /&gt;
The main purpose of the &amp;#039;&amp;#039;&amp;#039;bootstrap&amp;#039;&amp;#039;&amp;#039; script is to build (if necessary) the dmake utility used. Dmake once was a unix make-clone made by wticorp but got incorporated into OpenOffice since it was orphaned. For more information about dmake, it&amp;#039;s history and manpage have a look here: http://tools.openoffice.org/dmake/index.html&lt;br /&gt;
&lt;br /&gt;
Sourcing MacOSXPPCEnv.Set.sh is very important not only for building but also for &amp;#039;&amp;#039;&amp;#039;running&amp;#039;&amp;#039;&amp;#039; svdem later on. Here all the Environment-Variables for the Build will be set up. For a detailed description see [[Environment_Variables]]. Please note that on Intel machines, &amp;#039;MacOSXPPCEnv.Set.sh&amp;#039; should be substituted with &amp;#039;MacOSXX86Env.Set.sh&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
This Build process takes on my box (Dual 1.8 GHz G5, 1.5GB RAM) roughly 10 hours, and 3 to 6 hours on Mac Intel (3:30h on a 2GHz DualCore INTEL iMac). Be patient.&lt;br /&gt;
&lt;br /&gt;
If you want to see how the progress on that build  is you can use two &amp;#039;&amp;#039;&amp;#039;build&amp;#039;&amp;#039;&amp;#039; options to get a comfortable view:&lt;br /&gt;
&lt;br /&gt;
 build ... &amp;lt;see above&amp;gt; ... --html --html_path /Users/$USER/Sites&lt;br /&gt;
&lt;br /&gt;
where $USER is your user name. Then you can load in Firefox (not Safari!) the HTML file &amp;#039;&amp;#039;&amp;#039;unxmacxi.pro.build.html&amp;#039;&amp;#039;&amp;#039; via the in Mac OS X included Apache web server or diretctly form the directory &amp;#039;&amp;#039;/Users/$USER/Sites/&amp;#039;&amp;#039;. This file is automatically being updated and is showing the status of the build and also the time needed since the build started.&lt;br /&gt;
&lt;br /&gt;
If you build on Snow Leopard (aka Mac OS X 10.6): Set DYLD_INSERT_LIBRARIES to point to the correct libsqlite3.dylib:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DYLD_INSERT_LIBRARIES=/usr/lib/libsqlite3.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Installing, preparing and running OpenOffice.org&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039; Find the Bundle&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Once the build completed, the final product ( en-US version ) is named :  OOo_3.0.0_*_MacOSXIntel_install.dmg ( for version 3.0beta e.g.) &lt;br /&gt;
&lt;br /&gt;
And is located in instsetoo_native/unxmacxi.pro/OpenOffice/dmg/install/en-US  directory ( replace en-US with your locale )&lt;br /&gt;
&lt;br /&gt;
[[Image:Bundle_Location3.0beta.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Install the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double click on the *.dmg icon&lt;br /&gt;
* drag the OpenOffice.org icon into a folder of your choice&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Run the new Build&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* double click the application icon in that folder&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Screenshots&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Now you can start to work with this [[Aqua_Screenshots | amazing productivity suite]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Contribute by finding, isolating, debugging or solving issues&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Isolate a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Reduce a problem&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
* make a problem reproducable&lt;br /&gt;
* reduce it to a test case that is as small and simple as possible&lt;br /&gt;
* if a problem is specific to a document then please attach it to the issue. A mininal excerpt of the document that still shows the problem is even better.&lt;br /&gt;
* a screenshot of is a good idea if it clearly shows the problem&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Using application switches&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Application switches are often valuable for isolating a problem. Most of OpenOffice.org&amp;#039;s options can be found its Tools-&amp;gt;Options menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Some switches are so special that there is no user interface to change them. They are only useful for debugging and isolating a problem, but they are very valuable a that. So a developer might suggest to isolate a problem by setting an environment variable before running the application. E.g. for isolating problems with the menubar a developer might suggest to set the environment variable [[AQUA_NATIVE_MENUS]] to false. This is done by typing these commands into a terminal:&lt;br /&gt;
* cd &amp;lt;INSTALL_DIR&amp;gt;/OpenOffice.org/Contents/MacOS&lt;br /&gt;
* export AQUA_NATIVE_MENUS=false&lt;br /&gt;
* ./soffice.bin&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;&amp;#039;Provide a call stack for crash problems&amp;#039;&amp;#039;&amp;#039; ====&lt;br /&gt;
&lt;br /&gt;
Please note that bugs involving crashes should provide a description of how to reproduce the problem and a callstack.&lt;br /&gt;
There are several ways to provide the callstack:&lt;br /&gt;
* the preferred method is to use OOo&amp;quot;s builtin [[CrashReporting|crash reporting tool]]&lt;br /&gt;
* developers may provide a [[Providing_a_gdb_backtrace | gdb backtrace]] of the problem&lt;br /&gt;
* if the above two methods don&amp;quot;t work then please attach a file with the details provided by the AppleCrashReporter&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Check against known issues&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Check the list of [http://www.openoffice.org/issues/buglist.cgi?issue_status=UNCONFIRMED&amp;amp;issue_status=NEW&amp;amp;issue_status=STARTED&amp;amp;issue_status=REOPENED&amp;amp;email1=&amp;amp;emailtype1=exact&amp;amp;emailassigned_to1=1&amp;amp;email2=&amp;amp;emailtype2=exact&amp;amp;emailreporter2=1&amp;amp;issueidtype=include&amp;amp;issue_id=&amp;amp;changedin=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=&amp;amp;chfieldvalue=&amp;amp;short_desc=&amp;amp;short_desc_type=fulltext&amp;amp;long_desc=&amp;amp;long_desc_type=fulltext&amp;amp;issue_file_loc=&amp;amp;issue_file_loc_type=fulltext&amp;amp;status_whiteboard=&amp;amp;status_whiteboard_type=fulltext&amp;amp;keywords=aqua&amp;amp;keywords_type=anytokens&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0=&amp;amp;cmdtype=doit&amp;amp;newqueryname=&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;Submit+query=Submit+query open issues]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Report a new issue&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Report [http://qa.openoffice.org/issue_handling/pre_submission.html new issues] after you have [[AquaBuild#Isolate_a_problem | isolated the problem]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Debug a problem&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Debugging problems is often easier in an development environment:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With XCode: [[MacOSX_Debug_OpenOffice.org_using_XCode]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xemacs: [http://www.mikesicotte.com/2007/02/21/debugging-ooo-with-xemacs-and-gdb Michael Sicotte&amp;#039;s blog entry]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that XCode still has some problems with the executable named soffice.bin (because of the dot in the name). The issue has been reported to xcode-users list.&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Current Work in progress (Aqua specific work only)&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
With OOO300 the Aqua port became a mainstream port, so most Aqua issues are handled in regular GSL-Layer childworkspaces instead of dedicated Aqua CWSses. Other CWSses that are purely Aqua specific are being tracked below:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|ogltrans4mac|DEV300}}&amp;#039;&amp;#039;&amp;#039; : Implement the 3D (OpenGL) transitions in Impress ( see :  [[Mac_OS_X_Porting_-_OpenGL_transitions|  OpenGL transitions on Mac OS X ]] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in development&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote03|DEV300}}&amp;#039;&amp;#039;&amp;#039; :  use the contextual menu in presentation mode with Impress. preliminary step&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|hotmac|OOO300}}&amp;#039;&amp;#039;&amp;#039; : fix memory deallocation problems in exit()&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|macosxscanner01|DEV300}}&amp;#039;&amp;#039;&amp;#039; (planned)&lt;br /&gt;
&lt;br /&gt;
All patches that developers have that need testing or peer review should be added here.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces in testing (closed for development)&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|macmiscfixes}}&amp;#039;&amp;#039;&amp;#039; : misc fixes for mac&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|maccrashrep}}&amp;#039;&amp;#039;&amp;#039; : support crash reporting for OSX builds&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;{{CWS|quicklookplugin01}}&amp;#039;&amp;#039;&amp;#039; : a plugin for the QuickLook system available in MacOSX from versions 10.5 onwards&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child WorkSpaces waiting for integration&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;{{CWS|appleremote02|DEV300}}&amp;#039;&amp;#039;&amp;#039; : improve the Apple Remote use with Impress (use MEDIA_COMMAND stuff, improve code robustness, and portability )&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Child Workspaces integrated into OpenOffice&amp;#039;s trunk&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
A historical overview of [[Aqua_Integrated_CWS | old Aqua specific ChildWorkspaces]].&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;Known build issues &amp;#039;&amp;#039;&amp;#039;==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Tiger&amp;#039;&amp;#039;&amp;#039;:  no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Snow Leopard&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Mountain Lion&amp;#039;&amp;#039;&amp;#039;: no known issues&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;left&amp;quot; style=&amp;quot;color:grey; font-size:12px&amp;quot;&amp;gt;[[AquaBuild/Some Background | &amp;#039;&amp;#039;&amp;#039;Some Background (what is a CWS, EIS) (click me to know more) &amp;#039;&amp;#039;&amp;#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;External links&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
* [https://issues.apache.org/ooo Apache OpenOffice Issuezilla] : a database of bugs, changes and enhancements &lt;br /&gt;
* There are [[MacOSXPortMeetings | regular meetings]] on IRC (archives are [[Previous_Mac_Meeting_logs | available]]).&lt;br /&gt;
* Apache OpenOffice has a complicated code base. [[Source_code_directories | Here]] is an overview.&lt;br /&gt;
* the official Apache OpenOffice blog is at [https://blogs.apache.org/OOo/]&lt;br /&gt;
* [http://www.cocoadev.com Cocoadev] provides great resources to get up to speed in Cocoa development&lt;br /&gt;
* Pierre Chatelier&amp;#039;s excellent [http://ktd.club.fr/programmation/objective-c.php Objective C for C++ developers] is available in both english and french versions&lt;br /&gt;
* Details about OSX&amp;#039;s [http://developer.apple.com/cocoa Cocoa API] are available in the XCode documentation&lt;br /&gt;
&lt;br /&gt;
[[Category:Aqua]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=230876</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=230876"/>
		<updated>2013-09-09T09:53:51Z</updated>

		<summary type="html">&lt;p&gt;Hdu: replace OOo with AOO (or OpenOffice)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Extensions}}&lt;br /&gt;
[[image:Py-uno_128.png|PyUNO Logo]] [[image:Pyuno_logo_a.jpg]] &lt;br /&gt;
&lt;br /&gt;
=== Python and OpenOffice ===&lt;br /&gt;
Apache OpenOffice 4 ships with the Python scripting language, version 2.7. OpenOffice.org 3.1 and above shipped with Python version 2.6.1 and older OpenOffice.org releases shipped with Python version 2.3.4. This Python distribution via OpenOffice comes with the [[Uno]] module, which connects the [[API|UNO API]] to the python scripting language.  To run this version of Python on Linux, you can go directly to the OpenOffice PATH.  And as one would expect with any distribution of Python, AOO-Python can be run from the command line as well.&lt;br /&gt;
&lt;br /&gt;
If you already have a separate Python installation, you can import the uno module (the Python-UNO bridge) to it using [http://forum.openoffice.org/en/forum/viewtopic.php?f=45&amp;amp;t=36370&amp;amp;p=166783 these instructions].&lt;br /&gt;
&lt;br /&gt;
If you already have a different version of Python installed on Windows, you can also access the [[API|UNO API]] using the [http://forum.openoffice.org//en/forum/viewtopic.php?f=45&amp;amp;t=36608&amp;amp;p=167909 COM bridge] instead of the Python bridge. Requires the [http://sourceforge.net/projects/pywin32/ add-on pywin32] module so Python can talk to COM. Note that while the UNO API is uniform, the implementation by the two bridges is slightly different, so the syntax required by each is also sometimes different.&lt;br /&gt;
&lt;br /&gt;
==== Where is the IDE ? ====&lt;br /&gt;
OpenOffice&amp;#039;s IDE doesn&amp;#039;t support Python, so development has to be done from another editor that does.  Any volunteer for a binding is welcomed. Here is a nice [http://pythonconquerstheuniverse.wordpress.com/category/the-python-debugger/ blog post] about using [http://www.vim.org VIM] a common Unix/Linux text editor configured in a way that acts like an IDE. Windows users can use [http://www.vim.org/download.php#pc Gvim] and [http://macvim.org/ MacVim] for OSX users.&lt;br /&gt;
&lt;br /&gt;
==== Tips &amp;amp; Tricks ====&lt;br /&gt;
&lt;br /&gt;
Here is some useful information about using python in AOO.&lt;br /&gt;
&lt;br /&gt;
===== Debug output =====&lt;br /&gt;
&lt;br /&gt;
If you launch a python script, any error will silently break the execution, making your extension hard to debug.  To change this behaviour, one can change the&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;LogLevel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Have a look in &lt;br /&gt;
&amp;#039;&amp;#039;/path/to/aoo/program/&amp;#039;&amp;#039;&amp;#039;pythonscript.py&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
and replace &lt;br /&gt;
&amp;#039;&amp;#039;LogLevel.use = LogLevel.&amp;#039;&amp;#039;&amp;#039;NONE&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
with&lt;br /&gt;
&amp;#039;&amp;#039;LogLevel.use = LogLevel.&amp;#039;&amp;#039;&amp;#039;DEBUG&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
There are also currently-undocumented environment variables that tell the pyUno bridge to log every call.  Set the environment variable&lt;br /&gt;
&amp;#039;&amp;#039;export PYUNO_LOGLEVEL=ARGS&amp;#039;&amp;#039;&lt;br /&gt;
.  The output may be a little hard to read, but helpful nonetheless.&lt;br /&gt;
&lt;br /&gt;
Note that his applies only to Linux.  For Windows, you need some more switches, and the output gets written to files (there is no stdout on windows :-( ).&lt;br /&gt;
&lt;br /&gt;
There are still some error messages that won&amp;#039;t appear in these logs; this will improve in the near future (cws pyunofixes4).  Once the cws is integrated, I will document these switches on the official pyuno site. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Thanks to Joerg Budischewski&amp;#039;&amp;#039;&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
=== Python specific information for Extension creation ===&lt;br /&gt;
To create extensions for python, it is important that you have enough familiarity with the UNO components, as well as with packaging your code for easy distribution through the &amp;#039;&amp;#039;OpenOffice package manager&amp;#039;&amp;#039;.  Please check the tutorials to learn how to component-ize your code, and how to deploy remote scripting through a service implementation.&lt;br /&gt;
&lt;br /&gt;
To learn to run Python on Windows, visit [[Using Python on Windows| this link]] for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;border: 0px solid rgb(134, 194, 230);&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 35%; padding-right: 15px;&amp;quot; | &amp;lt;div style=&amp;quot;border-style: solid solid none; border-color: rgb(134, 194, 230) rgb(134, 194, 230) -moz-use-text-color; border-width: 1px 1px medium; padding: 5px; font-size: 120%; font-weight: bold; background-color: rgb(203, 222, 250);&amp;quot;&amp;gt;Getting Started&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;border: 1px solid rgb(155, 192, 245); padding: 5px 5px 10px;&amp;quot;&amp;gt;&lt;br /&gt;
*[[Python/Python_Language_Binding|Python Language Binding]]&lt;br /&gt;
*[[Python/Python_Loader|Python Loader]]&lt;br /&gt;
*[[Using Python on Windows]] - New to Python? Learn how to use python on Windows&lt;br /&gt;
*[[Using Python on Linux]] - A must read for an overview on Python and AOO relations&lt;br /&gt;
* [[pyUNO bridge]] - Official page of the PyUNO bridge at the [http://udk.openoffice.org/ UDK site] - ([http://www.fatcow.com/edu/mathtex-be/ &amp;#039;&amp;#039;Belorussian translation&amp;#039;&amp;#039;])&lt;br /&gt;
* [[Python as a macro language]] in OpenOffice.org 2.x - How to use the Python scripting framework&lt;br /&gt;
* [[Python/Transfer_from_Basic_to_Python|Transfer from Basic to Python]]&lt;br /&gt;
* [http://lucasmanual.com/mywiki/OpenOffice PyUNO Manual] Lukasz created a pyUNO manual. &amp;#039;&amp;#039;&amp;#039;new&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[SQLAlquemyPyUNO|SQLAlchemy and PyUNO]] connecting OpenOffice to any database&lt;br /&gt;
* [http://www.linuxjournal.com/content/starting-stopping-and-connecting-openoffice-python Starting/Stopping and connecting using Python] From Linux Journal&lt;br /&gt;
* Introduction on testing pyUNO programs with [[doctests]]&lt;br /&gt;
* Create a [[PythonDialogBox|dialog box]] in PyUNO.&lt;br /&gt;
* [[http://codesnippets.services.openoffice.org/Office/Office.ConnectViaPipe.snip Connect to Openoffice] from PyUNO&lt;br /&gt;
* [[PyUNO samples]] currently shipping with OpenOffice.org and the explanation.&lt;br /&gt;
* Enhanced [http://www.oooforum.org/forum/viewtopic.phtml?p=257496#257496 Capitalized.py] script by &amp;#039;&amp;#039;The gray Cardinal&amp;#039;&amp;#039; at the OpenOffice forum.&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 35%; padding-right: 15px;&amp;quot; | &amp;lt;div style=&amp;quot;border-style: solid solid none; border-color: rgb(134, 194, 230) rgb(134, 194, 230) -moz-use-text-color; border-width: 1px 1px medium; padding: 5px; font-size: 120%; font-weight: bold; background-color: rgb(203, 222, 250);&amp;quot;&amp;gt;PYUNO Modules&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;border: 1px solid rgb(155, 192, 245); padding: 5px 5px 10px;&amp;quot;&amp;gt;&lt;br /&gt;
*[[Danny&amp;#039;s Python Modules]] - Collection guide from DannyB&amp;#039;s modules.&lt;br /&gt;
*[[PrinttoWriter.py]] - This makes it easy and convenient to print a bunch of text into a Writer document.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=8456 Developing Calc Functions in Python] - Learn how Python can be used to script your spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=56037#56037 Generating a Spreadsheet through Python] - Automatically generate new spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=9115 Python container components]&lt;br /&gt;
*[[PyUNOServer]] - The PyUNOServer is a script that works as an XML server for OpenOffice.org Calc&lt;br /&gt;
*[[calcParser]] - calcParser is a small parser using the native SAX utilities within the OpenOffice.org python&lt;br /&gt;
*[[OoConfig]] - OoConfig is a Python extension that seeks to provide a configuration editing facility similar to Mozilla&amp;#039;s about:config&lt;br /&gt;
*[[Bibliographic/Hints and Tips/OOoRISExport.py|OOoRISExport.py]] - Exports the bibliographic database in RIS format. Also [http://bibliographic.openoffice.org/files/documents/124/3078/RISImport.py RISImport.py]&lt;br /&gt;
*[[Zotero_Plugin |Zotero Plugin]] - The Zotero plugin provides citation and bibliographic table insertion and editing functions for Writer documents.&lt;br /&gt;
*[http://oosheet.hacklab.com.br/ OOSheet] - High level python library to develop spreadsheet macros without the complexity of Uno. Focuses on spreadsheets, but may be useful for other documents.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hacking Around ===&lt;br /&gt;
*[[UNO component packaging]] - How to create UNO components as well as the basics of script componentizing&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=38234#38234 Python component to parse XML] - Python is great to parse XML, PyUNO is also excellent when working with XML&lt;br /&gt;
*[[Example of Service in Python]] - Learn how to run Python as a service, this is useful for remote scripting.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=76972#76972 Modify spreadsheet] - Example of storing and retrieving a custom attribute on a spreadsheet cell.&lt;br /&gt;
*A simple [[daemon in Python]] - Learn how to run Python as a daemon&lt;br /&gt;
*[[Loook.py]] - a simple Python tool that searches for text strings in OpenOffice.org.&lt;br /&gt;
*[[odt2txt.py]] - convert ODF to plain text using python (and convert the txt to html).&lt;br /&gt;
&lt;br /&gt;
=== Python rules OpenOffice (by B. Bois) ===&lt;br /&gt;
[[image:python_power_for_OOo.png|Python rules OpenOffice :-)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Uno]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=230875</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=230875"/>
		<updated>2013-09-09T09:48:46Z</updated>

		<summary type="html">&lt;p&gt;Hdu: updated for Apache OpenOffice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Extensions}}&lt;br /&gt;
[[image:Py-uno_128.png|PyUNO Logo]] [[image:Pyuno_logo_a.jpg]] &lt;br /&gt;
&lt;br /&gt;
=== Python and OpenOffice ===&lt;br /&gt;
Apache OpenOffice 4 ships with the Python scripting language, version 2.7. OpenOffice.org 3.1 and above shipped with Python version 2.6.1 and older OpenOffice.org releases shipped with Python version 2.3.4. This Python distribution via OpenOffice comes with the [[Uno]] module, which connects the [[API|UNO API]] to the python scripting language.  To run this version of Python on Linux, you can go directly to the OpenOffice PATH.  And as one would expect with any distribution of Python, OOo-Python can be run from the command line as well.&lt;br /&gt;
&lt;br /&gt;
If you already have a separate Python installation, you can import the uno module (the Python-UNO bridge) to it using [http://forum.openoffice.org/en/forum/viewtopic.php?f=45&amp;amp;t=36370&amp;amp;p=166783 these instructions].&lt;br /&gt;
&lt;br /&gt;
If you already have a different version of Python installed on Windows, you can also access the [[API|UNO API]] using the [http://forum.openoffice.org//en/forum/viewtopic.php?f=45&amp;amp;t=36608&amp;amp;p=167909 COM bridge] instead of the Python bridge. Requires the [http://sourceforge.net/projects/pywin32/ add-on pywin32] module so Python can talk to COM. Note that while the UNO API is uniform, the implementation by the two bridges is slightly different, so the syntax required by each is also sometimes different.&lt;br /&gt;
&lt;br /&gt;
==== Where is the IDE ? ====&lt;br /&gt;
OpenOffice&amp;#039;s IDE doesn&amp;#039;t support Python, so development has to be done from another editor that does.  Any volunteer for a binding is welcomed. Here is a nice [http://pythonconquerstheuniverse.wordpress.com/category/the-python-debugger/ blog post] about using [http://www.vim.org VIM] a common Unix/Linux text editor configured in a way that acts like an IDE. Windows users can use [http://www.vim.org/download.php#pc Gvim] and [http://macvim.org/ MacVim] for OSX users.&lt;br /&gt;
&lt;br /&gt;
==== Tips &amp;amp; Tricks ====&lt;br /&gt;
&lt;br /&gt;
Here is some useful information about using python in OOo.&lt;br /&gt;
&lt;br /&gt;
===== Debug output =====&lt;br /&gt;
&lt;br /&gt;
If you launch a python script, any error will silently break the execution, making your extension hard to debug.  To change this behaviour, one can change the&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;LogLevel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Have a look in &lt;br /&gt;
&amp;#039;&amp;#039;/path/to/ooo/program/&amp;#039;&amp;#039;&amp;#039;pythonscript.py&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
and replace &lt;br /&gt;
&amp;#039;&amp;#039;LogLevel.use = LogLevel.&amp;#039;&amp;#039;&amp;#039;NONE&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
with&lt;br /&gt;
&amp;#039;&amp;#039;LogLevel.use = LogLevel.&amp;#039;&amp;#039;&amp;#039;DEBUG&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
There are also currently-undocumented environment variables that tell the pyUno bridge to log every call.  Set the environment variable&lt;br /&gt;
&amp;#039;&amp;#039;export PYUNO_LOGLEVEL=ARGS&amp;#039;&amp;#039;&lt;br /&gt;
.  The output may be a little hard to read, but helpful nonetheless.&lt;br /&gt;
&lt;br /&gt;
Note that his applies only to Linux.  For Windows, you need some more switches, and the output gets written to files (there is no stdout on windows :-( ).&lt;br /&gt;
&lt;br /&gt;
There are still some error messages that won&amp;#039;t appear in these logs; this will improve in the near future (cws pyunofixes4).  Once the cws is integrated, I will document these switches on the official pyuno site. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Thanks to Joerg Budischewski&amp;#039;&amp;#039;&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
=== Python specific information for Extension creation ===&lt;br /&gt;
To create extensions for python, it is important that you have enough familiarity with the UNO components, as well as with packaging your code for easy distribution through the &amp;#039;&amp;#039;OpenOffice package manager&amp;#039;&amp;#039;.  Please check the tutorials to learn how to component-ize your code, and how to deploy remote scripting through a service implementation.&lt;br /&gt;
&lt;br /&gt;
To learn to run Python on Windows, visit [[Using Python on Windows| this link]] for more detailed information.&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;border: 0px solid rgb(134, 194, 230);&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 35%; padding-right: 15px;&amp;quot; | &amp;lt;div style=&amp;quot;border-style: solid solid none; border-color: rgb(134, 194, 230) rgb(134, 194, 230) -moz-use-text-color; border-width: 1px 1px medium; padding: 5px; font-size: 120%; font-weight: bold; background-color: rgb(203, 222, 250);&amp;quot;&amp;gt;Getting Started&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;border: 1px solid rgb(155, 192, 245); padding: 5px 5px 10px;&amp;quot;&amp;gt;&lt;br /&gt;
*[[Python/Python_Language_Binding|Python Language Binding]]&lt;br /&gt;
*[[Python/Python_Loader|Python Loader]]&lt;br /&gt;
*[[Using Python on Windows]] - New to Python? Learn how to use python on Windows&lt;br /&gt;
*[[Using Python on Linux]] - A must read for an overview on Python and OOo relations&lt;br /&gt;
* [[pyUNO bridge]] - Official page of the PyUNO bridge at the [http://udk.openoffice.org/ UDK site] - ([http://www.fatcow.com/edu/mathtex-be/ &amp;#039;&amp;#039;Belorussian translation&amp;#039;&amp;#039;])&lt;br /&gt;
* [[Python as a macro language]] in OpenOffice.org 2.x - How to use the Python scripting framework&lt;br /&gt;
* [[Python/Transfer_from_Basic_to_Python|Transfer from Basic to Python]]&lt;br /&gt;
* [http://lucasmanual.com/mywiki/OpenOffice PyUNO Manual] Lukasz created a pyUNO manual. &amp;#039;&amp;#039;&amp;#039;new&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[SQLAlquemyPyUNO|SQLAlchemy and PyUNO]] connecting OpenOffice to any database&lt;br /&gt;
* [http://www.linuxjournal.com/content/starting-stopping-and-connecting-openoffice-python Starting/Stopping and connecting using Python] From Linux Journal&lt;br /&gt;
* Introduction on testing pyUNO programs with [[doctests]]&lt;br /&gt;
* Create a [[PythonDialogBox|dialog box]] in PyUNO.&lt;br /&gt;
* [[http://codesnippets.services.openoffice.org/Office/Office.ConnectViaPipe.snip Connect to Openoffice] from PyUNO&lt;br /&gt;
* [[PyUNO samples]] currently shipping with OpenOffice.org and the explanation.&lt;br /&gt;
* Enhanced [http://www.oooforum.org/forum/viewtopic.phtml?p=257496#257496 Capitalized.py] script by &amp;#039;&amp;#039;The gray Cardinal&amp;#039;&amp;#039; at OOoforum.&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 35%; padding-right: 15px;&amp;quot; | &amp;lt;div style=&amp;quot;border-style: solid solid none; border-color: rgb(134, 194, 230) rgb(134, 194, 230) -moz-use-text-color; border-width: 1px 1px medium; padding: 5px; font-size: 120%; font-weight: bold; background-color: rgb(203, 222, 250);&amp;quot;&amp;gt;PYUNO Modules&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;border: 1px solid rgb(155, 192, 245); padding: 5px 5px 10px;&amp;quot;&amp;gt;&lt;br /&gt;
*[[Danny&amp;#039;s Python Modules]] - Collection guide from DannyB&amp;#039;s modules.&lt;br /&gt;
*[[PrinttoWriter.py]] - This makes it easy and convenient to print a bunch of text into a Writer document.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=8456 Developing Calc Functions in Python] - Learn how Python can be used to script your spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=56037#56037 Generating a Spreadsheet through Python] - Automatically generate new spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=9115 Python container components]&lt;br /&gt;
*[[PyUNOServer]] - The PyUNOServer is a script that works as an XML server for OpenOffice.org Calc&lt;br /&gt;
*[[calcParser]] - calcParser is a small parser using the native SAX utilities within the OpenOffice.org python&lt;br /&gt;
*[[OoConfig]] - OoConfig is a Python extension that seeks to provide a configuration editing facility similar to Mozilla&amp;#039;s about:config&lt;br /&gt;
*[[Bibliographic/Hints and Tips/OOoRISExport.py|OOoRISExport.py]] - Exports the bibliographic database in RIS format. Also [http://bibliographic.openoffice.org/files/documents/124/3078/RISImport.py RISImport.py]&lt;br /&gt;
*[[Zotero_Plugin |Zotero Plugin]] - The Zotero plugin provides citation and bibliographic table insertion and editing functions for Writer documents.&lt;br /&gt;
*[http://oosheet.hacklab.com.br/ OOSheet] - High level python library to develop spreadsheet macros without the complexity of Uno. Focuses on spreadsheets, but may be useful for other documents.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hacking Around ===&lt;br /&gt;
*[[UNO component packaging]] - How to create UNO components as well as the basics of script componentizing&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=38234#38234 Python component to parse XML] - Python is great to parse XML, PyUNO is also excellent when working with XML&lt;br /&gt;
*[[Example of Service in Python]] - Learn how to run Python as a service, this is useful for remote scripting.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=76972#76972 Modify spreadsheet] - Example of storing and retrieving a custom attribute on a spreadsheet cell.&lt;br /&gt;
*A simple [[daemon in Python]] - Learn how to run Python as a daemon&lt;br /&gt;
*[[Loook.py]] - a simple Python tool that searches for text strings in OpenOffice.org.&lt;br /&gt;
*[[odt2txt.py]] - convert ODF to plain text using python (and convert the txt to html).&lt;br /&gt;
&lt;br /&gt;
=== Python rules OOo (by B. Bois) ===&lt;br /&gt;
[[image:python_power_for_OOo.png|Python rules OOo :-)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Uno]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=230486</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=230486"/>
		<updated>2013-08-28T07:15:40Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
There are some reasons for test failures, so please [[QA/test_env|prepare your testing machine]] before running test.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/openoffice/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://openoffice.apache.org/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how to run testing against an OpenOffice built by me?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd main&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd ../test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a normal user, how to run testing against an installed OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Firstly compile the project with the command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot; compile&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then start testing with the command &amp;quot;run&amp;quot;. &lt;br /&gt;
e.g. Run all test classes under package bvt (&amp;quot;Build Verification Testing&amp;quot;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.app/Contents&amp;quot; -tp bvt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run the given test classes&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.app/Contents&amp;quot; -tc bvt.gui.BasicFunctionTest&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
On Linux use e.g. -Dopenoffice.home=&amp;quot;/opt/openoffice4/program&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output***&amp;quot;. Open &amp;quot;test/testspace/output/result.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special stuff in the output directory.&lt;br /&gt;
 result.xml: Test result in HTML. &lt;br /&gt;
 result.html: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=230481</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=230481"/>
		<updated>2013-08-27T08:03:16Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Run testing */ OpenOffice.org.app has been renamed to OpenOffice.app&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
There are some reasons for test failures, so please [[QA/test_env|prepare your testing machine]] before running test.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/openoffice/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://openoffice.apache.org/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how to run testing against an OpenOffice built by me?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd main&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd ../test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a normal user, how to run testing against an installed OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Firstly compile the project with the command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot; compile&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then start testing with the command &amp;quot;run&amp;quot;. &lt;br /&gt;
e.g. Run all test classes under package bvt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.app/Contents&amp;quot; -tp bvt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run the given test classes&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.app/Contents&amp;quot; -tc bvt.gui.BasicFunctionTest&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output***&amp;quot;. Open &amp;quot;test/testspace/output/result.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special stuff in the output directory.&lt;br /&gt;
 result.xml: Test result in HTML. &lt;br /&gt;
 result.html: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide&amp;diff=230342</id>
		<title>Documentation/Building Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide&amp;diff=230342"/>
		<updated>2013-08-21T12:22:41Z</updated>

		<summary type="html">&lt;p&gt;Hdu: move the pointer to the new page topmost to make this important detail show up in searches instead of &amp;quot;this page is obsolete&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
}}&lt;br /&gt;
{{DISPLAYTITLE:OpenOffice.org Building Guide}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Revised Building Guide: for &amp;#039;&amp;#039;&amp;#039;Apache OpenOffice&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please Note:  An updated version of the building guide, for Apache OpenOffice, can be found [[Documentation/Building_Guide_AOO|here]].&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Also see additional building information for the release you are building on the &lt;br /&gt;
[https://cwiki.apache.org/confluence/display/OOOUSERS/Development+Snapshot+Builds Developer_Snapshot_Builds]&lt;br /&gt;
page on the planning wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Legacy Building Information ==&lt;br /&gt;
&lt;br /&gt;
{{Historical}}&lt;br /&gt;
&lt;br /&gt;
{{Download_Collection|MediaWiki:Books/OpenOffice.org_Building_Guide}} &lt;br /&gt;
&lt;br /&gt;
=== Preface ===&lt;br /&gt;
Thank you for choosing to start building OpenOffice.org. It is a very interesting procedure and teaches you a lot about the source code and its structure.&lt;br /&gt;
&lt;br /&gt;
This guide is the great first step if you are interested in modifying the source code, applying patches and fixes, or developing new features.&lt;br /&gt;
&lt;br /&gt;
We hope that this document provides you with the information you need.&lt;br /&gt;
&lt;br /&gt;
=== Getting help ===&lt;br /&gt;
If you experience problems on the way, please help us develop this guide!&lt;br /&gt;
&lt;br /&gt;
# First subscribe to our dev mailing list by sending an empty email to dev-subscribe@openoffice.apache.org.&lt;br /&gt;
# Wait for a reply, respond to this email with an empty response.&lt;br /&gt;
# You get a WELCOME email saying you are now a subscriber.&lt;br /&gt;
# Send us a note at dev@openoffice.apache.org with your questions and problems.&lt;br /&gt;
# To unsubscribe from the list, send an empty email to dev-unsubscribe@openoffice.apache.org, wait for a reply, respond to this email, you get a GOODBYE email. You have now left the mailing list.&lt;br /&gt;
&lt;br /&gt;
{{PDL1}}&lt;br /&gt;
[[Category:Education]][[Category:Development]][[Category:Porting]]&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229411</id>
		<title>Source Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229411"/>
		<updated>2013-07-29T13:31:13Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Branches */ remove temporatbranch that is integrated in latest release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [http://openoffice.apache.org/source.html] for general information about the Apache OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
==Trunk==&lt;br /&gt;
&lt;br /&gt;
The Apache OpenOffice source code that is currently under development is called trunk.&lt;br /&gt;
&lt;br /&gt;
You can check out the trunk via SVN&lt;br /&gt;
    svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
or git&lt;br /&gt;
    git svn clone https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
&lt;br /&gt;
Besides trunk there is a number of branches for development of features that may or may not be integrated into the next release:&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/branches/&amp;amp;lt;branch name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! branch name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/branches/gbuild/ gbuild]&lt;br /&gt;
|Integration of a set of older child work spaces:&lt;br /&gt;
* ause131&lt;br /&gt;
* ause130&lt;br /&gt;
* writerfilter10&lt;br /&gt;
* gnumake4&lt;br /&gt;
* sd2gbuild&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/AOO400/ AOO400] &lt;br /&gt;
| The 4.0.x branch, would be used if we ever need a 4.0.x&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/alg/aw080 alg/aw080]&lt;br /&gt;
| Long running overhaul of the drawing layer.&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/l10n40/ l10n40]&lt;br /&gt;
| Branch to test new l10n tools (incl. makefile changes), will be merged back before next release&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/ rejuvenate01]&lt;br /&gt;
| Refresh the platform support (e.g. for Clang, compatibility with C++11, System STL, XCode 4, OSX 64bit, OSX 10.9)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
Each tag marks an important SVN revision.  Otherwise tags are similar to branches.&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/tags/&amp;amp;lt;tag name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! tag name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO340/ AOO340]&lt;br /&gt;
|Release of Apache OpenOffice 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO341/ AOO341]&lt;br /&gt;
|Release of Apache OpenOffice 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO400/ AOO400]&lt;br /&gt;
|Release of Apache OpenOffice 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/SNAPSHOT SNAPSHOT]&lt;br /&gt;
|The latest snapshot. Changing.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229410</id>
		<title>Source Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229410"/>
		<updated>2013-07-29T13:30:17Z</updated>

		<summary type="html">&lt;p&gt;Hdu: AOO 4.0.0 tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [http://openoffice.apache.org/source.html] for general information about the Apache OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
==Trunk==&lt;br /&gt;
&lt;br /&gt;
The Apache OpenOffice source code that is currently under development is called trunk.&lt;br /&gt;
&lt;br /&gt;
You can check out the trunk via SVN&lt;br /&gt;
    svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
or git&lt;br /&gt;
    git svn clone https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
&lt;br /&gt;
Besides trunk there is a number of branches for development of features that may or may not be integrated into the next release:&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/branches/&amp;amp;lt;branch name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! branch name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/branches/gbuild/ gbuild]&lt;br /&gt;
|Integration of a set of older child work spaces:&lt;br /&gt;
* ause131&lt;br /&gt;
* ause130&lt;br /&gt;
* writerfilter10&lt;br /&gt;
* gnumake4&lt;br /&gt;
* sd2gbuild&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/AOO400/ AOO400] &lt;br /&gt;
| The 4.0.x branch, would be used if we ever need a 4.0.x&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/alg/aw080 alg/aw080]&lt;br /&gt;
| Long running overhaul of the drawing layer.&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/writer001/ writer001]&lt;br /&gt;
| Already integrated into trunk.&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/l10n40/ l10n40]&lt;br /&gt;
| Branch to test new l10n tools (incl. makefile changes), will be merged back before next release&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/ rejuvenate01]&lt;br /&gt;
| Refresh the platform support (e.g. for Clang, compatibility with C++11, System STL, XCode 4, OSX 64bit, OSX 10.9)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
Each tag marks an important SVN revision.  Otherwise tags are similar to branches.&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/tags/&amp;amp;lt;tag name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! tag name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO340/ AOO340]&lt;br /&gt;
|Release of Apache OpenOffice 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO341/ AOO341]&lt;br /&gt;
|Release of Apache OpenOffice 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO400/ AOO400]&lt;br /&gt;
|Release of Apache OpenOffice 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/SNAPSHOT SNAPSHOT]&lt;br /&gt;
|The latest snapshot. Changing.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229409</id>
		<title>Source Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229409"/>
		<updated>2013-07-29T13:28:59Z</updated>

		<summary type="html">&lt;p&gt;Hdu: mention rejuvenate01 branch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [http://openoffice.apache.org/source.html] for general information about the Apache OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
==Trunk==&lt;br /&gt;
&lt;br /&gt;
The Apache OpenOffice source code that is currently under development is called trunk.&lt;br /&gt;
&lt;br /&gt;
You can check out the trunk via SVN&lt;br /&gt;
    svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
or git&lt;br /&gt;
    git svn clone https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
&lt;br /&gt;
Besides trunk there is a number of branches for development of features that may or may not be integrated into the next release:&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/branches/&amp;amp;lt;branch name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! branch name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/branches/gbuild/ gbuild]&lt;br /&gt;
|Integration of a set of older child work spaces:&lt;br /&gt;
* ause131&lt;br /&gt;
* ause130&lt;br /&gt;
* writerfilter10&lt;br /&gt;
* gnumake4&lt;br /&gt;
* sd2gbuild&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/AOO400/ AOO400] &lt;br /&gt;
| The 4.0.x branch, would be used if we ever need a 4.0.x&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/alg/aw080 alg/aw080]&lt;br /&gt;
| Long running overhaul of the drawing layer.&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/writer001/ writer001]&lt;br /&gt;
| Already integrated into trunk.&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/l10n40/ l10n40]&lt;br /&gt;
| Branch to test new l10n tools (incl. makefile changes), will be merged back before next release&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/ rejuvenate01]&lt;br /&gt;
| Refresh the platform support (e.g. for Clang, compatibility with C++11, System STL, XCode 4, OSX 64bit, OSX 10.9)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
Each tag marks an important SVN revision.  Otherwise tags are similar to branches.&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/tags/&amp;amp;lt;tag name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! tag name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO340/ AOO340]&lt;br /&gt;
|Release of Apache OpenOffice 3.4&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO341/ AOO341]&lt;br /&gt;
|Release of Apache OpenOffice 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/SNAPSHOT SNAPSHOT]&lt;br /&gt;
|The latest snapshot. Changing.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229408</id>
		<title>Source Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_Code&amp;diff=229408"/>
		<updated>2013-07-29T13:25:24Z</updated>

		<summary type="html">&lt;p&gt;Hdu: updated for AOO400&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [http://openoffice.apache.org/source.html] for general information about the Apache OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
==Trunk==&lt;br /&gt;
&lt;br /&gt;
The Apache OpenOffice source code that is currently under development is called trunk.&lt;br /&gt;
&lt;br /&gt;
You can check out the trunk via SVN&lt;br /&gt;
    svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
or git&lt;br /&gt;
    git svn clone https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
&lt;br /&gt;
Besides trunk there is a number of branches for development of features that may or may not be integrated into the next release:&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/branches/&amp;amp;lt;branch name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! branch name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/branches/gbuild/ gbuild]&lt;br /&gt;
|Integration of a set of older child work spaces:&lt;br /&gt;
* ause131&lt;br /&gt;
* ause130&lt;br /&gt;
* writerfilter10&lt;br /&gt;
* gnumake4&lt;br /&gt;
* sd2gbuild&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/AOO400/ AOO400] &lt;br /&gt;
| The 4.0.x branch, would be used if we ever need a 4.0.x&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/alg/aw080 alg/aw080]&lt;br /&gt;
| Long running overhaul of the drawing layer.&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/writer001/ writer001]&lt;br /&gt;
| Already integrated into trunk.&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.apache.org/viewvc/openoffice/branches/l10n40/ l10n40]&lt;br /&gt;
| Branch to test new l10n tools (incl. makefile changes), will be merged back before next release&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
Each tag marks an important SVN revision.  Otherwise tags are similar to branches.&lt;br /&gt;
&lt;br /&gt;
URL is &amp;lt;code&amp;gt;https&amp;amp;#58;//svn.apache.org/repos/asf/openoffice/tags/&amp;amp;lt;tag name&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! tag name&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO340/ AOO340]&lt;br /&gt;
|Release of Apache OpenOffice 3.4&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/AOO341/ AOO341]&lt;br /&gt;
|Release of Apache OpenOffice 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
|[http://svn.apache.org/viewvc/openoffice/tags/SNAPSHOT SNAPSHOT]&lt;br /&gt;
|The latest snapshot. Changing.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Platform_Evolution&amp;diff=229274</id>
		<title>Platform Evolution</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Platform_Evolution&amp;diff=229274"/>
		<updated>2013-07-17T07:43:48Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Libraries */ COIN description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenOffice has many dependencies on external technologies. If these external dependencies change then OpenOffice needs to adapt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Operating Systems ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Microsoft_Windows Windows]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/OS_X Mac OSX]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Linux Linux] / [http://en.wikipedia.org/wiki/Freebsd FreeBSD]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Solaris_%28operating_system%29 Solaris]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Os/2 OS/2]&lt;br /&gt;
&lt;br /&gt;
== Programming Languages ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/C%2B%2B C++]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Java Java]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Perl Perl]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Python_(programming_language) Python]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Javascript JavaScript]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Visual_basic Visual Basic]&lt;br /&gt;
&lt;br /&gt;
== Libraries ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Standard_Template_Library standard template library]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Boost_%28C%2B%2B_libraries%29 boost]&lt;br /&gt;
* libraries for supporting security features&lt;br /&gt;
** [https://developer.mozilla.org/en-US/docs/NSS nss] (Network Security Services)&lt;br /&gt;
** [http://www.openssl.org openssl] (Secure Socket and Transport Layer)&lt;br /&gt;
** [http://www.aleksey.com/xmlsec/ xmlsec] (XML Security Library)&lt;br /&gt;
* libraries for supporting internationalization&lt;br /&gt;
** [http://www.icu-project.org ICU] (International Components for Unicode)&lt;br /&gt;
** [http://hunspell.sourceforge.net hunspell] (Spell Checker)&lt;br /&gt;
** hyphen (Hyphenation)&lt;br /&gt;
** mythes (Thesaurus)&lt;br /&gt;
** [http://graphite.sil.org graphite] (Rendering for Complex Scripts)&lt;br /&gt;
* graphics libraries&lt;br /&gt;
** [http://www.cairographics.org cairo]&lt;br /&gt;
** [http://hci.iwr.uni-heidelberg.de/vigra vigra] (Vision with Generic Algorithms) &lt;br /&gt;
* libraries for handling multimedia file formats&lt;br /&gt;
** [http://libjpeg.sourceforge.net libjpeg]&lt;br /&gt;
** [http://www.libpng.org/pub/png/libpng.html libpng]&lt;br /&gt;
** quicktime&lt;br /&gt;
** corevideo&lt;br /&gt;
** avmedia&lt;br /&gt;
* libraries for handling external document formats&lt;br /&gt;
** XML (Extensible Markup Language) processing&lt;br /&gt;
*** [http://www.xmlsoft.org libxml2] (XML Parser and Toolkit) &lt;br /&gt;
*** [http://www.xmlsoft.org/XSLT libxslt] (XSL Transformation)&lt;br /&gt;
*** [http://saxon.sourceforge.net saxon] (XSLT and XQuery Processor)&lt;br /&gt;
*** [http://expat.sourceforge.net expat] (XML Parser Library)&lt;br /&gt;
*** [http://xsltml.sourceforge.net xsltml] (XSLT Math Library)&lt;br /&gt;
** RDF (Resource Description Framework) support&lt;br /&gt;
*** [http://librdf.org redland] (General RDF support)&lt;br /&gt;
*** [http://librdf.org/raptor raptor] (RDF Parser Toolkit)&lt;br /&gt;
*** [http://librdf.org/rasqal rasqal] (RDF Query Processor)&lt;br /&gt;
* libraries for connectivity&lt;br /&gt;
** [http://curl.haxx.se/libcurl/ libcurl] (Multi-Protocol File Transfers)&lt;br /&gt;
** [http://code.google.com/p/serf/ serf] (Asynchronous HTTP Client) &lt;br /&gt;
** [http://hsqldb.org hsqldb] (HyperSQL Java DataBase)&lt;br /&gt;
** [http://www.seamonkey-project.org seamonkey] (for Address Book support) &lt;br /&gt;
* libraries for supporting different extension programming languages&lt;br /&gt;
** [http://www.python.org python] (Python Language)&lt;br /&gt;
** [https://developer.mozilla.org/en-US/docs/Rhino rhino] (for JavaScript)&lt;br /&gt;
** [http://www.java.org java] (Java Language)&lt;br /&gt;
** [http://tomcat.apache.org tomcat] (Java Application Server)&lt;br /&gt;
** [http://www.beanshell.org beanshell] (Java-like Scripting Language)&lt;br /&gt;
* other libraries&lt;br /&gt;
** [http://www.zlib.net zlib] (Compression Library)&lt;br /&gt;
** [https://projects.coin-or.org/CoinMP coinmp] (Common Optimization Interface: Operations Research Solver)&lt;br /&gt;
** [http://lucene.apache.org lucene] (Java-based indexing and search technology)&lt;br /&gt;
** [http://apr.apache.org apr/apr-util] (Apache Portable Runtime)&lt;br /&gt;
** [http://code.google.com/p/ucpp/ ucpp] (Source Preprocessor)&lt;br /&gt;
** [http://creadur.apache.org/rat/ Creadur] (Release Audit Tool)&lt;br /&gt;
&lt;br /&gt;
== Standards ==&lt;br /&gt;
* the [http://www.opendocumentformat.org/ OpenDocument] standard&lt;br /&gt;
* the [http://www.w3.org/XML/ XML] standard&lt;br /&gt;
* the [https://en.wikipedia.org/wiki/HTML#Current_variations HTML] standards&lt;br /&gt;
* Microsoft binary document formats&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Office_Open_XML Microsoft XML] document formats&lt;br /&gt;
* [http://www.unicode.org Unicode]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Opentype OpenType]&lt;br /&gt;
* Security standards&lt;br /&gt;
* [http://www.w3.org/TR/SVG Scalable Vector Graphics]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/SQL Structured Query Language]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/PostScript PostScript] language&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Pdf PDF] format&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JPEG JPEG] graphics&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Portable_Network_Graphics PNG] graphics&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Gif GIF] graphics&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Platform_Evolution&amp;diff=229053</id>
		<title>Platform Evolution</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Platform_Evolution&amp;diff=229053"/>
		<updated>2013-07-10T08:43:40Z</updated>

		<summary type="html">&lt;p&gt;Hdu: /* Libraries */ ucpp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenOffice has many dependencies on external technologies. If these external dependencies change then OpenOffice needs to adapt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Operating Systems ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Microsoft_Windows Windows]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/OS_X Mac OSX]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Linux Linux] / [http://en.wikipedia.org/wiki/Freebsd FreeBSD]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Solaris_%28operating_system%29 Solaris]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Os/2 OS/2]&lt;br /&gt;
&lt;br /&gt;
== Programming Languages ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/C%2B%2B C++]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Java Java]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Perl Perl]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Python_(programming_language) Python]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Javascript JavaScript]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Visual_basic Visual Basic]&lt;br /&gt;
&lt;br /&gt;
== Libraries ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Standard_Template_Library standard template library]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Boost_%28C%2B%2B_libraries%29 boost]&lt;br /&gt;
* libraries for supporting security features&lt;br /&gt;
** [https://developer.mozilla.org/en-US/docs/NSS nss] (Network Security Services)&lt;br /&gt;
** [http://www.openssl.org openssl] (Secure Socket and Transport Layer)&lt;br /&gt;
** [http://www.aleksey.com/xmlsec/ xmlsec] (XML Security Library)&lt;br /&gt;
* libraries for supporting internationalization&lt;br /&gt;
** [http://www.icu-project.org ICU] (International Components for Unicode)&lt;br /&gt;
** [http://hunspell.sourceforge.net hunspell] (Spell Checker)&lt;br /&gt;
** hyphen (Hyphenation)&lt;br /&gt;
** mythes (Thesaurus)&lt;br /&gt;
** [http://graphite.sil.org graphite] (Rendering for Complex Scripts)&lt;br /&gt;
* graphics libraries&lt;br /&gt;
** [http://www.cairographics.org cairo]&lt;br /&gt;
** [http://hci.iwr.uni-heidelberg.de/vigra vigra] (Vision with Generic Algorithms) &lt;br /&gt;
* libraries for handling multimedia file formats&lt;br /&gt;
** [http://libjpeg.sourceforge.net libjpeg]&lt;br /&gt;
** [http://www.libpng.org/pub/png/libpng.html libpng]&lt;br /&gt;
** quicktime&lt;br /&gt;
** corevideo&lt;br /&gt;
** avmedia&lt;br /&gt;
* libraries for handling external document formats&lt;br /&gt;
** XML (Extensible Markup Language) processing&lt;br /&gt;
*** [http://www.xmlsoft.org libxml2] (XML Parser and Toolkit) &lt;br /&gt;
*** [http://www.xmlsoft.org/XSLT libxslt] (XSL Transformation)&lt;br /&gt;
*** [http://saxon.sourceforge.net saxon] (XSLT and XQuery Processor)&lt;br /&gt;
*** [http://expat.sourceforge.net expat] (XML Parser Library)&lt;br /&gt;
*** [http://xsltml.sourceforge.net xsltml] (XSLT Math Library)&lt;br /&gt;
** RDF (Resource Description Framework) support&lt;br /&gt;
*** [http://librdf.org redland] (General RDF support)&lt;br /&gt;
*** [http://librdf.org/raptor raptor] (RDF Parser Toolkit)&lt;br /&gt;
*** [http://librdf.org/rasqal rasqal] (RDF Query Processor)&lt;br /&gt;
* libraries for connectivity&lt;br /&gt;
** [http://curl.haxx.se/libcurl/ libcurl] (Multi-Protocol File Transfers)&lt;br /&gt;
** [http://code.google.com/p/serf/ serf] (Asynchronous HTTP Client) &lt;br /&gt;
** [http://hsqldb.org hsqldb] (HyperSQL Java DataBase)&lt;br /&gt;
** [http://www.seamonkey-project.org seamonkey] (for Address Book support) &lt;br /&gt;
* libraries for supporting different extension programming languages&lt;br /&gt;
** [http://www.python.org python] (Python Language)&lt;br /&gt;
** [https://developer.mozilla.org/en-US/docs/Rhino rhino] (for JavaScript)&lt;br /&gt;
** [http://www.java.org java] (Java Language)&lt;br /&gt;
** [http://tomcat.apache.org tomcat] (Java Application Server)&lt;br /&gt;
** [http://www.beanshell.org beanshell] (Java-like Scripting Language)&lt;br /&gt;
* other libraries&lt;br /&gt;
** [http://www.zlib.net zlib] (Compression Library)&lt;br /&gt;
** [https://projects.coin-or.org/CoinMP coinmp] (Operations Research Solver)&lt;br /&gt;
** [http://lucene.apache.org lucene] (Java-based indexing and search technology)&lt;br /&gt;
** [http://apr.apache.org apr/apr-util] (Apache Portable Runtime)&lt;br /&gt;
** [http://code.google.com/p/ucpp/ ucpp] (Source Preprocessor)&lt;br /&gt;
** [http://creadur.apache.org/rat/ Creadur] (Release Audit Tool)&lt;br /&gt;
&lt;br /&gt;
== Standards ==&lt;br /&gt;
* the [http://www.opendocumentformat.org/ OpenDocument] standard&lt;br /&gt;
* the [http://www.w3.org/XML/ XML] standard&lt;br /&gt;
* the [https://en.wikipedia.org/wiki/HTML#Current_variations HTML] standards&lt;br /&gt;
* Microsoft binary document formats&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Office_Open_XML Microsoft XML] document formats&lt;br /&gt;
* [http://www.unicode.org Unicode]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Opentype OpenType]&lt;br /&gt;
* Security standards&lt;br /&gt;
* [http://www.w3.org/TR/SVG Scalable Vector Graphics]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/SQL Structured Query Language]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/PostScript PostScript] language&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Pdf PDF] format&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JPEG JPEG] graphics&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Portable_Network_Graphics PNG] graphics&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Gif GIF] graphics&lt;/div&gt;</summary>
		<author><name>Hdu</name></author>
	</entry>
</feed>