Page MenuHomeFreeBSD

openoffice-devel upgrade and cleanup
ClosedPublic

Authored by truckman on Mar 22 2015, 5:23 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 28, 7:27 PM
Unknown Object (File)
Tue, Nov 26, 9:04 AM
Unknown Object (File)
Fri, Nov 22, 8:18 PM
Unknown Object (File)
Fri, Nov 22, 4:44 AM
Unknown Object (File)
Mon, Nov 18, 4:52 PM
Unknown Object (File)
Wed, Nov 13, 4:39 PM
Unknown Object (File)
Tue, Nov 5, 2:10 AM
Unknown Object (File)
Mon, Nov 4, 1:47 PM
Subscribers
None

Details

Summary

Upgrade openoffice-devel to SVN 1667428

Build with with system graphics/silgraphite.

When building with clang, use headers from devel/boost-libs.
The build with external boost fails with gcc.

Set TARTYPE automatically depending on whether or not
we are building an official snapshot to avoid the need
to manually change the type.

When building with clang35 from ports, it is not
necessary to use the full path name to the compiler..

When building with gcc from ports, get the necessary
_GCC_RUNTIME stuff from LDFLAGS and pass it to the build
through the environment rather than pasting it into
various files using ${REINPLACE_CMD}.

Patch the *.mk files in the port so that they are
correct for clang in preparation for pushing them
upstream. They only need slight adjustments for
gcc.

Clean up the exception handling patches in preparation
for pushing them upstream.

  • Prepare for gcc5
  • Pick up the workaround for upstream bug #i124421
	    from the s5abi_macosx_x86-64 implementation.

	  * Various exception handling structures are defined in
	    the libc++ version of <cxxabi.h>, so be sure to use
	    them instead of the unpublished libstdc++ versions
            that are copied and pasted into the share.hxx header
	    when compiling with clang.  Also use the matching
	    version implementation of __cxa_get_globals().

Nuke files/patch-webdav because this has been fixed
upstream.

Test Plan

Build and test on:

  • FreeBSD 8.4 i386
  • FreeBSD 9.3 amd64
  • FreeBSD 10.1 i386
  • FreeBSD 10.1 amd64

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

truckman retitled this revision from to openoffice-devel upgrade and cleanup.
truckman updated this object.
truckman edited the test plan for this revision. (Show Details)
truckman added reviewers: pfg, mat.

I forgot to mention that I also cleaned up pkg-message a bit.

