From 5d65a241c8854c8c40ce590cc083c10298832f15 Mon Sep 17 00:00:00 2001 From: Andreas Proschofsky Date: Sun, 14 Nov 2004 10:55:01 +0000 Subject: New revision which should build fine with gcc 3.4 --- app-office/openoffice/ChangeLog | 11 +- .../openoffice/files/1.1.3/gcc34-nojava-fix.patch | 11 + .../openoffice/files/1.1.3/gcc34-nptl-fix.patch | 14 + app-office/openoffice/files/1.1.3/gcc34.patch.bz2 | Bin 0 -> 34342 bytes .../openoffice/files/1.1.3/newstlportfix2.patch | 100 ++++ .../openoffice/files/digest-openoffice-1.1.3-r1 | 2 + app-office/openoffice/openoffice-1.1.3-r1.ebuild | 526 +++++++++++++++++++++ 7 files changed, 663 insertions(+), 1 deletion(-) create mode 100644 app-office/openoffice/files/1.1.3/gcc34-nojava-fix.patch create mode 100644 app-office/openoffice/files/1.1.3/gcc34-nptl-fix.patch create mode 100644 app-office/openoffice/files/1.1.3/gcc34.patch.bz2 create mode 100644 app-office/openoffice/files/1.1.3/newstlportfix2.patch create mode 100644 app-office/openoffice/files/digest-openoffice-1.1.3-r1 create mode 100644 app-office/openoffice/openoffice-1.1.3-r1.ebuild (limited to 'app-office') diff --git a/app-office/openoffice/ChangeLog b/app-office/openoffice/ChangeLog index ba52b0d12d23..d9ba9b381aae 100644 --- a/app-office/openoffice/ChangeLog +++ b/app-office/openoffice/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for app-office/openoffice # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/ChangeLog,v 1.88 2004/11/11 23:28:16 suka Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/ChangeLog,v 1.89 2004/11/14 10:55:01 suka Exp $ + +*openoffice-1.1.3-r1 (14 Nov 2004) + + 14 Nov 2004; suka@gentoo.org +files/1.1.3/gcc34-nojava-fix.patch, + +files/1.1.3/gcc34-nptl-fix.patch, +files/1.1.3/gcc34.patch.bz2, + +files/1.1.3/newstlportfix2.patch, +openoffice-1.1.3-r1.ebuild: + This should now compile fine with gcc 3.4.x, the credit for this goes mostly + to Hanno Meyer-Thurow (h.mth@web.de), thanks a lot. Java check is also gone + as this should now also work fine with other jdks than blackdown. 12 Nov 2004; suka@gentoo.org openoffice-1.0.3-r2.ebuild, openoffice-1.1.0-r4.ebuild, openoffice-1.1.1-r1.ebuild, diff --git a/app-office/openoffice/files/1.1.3/gcc34-nojava-fix.patch b/app-office/openoffice/files/1.1.3/gcc34-nojava-fix.patch new file mode 100644 index 000000000000..73017c1bae19 --- /dev/null +++ b/app-office/openoffice/files/1.1.3/gcc34-nojava-fix.patch @@ -0,0 +1,11 @@ +--- sfx2/util/makefile.mk 2004-11-06 18:49:27.753988376 +0100 ++++ sfx2/util/makefile.mk 2004-11-06 18:39:19.706425656 +0100 +@@ -70,6 +70,8 @@ + GEN_HID=TRUE + GEN_HID_OTHER=TRUE + ++LINKFLAGSDEFS = # do not fail with missing symbols ++ + # --- Settings ----------------------------------------------------- + + .INCLUDE : settings.mk diff --git a/app-office/openoffice/files/1.1.3/gcc34-nptl-fix.patch b/app-office/openoffice/files/1.1.3/gcc34-nptl-fix.patch new file mode 100644 index 000000000000..3e3360b2f422 --- /dev/null +++ b/app-office/openoffice/files/1.1.3/gcc34-nptl-fix.patch @@ -0,0 +1,14 @@ +--- ./sal/osl/unx/process.c.orig 2003-07-02 15:34:17.000000000 +0200 ++++ ./sal/osl/unx/process.c 2004-11-01 15:16:40.976815960 +0100 +@@ -1017,11 +1017,6 @@ + for (i = 0; data.m_pszEnv[i] != NULL; i++) + putenv(data.m_pszEnv[i]); + +-#if defined(LINUX) +- /* mfe: linux likes to have just one thread when the exec family is called */ +- /* this np function has this purpose ... */ +- pthread_kill_other_threads_np(); +-#endif + OSL_TRACE("ChildStatusProc : starting '%s'",data.m_pszArgs[0]); + + /* Connect std IO to pipe ends */ diff --git a/app-office/openoffice/files/1.1.3/gcc34.patch.bz2 b/app-office/openoffice/files/1.1.3/gcc34.patch.bz2 new file mode 100644 index 000000000000..2c3a4e355949 Binary files /dev/null and b/app-office/openoffice/files/1.1.3/gcc34.patch.bz2 differ diff --git a/app-office/openoffice/files/1.1.3/newstlportfix2.patch b/app-office/openoffice/files/1.1.3/newstlportfix2.patch new file mode 100644 index 000000000000..f88927669a7b --- /dev/null +++ b/app-office/openoffice/files/1.1.3/newstlportfix2.patch @@ -0,0 +1,100 @@ +--- stlport/makefile.mk.orig 2004-01-28 11:52:04.000000000 +0100 ++++ stlport/makefile.mk 2004-11-04 15:36:38.158427224 +0100 +@@ -72,11 +72,12 @@ + # --- Files -------------------------------------------------------- + .EXPORT : CC CXX + .IF "$(COMID)"=="gcc3" +- TARFILE_NAME=STLport-4.5 + .IF "$(OS)$(BUILD_OS_MAJOR)$(BUILD_OS_MINOR)"=="MACOSX103" ++ TARFILE_NAME=STLport-4.5 + PATCH_FILE_NAME=STLport-4.5-macxp-panther.patch + .ELSE +- PATCH_FILE_NAME=STLport-4.5.patch ++ TARFILE_NAME=STLport-4.6.2 ++ PATCH_FILE_NAME=STLport-4.6.2.patch + .ENDIF + .ELSE # "$(COMID)"=="gcc3" + .IF "$(OS)"=="MACOSX" +@@ -127,7 +128,7 @@ + .ELIF "$(OS)"=="MACOSX" + BUILD_FLAGS=-f gcc-3.0-macosx.mak + .ELSE +- BUILD_FLAGS=-f gcc-3.0.mak ++ BUILD_FLAGS=-f gcc.mak + .ENDIF + .ELSE # "$(COMID)"=="gcc3" + # MacOS X/Darwin need a special makefile +--- /dev/null 2004-10-28 17:21:08.585283768 +0200 ++++ stlport/STLport-4.6.2.patch 2004-11-04 21:27:55.986110360 +0100 +@@ -0,0 +1,71 @@ ++--- misc/build/STLport-4.6.2/src/num_get_float.cpp 2003-11-02 09:58:50.000000000 +0100 +++++ misc/build/STLport-4.6.2/src/num_get_float.cpp 2004-11-04 15:26:12.605525720 +0100 ++@@ -770,18 +770,18 @@ ++ ++ void _STLP_CALL ++ __string_to_float(const string& v, float& val) { ++- val = _Stl_string_to_double(v.data()); +++ val = _Stl_string_to_double(v.c_str()); ++ } ++ ++ void _STLP_CALL ++ __string_to_float(const string& v, double& val) { ++- val = _Stl_string_to_double(v.data()); +++ val = _Stl_string_to_double(v.c_str()); ++ } ++ ++ #ifndef _STLP_NO_LONG_DOUBLE ++ void _STLP_CALL ++ __string_to_float(const string& v, long double& val) { ++- val = _Stl_string_to_long_double(v.data()); +++ val = _Stl_string_to_long_double(v.c_str()); ++ } ++ #endif ++ ++--- misc/build/STLport-4.6.2/stlport/config/stl_gcc.h 2003-11-02 09:59:11.000000000 +0100 +++++ misc/build/STLport-4.6.2/stlport/config/stl_gcc.h 2004-11-04 15:26:12.342565696 +0100 ++@@ -7,7 +7,9 @@ ++ # define _STLP_USE_GLIBC ++ #endif ++ +++#if (__GNUC__ >= 3) && (__GNUC_MAJOR__ >= 4) ++ # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD +++#endif ++ ++ # if defined(__FreeBSD__) || defined (__hpux) || defined(__amigaos__) || ( defined(__OS2__) && defined(__EMX__) ) ++ # define _STLP_NO_WCHAR_T ++@@ -263,7 +265,7 @@ ++ ++ # if (__GNUC__ >= 3) ++ ++-# if ((__GNUC_MINOR__ == 0) || (__APPLE__)) +++# if 1 || ((__GNUC_MINOR__ == 0) || (__APPLE__)) ++ # define _STLP_NATIVE_INCLUDE_PATH ../g++-v3 ++ # define _STLP_NATIVE_OLD_STREAMS_INCLUDE_PATH ../g++-v3/backward ++ # else ++--- misc/build/STLport-4.6.2/stlport/stdexcept 2003-11-02 09:59:01.000000000 +0100 +++++ misc/build/STLport-4.6.2/stlport/stdexcept 2004-11-04 15:26:12.474545632 +0100 ++@@ -60,6 +60,11 @@ ++ # endif ++ # define _STLP_EXCEPTION_BASE exception ++ +++#if (__GNUC__ >= 3) +++#undef _STLP_NOTHROW_INHERENTLY +++#define _STLP_NOTHROW_INHERENTLY throw() +++#endif +++ ++ class _STLP_CLASS_DECLSPEC __Named_exception : public _STLP_EXCEPTION_BASE { ++ public: ++ __Named_exception(const string& __str) ++--- misc/build/STLport-4.6.2/src/common_rules.mak 2004-11-04 21:25:58.322997872 +0100 +++++ misc/build/STLport-4.6.2/src/common_rules.mak 2004-11-04 21:26:15.731351400 +0100 ++@@ -84,7 +84,8 @@ ++ $(RM) $(OUTDIR)/$(STLDEBUG_NAME).$(DYNEXT) ++ $(RM) $(OUTDIR)/$(DEBUG_NAME).$(DYNEXT) ++ ln -s $(RELEASE_DYNLIB) $(OUTDIR)/$(RELEASE_NAME).$(DYNEXT) ++- -ln -s $(DEBUG_DYNLIB) $(OUTDIR)/$(DEBUG_NAME).$(DYNEXT) +++# not needed ? +++# -ln -s $(DEBUG_DYNLIB) $(OUTDIR)/$(DEBUG_NAME).$(DYNEXT) ++ ln -s $(STLDEBUG_DYNLIB) $(OUTDIR)/$(STLDEBUG_NAME).$(DYNEXT) ++ ++ install_unix : diff --git a/app-office/openoffice/files/digest-openoffice-1.1.3-r1 b/app-office/openoffice/files/digest-openoffice-1.1.3-r1 new file mode 100644 index 000000000000..49e03f6f735b --- /dev/null +++ b/app-office/openoffice/files/digest-openoffice-1.1.3-r1 @@ -0,0 +1,2 @@ +MD5 9df288bb534964d4b96efdf7bf029456 OOo_1.1.3-1_source.tar.gz 215360913 +MD5 4c01c84f1212369ceb369567ed06d1a2 STLport-4.6.2.tar.gz 755958 diff --git a/app-office/openoffice/openoffice-1.1.3-r1.ebuild b/app-office/openoffice/openoffice-1.1.3-r1.ebuild new file mode 100644 index 000000000000..a5c388f54af6 --- /dev/null +++ b/app-office/openoffice/openoffice-1.1.3-r1.ebuild @@ -0,0 +1,526 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/openoffice-1.1.3-r1.ebuild,v 1.1 2004/11/14 10:55:01 suka Exp $ + +# Notes: +# +# This will take a HELL of a long time to compile, be warned. +# According to openoffice.org, it takes approximately 12 hours on a +# P3/600 with 256mb ram. And thats where building is its only task. +# +# It takes about 6 hours on my P4 1.8 with 512mb memory, and the +# build only needs about 2.1GB of disk space - Azarah. +# +# You will also need a bucketload of diskspace ... in the order of +# 4-5 gb free to store all the compiled files and installation +# directories. +# +# The information on how to build and what is required comes from: +# http://www.openoffice.org/dev_docs/source/build_linux.html +# http://tools.openoffice.org/ext_comp.html +# +# Todo: +# +# Get support going for installing a custom language pack. Also +# need to be able to install more than one language pack. + +inherit flag-o-matic eutils gcc + +IUSE="gnome kde java curl nptl zlib" + +LOC="/opt" +INSTDIR="${LOC}/OpenOffice.org" +S="${WORKDIR}/OOo_${PV}_src" +DESCRIPTION="OpenOffice.org, a full office productivity suite." +SRC_URI="mirror://openoffice/stable/${PV}/OOo_${PV}-1_source.tar.gz + http://www.stlport.org/archive/STLport-4.6.2.tar.gz" +HOMEPAGE="http://www.openoffice.org/" + +LICENSE="|| ( LGPL-2 SISSL-1.1 )" +SLOT="0" +KEYWORDS="~x86" + +RDEPEND="!app-office/openoffice-bin + >=sys-libs/glibc-2.1 + !=sys-libs/glibc-2.3.1* + >=dev-lang/perl-5.0 + >=media-libs/libart_lgpl-2.3.13 + >=x11-libs/startup-notification-0.5 + >=media-libs/freetype-2.1.4 + virtual/x11 + app-arch/zip + app-arch/unzip + dev-libs/expat + java? ( >=virtual/jre-1.4.1 ) + virtual/lpr + ppc? ( >=sys-libs/glibc-2.2.5-r7 + >=sys-devel/gcc-3.2.1 )" + +DEPEND="${RDEPEND} + >=sys-apps/findutils-4.1.20-r1 + app-shells/tcsh + dev-util/pkgconfig + curl? ( net-misc/curl ) + zlib? ( sys-libs/zlib ) + sys-libs/pam + !dev-util/dmake + java? ( >=virtual/jdk-1.4.1 ) + !java? ( dev-libs/libxslt )" + +pkg_setup() { + + if use java + then + if [ -z "${JDK_HOME}" ] || [ ! -d "${JDK_HOME}" ] + then + eerror "In order to compile java sources you have to set the" + eerror "\$JDK_HOME environment properly." + eerror "" + eerror "You can achieve this by using the java-config tool:" + eerror " emerge java-config" + die "Couldn't find a valid JDK home" + fi + fi + + ewarn " This version should now also compile fine with gcc 3.4.x " + ewarn " If you encounter problems in relation to this, please report " + ewarn " them to http://bugs.gentoo.org " + ewarn "" + ewarn " It is important to note that OpenOffice.org is a very fragile " + ewarn " build when it comes to CFLAGS. A number of flags have already " + ewarn " been filtered out. If you experience difficulty merging this " + ewarn " package and use agressive CFLAGS, lower the CFLAGS and try to " + ewarn " merge again. " + + set_languages +} + +set_languages () { + + if [ -z "$LANGUAGE" ]; then + LANGUAGE=01 + fi + + case "$LANGUAGE" in + 01 | ENUS ) LANGNO=01; LANGNAME=ENUS; LFULLNAME="US English (default)" + ;; + 03 | PORT ) LANGNO=03; LANGNAME=PORT; LFULLNAME=Portuguese + ;; + 07 | RUSS ) LANGNO=07; LANGNAME=RUSS; LFULLNAME=Russian + ;; + 30 | GREEK ) LANGNO=30; LANGNAME=GREEK; LFULLNAME=Greek + ;; + 31 | DTCH ) LANGNO=31; LANGNAME=DTCH; LFULLNAME=Dutch + ;; + 33 | FREN ) LANGNO=33; LANGNAME=FREN; LFULLNAME=French + ;; + 34 | SPAN ) LANGNO=34; LANGNAME=SPAN; LFULLNAME=Spanish + ;; + 35 | FINN ) LANGNO=35; LANGNAME=FINN; LFULLNAME=Finnish + ;; + 37 | CAT ) LANGNO=37; LANGNAME=CAT; LFULLNAME=Catalan + ;; + 39 | ITAL ) LANGNO=39; LANGNAME=ITAL; LFULLNAME=Italian + ;; + 42 | CZECH ) LANGNO=42; LANGNAME=CZECH; LFULLNAME=Czech + ;; + 43 | SLOVAK ) LANGNO=43; LANGNAME=SLOVAK; LFULLNAME=Slovak + ;; + 45 | DAN ) LANGNO=45; LANGNAME=DAN; LFULLNAME=Danish + ;; + 46 | SWED ) LANGNO=46; LANGNAME=SWED; LFULLNAME=Swedish + ;; + 48 | POL ) LANGNO=48; LANGNAME=POL; LFULLNAME=Polish + ;; + 49 | GER ) LANGNO=49; LANGNAME=GER; LFULLNAME=German + ;; + 55 | PORTBR ) LANGNO=55; LANGNAME=PORTBR; LFULLNAME="Portuguese brazilian" + ;; + 66 | THAI ) LANGNO=66; LANGNAME=THAI; LFULLNAME=Thai + ;; + 77 | ESTONIAN ) LANGNO=77; LANGNAME=ESTONIAN; LFULLNAME=Estonian + ;; + 81 | JAPN ) LANGNO=81; LANGNAME=JAPN; LFULLNAME="Japanese" + ;; + 82 | KOREAN ) LANGNO=82; LANGNAME=KOREAN; LFULLNAME=Korean + ;; + 86 | CHINSIM ) LANGNO=86; LANGNAME=CHINSIM; LFULLNAME="Simplified Chinese (PRC)" + ;; + 88 | CHINTRAD ) LANGNO=88; LANGNAME=CHINTRAD; LFULLNAME="Traditional Chinese (taiwan)" + ;; + 90 | TURK ) LANGNO=90; LANGNAME=TURK; LFULLNAME=Turkish + ;; + 91 | HINDI ) LANGNO=91; LANGNAME=HINDI; LFULLNAME=Hindi + ;; + 96 | ARAB ) LANGNO=96; LANGNAME=ARAB; LFULLNAME=Arabic + ;; + 97 | HEBREW ) LANGNO=97; LANGNAME=HEBREW; LFULLNAME=Hebrew + ;; + * ) + eerror "Unknown LANGUAGE setting!" + eerror + eerror "Known LANGUAGE settings are:" + eerror " ENUS | PORT | RUSS | GREEK | DTCH | FREN | SPAN | FINN | CAT | ITAL |" + eerror " CZECH | SLOVAK | DAN | SWED | POL | GER | PORTBR | THAI | ESTONIAN |" + eerror " JAPN | KOREAN | CHINSIM | CHINTRAD | TURK | HINDI | ARAB | HEBREW" + die + ;; + esac +} + +oo_setup() { + + unset LANGUAGE + unset LANG + unset LC_ALL + + # We want gcc3 if possible!!!! + export WANT_GCC_3="yes" + + export NEW_GCC="0" + + if [ -x /usr/sbin/gcc-config ] + then + # Do we have a gcc that use the new layout and gcc-config ? + if /usr/sbin/gcc-config --get-current-profile &> /dev/null + then + export NEW_GCC="1" + export GCC_PROFILE="$(/usr/sbin/gcc-config --get-current-profile)" + + # Just recheck gcc version ... + if [ "$(gcc-version)" != "3.2" ] && [ "$(gcc-version)" != "3.3" && [ "$(gcc-version)" != "3.4" ] + then + # See if we can get a gcc profile we know is proper ... + if /usr/sbin/gcc-config --get-bin-path ${CHOST}-3.2.1 &> /dev/null + then + export PATH="$(/usr/sbin/gcc-config --get-bin-path ${CHOST}-3.2.1):${PATH}" + export GCC_PROFILE="${CHOST}-3.2.1" + else + eerror "This build needs gcc-3.2, gcc-3.3 or gcc-3.4!" + eerror + eerror "Use gcc-config to change your gcc profile:" + eerror + eerror " # gcc-config $CHOST-3.2.1" + eerror + eerror "or whatever gcc version is relevant." + die + fi + fi + fi + fi +} + +src_unpack() { + + oo_setup + + cd ${WORKDIR} + unpack ${A} + + #Still needed: The STLport patch + cd ${S} + cp ${DISTDIR}/STLport-4.6.2.tar.gz ${S}/stlport/download || die + epatch ${FILESDIR}/${PV}/newstlportfix2.patch + + epatch ${FILESDIR}/${PV}/openoffice-java.patch + + epatch ${FILESDIR}/${PV}/gcc-instlib.patch + + # GCC 3.4.x fixes + if [ "$(gcc-version)" = "3.4" ] + then + epatch ${FILESDIR}/${PV}/gcc34.patch.bz2 + use !java && epatch ${FILESDIR}/${PV}/gcc34-nojava-fix.patch + use nptl && epatch ${FILESDIR}/${PV}/gcc34-nptl-fix.patch + fi + + # Compile problems with these ... + filter-flags "-funroll-loops" + filter-flags "-fomit-frame-pointer" + filter-flags "-fprefetch-loop-arrays" + filter-flags "-fno-default-inline" + filter-flags "-fstack-protector" + filter-flags "-ftracer" + append-flags "-fno-strict-aliasing" + replace-flags "-O3" "-O2" + replace-flags "-Os" "-O2" + + if [ "$(gcc-version)" == "3.2" ]; then + einfo "You use a buggy gcc, so replacing -march=pentium4 with -march=pentium3" + replace-flags "-march=pentium4" "-march=pentium3 -mcpu=pentium4" + fi + + # Now for our optimization flags ... + export CXXFLAGS="${CXXFLAGS} -fno-for-scope -fpermissive -fno-rtti" + perl -pi -e "s|^CFLAGSOPT=.*|CFLAGSOPT=${CFLAGS}|g" \ + ${S}/solenv/inc/unxlngi4.mk + perl -pi -e "s|^CFLAGSCXX=.*|CFLAGSCXX=${CXXFLAGS}|g" \ + ${S}/solenv/inc/unxlngi4.mk + + #Do our own branding by setting gentoo linux as the vendor + sed -i -e "s,\(//\)\(.*\)\(my company\),\2Gentoo Linux," ${S}/offmgr/source/offapp/intro/ooo.src +} + +get_EnvSet() { + + # Determine what Env file we should be using (Az) + export LinuxEnvSet="LinuxIntelEnv.Set.sh" + use sparc && export LinuxEnvSet="LinuxSparcEnv.Set.sh" + use ppc && export LinuxEnvSet="LinuxPPCEnv.Set.sh" + use alpha && export LinuxEnvSet="LinuxAlphaEnv.Set.sh" + + # Get build specific stuff (Az) + export SOLVER="$(awk '/^UPD=/ {gsub(/\"/, ""); gsub(/UPD=/, ""); print $0}' ${LinuxEnvSet})" + export SOLPATH="$(awk '/^INPATH=/ {gsub(/\"/, ""); gsub(/INPATH=/, ""); print $0}' ${LinuxEnvSet})" +} + +src_compile() { + + addpredict /bin + addpredict /root/.gconfd + local buildcmd="" + export MYCONF="" + + #Check if we use java + if use java + then + MYCONF="${MYCONF} --with-jdk-home=${JAVA_HOME}" + else + MYCONF="${MYCONF} --disable-java" + fi + + #See if we use system-curl + if use curl + then + MYCONF="${MYCONF} --with-system-curl" + fi + + #See if we use system-zlib + if use zlib + then + MYCONF="${MYCONF} --with-system-zlib" + fi + + # Do NOT compile with a external STLport, as gcc-2.95.3 users will + # get linker errors due to the ABI being different (STLport will be + # compiled with 2.95.3, while OO is compiled with 3.x). (Az) + einfo "Configuring OpenOffice.org with language support for ${LFULLNAME}..." + cd ${S}/config_office + rm -f config.cache + + if [ "LANGNAME" != "ENUS" ]; then + LANGNAME="${LANGNAME},ENUS" + fi + + use sparc && MYCONF="${MYCONF} --disable-mozilla" + + MYCONF="${MYCONF} --enable-libart \ + --with-lang=${LANGNAME} \ + --enable-libsn \ + --without-fonts \ + --with-system-freetype" + + ./configure ${MYCONF} || die + + cd ${S} + get_EnvSet + + # Set $ECPUS to amount of processes multiprocessing build should use. + # NOTE: Setting this too high might cause dmake to segfault!! + # Setting this to anything but "1" on my pentium4 causes things + # to segfault :( + [ -z "${ECPUS}" ] && export ECPUS="1" + + # Should the build use multiprocessing? + # We use build.pl directly, as dmake tends to segfault. (Az) + if [ "${ECPUS}" -gt 1 ] + then + buildcmd="${S}/solenv/bin/build.pl --all -P${ECPUS} product=full strip=true --dlv_switch link" + else + buildcmd="${S}/solenv/bin/build.pl --all product=full strip=true --dlv_switch link" + fi + + if [ -z "$(grep 'CCCOMP' ${S}/${LinuxEnvSet})" ] + then + # Set CCCOMP and CXXCOMP. This is still needed for STLport + export CCCOMP="$(gcc-getCC)" + export CXXCOMP="$(gcc-getCXX)" + fi + + einfo "Bootstrapping OpenOffice.org..." + # Get things ready for bootstrap (Az) + chmod 0755 ${S}/solenv/bin/*.pl + # Bootstrap ... + ./bootstrap || die + + einfo "Building OpenOffice.org..." + echo "source ${S}/${LinuxEnvSet} && cd ${S}/instsetoo && LINK=g++ ${buildcmd}" > build.sh + sh build.sh || die "Build failed!" + + [ -d ${S}/instsetoo/${SOLPATH} ] || die "Cannot find build directory!" +} + +src_install() { + + # Sandbox issues; bug #11838 + addpredict "/user" + addpredict "/share" + addpredict "/dev/dri" + addpredict "/usr/bin/soffice" + addpredict "/pspfontcache" + addpredict "/opt/OpenOffice.org/foo.tmp" + addpredict "/opt/OpenOffice.org/delme" + + # The install part should now be relatively OK compared to + # what it was. Basically we use autoresponse files to install + # unattended. Afterwards we + # just cleanout ${D} from the registry, etc. This way we + # do not need pre-generated registry, and also fixes some weird + # bugs related to the old way we did things. + # + # (9 Sep 2002) + + # Autoresponse file for main installation + cat > ${T}/rsfile-global <<-"END_RS" + [ENVIRONMENT] + INSTALLATIONMODE=INSTALL_NETWORK + INSTALLATIONTYPE=STANDARD + DESTINATIONPATH= + OUTERPATH= + LOGFILE= + LANGUAGELIST= + + [JAVA] + JavaSupport=preinstalled_or_none + END_RS + + # Autoresponse file for user installation + cat > ${T}/rsfile-local <<-"END_RS" + [ENVIRONMENT] + INSTALLATIONMODE=INSTALL_WORKSTATION + INSTALLATIONTYPE=WORKSTATION + DESTINATIONPATH=/.openoffice/ + + [JAVA] + JavaSupport=none + END_RS + + # Fixing install location in response file + sed -e "s||${D}${INSTDIR}|" \ + ${T}/rsfile-global > ${T}/autoresponse || die + + einfo "Installing OpenOffice.org into build root..." + dodir ${INSTDIR} + cd ${S}/instsetoo/${SOLPATH}/${LANGNO}/normal + ./setup -v -noexit -nogui -r:${T}/autoresponse || die "Setup failed" + + echo + einfo "Removing build root from registry..." + # Remove totally useless stuff. + rm -f ${D}${INSTDIR}/program/{setup.log,sopatchlevel.sh} || die + # Remove build root from registry and co + egrep -rl "${D}" ${D}${INSTDIR}/* | \ + xargs -i perl -pi -e "s|${D}||g" {} || : + + einfo "Fixing permissions..." + # Fix permissions + find ${D}${INSTDIR}/ -type f -exec chmod a+r {} \; + chmod a+x ${D}${INSTDIR}/share/config/webcast/*.pl + + # Fix symlinks + for x in "soffice program/spadmin" \ + "program/setup setup" \ + "program/spadmin spadmin" + do + dosym $(echo ${x} | awk '{print $1}') \ + ${INSTDIR}/$(echo ${x} | awk '{print $2}') + done + + # Install user autoresponse file + insinto /etc/openoffice + sed -e "s||${PV}|g" ${T}/rsfile-local > ${T}/autoresponse-${PV}.conf + doins ${T}/autoresponse-${PV}.conf + + # Install wrapper script + exeinto /usr/bin + sed -e "s||${PV}|g" \ + ${FILESDIR}/${PV}/ooffice-wrapper-1.3 > ${T}/ooffice + doexe ${T}/ooffice + + # Component symlinks + for app in calc draw impress math writer web setup padmin; do + dosym ooffice /usr/bin/oo${app} + done + + einfo "Installing Menu shortcuts (need \"gnome\" or \"kde\" in USE)..." + if use gnome + then + insinto /usr/share/gnome/apps/OpenOffice.org + # Install the files needed for the catagory + doins ${D}${INSTDIR}/share/gnome/net/.directory + doins ${D}${INSTDIR}/share/gnome/net/.order + + # Change this to ooo*.desktop from *.desktop for now, since + # otherwise two sets of icons will appear in the GNOME menu. + # (04 Aug 2003) + for x in ${D}${INSTDIR}/share/gnome/net/ooo*.desktop + do + # We have to handle soffice and setup differently + perl -pi -e "s:${INSTDIR}/program/setup:/usr/bin/oosetup:g" ${x} + perl -pi -e "s:${INSTDIR}/program/soffice:/usr/bin/ooffice:g" ${x} + # Now fix the rest + perl -pi -e "s:${INSTDIR}/program/s:/usr/bin/oo:g" ${x} + doins ${x} + done + fi + + if use kde + then + local kdeloc="${D}${INSTDIR}/share/kde/net/" + + insinto /usr/share/applnk/OpenOffice.org\ 1.1 + # Install the files needed for the catagory + doins ${kdeloc}/.directory + dodir /usr/share + # Install the icons and mime info + cp -a ${D}${INSTDIR}/share/kde/net/share/mimelnk ${D}${INSTDIR}/share/kde/net/share/icons ${D}/usr/share + + for x in ${kdeloc}/*.desktop + do + # We have to handle soffice and setup differently + perl -pi -e "s:${INSTDIR}/program/setup:/usr/bin/oosetup:g" ${x} + perl -pi -e "s:${INSTDIR}/program/soffice:/usr/bin/ooffice:g" ${x} + # Now fix the rest + perl -pi -e "s:${INSTDIR}/program/s:/usr/bin/oo:g" ${x} + doins ${x} + done + fi + + # Do not actually install the desktop bindings for users, we have + # installed them globally + for module in gid_Module_Optional_Gnome gid_Module_Optional_Kde gid_Module_Optional_Cde + do + perl -pi -e "/^Module $module/ .. /^End/ and s|(Installed.*)=.*|\1= NO;|" \ + ${D}${INSTDIR}/program/instdb.ins + done + + + + # Remove unneeded stuff + rm -rf ${D}${INSTDIR}/share/cde + + # Make sure these do not get nuked. + keepdir ${INSTDIR}/user/registry/res/en-us/org/openoffice/{Office,ucb} ${INSTDIR}/user/psprint/{driver,fontmetric} ${INSTDIR}/user/{autocorr,backup,plugin,store,temp,template} +} + +pkg_postinst() { + + einfo " To start OpenOffice.org, run:" + einfo + einfo " $ ooffice" + einfo + einfo " Also, for individual components, you can use any of:" + einfo + einfo " oocalc, oodraw, ooimpress, oomath, ooweb or oowriter" +} + -- cgit v1.2.3-65-gdbad