New revision which should build fine with gcc 3.4
authorAndreas Proschofsky <suka@gentoo.org>
Sun, 14 Nov 2004 10:55:01 +0000 (10:55 +0000)
committerAndreas Proschofsky <suka@gentoo.org>
Sun, 14 Nov 2004 10:55:01 +0000 (10:55 +0000)
app-office/openoffice/ChangeLog
app-office/openoffice/Manifest
app-office/openoffice/files/1.1.3/gcc34-nojava-fix.patch [new file with mode: 0644]
app-office/openoffice/files/1.1.3/gcc34-nptl-fix.patch [new file with mode: 0644]
app-office/openoffice/files/1.1.3/gcc34.patch.bz2 [new file with mode: 0644]
app-office/openoffice/files/1.1.3/newstlportfix2.patch [new file with mode: 0644]
app-office/openoffice/files/digest-openoffice-1.1.3-r1 [new file with mode: 0644]
app-office/openoffice/openoffice-1.1.3-r1.ebuild [new file with mode: 0644]

index ba52b0d12d234f8883ec548143e97df91500dbe3..d9ba9b381aaec3b55dfb96b5a5fe7f8c7d74c387 100644 (file)
@@ -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,
index 957d1564be7d8dc62791b6f4d989f20f6758e101..51cd44f0237043ec1f74d9bd7d7bbd20cd20b4e1 100644 (file)
@@ -2,12 +2,14 @@ MD5 e7fff1cdeac61f986e2375f8fcb110dc openoffice-1.0.3-r2.ebuild 20531
 MD5 2390dbcad9078ad77ad55591943d06bc openoffice-1.1.1-r1.ebuild 15826
 MD5 028221961eab58410eac58393c7840e5 openoffice-1.1.0-r4.ebuild 20022
 MD5 f5253bf5e86eccd42ffe3aee17617d88 openoffice-1.1.3.ebuild 15755
-MD5 c85784ee4a727e83e60614c5a286bb43 ChangeLog 19519
+MD5 a9a4190f63996d9947b939565b8d66bf ChangeLog 19982
+MD5 24396b5a7d20e558dc4450695dc57fdd openoffice-1.1.3-r1.ebuild 15445
 MD5 e3ec4a70395943b59adad7fc4f0538d7 metadata.xml 461
 MD5 fd065af92828cda546d797e6c86d102b files/digest-openoffice-1.1.3 73
 MD5 b1ec8fd75e9b93ccf4a4f0c926de5199 files/digest-openoffice-1.0.3-r2 330
 MD5 9d1828c128b70f1612c0c31b69719a26 files/digest-openoffice-1.1.0-r4 195
 MD5 8382af8b277f267e568feab0f7976f3c files/digest-openoffice-1.1.1-r1 130
+MD5 2d0153cba41a3a61fcf0fddb138e4882 files/digest-openoffice-1.1.3-r1 138
 MD5 c6d765863f974f7f6f6b17d20ad95541 files/1.0.3/openoffice-1.0.1-fix-asm.patch 2207
 MD5 e448fa25e672e8e100a5d68adb75dda3 files/1.0.3/freetype-2.1.3.patch 1367
 MD5 271539dafab707398e9b806eef8f250a files/1.0.3/ooffice-wrapper-1.2 8220
@@ -42,7 +44,11 @@ MD5 ee20d490a8aa62d79ca65e99339e3397 files/1.1.1/neon.patch 8300
 MD5 7978a9c1f590a83622b8040ee83197a4 files/1.1.1/nptl.patch 1285
 MD5 fc8711196de6324c9fae45342d159bf3 files/1.1.1/build.patch 330
 MD5 d08ea5bce1e9a925cbd712607f89f920 files/1.1.1/newstlportfix.patch 10032
+MD5 f0c4c412675085f96c20d0b5ac753694 files/1.1.3/gcc34.patch.bz2 34342
 MD5 43cbfca8df057d634675ef000fae82fc files/1.1.3/ooffice-wrapper-1.3 9471
 MD5 ffcbf659ca6f54e8e15401cced99af77 files/1.1.3/gcc-instlib.patch 393
+MD5 a9233bc0091b925de38145108267b949 files/1.1.3/newstlportfix2.patch 3638
 MD5 35601b7efe487b346f78d43c23e2f8f3 files/1.1.3/openoffice-java.patch 2092
+MD5 a9cbc34e9462f6b64ca9e564c3b3a084 files/1.1.3/gcc34-nojava-fix.patch 329
+MD5 bf7df7ebe1373f6e2e5bd1e0425657bd files/1.1.3/gcc34-nptl-fix.patch 618
 MD5 d08ea5bce1e9a925cbd712607f89f920 files/1.1.3/newstlportfix.patch 10032
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 (file)
index 0000000..73017c1
--- /dev/null
@@ -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 (file)
index 0000000..3e3360b
--- /dev/null
@@ -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 (file)
index 0000000..2c3a4e3
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 (file)
index 0000000..f889276
--- /dev/null
@@ -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 (file)
index 0000000..49e03f6
--- /dev/null
@@ -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 (file)
index 0000000..a5c388f
--- /dev/null
@@ -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.
+       #
+       # <azarah@gentoo.org> (9 Sep 2002)
+
+       # Autoresponse file for main installation
+       cat > ${T}/rsfile-global <<-"END_RS"
+               [ENVIRONMENT]
+               INSTALLATIONMODE=INSTALL_NETWORK
+               INSTALLATIONTYPE=STANDARD
+               DESTINATIONPATH=<destdir>
+               OUTERPATH=
+               LOGFILE=
+               LANGUAGELIST=<LANGUAGE>
+
+               [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=<home>/.openoffice/<pv>
+
+               [JAVA]
+               JavaSupport=none
+       END_RS
+
+       # Fixing install location in response file
+       sed -e "s|<destdir>|${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>|${PV}|g" ${T}/rsfile-local > ${T}/autoresponse-${PV}.conf
+       doins ${T}/autoresponse-${PV}.conf
+
+       # Install wrapper script
+       exeinto /usr/bin
+       sed -e "s|<pv>|${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.
+               # <brad@gentoo.org> (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"
+}
+