OpenOffice 4.1 build persistently fails on my FreeBSD-10-stable/AMD64

Pedro Giffuni pfg at freebsd.org
Sun Aug 24 02:28:04 UTC 2014


Il giorno 23/ago/2014, alle ore 20:32, Don Lewis <truckman at FreeBSD.org> ha scritto:

> On 23 Aug, Pedro Giffuni wrote:
>> 
>> On 08/23/14 13:51, Don Lewis wrote:
>>> On 22 Aug, Pedro Giffuni wrote:
>>>> FWIW,
>>>> 
>>>> AOO 4.1 is known to have bugs and AOO 4.1.1 will be released really soon to address them.
>>> The patch in PR 192545 unbreaks the AOO 4.1.0 build on FreeBSD 10 and
>>> 11: <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192545>
>>> 
>>> The patch in PR 192557 upgrades openoffice-devel to 4.1.1-RC3:
>>> <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192557>
>>> 
>> 
>> The patch in PR 181044 fixes Boost so that it can be used as
>> an external dependency for OpenOffice:
>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=181044
> 
> Still no joy  B-(
> 
> When I was first working on 4.1.0, I ran into the #include_next problem
> and tried to work around it by adding -DBOOST_TR1_DISABLE_INCLUDE_NEXT
> to CFLAGS.  The errors still occurred, but with different message text.
> 
> With this patch applied, I see the same thing as in my earlier
> experiments:
> 
> In file included from /usr/local/include/boost/tr1/tr1/vector:16:0,
>                 from /wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.1.1/main/solver/411/unxfbsdx.pro/inc/stl/vector:31,
>                 from /wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.1.1/main/xml2cmp/source/finder/dependy.hxx:28,
>                 from /wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.1.1/main/xml2cmp/source/finder/dependy.cxx:25:
> /usr/local/include/boost/tr1/detail/config_all.hpp:163:41: fatal error: ../4.7/utility: No such file or directory
> compilation terminated.

Ugh… this looks familiar :(

The problem is really messy: the original OpenOffice was developed in the dark ages of C++ libraries and used STLport as it’s STL implementation. STLport doesn’t work with modern compilers (like in MacOSX) so Boost is very handy because it has TR1 implementation which can be very useful to complement older versions of libstdc++. With a good native STL library, AOO makes very little use, if any, of boost.

In order to be less disruptive, AOO has some wrappers for the STL libraries in main/stlport/systemstl and for some reason this works fine on for linux, Windows and MacOSX but it always gets those wrong on FreeBSD.

AOO appears to be the only package that exercises include_next because the definition was wrong before my patch and no one had noticed. The explanation is here:

https://svn.boost.org/trac/boost/ticket/8944

Perhaps the path may need adjusting for gcc4.7. Extra eyes are certainly welcome.

Pedro.





More information about the freebsd-office mailing list