ApacheCon Europe 2012

Rhein-Neckar-Arena, Sinsheim, Germany

5–8 November 2012

Balancing packaging and IP clearance in AOO FreeBSD's port

Pedro Giffuni

Audience level:

Wednesday noon–12:45 p.m. in Level 1 Left


Packaging concerns can have a big influence on the way a project evolves. In the case of Apache OpenOffice we had to deal with many dependencies and related licensing issues specific to a new Apache Project. Of course having committers working on both projects helped so this talk will cover the story behind making the Apache OpenOffice port for FreeBSD "special".


Balancing packaging and IP clearance in AOO FreeBSD's port

FreeBSD is an Operating System based on the software distribution from the University of Berkeley that was frequently distributed to SYSV UNIX licensees. The project has evolved in the last decades to provide the default Operating System solution for the most reliable Internet hosting services and important companies and organizations including the Apache Software Foundation.

OpenOffice, on the other hand, is probably the most popular freely available desktop suite: a project that is big and complex and has many dependencies, and also a project that people have come to depend on. An OpenOffice port is must for any Operating System that wants to have a presence in the desktop market.

Since the start of OpenOffice.org as an open source project there has been a FreeBSD port, the result of the brave efforts of the BSD community. This effort, however was never fully integrated by SUN due to lack of interest. Furthermore, the way the project evolved it was necessary to build specialized version of generic utilities like python, BerkeleyDB, libxslt, Apache Tomcat, Apache Lucene and even GNU fileutils and mozilla.

The move of OpenOffice to an Apache incubation project brought drastic changes: on one hand the FreeBSD port was integrated in less than two weeks, on the other hand many utilities like neon or GNU getext were classified under Category-X and had to be removed and on the other hand the Category-B dependencies also required special handling. Along with the changes in the codebase, the FreeBSD port evolved to use more external dependencies and also interestingly the project evolved to share components with other office suites that have similar dependencies.

Finally, the process of making an optimized port of Apache OpenOffice for FreeBSD is still not over: an ongoing project is to sync back the enhancements from the FreeBSD port into the OpenOffice codebase: FreeBSD uses optimized version of all the dependencies and many of these optimizations also improve the code on other platforms and save us from having to look for workarounds when either of the codebases evolve.

Temptative Outline:

  • FreeBSD and OpenOffice.org: some history.
  • FreeBSD's ports tree: operation and evolution.
  • Specifics of the FreeBSD OpenOffice port.
  • Dependencies and Packaging concerns.
  • Getting rid of GNU fileutils, bash, GNU tar and other GNUisms.
  • Other Apache projects: Tomcat, Lucene, Commons, APR.
  • Future perspectives: clang and libc++