summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Proschofsky <suka@gentoo.org>2004-05-05 10:00:00 +0000
committerAndreas Proschofsky <suka@gentoo.org>2004-05-05 10:00:00 +0000
commit350dbd17b3454eb6b75535fda997ac8bf35c9bd3 (patch)
treeb69971d0801a49b66b60ec842a95171ee1c49631 /app-office/openoffice
parentStable on x86 (Manifest recommit) (diff)
downloadgentoo-2-350dbd17b3454eb6b75535fda997ac8bf35c9bd3.tar.gz
gentoo-2-350dbd17b3454eb6b75535fda997ac8bf35c9bd3.tar.bz2
gentoo-2-350dbd17b3454eb6b75535fda997ac8bf35c9bd3.zip
security fix
Diffstat (limited to 'app-office/openoffice')
-rw-r--r--app-office/openoffice/ChangeLog8
-rw-r--r--app-office/openoffice/files/1.0.3/neon.patch435
-rw-r--r--app-office/openoffice/files/digest-openoffice-1.0.3-r25
-rw-r--r--app-office/openoffice/openoffice-1.0.3-r2.ebuild697
4 files changed, 1144 insertions, 1 deletions
diff --git a/app-office/openoffice/ChangeLog b/app-office/openoffice/ChangeLog
index 0934314172a8..5c4b072086c0 100644
--- a/app-office/openoffice/ChangeLog
+++ b/app-office/openoffice/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-office/openoffice
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/ChangeLog,v 1.69 2004/04/27 09:31:15 aliz Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/ChangeLog,v 1.70 2004/05/05 10:00:00 suka Exp $
+
+*openoffice-1.0.3-r2 (05 May 2004)
+
+ 05 May 2004; suka@gentoo.org +files/1.0.3/neon.patch,
+ +openoffice-1.0.3-r2.ebuild:
+ Ancient versions also like their share of security love...
*openoffice-1.1.0-r5 (25 Apr 2004)
*openoffice-1.1.0-r4 (25 Apr 2004)
diff --git a/app-office/openoffice/files/1.0.3/neon.patch b/app-office/openoffice/files/1.0.3/neon.patch
new file mode 100644
index 000000000000..2380b6427acc
--- /dev/null
+++ b/app-office/openoffice/files/1.0.3/neon.patch
@@ -0,0 +1,435 @@
+*** misc/neon-0.14.0/src/config.h 2004-04-05 12:04:50.798954227 -0400
+--- misc/build/neon-0.14.0/src/config.h 2004-04-05 10:45:31.582523906 -0400
+***************
+*** 1 ****
+! dummy
+--- 1,111 ----
+!
+! /* Define to be the neon version string */
+! #define NEON_VERSION "0.14.0"
+!
+! /* Define to be major number of neon version */
+! #define NEON_VERSION_MAJOR (0)
+!
+! /* Define to be minor number of neon version */
+! #define NEON_VERSION_MINOR (14)
+!
+! /* Define to empty if the keyword does not work. */
+! /* #undef const */
+!
+! /* Define as __inline if that's what the C compiler calls it. */
+! #define inline
+!
+! /* Define if you need to in order for stat and other things to work. */
+! /* #undef _POSIX_SOURCE */
+!
+! /* Define if you have the ANSI C header files. */
+! #define STDC_HEADERS 1
+!
+! /* Unconditionally define _GNU_SOURCE */
+! #ifndef _GNU_SOURCE
+! # define _GNU_SOURCE 1
+! #endif
+!
+! /* Define if you have the strcasecmp function. */
+! #ifdef UNX
+! #define HAVE_STRCASECMP 1
+! #endif
+!
+! /* Define if you have the <arpa/inet.h> header file. */
+! #ifdef UNX
+! #define HAVE_ARPA_INET_H
+! #endif
+!
+! /* Define if you have the <limits.h> header file. */
+! #define HAVE_LIMITS_H 1
+!
+! /* Define if you have the <regex.h> header file. */
+! #define HAVE_REGEX_H 1
+!
+! /* Define if you have the <stdarg.h> header file. */
+! #define HAVE_STDARG_H 1
+!
+! /* Define if you have the <stdlib.h> header file. */
+! #define HAVE_STDLIB_H 1
+!
+! /* Define if you have the <string.h> header file. */
+! #define HAVE_STRING_H 1
+!
+! /* Define if you have the <strings.h> header file. */
+! #ifdef UNX
+! #define HAVE_STRINGS_H 1
+! #endif
+!
+! /* Define if you have the <sys/select.h> header file. */
+! #ifdef UNX
+! #define HAVE_SYS_SELECT_H 1
+! #endif
+!
+! /* Define if you have the <sys/time.h> header file. */
+! #ifdef UNX
+! #define HAVE_SYS_TIME_H 1
+! #endif
+!
+! /* Define if you have the <unistd.h> header file. */
+! #ifdef UNX
+! #define HAVE_UNISTD_H 1
+! #endif
+!
+! /* Define when building neon as a library */
+! #define NEON_IS_LIBRARY 1
+!
+! /* Support WebDAV locking through the library */
+! #define USE_DAV_LOCKS 1
+!
+! /* Define to enable debugging */
+! /*#define DEBUGGING 1*/
+!
+! /* Define to enable OpenSSL support */
+! /*#define ENABLE_SSL 1*/
+!
+! /* Define if you have expat */
+! #define HAVE_OLD_EXPAT 1
+! #define HAVE_EXPAT 1
+!
+! /* Define if you have libxml */
+! /* #define HAVE_LIBXML */
+!
+! /* Define if you have snprintf */
+! #ifdef UNX
+! #define HAVE_SNPRINTF 1
+! #endif
+!
+! #ifdef WIN32
+!
+! /* #define HAVE_MEMCPY */
+!
+! /* Win32 uses a underscore, so we use a macro to eliminate that. */
+! #define snprintf _snprintf
+! #define vsnprintf _vsnprintf
+! #define strcasecmp strcmpi
+! #define strncasecmp strnicmp
+! #define ssize_t int
+!
+! #include <io.h>
+! #define read _read
+!
+! #endif
+*** misc/neon-0.14.0/src/hip_xml.c 2001-04-25 18:07:42.000000000 -0400
+--- misc/build/neon-0.14.0/src/hip_xml.c 2004-04-05 11:53:42.840672156 -0400
+***************
+*** 812,818 ****
+
+ void hip_xml_set_error(hip_xml_parser *p, const char *msg)
+ {
+! snprintf(p->error, HIP_ERR_SIZE, msg);
+ }
+
+ #ifdef HAVE_LIBXML
+--- 812,818 ----
+
+ void hip_xml_set_error(hip_xml_parser *p, const char *msg)
+ {
+! snprintf(p->error, HIP_ERR_SIZE, "%s", msg);
+ }
+
+ #ifdef HAVE_LIBXML
+*** misc/neon-0.14.0/src/http_private.h 2001-04-01 20:56:04.000000000 -0400
+--- misc/build/neon-0.14.0/src/http_private.h 2004-04-05 10:45:31.583523751 -0400
+***************
+*** 105,110 ****
+--- 105,111 ----
+ unsigned int in_connect:1; /* doing a proxy CONNECT */
+ unsigned int request_secure_upgrade:1;
+ unsigned int accept_secure_upgrade:1;
++ unsigned int ftp:1;
+
+ http_use_proxy proxy_decider;
+ void *proxy_decider_udata;
+***************
+*** 129,134 ****
+--- 130,137 ----
+
+ /* Error string */
+ char error[BUFSIZ];
++
++ char *userinfo;
+ };
+
+ struct http_req_s {
+*** misc/neon-0.14.0/src/http_request.c 2001-04-29 08:25:44.000000000 -0400
+--- misc/build/neon-0.14.0/src/http_request.c 2004-04-05 10:45:31.586523284 -0400
+***************
+*** 206,211 ****
+--- 206,218 ----
+ return HTTP_VERSION_PRE11(sess);
+ }
+
++ void http_session_ftp(http_session *sess, const char *userinfo)
++ {
++ sess->ftp = 1;
++ HTTP_FREE(sess->userinfo);
++ sess->userinfo = ne_strdup(userinfo);
++ }
++
+ int http_session_server(http_session *sess, const char *hostname, int port)
+ {
+ if (sess->connected && !sess->have_proxy) {
+***************
+*** 359,364 ****
+--- 366,372 ----
+ HTTP_FREE(sess->server.hostport);
+ HTTP_FREE(sess->proxy.hostport);
+ HTTP_FREE(sess->user_agent);
++ HTTP_FREE(sess->userinfo);
+
+ if (sess->connected) {
+ close_connection(sess);
+***************
+*** 429,435 ****
+
+ const char *http_get_scheme(http_session *sess)
+ {
+! if (sess->use_secure) {
+ return "https";
+ } else {
+ return "http";
+--- 437,445 ----
+
+ const char *http_get_scheme(http_session *sess)
+ {
+! if (sess->ftp) {
+! return "ftp";
+! } else if (sess->use_secure) {
+ return "https";
+ } else {
+ return "http";
+***************
+*** 487,494 ****
+ sbuffer real_uri = sbuffer_create();
+ req->abs_path = ne_strdup(uri);
+ if (req->use_proxy && strcmp(uri, "*") != 0)
+! sbuffer_concat(real_uri, http_get_scheme(req->session), "://",
+! req->session->server.hostport, NULL);
+ sbuffer_zappend(real_uri, uri);
+ req->uri = sbuffer_finish(real_uri);
+ }
+--- 497,509 ----
+ sbuffer real_uri = sbuffer_create();
+ req->abs_path = ne_strdup(uri);
+ if (req->use_proxy && strcmp(uri, "*") != 0)
+! if (req->session->userinfo && *req->session->userinfo)
+! sbuffer_concat(real_uri, http_get_scheme(req->session), "://",
+! req->session->userinfo, "@",
+! req->session->server.hostport, NULL);
+! else
+! sbuffer_concat(real_uri, http_get_scheme(req->session), "://",
+! req->session->server.hostport, NULL);
+ sbuffer_zappend(real_uri, uri);
+ req->uri = sbuffer_finish(real_uri);
+ }
+*** misc/neon-0.14.0/src/http_request.h 2001-04-22 06:18:34.000000000 -0400
+--- misc/build/neon-0.14.0/src/http_request.h 2004-04-05 10:45:31.588522973 -0400
+***************
+*** 68,73 ****
+--- 68,75 ----
+ /* Finish an HTTP session */
+ int http_session_destroy(http_session *sess);
+
++ void http_session_ftp(http_session *sess, const char *userinfo);
++
+ /* Set the server or proxy server to be used for the session.
+ * Returns:
+ * HTTP_LOOKUP if the DNS lookup for hostname failed.
+*** misc/neon-0.14.0/src/makefile.mk 2004-04-05 12:04:50.747962139 -0400
+--- misc/build/neon-0.14.0/src/makefile.mk 2004-04-05 10:45:31.590522662 -0400
+***************
+*** 1 ****
+! dummy
+--- 1,109 ----
+! #*************************************************************************
+! #
+! # $RCSfile: neon.patch,v $
+! #
+! # $Revision: 1.1 $
+! #
+! # last change: $Author: suka $ $Date: 2004/05/05 10:00:00 $
+! #
+! # The Contents of this file are made available subject to the terms of
+! # either of the following licenses
+! #
+! # - GNU Lesser General Public License Version 2.1
+! # - Sun Industry Standards Source License Version 1.1
+! #
+! # Sun Microsystems Inc., October, 2000
+! #
+! # GNU Lesser General Public License Version 2.1
+! # =============================================
+! # Copyright 2000 by Sun Microsystems, Inc.
+! # 901 San Antonio Road, Palo Alto, CA 94303, USA
+! #
+! # This library is free software; you can redistribute it and/or
+! # modify it under the terms of the GNU Lesser General Public
+! # License version 2.1, as published by the Free Software Foundation.
+! #
+! # This library is distributed in the hope that it will be useful,
+! # but WITHOUT ANY WARRANTY; without even the implied warranty of
+! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+! # Lesser General Public License for more details.
+! #
+! # You should have received a copy of the GNU Lesser General Public
+! # License along with this library; if not, write to the Free Software
+! # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+! # MA 02111-1307 USA
+! #
+! #
+! # Sun Industry Standards Source License Version 1.1
+! # =================================================
+! # The contents of this file are subject to the Sun Industry Standards
+! # Source License Version 1.1 (the "License"); You may not use this file
+! # except in compliance with the License. You may obtain a copy of the
+! # License at http://www.openoffice.org/license.html.
+! #
+! # Software provided under this License is provided on an "AS IS" basis,
+! # WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+! # WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+! # MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+! # See the License for the specific provisions governing your rights and
+! # obligations concerning the Software.
+! #
+! # The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+! #
+! # Copyright: 2000 by Sun Microsystems, Inc.
+! #
+! # All Rights Reserved.
+! #
+! # Contributor(s): _______________________________________
+! #
+! #
+! #
+! #*************************************************************************
+!
+! PRJ=..$/..$/..$/..$/..
+!
+! PRJNAME=external
+! TARGET=neon
+! LIBTARGET=NO
+!
+! # --- Settings -----------------------------------------------------
+!
+! .INCLUDE : svpre.mk
+! .INCLUDE : settings.mk
+! .INCLUDE : sv.mk
+!
+! # --- Files --------------------------------------------------------
+!
+! CFLAGS+=-I$(SOLARINCDIR)$/external$/expat
+!
+! CDEFS+=-DHAVE_CONFIG_H
+!
+! SLOFILES= \
+! $(SLO)$/base64.obj \
+! $(SLO)$/dates.obj \
+! $(SLO)$/dav_207.obj \
+! $(SLO)$/dav_basic.obj \
+! $(SLO)$/dav_locks.obj \
+! $(SLO)$/dav_props.obj \
+! $(SLO)$/hip_xml.obj \
+! $(SLO)$/http_auth.obj \
+! $(SLO)$/http_basic.obj \
+! $(SLO)$/http_cookies.obj \
+! $(SLO)$/http_redirect.obj \
+! $(SLO)$/http_request.obj \
+! $(SLO)$/http_utils.obj \
+! $(SLO)$/md5.obj \
+! $(SLO)$/ne_alloc.obj \
+! $(SLO)$/neon_i18n.obj \
+! $(SLO)$/socket.obj \
+! $(SLO)$/string_utils.obj \
+! $(SLO)$/uri.obj
+!
+!
+! LIB1TARGET=$(SLB)$/$(TARGET).lib
+! LIB1ARCHIV=$(LB)$/lib$(TARGET).a
+! LIB1OBJFILES=$(SLOFILES)
+!
+! # --- Targets ------------------------------------------------------
+!
+! .INCLUDE : target.mk
+*** misc/neon-0.14.0/src/md5.c 2001-04-29 08:23:07.000000000 -0400
+--- misc/build/neon-0.14.0/src/md5.c 2004-04-05 10:45:31.591522506 -0400
+***************
+*** 280,288 ****
+ struct md5_ctx *ctx;
+ {
+ md5_uint32 correct_words[16];
+! const md5_uint32 *words = buffer;
+! size_t nwords = len / sizeof (md5_uint32);
+! const md5_uint32 *endp = words + nwords;
+ md5_uint32 A = ctx->A;
+ md5_uint32 B = ctx->B;
+ md5_uint32 C = ctx->C;
+--- 280,287 ----
+ struct md5_ctx *ctx;
+ {
+ md5_uint32 correct_words[16];
+! const unsigned char *words = buffer;
+! const unsigned char *endp = words + len;
+ md5_uint32 A = ctx->A;
+ md5_uint32 B = ctx->B;
+ md5_uint32 C = ctx->C;
+***************
+*** 315,322 ****
+ #define OP(a, b, c, d, s, T) \
+ do \
+ { \
+! a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \
+! ++words; \
+ CYCLIC (a, s); \
+ a += b; \
+ } \
+--- 314,323 ----
+ #define OP(a, b, c, d, s, T) \
+ do \
+ { \
+! md5_uint32 WORD_ = (md5_uint32)words[0] | ((md5_uint32)words[1] << 8) \
+! | ((md5_uint32)words[2] << 16) | ((md5_uint32)words[3] << 24); \
+! a += FF (b, c, d) + (*cwp++ = WORD_) + T; \
+! words += 4; \
+ CYCLIC (a, s); \
+ a += b; \
+ } \
+***************
+*** 433,439 ****
+
+ /* Writes the ASCII representation of the MD5 digest into the
+ * given buffer, which must be at least 33 characters long. */
+! void ne_md5_to_ascii(const unsigned char md5_buf[16], char *buffer)
+ {
+ int count;
+ for (count = 0; count<16; count++) {
+--- 434,440 ----
+
+ /* Writes the ASCII representation of the MD5 digest into the
+ * given buffer, which must be at least 33 characters long. */
+! void ne_md5_to_ascii(const unsigned char md5_buf[16], char *buffer)
+ {
+ int count;
+ for (count = 0; count<16; count++) {
+***************
+*** 445,451 ****
+
+ /* Reads the ASCII representation of an MD5 digest. The buffer must
+ * be at least 32 characters long. */
+! void ne_ascii_to_md5(const char *buffer, unsigned char md5_buf[16])
+ {
+ int count;
+ for (count = 0; count<16; count++) {
+--- 446,452 ----
+
+ /* Reads the ASCII representation of an MD5 digest. The buffer must
+ * be at least 32 characters long. */
+! void ne_ascii_to_md5(const char *buffer, unsigned char md5_buf[16])
+ {
+ int count;
+ for (count = 0; count<16; count++) {
diff --git a/app-office/openoffice/files/digest-openoffice-1.0.3-r2 b/app-office/openoffice/files/digest-openoffice-1.0.3-r2
new file mode 100644
index 000000000000..c06239430854
--- /dev/null
+++ b/app-office/openoffice/files/digest-openoffice-1.0.3-r2
@@ -0,0 +1,5 @@
+MD5 984146931906a7d53300b29f58f6a899 OOo_1.0.3_source.tar.bz2 165475319
+MD5 cd4dd34b623a8704fbc800de79705171 STLport-4.5.3.tar.gz 739943
+MD5 fdb06fdb5a4670b172f9fb738b717be9 gpc231.tar.Z 27917
+MD5 09775a4111e066f782866d8a57d8481b freetype-2.1.3.tar.bz2 790213
+MD5 ff3eb5095a74ae7a9b2918ef5874288f helpcontent_01_unix.tgz 12693536
diff --git a/app-office/openoffice/openoffice-1.0.3-r2.ebuild b/app-office/openoffice/openoffice-1.0.3-r2.ebuild
new file mode 100644
index 000000000000..ea8488ee7cc1
--- /dev/null
+++ b/app-office/openoffice/openoffice-1.0.3-r2.ebuild
@@ -0,0 +1,697 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/openoffice-1.0.3-r2.ebuild,v 1.1 2004/05/05 10:00:00 suka Exp $
+
+# IMPORTANT: This is extremely alpha!!!
+
+# 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:
+#
+# Support for installing more than one language pack.
+# Support for installing native-dictionaries. (maybe ooodi is enough?)
+
+# Language Check
+[ -z ${LANGUAGE} ] && LANGUAGE=01
+
+case ${LANGUAGE} in
+ 01|07|33|34|35|39|42|46|49|81|82|86|88)
+ LHELP=${LANGUAGE}
+ ;;
+ *)
+ LHELP=01
+ HSUPPORT=false
+ ;;
+esac
+case ${LANGUAGE} in
+ 01|03|07|30|31|33|34|35|34c|37|39|45|46|48|49|55|66|81|82|86|88|90|91|96|97)
+ LANGUAGE=${LANGUAGE}
+ ;;
+ *)
+ LANGUAGE=01
+ LSUPPORT=false
+ ;;
+esac
+case $LANGUAGE in
+ # ENUS is always set
+ # 01) LENV="RES_ENUS";;
+ 03) LENV="RES_PORT";;
+ 07) LENV="RES_RUSS";;
+ 30) LENV="RES_GREEK";;
+ 33) LENV="RES_FREN";;
+ 34) LENV="RES_SPAN";;
+ 35) LENV="RES_FINN";;
+ 34c|37) LENV="RES_CAT";;
+ 39) LENV="RES_ITAL";;
+ 45) LENV="RES_DAN";;
+ 46) LENV="RES_SWED";;
+ 48) LENV="RES_POL";;
+ 49) LENV="RES_GER";;
+ 55) LENV="RES_PORTBR";;
+ 66) LENV="RES_THAI";;
+ 81) LENV="RES_JAPN";;
+ 82) LENV="RES_KOREAAN";;
+ 86) LENV="RES_CHINSIM";;
+ 88) LENV="RES_CHINTRAD";;
+ 90) LENV="RES_TURK";;
+ 91) LENV="RES_HINDI";;
+ 96) LENV="RES_ARAB";;
+ 97) LENV="RES_HEBREW";;
+esac
+
+inherit flag-o-matic eutils
+# Compile problems with these ...
+
+filter-flags "-funroll-loops"
+filter-flags "-fomit-frame-pointer"
+replace-flags "-O3" "-O2"
+
+ALLOWED_FLAGS="-O -O1 -O2 -Os -mcpu -march -pipe"
+strip-flags
+
+# Enable Bytecode Interpreter for freetype ...
+append-flags "-DTT_CONFIG_OPTION_BYTECODE_INTERPRETER"
+
+inherit gcc
+# We want gcc3 if possible!!!!
+export WANT_GCC_3="yes"
+
+inherit virtualx
+
+# 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"
+
+
+LOC="/opt"
+FT_VER="2.1.3"
+STLP_VER="4.5.3"
+
+INSTDIR="${LOC}/OpenOffice.org${PV}"
+S="${WORKDIR}/oo_${PV}_src"
+DESCRIPTION="OpenOffice.org, a full office productivity suite."
+SRC_URI="http://ny1.mirror.openoffice.org/stable/${PV}/OOo_${PV}_source.tar.bz2
+ http://sf1.mirror.openoffice.org/stable/${PV}/OOo_${PV}_source.tar.bz2
+ http://www.stlport.org/archive/STLport-${STLP_VER}.tar.gz
+ ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.tar.Z
+ mirror://sourceforge/freetype/freetype-${FT_VER}.tar.bz2
+ ftp://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/helpcontent_${LHELP}_unix.tgz"
+
+HOMEPAGE="http://www.openoffice.org/"
+
+LICENSE="LGPL-2 | SISSL-1.1"
+SLOT="0"
+KEYWORDS="x86 ppc ~sparc"
+IUSE="gnome kde"
+
+RDEPEND=">=sys-libs/glibc-2.1
+ >=dev-lang/perl-5.0
+ virtual/x11
+ app-arch/zip
+ app-arch/unzip
+ dev-libs/expat
+ >=virtual/jdk-1.3.1
+ virtual/lpr
+ ppc? ( >=sys-libs/glibc-2.2.5-r7
+ >=sys-devel/gcc-3.2 )" # needed for sqrtl patch recently introduced
+
+DEPEND="${RDEPEND}
+ app-shells/tcsh
+ !app-office/openoffice-bin
+ !app-arch/star"
+
+# fix a bug with tcsh and dircolors
+#
+# Azarah -- 10 April 2002
+export LS_COLORS=""
+
+pkg_setup() {
+
+ if [ "$(gcc-version)" != "3.2" ] && [ "$(gcc-version)" != "3.3" ]
+ then
+ eerror
+ eerror "This build needs gcc-3.{2,3}.x, but due to profile"
+ eerror "settings, it cannot DEPEND on it, so please merge it"
+ eerror "manually:"
+ eerror
+ eerror " # ebuild ${PORTDIR}/sys-devel/gcc/gcc-3.2.1.ebuild merge"
+ eerror
+ eerror "Please make sure that you use the latest availible revision of"
+ eerror "gcc."
+ eerror
+ die
+ fi
+
+ if [ -z "$(echo ${JDK_HOME} | grep "blackdown")" ] && [ "${FORCE_JAVA}" != "yes" ]
+ then
+ eerror
+ eerror "This ebuild has only been tested with the blackdown port of"
+ eerror "java. If you use another java implementation, it could fail"
+ eerror "horribly, so please merge the blackdown-jdk and set it as"
+ eerror "system VM before proceeding:"
+ eerror
+ eerror " # emerge blackdown-jdk"
+ eerror " # java-config --set-system-vm=blackdown-jdk-<VERSION>"
+ eerror " # env-update"
+ eerror " # source /etc/profile"
+ eerror
+ eerror "Please adjust <VERSION> according to the version installed in"
+ eerror "/opt."
+ eerror
+ eerror "If you however want to test another JDK (not officially supported),"
+ eerror "you could do the following:"
+ eerror
+ eerror " # export FORCE_JAVA=yes"
+ eerror
+ die
+ fi
+
+ 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. "
+ ewarn "****************************************************************"
+
+ ewarn "****************************************************************"
+ ewarn " Selected Lanuage: ${LANGUAGE} "
+ ewarn " "
+ ewarn " To build Openoffice in your native language start emerge with "
+ ewarn " LANGUAGE=XX emerge openoffice "
+ ewarn " To see all supported languagess visit. (as well as for the "
+ ewarn " specific LANGUAGE=XX settings you might need "
+ ewarn " http://l10n.openoffice.org/all_supported_languages.html "
+ ewarn " "
+ ewarn " To install language specified dictionaries emerge ooodi "
+ ewarn "****************************************************************"
+
+ if [ "${LSUPPORT}" = "false" ];
+ then
+ ewarn "****************************************************************"
+ ewarn " Your language is not supported by OpenOffice, "
+ ewarn " falling back to default value !!! "
+ ewarn "****************************************************************"
+ elif [ "${HSUPPORT}" = "false" ];
+ then
+ ewarn "****************************************************************"
+ ewarn " There are no helpfiles available for your language, "
+ ewarn " falling back to default value !!! "
+ ewarn "****************************************************************"
+ fi
+
+}
+
+oo_setup() {
+
+# unset LANGUAGE
+# unset LANG
+
+ 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" ]
+ 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 or gcc-3.3!"
+ 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
+
+ export JAVA_BINARY="`which java`"
+}
+
+src_unpack() {
+
+ oo_setup
+
+ cd ${WORKDIR}
+ unpack OOo_${PV}_source.tar.bz2 gpc231.tar.Z
+
+ # Install gpc
+ cd ${WORKDIR}/gpc231
+ cp gpc.* ${S}/external/gpc
+
+ cd ${S}
+
+ #Security fix
+ rm neon/neon.patch
+ cp ${FILESDIR}/${PV}/neon.patch ${S}/neon
+
+ # This resolves missing symbols (Debian)
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-compiler-flags.patch
+
+ # Misc Debian patches to fixup build
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-no-mozab.patch
+ echo "moz moz : NULL" > ${S}/moz/prj/build.lst
+
+ # Misc patches from Mandrake
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-fix-asm.patch
+
+ # Get OO to use STLport-4.5.3 (Az)
+ cp ${DISTDIR}/STLport-${STLP_VER}.tar.gz ${S}/stlport/download || die
+ cd ${S}/stlport
+ if [ "${NEW_GCC}" -eq "1" ]
+ then
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-use-STLport-4.5.3-newgcc.patch
+ else
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-use-STLport-4.5.3.patch
+ fi
+ cd ${S}
+
+ # Seth -- Dec 1 2002
+ if [ "$(echo ${JAVA_BINARY} | egrep 'j(2s)?dk-1.4')" ]
+ then
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-fix-jdk-1.4.0.patch
+ fi
+
+ # Debian patch to fix an xinteraction handler build error (Seth)
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-xinteraction-fix.patch
+
+ # Get OO to build with freetype-2.1.3
+ einfo "Moving freetype-${FT_VER}.tar.bz2 in place ..."
+ cp ${DISTDIR}/freetype-${FT_VER}.tar.bz2 ${S}/freetype/download || die
+ # We need it as a .tar.gz ...
+ bzip2 -d ${S}/freetype/download/freetype-${FT_VER}.tar.bz2 || die
+ gzip -1 ${S}/freetype/download/freetype-${FT_VER}.tar
+ # OK, copy the new patch in place, and fixup some other things ...
+ cp ${FILESDIR}/${PV}/freetype-${FT_VER}.patch ${S}/freetype || die
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.1-use-freetype-${FT_VER}.patch
+
+ # Now for our optimization flags ...
+ perl -pi -e "s|^CFLAGSOPT=.*|CFLAGSOPT=${CFLAGS}|g" \
+ ${S}/solenv/inc/unxlngi3.mk
+ perl -pi -e "s|^CFLAGSOPT=.*|CFLAGSOPT=${CFLAGS}|g" \
+ ${S}/solenv/inc/unxlngi4.mk
+
+ # Some makefiles are not multiprocess ready (Mandrake)
+ cd ${S}; einfo "Fixing makefiles for multiprocess builds..."
+ for x in io/source/stm dtrans/source/X11 idlc/source nas zlib toolkit/util \
+ comphelper/util padmin/source svtools/util bridges/source/prot_uno \
+ ucb/source/ucp/ftpproxy framework/util framework/source/unotypes
+ do
+ perl -pi -e "s/^(PRJNAME)/MAXPROCESS=1\n\1/" ${x}/makefile.mk
+ done
+
+ epatch ${FILESDIR}/${PV}/${PN}-errno.patch
+# einfo "Lets patch to get AA fonts..."
+# epatch ${FILESDIR}/${PV}/${PN}-1.0.2-default-fonts.patch
+ epatch ${FILESDIR}/${PV}/${PN}-1.0.2-ft-antialias-advice.patch
+
+ #This patches the stupid printer problem (to upgrade to 1.0.3.1)
+ epatch ${FILESDIR}/${PV}/vcl.printcxx.OOO_STABLE_1_PORTS.100102.patch
+
+ # Patches for sparc
+ if [ "${ARCH}" = "sparc" ]
+ then
+ epatch $FILESDIR/${PV}/openoffice-1.0.3-sparc-gentoo.patch
+ epatch $FILESDIR/${PV}/openoffice-1.0.1-sparc.patch.bz2
+ fi
+
+}
+
+get_EnvSet() {
+
+ # Determine what Env file we should be using (Az)
+ export LinuxEnvSet="LinuxIntelEnv.Set"
+ use sparc && export LinuxEnvSet="LinuxSparcEnv.Set"
+ use sparc64 && export LinuxEnvSet="LinuxSparcEnv.Set"
+ use ppc && export LinuxEnvSet="LinuxPPCEnv.Set"
+ use alpha && export LinuxEnvSet="LinuxAlphaEnv.Set"
+
+ # Get build specific stuff (Az)
+ export SOLVER="$(awk '/^setenv UPD / {gsub(/\"/, ""); print $3}' ${LinuxEnvSet})"
+ export SOLPATH="$(awk '/^setenv INPATH / {gsub(/\"/, ""); print $3}' ${LinuxEnvSet})"
+}
+
+src_compile() {
+
+ local buildcmd=""
+
+ oo_setup
+
+ # Setup default compilers (We overide gcc2 if that is default here)
+ export CC="$(gcc-getCC)"
+ export CXX="$(gcc-getCXX)"
+
+ # http://www.gentoo.org/proj/en/hardened/etdyn-ssp.xml - #27761
+ if has_version "sys-devel/hardened-gcc"
+ then
+ export CC="${CC} -yet_exec"
+ export CXX="${CXX} -yet_exec"
+ fi
+
+ # Enable ccache for this build (Az)
+ if [ "${FEATURES/-ccache/}" = "${FEATURES}" -a \
+ "${FEATURES/ccache/}" != "${FEATURES}" -a \
+ -f /usr/bin/ccache -a -x /usr/bin/ccache ]
+ then
+ einfo "We're using ccache for this build..."
+ # Build uses its own env with $PATH, etc, so
+ # we take the easy way out. (Az)
+ export CC="/usr/bin/ccache ${CC}"
+ export CXX="/usr/bin/ccache ${CXX}"
+ fi
+
+ # Enable distcc for this build (Az)
+ if [ "${FEATURES/-distcc/}" = "${FEATURES}" -a \
+ "${FEATURES/distcc/}" != "${FEATURES}" -a \
+ -f /usr/bin/distcc -a -x /usr/bin/distcc ]
+ then
+ einfo "We're using distcc for this build..."
+ # Do not bump ECPUS if the user did not touch it, as currently
+ # it -PP do not work properly (segfaulting). (Az)
+ [ "$(echo ${DISTCC_HOSTS} | wc -w)" -gt 1 -a "${ECPUS}" -qt 1 ] && \
+ export ECPUS="$(echo ${DISTCC_HOSTS} | wc -w)"
+
+ export CC="/usr/bin/distcc ${CC}"
+ export CXX="/usr/bin/distcc ${CXX}"
+ 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..."
+ cd ${S}/config_office
+ rm -f config.cache
+ ./configure --enable-gcc3 \
+ --with-jdk-home=${JAVA_HOME} \
+ --with-x || die
+
+ cd ${S}
+ get_EnvSet
+
+ # Set language
+ [ ${LENV} ] && echo "setenv ${LENV} \"true\"" >> ${S}/${LinuxEnvSet}
+
+ # Do not include /usr/include in header search path, and
+ # same thing for internal gcc include dir, as gcc3 handles
+ # it correctly by default! (Az)
+ perl -pi -e "s| -I/usr/include||g" ${LinuxEnvSet}
+# perl -pi -e "s| -I$(gcc-libpath)/include||g" ${LinuxEnvSet}
+
+ if [ "${NEW_GCC}" -eq "1" ]
+ then
+ local gcc_path="$(/usr/sbin/gcc-config --get-bin-path ${GCC_PROFILE})"
+
+ # Setup path for new gcc layout in $LinuxEnvSet, else the build
+ # environment will not find gcc ... (Az)
+ perl -pi -e "s|PATH \.:\$SOLARVER|PATH \.:${gcc_path}:\$SOLARVER|" ${LinuxEnvSet}
+ # New builds start quoting stuff ...
+ perl -pi -e "s|PATH \"\.:\$SOLARVER|PATH \"\.:${gcc_path}:\$SOLARVER|" ${LinuxEnvSet}
+ fi
+
+ # 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 -PP${ECPUS} product=full"
+ else
+ buildcmd="${S}/solenv/bin/build.pl -all product=full"
+ fi
+
+ if [ -z "$(grep 'CCCOMP' ${S}/${LinuxEnvSet})" ]
+ then
+ # Set CCCOMP and CXXCOMP. This is still needed for STLport
+ echo "setenv CCCOMP \"${CC}\"" >> ${S}/${LinuxEnvSet}
+ echo "setenv CXXCOMP \"${CXX}\"" >> ${S}/${LinuxEnvSet}
+ fi
+
+ if [ "$(gcc-major-version)" -eq 3 ]
+ then
+ mkdir -p ${S}/solver/${SOLVER}/${SOLPATH}/{lib,inc}
+
+ einfo "Installing GCC related libs..."
+ # Workaround for missing libs with GCC3 (thanks to Debian) (Az)
+ cd ${S}/solver/${SOLVER}/${SOLPATH}/lib
+ cp $(gcc-libpath)/libstdc++.so.$(gcc-libstdcxx-major-version)* . || \
+ die "Could not copy gcc-libs!"
+ cp $(gcc-libpath)/libgcc_s.so* . || die "Could not copy gcc-libs!"
+ cd ${S}
+ fi
+
+ einfo "Bootstrapping OpenOffice.org..."
+ # Get things ready for bootstrap (Az)
+ chmod 0755 ${S}/solenv/bin/*.pl
+ mkdir -p ${S}/solver/${SOLVER}/${SOLPATH}/inc
+ touch ${S}/solver/${SOLVER}/${SOLPATH}/inc/minormkchanged.flg
+ # Bootstrap ...
+ ./bootstrap
+
+ if [ "$(gcc-major-version)" -eq 3 ]
+ then
+ local LIBFILE="$(readlink `gcc-libpath`/libstdc++.so.`gcc-libstdcxx-major-version`)"
+ local LIBVERSION="$(echo ${LIBFILE} | sed -e 's|libstdc++\.so\.||g')"
+ # Get this beast to use the right version of libstdc++ ... (Az)
+ echo "LIBSTDCPP3:=${LIBVERSION}" >> \
+ ${S}/solver/${SOLVER}/${SOLPATH}/inc/comp_ver.mk
+ cd ${S}
+ fi
+
+ # unpack help files
+ mkdir -p ${S}/solver/641/unxlngi4.pro/pck
+ cd ${S}/solver/641/unxlngi4.pro/pck
+ tar -xzf ${DISTDIR}/helpcontent_${LHELP}_unix.tgz
+ cd ${S}
+
+ einfo "Building OpenOffice.org..."
+ # Setup virtualmake
+ export maketype="tcsh"
+ echo "source ${S}/${LinuxEnvSet} && cd ${S}/instsetoo && ${buildcmd}" > build.tcsh
+ # Build needs X to compile! (Az)
+ virtualmake build.tcsh || 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"
+
+ get_EnvSet
+
+ # Added by Jason Wever <weeve@gentoo.org>
+ # For some weird reason, when you get done building
+ # the source on sparc, it doesn't have a readme file in place
+ # for the installation program (probably due to a non-supported
+ # arch/os combo. This fixed that
+ if [ "${ARCH}" = "sparc" ]
+ then
+ cp ${S}/readlicense_oo/source/readme/unxlngi4/README \
+ ${S}/instsetoo/unxlngs.pro/${LANGUAGE}/normal/README
+ fi
+
+
+ # The install part should now be relatively OK compared to
+ # what it was. Basically we use autoresponse files to install
+ # unattended, running under a Xvfb if needed. 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 isntallation
+ 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
+
+ einfo "Installing OpenOffice.org into build root..."
+ dodir ${INSTDIR}
+ cd ${S}/instsetoo/${SOLPATH}/${LANGUAGE}/normal
+ # Setup virtualmake
+ export maketype="./setup"
+ # We need X to install...
+ virtualmake "-v -r:${T}/autoresponse"
+
+ echo
+ einfo "Removing build root from registry..."
+ # Remove totally useless stuff.
+ rm -f ${D}${INSTDIR}/program/{setup.log,sopatchlevel.sh}
+ # 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.conf
+ doins ${T}/autoresponse.conf
+
+ # Install wrapper script
+ exeinto /usr/bin
+ sed -e "s|<pv>|${PV}|g" \
+ ${FILESDIR}/${PV}/ooffice-wrapper-1.3 > ${T}/ooffice
+ doexe ${T}/ooffice
+ sed -e "s|/soffice|/spadmin|g" \
+ ${T}/ooffice > ${T}/oopadmin
+ doexe ${T}/oopadmin
+
+ # Component symlinks
+ dosym ooffice /usr/bin/oocalc
+ dosym ooffice /usr/bin/oodraw
+ dosym ooffice /usr/bin/ooimpress
+ dosym ooffice /usr/bin/oomath
+ dosym ooffice /usr/bin/oowriter
+ dosym ooffice /usr/bin/oosetup
+
+ einfo "Installing Menu shortcuts (need \"gnome\" or \"kde\" in USE)..."
+ if [ -n "`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
+
+ for x in ${D}${INSTDIR}/share/gnome/net/*.desktop
+ do
+ # We have to handle setup differently
+ perl -pi -e "s:${INSTDIR}/program/setup:/usr/bin/oosetup:g" ${x}
+ # Now fix the rest
+ perl -pi -e "s:${INSTDIR}/program/s:/usr/bin/oo:g" ${x}
+ doins ${x}
+ done
+ fi
+
+ if [ -n "`use kde`" ]
+ then
+ local kdeloc="${D}${INSTDIR}/share/kde/net/applnk/OpenOffice.org${PV}"
+
+ # Portage do not work with the space ..
+ mv ${D}${INSTDIR}/share/kde/net/applnk/OpenOffice.org\ ${PV} ${kdeloc}
+
+ insinto /usr/share/applnk/OpenOffice.org
+ # Install the files needed for the catagory
+ doins ${kdeloc}/.directory
+ doins ${kdeloc}/.order
+ dodir /usr/share
+ # Install the icons and mime info
+ cp -a ${D}${INSTDIR}/share/kde/net/mimelnk/share/* ${D}/usr/share
+
+ for x in ${kdeloc}/*.desktop
+ do
+ # We have to handle setup differently
+ perl -pi -e "s:${INSTDIR}/program/setup:/usr/bin/oosetup:g" ${x}
+ # Now fix the rest
+ perl -pi -e "s:${INSTDIR}/program/s:/usr/bin/oo:g" ${x}
+ doins ${x}
+ done
+ fi
+
+ # Unneeded, as they get installed into /usr/share...
+ rm -rf ${D}${INSTDIR}/share/{cde,gnome,kde}
+
+ for f in ${D}/usr/share/gnome/apps/OpenOffice.org/* ; do
+ echo 'Categories=Application;Office;' >> ${f}
+ done
+
+ # Make sure these do not get nuked.
+ keepdir ${INSTDIR}/user/config/registry/instance/org/openoffice/{Office,ucb}
+ keepdir ${INSTDIR}/user/psprint/{driver,fontmetric}
+ keepdir ${INSTDIR}/user/{autocorr,backup,plugin,store,temp,template}
+}
+
+pkg_preinst() {
+
+ # The one with OO-1.0.0 was not valid
+ if [ -f ${ROOT}/etc/openoffice/autoresponse.conf ]
+ then
+ rm -f ${ROOT}/etc/openoffice/autoresponse.conf
+ fi
+}
+
+pkg_postinst() {
+
+ einfo "******************************************************************"
+ 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 or oowriter"
+ einfo
+ einfo " If the fonts appear garbled in the user interface refer to "
+ einfo " Bug 8539, or http://www.openoffice.org/FAQs/fontguide.html#8"
+ einfo
+ einfo "******************************************************************"
+}
+