editors/openoffice-devel/files/patch-bridges_source_cpp__uno_gcc3__freebsd__intel_except.cxx
8 ↗(On Diff #4325)

Obsolete versions of gcc? We've given up on building with gcc from base, and the oldest version in ports is now 4.6. We could just unconditionally include <exception> here, share.hxx already does.

The #includes could probably stand some further cleanup anyway since some things end up getting included twice.

editors/openoffice-devel/Makefile
6 ↗(On Diff #4325)

This is a bit confusing, if you want to keep the PORTREVISION variable definition, you should set it to 0, which is its default value. I do this in a few ports.

editors/openoffice-devel/files/patch-bridges_source_cpp__uno_gcc3__freebsd__intel_except.cxx
8 ↗(On Diff #4325)

Well, you have USES=compiler:c++11-lang, so it'll never build with the base gcc, but with either clang34 or the default ports gcc. And then you say you either want clang35 or the default gcc. So I think there are cases where you may depend on both clang34 and clang35, no ?

Anyway, my point was, you either build with clang 3.5 or gcc 4.8, so you can drop support for any earlier versions.

pfg edited edge metadata.

The AOO part seems OK.

As a side note: the base gcc (4.2.1+) compiler was/is still valuable for non x86 platforms though. Under request on the powerpc list I merged the build support for FreeBSD-ppc.
It surely requires more work, but the starting point is there.

This revision is now accepted and ready to land.Mar 22 2015, 4:35 PM

Would USE_GCC=yes be acceptable on ppc? The Makefile logic would give you that if the base compiler is gcc 4.2.1. Also the files in question are only built on i386 and amd64. The ppc ones already differ.

editors/openoffice-devel/Makefile
6 ↗(On Diff #4325)

I tossed it back in there as a placeholder to keep PORTEPOCH from being bumped instead, which happened with r378348. I can uncomment it and set it to zero if you think that's better.

editors/openoffice-devel/files/patch-bridges_source_cpp__uno_gcc3__freebsd__intel_except.cxx
8 ↗(On Diff #4325)

Not exactly. I've got USES=compiler to get COMPILER_TYPE defined, and if COMPILER_TYPE is gcc, then I set USE_GCC=yes.

This port builds with the base clang (3.4) on FreeBSD 10 i386. There's a clang 3.4 bug that breaks the build on amd64, so I force the use of clang 3.5 from ports.

editors/openoffice-devel/Makefile
4 ↗(On Diff #4325)

Would it be better to change this to apache-openoffice-devel and drop PKGNAMESUFFIX=devel? That would allow LANG_SUFFIX to work again in the future.

In D2108#6, @pfg wrote:

As a side note: the base gcc (4.2.1+) compiler was/is still valuable for non x86 platforms though. Under request on the powerpc list I merged the build support for FreeBSD-ppc.
It surely requires more work, but the starting point is there.

Well, unless I'm mistaken, lang/gcc does build on ppc, no ?

editors/openoffice-devel/Makefile
4 ↗(On Diff #4325)

Well, PORTNAME should be whatever the software is called, so, no, in this case, both PORTNAMEs of editors/openoffice and editors/openoffice-devel should be the same, it's the same software with a different version. (say, like the dns/bind99 and dns/bind910.)

If LANG_SUFFIX piggybacks on PKGNAMESUFFIX, maybe it should add to it if non empty instead of replacing it.

6 ↗(On Diff #4325)

Well, *I* prefer to keep it there at 0 for the same reason, but if you prefer having it commented and uncomment it when bumping portrevision, but whatever works for you :-)

editors/openoffice-devel/files/patch-bridges_source_cpp__uno_gcc3__freebsd__intel_except.cxx
8 ↗(On Diff #4325)

Mmmm, I don't know why, I saw USES=compiler:c++11-lang, looks like I had not worken up yet, I looked at the editors/libreoffice ports, forget about it 0:-)

In D2108#11, @mat wrote:
In D2108#6, @pfg wrote:

As a side note: the base gcc (4.2.1+) compiler was/is still valuable for non x86 platforms though. Under request on the powerpc list I merged the build support for FreeBSD-ppc.
It surely requires more work, but the starting point is there.

Well, unless I'm mistaken, lang/gcc does build on ppc, no ?

The complaint was that building your own packages on some platforms was too much trouble so the extra dependency was painful. Upstream has no problem building with older gcc (even 4.1) on linux.

It's moot point though, I am pretty sure the code requires much more work on those platforms to worry about the compiler at this time.

editors/openoffice-devel/Makefile
6 ↗(On Diff #4325)

Tried that and found that portlint -a whines:

WARN: Makefile: Setting PORTREVISION to 0 is not necessary.

In D2108#12, @pfg wrote:
In D2108#11, @mat wrote:
In D2108#6, @pfg wrote:

As a side note: the base gcc (4.2.1+) compiler was/is still valuable for non x86 platforms though. Under request on the powerpc list I merged the build support for FreeBSD-ppc.
It surely requires more work, but the starting point is there.

Well, unless I'm mistaken, lang/gcc does build on ppc, no ?

The complaint was that building your own packages on some platforms was too much trouble so the extra dependency was painful. Upstream has no problem building with older gcc (even 4.1) on linux.

It's moot point though, I am pretty sure the code requires much more work on those platforms to worry about the compiler at this time.

What about the java dependency? openjdk is marked ONLY_FOR_ARCHS= i386 amd64

In D2108#14, @truckman wrote:
In D2108#12, @pfg wrote:

...

It's moot point though, I am pretty sure the code requires much more work on those platforms to worry about the compiler at this time.

What about the java dependency? openjdk is marked ONLY_FOR_ARCHS= i386 amd64

Yes, quite an issue. It's likely also an issue for libreoffice/arm. Maybe the linux ppc java port works(?) and there was support for GNU gcj which was never finished. Hopefully at some point we will java java or non x86 platforms.

editors/openoffice-devel/Makefile
6 ↗(On Diff #4325)

portlint is not to be followed blindly, I don't think I ever use it 0:-)
It's telling you it's not needed, which is true, but if you're doing it on purpose, knowingly, it's allright :-)

truckman edited edge metadata.

openoffice-devel files/patch-bridges include cleanup, unbreak on FBSD 11 i386

Further changes to files/patch-bridges* to be smarter about #include

The build was broken on FreeBSD 11 i386 because autodoc was dumping
core. This appears to be a bug in clang 3.6 code generation with -0s.
Change to -0O in this case, much as we do with gcc 4.9.

I decided to retain the commented out PORTREVISION as a placeholder
because portlint whines about PORTREVISION=0.

This revision now requires review to proceed.Mar 25 2015, 3:50 AM
mat edited edge metadata.
This revision is now accepted and ready to land.Mar 25 2015, 9:59 AM
pfg edited edge metadata.
truckman updated this revision to Diff 4443.

Closed by commit rP382334 (authored by @truckman).