Since OpenOffice.org is free and open source application, there are many variations. The most popular edition, the one available from www.openoffice.org, may be called the original, vanilla, mainstream, upstream, or Sun version. Another popular cultivar is ooo-build. Ubuntu, SUSE, OxygenOffice, and others use ooo-build to offer unique features and fixes not found upstream. Technically, ooo-build is a set of patches against upstream and a set of related tools. Upstream has not accepted these patches for various reasons including maturity and licensing.
A few of the nice features in ooo-build include:
- Microsoft Office 2007 file format support (.docx, .xlsx, etc.)
- Microsoft Works file format support (.wps)
- Performance improvements
- Calc linear equation solver
While I generally use and recommend the upstream edition because it stable and easy to install on various systems, I wanted to try some cutting-edge features in ooo-build. There were no binary builds available with these features, so I built ooo-build src680_m241 on my Fedora 7 x86 32-bit system.
About building OpenOffice.org
Building OpenOffice.org is not a simple process. It may be the largest, most complex program on a Linux system. OpenOffice.org has numerous dependencies and more SLOC (source lines of code) than the Linux kernel. There are instructions on the OpenOffice.org wiki, but they were lacking certain bits of information pertinent to Fedora 7. Fedora ships its own, unique variety of OpenOffice.org, so it seems more common to build ooo-build on Ubuntu or SUSE than on Fedora. In term, there is less support for building ooo-build on Fedora.
You must have a proper build environment. First, you'll need about 5GB of disk space. Then, you must install the required dependency packages. The exact packages required will differ according to the ooo-build version and build options. Here is what I used:
yum -y install mono-devel perl-Archive-Zip ant bison \ flex pam-devel cups-devel gperf libxslt-devel \ openldap-devel firefox-devel xorg-x11-devel \ gstreamer-devel gstreamer-plugins-base-devel \ db4-devel unixODBC-devel xml-commons-jaxp-1.3-apis \ xalan-j2 boost-devel unixODBC-devel qt-devel \ subversion autoconf automake gtk2-devel gcc-c++ \ gnome-vfs2-devel rpm-build expat-devel \ python-devel curl-devel
If you miss a package, then the build will fail with with a message like this:
checking sqlext.h usability... no checking sqlext.h presence... no checking for sqlext.h... no configure: error: odbc not found. install odbc
The above message indicates unixODBC-devel is required. When you find an error like this, either install the required package or disable the need for it (more on how to do that soon).
Checking out ooo-build
After installing those packages, you must checkout ooo-build from SVN. Run this command to get the very latest version:
$ svn co svn://svn.gnome.org/svn/ooo-build/trunk ooo-build
Then, you must configure the build. Here you may choose which build-time options to enable. For example, I disabled mono because the build failed because of mono and I do not want mono anyway.
$ cd ooo-build $ ./autogen.sh -with-distro=SUSE \ --with-jdk-home=/usr/lib/jvm/java-1.5.0-gcj \ --with-ant-home=/usr/share/ant \ --with-system-mozilla=firefox \ --disable-Xaw \ --disable-kde \ --disable-mono \ --without-system-python \ --disable-neon
As mentioned before, if the configuration process may fail. If it does, install the required packages or disable some options.
Since ooo-build is a wrapper, use this command to download the actual OpenOffice.org source and the source of necessary third-party packages.
Simply run this command:
$ time make
Once I had everything setup right, this part took over 4 hours. In case yours fails, you should check on it more often than that. It is most likely to fail near the beginning when it checks for missing packages.
I just wanted to quickly create an executable copy for myself, so I installed locally using this command:
$ bin/ooinstall ~/tmp/ooo-built
I didn't install the desktop integration (the shortcuts), so I started with the command line:
Getting prebuilt ooo-build binaries
If if you want someone else to do this work for you, here is where to get ooo-build binaries:
- Your OpenOffice.org (a.k.a. Go OO)
- OxygenOffice Professional (how to install on Fedora 7 and other Linux systems)
- OpenOffice.org by Ubuntu
- OpenOffice.org by SUSE
I am not sure, but these distributions may be based on ooo-build
- OpenOffice.org by Mandriva
- OpenOffice.org by Debian
- OpenOffice.org by Frugalware
For general use, I still recommend the upstream version (which may not be the version shipped with your Linux distribution), but you may require a feature in build-ooo or you may be interested in developing it.