Contributed by deanna on from the we-were-slacking dept.
The road to native OpenOffice.Org support on OpenBSD was tough. After a half year of hard work we managed to get an openoffice port that runs on both i386 and amd64 with java support and with 11 language packages built by default.In the begining of this year I had to use openoffice for some school work. Since we didn't have a port, I had to use the linux binary, which is just stupid. Why not have native binaries? Peter Valchev started to work on an older version of openoffice back in 2005 but then the effort got stuck. I asked him if he still had that old port so that I could use it rather than create a new one. After waiting a couple of hours he sent a reply with the port attached.
I must admit that we were lucky in that openoffice was working fine on FreeBSD. So in the beginning it was easy to grep for FREEBSD in the source tree and see what changes were needed to make it work there. We extended many many ifdefs with OPENBSD, and in some places where OpenBSD is different, we made our own modifications. Initially we did builds without java because we thought that would be simpler, but we found that without it, many features were missing, and others were broken badly; for example, we weren't even able to save documents in OpenDocument format. After Kurt Miller added java support, all these problems went away. Thank god we have a java expert ;-).
In the meantime I asked for support from the community because I needed to get an amd64 machine to be able to port openoffice to that architecture too. Many people donated and in two weeks I had a fast amd64 ready for building. I would like to say thanks to the community again. The amd64 port posed a few problems, but they were all solved by either fixing gcc or adding new ports.
Openoffice includes many bundled packages like boost, libwpd others. We hate that kind of thing; we like to have our ports depend on other things in the tree instead of internal versions. The bundled boost was happy on i386 but not on amd64. Even the openoffice team said it was badly broken, so the only way of fixing the problem was to create a port of a newer boost release. I was lucky again because Deanna Phillips created a port which was almost usable. kurt@, wilfried@ and I started to fix that port and finally it got imported. The funny part is that wilfried@ found a gcc bug while running the regress tests of boost. This was the same bug that affected openoffice and even the gcc developers were not able to tell us how they fixed it in gcc 4.2. Funny isn't it? And in the end we got openoffice running on amd64.
I was tired but uwe@ asked if there will be any i18n support so I told him to wait a couple weeks. Eventually I started to do some experimental builds on a fast i386 provided by Johan M:son Lindman with all the languages supported by openoffice -- that is more than 50 languages. After almost 30 hours of building it was still running .... what the #!&@? I checked how much disk space was used .. ~35G and the build was still running. At that point, I started to hit ctrl+c like a raving lunatic. I told the other developers and we decied to include only 11 languages by default. If anyone needs more, they can tell us. I restarted the build and after it finished the needed disk space was around 25G. That's still too much; some package builders won't be able to build it.
In openoffice there are projects and each project has its object directory. After a project is built the files from the object directory get copied to a directory called solver, and the old object directory isn't needed anymore. Kurt figured out that there is an option in the script that removes the unneeded object dirs, saving disk space. After adding this to a cleanobj flavor to the port we managed to reduce the needed disk space to ~16G. The only problem with using this flavor is that if the build fails, you have to rebuild everything from the begining.
Currently we are working on removing the need of tcsh to build openoffice. I am also working together with the OpenOffice.Org team to put our patches into their repository. Currently we have 134 patches and more than 30 are waiting to be commited to the OpenOffice.Org CVS repository. Fortunately they are cooperative and helpful and they actually want to have our modifications. I hope that in the next snapshot packages all of the i18n packages will be available too. Yes you can still build it yourself but we have package tools that are working like a charm and every user should use our binary packages instead of wasting time on building them. I also hope that there will be support for other architectures like macppc in the near future but that's going to need more work, like porting gcj.
I would like to say thank you to everyone who helped to make this monster work by testing, sending patches or by providing hardware to build on.
(Comments are closed)