Hello.
Please, review OpenOffice component - https://github.com/pyhalov/oi-userland/compare/openoffice . It is based on Apostolos Syropoulos work https://asyropoulos.wordpress.com/2014/02/05/compiling-openoffice4/ and ec-userland openoffice component draft made by Alasdair Lumsden.
The main distinctions - we use GCC 4.8 and illumos ld linker to compile OO.

Patches necessary to compile it:

01.use-illumos-ld.patch
OpenOffice configure script doesn't like illumos ld and GCC on Solaris.

02.use-gcc.patch
Patches to main solenv/* make files are mostly taken from Apostolos blog (perhaps, with some corrections) and IIRC are based on Linux makefiles. They are necessary to introduce Solaris/GCC platform.

03.g++-includes.patch
Our boost live in /usr/g++, so we have to teach OO to search it there. We can't use CPPFLAGS, because this breaks icu compilation.

04.gmake-j.patch
dmake is supposed to call gmake in several cases. But sometimes it calls dmake or make and it doesn't like "-j" flags.

05.visibility.patch
Without this patch some symbols are hidden during sc compilation.

06.ignore_mapfiles.patch
Some mapfiles introduce symbols which are not present in OpenIndiana.

07.cstring.patch
Missing <cstring> includes

08.adsyms.awk.patch
Complements 06.ignore_mapfiles.patch. _ZTI* symbols are not present in result libraries.

09.libxmlsec-ldflags.patch
LDFLAGS are not passed during libxmlsec build

10.xinerama.patch
Two issues - 1) saldisp defines MAXFRAMEBUFFERS  only for XSUN.
2) neither USE_XINERAMA_XORG nor USE_XINERAMA_XSUN are defined.

11.wmadaptor-gcc48.patch
It seems just gcc 4.8 doesn't like &const_cast<char*>(pText) construction.

12.undefine-macroses.patch
Some symbols used by OO are defined in our headers. Undefine them.

13.remove-studio-specific.patch
Studio flags are unconditionally passed to the compiler. Fix this.

14.webdav-apr.patch
On OI we have /usr/apr/include, not /usr/include/apr. Also runpaths for APR and APR-UTIL are missing.

15.icu.patch (in fact, patch to patch :))
There are two issues. 1) in uperf.cpp _XOPEN_SOURCE_EXTENDED is defined. So, we don't receive _XPG6 and get an error
"Compiler or options invalid for pre-UNIX 03 X/Open applications \
        and pre-2001 POSIX applications"
2) We should add runpath to binaries, else compiling icu is linked to system icu in /usr/lib (compiled with Studio) and we receive binaries which are linked to both Studio and GCC C++ runtime simultaneously.

16.lstdc++.patch
Binaries are unconditionally linked to lCstd on Solaris. Fix this.

17.nss.patch
OpenOffice has hardcoded paths for nss libraries and headers. Set paths to our paths.

18.sal_osl_unx.patch
1) One more define supposing that the only Solaris compiler is Studio
2) We (as MACOSX) also have posix_madvise (just cut&paste Apostolos' change, don't know, why usual madvise fails to work, perhaps, missing headers).

Post-install processing:

We have to copy some desktop-specific files from OO distribution (icons, mime-info, etc). bootstraprc has incorrect UserInstallation setting and tries to write user configs to installation directory (fix was taken from FreeBSD port). Some binaries have incorrect runpaths. Fix this.

--
Best regards,
Alexander Pyhalov,
system administrator of Computer Center of Southern Federal University

_______________________________________________
oi-dev mailing list
[email protected]
http://openindiana.org/mailman/listinfo/oi-dev

Reply via email to