diff options
author | Andreas Proschofsky <suka@gentoo.org> | 2004-05-05 10:00:00 +0000 |
---|---|---|
committer | Andreas Proschofsky <suka@gentoo.org> | 2004-05-05 10:00:00 +0000 |
commit | 350dbd17b3454eb6b75535fda997ac8bf35c9bd3 (patch) | |
tree | b69971d0801a49b66b60ec842a95171ee1c49631 /app-office | |
parent | Stable on x86 (Manifest recommit) (diff) | |
download | gentoo-2-350dbd17b3454eb6b75535fda997ac8bf35c9bd3.tar.gz gentoo-2-350dbd17b3454eb6b75535fda997ac8bf35c9bd3.tar.bz2 gentoo-2-350dbd17b3454eb6b75535fda997ac8bf35c9bd3.zip |
security fix
Diffstat (limited to 'app-office')
-rw-r--r-- | app-office/openoffice/ChangeLog | 8 | ||||
-rw-r--r-- | app-office/openoffice/files/1.0.3/neon.patch | 435 | ||||
-rw-r--r-- | app-office/openoffice/files/digest-openoffice-1.0.3-r2 | 5 | ||||
-rw-r--r-- | app-office/openoffice/openoffice-1.0.3-r2.ebuild | 697 |
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 "******************************************************************" +} + |