summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schlemmer <azarah@gentoo.org>2002-09-22 14:13:49 +0000
committerMartin Schlemmer <azarah@gentoo.org>2002-09-22 14:13:49 +0000
commit37c8277739c1632f1ab9832592259d270eb8a615 (patch)
treefd900618ebbbcf5709f2c2b807f3954bd8332646 /app-office/openoffice
parentUnmasked stable openmosix-sources (diff)
downloadgentoo-2-37c8277739c1632f1ab9832592259d270eb8a615.tar.gz
gentoo-2-37c8277739c1632f1ab9832592259d270eb8a615.tar.bz2
gentoo-2-37c8277739c1632f1ab9832592259d270eb8a615.zip
freetype-2.1.2 support
Diffstat (limited to 'app-office/openoffice')
-rw-r--r--app-office/openoffice/ChangeLog9
-rw-r--r--app-office/openoffice/files/1.0.1/freetype-2.1.2.patch90
-rw-r--r--app-office/openoffice/files/1.0.1/openoffice-1.0.1-use-freetype-2.1.2.patch319
-rw-r--r--app-office/openoffice/files/digest-openoffice-1.0.1-r14
-rw-r--r--app-office/openoffice/openoffice-1.0.1-r1.ebuild535
5 files changed, 956 insertions, 1 deletions
diff --git a/app-office/openoffice/ChangeLog b/app-office/openoffice/ChangeLog
index 84fdd6ba4d8a..bd671a14134d 100644
--- a/app-office/openoffice/ChangeLog
+++ b/app-office/openoffice/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-office/openoffice
# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/ChangeLog,v 1.7 2002/09/16 22:45:18 azarah Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/ChangeLog,v 1.8 2002/09/22 14:13:49 azarah Exp $
+
+*openoffice-1.0.1-r1 (22 Sep 2002)
+
+ 22 Sep 2002; Martin Schlemmer <azarah@gentoo.org> :
+ Enable bytecode interpreter, and build against freetype-2.1.2,
+ based on great work from Paul de Vrieze <gentoo-bugs@devrieze.net>.
+ This should close bug #8096.
17 Sep 2002; Martin Schlemmer <azarah@gentoo.org> :
Fix openoffice-1.0.1-parallel-build.patch, as stupid
diff --git a/app-office/openoffice/files/1.0.1/freetype-2.1.2.patch b/app-office/openoffice/files/1.0.1/freetype-2.1.2.patch
new file mode 100644
index 000000000000..21202e315309
--- /dev/null
+++ b/app-office/openoffice/files/1.0.1/freetype-2.1.2.patch
@@ -0,0 +1,90 @@
+diff -ru misc/freetype-2.1.2/builds/compiler/visualc.mk misc/build/freetype-2.1.2/builds/compiler/visualc.mk
+--- misc/freetype-2.1.2/builds/compiler/visualc.mk 2000-12-14 00:44:33.000000000 +0100
++++ misc/build/freetype-2.1.2/builds/compiler/visualc.mk 2002-09-20 10:20:11.000000000 +0200
+@@ -63,7 +63,7 @@
+ # ANSI compliance.
+ #
+ ifndef CFLAGS
+- CFLAGS := /nologo /c /Ox /G5 /W3 /WX
++ CFLAGS := /nologo /c /Ox /G5 /W3 /WX /MT /Gd -D_CTYPE_DISABLE_MACROS
+ endif
+
+ # ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
+diff -ru misc/freetype-2.1.2/builds/unix/ltmain.sh misc/build/freetype-2.1.2/builds/unix/ltmain.sh
+--- misc/freetype-2.1.2/builds/unix/ltmain.sh 2002-03-05 16:09:59.000000000 +0100
++++ misc/build/freetype-2.1.2/builds/unix/ltmain.sh 2002-09-20 10:20:11.000000000 +0200
+@@ -643,7 +643,7 @@
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+- command="$base_compile $srcfile"
++ command="$base_compile $srcfile -DPIC $pic_flag"
+ else
+ # All platforms use -DPIC, to notify preprocessed assembler code.
+ command="$base_compile $srcfile $pic_flag -DPIC"
+@@ -2274,7 +2274,7 @@
+ ;;
+
+ irix)
+- major=`expr $current - $age + 1`
++ major=`expr $current - $age`
+ verstring="sgi$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+diff -ru misc/freetype-2.1.2/include/freetype/config/ftmodule.h misc/build/freetype-2.1.2/include/freetype/config/ftmodule.h
+--- misc/freetype-2.1.2/include/freetype/config/ftmodule.h 2002-05-21 16:13:00.000000000 +0200
++++ misc/build/freetype-2.1.2/include/freetype/config/ftmodule.h 2002-09-20 10:21:40.000000000 +0200
+@@ -1,7 +1,9 @@
+ FT_USE_MODULE(autohint_module_class)
+ FT_USE_MODULE(cff_driver_class)
+ FT_USE_MODULE(t1cid_driver_class)
++/*
+ FT_USE_MODULE(pcf_driver_class)
++*/
+ FT_USE_MODULE(bdf_driver_class)
+ FT_USE_MODULE(psaux_module_class)
+ FT_USE_MODULE(psnames_module_class)
+@@ -13,4 +15,6 @@
+ FT_USE_MODULE(t1_driver_class)
+ FT_USE_MODULE(t42_driver_class)
+ FT_USE_MODULE(pfr_driver_class)
++/*
+ FT_USE_MODULE(winfnt_driver_class)
++*/
+diff -ru misc/freetype-2.1.2/include/freetype/config/ftoption.h misc/build/freetype-2.1.2/include/freetype/config/ftoption.h
+--- misc/freetype-2.1.2/include/freetype/config/ftoption.h 2002-09-20 09:58:44.000000000 +0200
++++ misc/build/freetype-2.1.2/include/freetype/config/ftoption.h 2002-09-20 10:20:11.000000000 +0200
+@@ -101,7 +101,10 @@
+ /* All convenience functions are declared as such in their */
+ /* documentation. */
+ /* */
++/*
+ #undef FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
++*/
++#define FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
+
+
+ /*************************************************************************/
+@@ -139,8 +142,10 @@
+ /* use a vector `plotter' format that isn't supported when this */
+ /* macro is undefined. */
+ /* */
++/*
+ #define FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS
+-
++*/
++#undef FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS
+
+ /*************************************************************************/
+ /* */
+--- misc/freetype-2.1.2/include/freetype/config/ftoption.h.orig Sun Sep 8 13:10:22 2002
++++ misc/build/freetype-2.1.2/include/freetype/config/ftoption.h Sun Sep 8 13:31:32 2002
+@@ -375,7 +375,7 @@
+ /* By undefining this, you will only compile the code necessary to load */
+ /* TrueType glyphs without hinting. */
+ /* */
+-#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
++#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
+
+
+ /*************************************************************************/
diff --git a/app-office/openoffice/files/1.0.1/openoffice-1.0.1-use-freetype-2.1.2.patch b/app-office/openoffice/files/1.0.1/openoffice-1.0.1-use-freetype-2.1.2.patch
new file mode 100644
index 000000000000..8500b73d0dfd
--- /dev/null
+++ b/app-office/openoffice/files/1.0.1/openoffice-1.0.1-use-freetype-2.1.2.patch
@@ -0,0 +1,319 @@
+Index: oo_cvs/vcl/source/glyphs/gcach_ftyp.cxx
+===================================================================
+RCS file: /cvs/oo/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
+retrieving revision 1.69
+diff -u -3 -p -r1.69 gcach_ftyp.cxx
+--- oo_cvs/vcl/source/glyphs/gcach_ftyp.cxx 2002/01/02 10:38:06 1.69
++++ oo_cvs/vcl/source/glyphs/gcach_ftyp.cxx 2002/06/17 14:37:50
+@@ -104,6 +104,13 @@
+ #include "freetype/internal/sfnt.h"
+ #include "freetype/internal/ftstream.h"
+
++// Freetype versions < 2.1 used different stream macro names
++#ifndef FT_NEXT_USHORT
++#define FT_NEXT_USHORT NEXT_UShort
++#define FT_NEXT_SHORT NEXT_Short
++#define FT_NEXT_LONG NEXT_Long
++#endif
++
+ #include <svapp.hxx>
+ #include <settings.hxx>
+ #include <tools/lang.hxx>
+@@ -1200,29 +1207,29 @@ ULONG FreetypeServerFont::GetKernPairs(
+ ImplKernPairData aKernPair;
+
+ const FT_Byte* pBuffer = pKern;
+- USHORT nVersion = NEXT_UShort( pBuffer );
+- USHORT nTableCnt = NEXT_UShort( pBuffer );
++ USHORT nVersion = FT_NEXT_USHORT( pBuffer );
++ USHORT nTableCnt = FT_NEXT_USHORT( pBuffer );
+ if( nVersion != 0 ) // ignore Apple's versions for now
+ nTableCnt = 0;
+ for( USHORT nTableIdx = 0; nTableIdx < nTableCnt; ++nTableIdx )
+ {
+- USHORT nSubVersion = NEXT_UShort( pBuffer );
+- USHORT nSubLength = NEXT_UShort( pBuffer );
+- USHORT nSubCoverage = NEXT_UShort( pBuffer );
++ USHORT nSubVersion = FT_NEXT_USHORT( pBuffer );
++ USHORT nSubLength = FT_NEXT_USHORT( pBuffer );
++ USHORT nSubCoverage = FT_NEXT_USHORT( pBuffer );
+ if( (nSubCoverage&0x03) != 0x01 ) // no interest in minimum info here
+ continue;
+ switch( nSubCoverage >> 8 )
+ {
+ case 0: // version 0, kerning format 0
+ {
+- USHORT nPairs = NEXT_UShort( pBuffer );
++ USHORT nPairs = FT_NEXT_USHORT( pBuffer );
+ pBuffer += 6; // skip search hints
+ aKernGlyphVector.reserve( aKernGlyphVector.size() + nPairs );
+ for( int i = 0; i < nPairs; ++i )
+ {
+- aKernPair.mnChar1 = NEXT_UShort( pBuffer );
+- aKernPair.mnChar2 = NEXT_UShort( pBuffer );
+- /*long nUnscaledKern=*/ NEXT_Short( pBuffer );
++ aKernPair.mnChar1 = FT_NEXT_USHORT( pBuffer );
++ aKernPair.mnChar2 = FT_NEXT_USHORT( pBuffer );
++ /*long nUnscaledKern=*/ FT_NEXT_SHORT( pBuffer );
+ aKernGlyphVector.push_back( aKernPair );
+ }
+ }
+@@ -1231,18 +1238,18 @@ ULONG FreetypeServerFont::GetKernPairs(
+ case 2: // version 0, kerning format 2
+ {
+ const FT_Byte* pSubTable = pBuffer;
+- /*USHORT nRowWidth =*/ NEXT_UShort( pBuffer );
+- USHORT nOfsLeft = NEXT_UShort( pBuffer );
+- USHORT nOfsRight = NEXT_UShort( pBuffer );
+- USHORT nOfsArray = NEXT_UShort( pBuffer );
++ /*USHORT nRowWidth =*/ FT_NEXT_USHORT( pBuffer );
++ USHORT nOfsLeft = FT_NEXT_USHORT( pBuffer );
++ USHORT nOfsRight = FT_NEXT_USHORT( pBuffer );
++ USHORT nOfsArray = FT_NEXT_USHORT( pBuffer );
+
+ const FT_Byte* pTmp = pSubTable + nOfsLeft;
+- USHORT nFirstLeft = NEXT_UShort( pTmp );
+- USHORT nLastLeft = NEXT_UShort( pTmp ) + nFirstLeft - 1;
++ USHORT nFirstLeft = FT_NEXT_USHORT( pTmp );
++ USHORT nLastLeft = FT_NEXT_USHORT( pTmp ) + nFirstLeft - 1;
+
+ pTmp = pSubTable + nOfsRight;
+- USHORT nFirstRight = NEXT_UShort( pTmp );
+- USHORT nLastRight = NEXT_UShort( pTmp ) + nFirstRight - 1;
++ USHORT nFirstRight = FT_NEXT_USHORT( pTmp );
++ USHORT nLastRight = FT_NEXT_USHORT( pTmp ) + nFirstRight - 1;
+
+ ULONG nPairs = (ULONG)(nLastLeft - nFirstLeft + 1) * (nLastRight - nFirstRight + 1);
+ aKernGlyphVector.reserve( aKernGlyphVector.size() + nPairs );
+@@ -1253,7 +1260,7 @@ ULONG FreetypeServerFont::GetKernPairs(
+ aKernPair.mnChar1 = nLeft;
+ for( int nRight = 0; nRight < nLastRight; ++nRight )
+ {
+- if( NEXT_Short( pTmp ) != 0 )
++ if( FT_NEXT_SHORT( pTmp ) != 0 )
+ {
+ aKernPair.mnChar2 = nRight;
+ aKernGlyphVector.push_back( aKernPair );
+@@ -1531,10 +1538,10 @@ bool FreetypeServerFont::ApplyGSUB( cons
+
+ // parse GSUB header
+ const FT_Byte* pGsubHeader = pGsubBase;
+- const ULONG nVersion = NEXT_Long( pGsubHeader );
+- const USHORT nOfsScriptList = NEXT_UShort( pGsubHeader );
+- const USHORT nOfsFeatureTable = NEXT_UShort( pGsubHeader );
+- const USHORT nOfsLookupList = NEXT_UShort( pGsubHeader );
++ const ULONG nVersion = FT_NEXT_LONG( pGsubHeader );
++ const USHORT nOfsScriptList = FT_NEXT_USHORT( pGsubHeader );
++ const USHORT nOfsFeatureTable = FT_NEXT_USHORT( pGsubHeader );
++ const USHORT nOfsLookupList = FT_NEXT_USHORT( pGsubHeader );
+
+ typedef std::vector<USHORT> UshortList;
+ UshortList aFeatureIndexList;
+@@ -1542,22 +1549,22 @@ bool FreetypeServerFont::ApplyGSUB( cons
+
+ // parse Script Table
+ const FT_Byte* pScriptHeader = pGsubBase + nOfsScriptList;
+- const USHORT nCntScript = NEXT_UShort( pScriptHeader );
++ const USHORT nCntScript = FT_NEXT_USHORT( pScriptHeader );
+ for( USHORT nScriptIndex = 0; nScriptIndex < nCntScript; ++nScriptIndex )
+ {
+- const ULONG nTag = NEXT_Long( pScriptHeader ); // e.g. hani/arab/kana/hang
+- const USHORT nOfsScriptTable= NEXT_UShort( pScriptHeader );
++ const ULONG nTag = FT_NEXT_LONG( pScriptHeader ); // e.g. hani/arab/kana/hang
++ const USHORT nOfsScriptTable= FT_NEXT_USHORT( pScriptHeader );
+ if( (nTag != nRequestedScript) && (nRequestedScript != 0) )
+ continue;
+
+ const FT_Byte* pScriptTable = pGsubBase + nOfsScriptList + nOfsScriptTable;
+- const USHORT nDefaultLangsysOfs = NEXT_UShort( pScriptTable );
+- const USHORT nCntLangSystem = NEXT_UShort( pScriptTable );
++ const USHORT nDefaultLangsysOfs = FT_NEXT_USHORT( pScriptTable );
++ const USHORT nCntLangSystem = FT_NEXT_USHORT( pScriptTable );
+ USHORT nLangsysOffset = 0;
+ for( USHORT nLangsysIndex = 0; nLangsysIndex < nCntLangSystem; ++nLangsysIndex )
+ {
+- const ULONG nTag = NEXT_Long( pScriptTable ); // e.g. KOR/ZHS/ZHT/JAN
+- const USHORT nOffset= NEXT_UShort( pScriptTable );
++ const ULONG nTag = FT_NEXT_LONG( pScriptTable ); // e.g. KOR/ZHS/ZHT/JAN
++ const USHORT nOffset= FT_NEXT_USHORT( pScriptTable );
+ if( (nTag != nRequestedLangsys) && (nRequestedLangsys != 0) )
+ continue;
+ nLangsysOffset = nOffset;
+@@ -1567,13 +1574,13 @@ bool FreetypeServerFont::ApplyGSUB( cons
+ if( (nDefaultLangsysOfs != 0) && (nDefaultLangsysOfs != nLangsysOffset) )
+ {
+ const FT_Byte* pLangSys = pGsubBase + nOfsScriptList + nOfsScriptTable + nDefaultLangsysOfs;
+- const USHORT nLookupOrder = NEXT_UShort( pLangSys );
+- const USHORT nReqFeatureIdx = NEXT_UShort( pLangSys );
+- const USHORT nCntFeature = NEXT_UShort( pLangSys );
++ const USHORT nLookupOrder = FT_NEXT_USHORT( pLangSys );
++ const USHORT nReqFeatureIdx = FT_NEXT_USHORT( pLangSys );
++ const USHORT nCntFeature = FT_NEXT_USHORT( pLangSys );
+ aFeatureIndexList.push_back( nReqFeatureIdx );
+ for( USHORT i = 0; i < nCntFeature; ++i )
+ {
+- const USHORT nFeatureIndex = NEXT_UShort( pLangSys );
++ const USHORT nFeatureIndex = FT_NEXT_USHORT( pLangSys );
+ aFeatureIndexList.push_back( nFeatureIndex );
+ }
+ }
+@@ -1581,13 +1588,13 @@ bool FreetypeServerFont::ApplyGSUB( cons
+ if( nLangsysOffset != 0 )
+ {
+ const FT_Byte* pLangSys = pGsubBase + nOfsScriptList + nOfsScriptTable + nLangsysOffset;
+- const USHORT nLookupOrder = NEXT_UShort( pLangSys );
+- const USHORT nReqFeatureIdx = NEXT_UShort( pLangSys );
+- const USHORT nCntFeature = NEXT_UShort( pLangSys );
++ const USHORT nLookupOrder = FT_NEXT_USHORT( pLangSys );
++ const USHORT nReqFeatureIdx = FT_NEXT_USHORT( pLangSys );
++ const USHORT nCntFeature = FT_NEXT_USHORT( pLangSys );
+ aFeatureIndexList.push_back( nReqFeatureIdx );
+ for( USHORT i = 0; i < nCntFeature; ++i )
+ {
+- const USHORT nFeatureIndex = NEXT_UShort( pLangSys );
++ const USHORT nFeatureIndex = FT_NEXT_USHORT( pLangSys );
+ aFeatureIndexList.push_back( nFeatureIndex );
+ }
+ }
+@@ -1601,11 +1608,11 @@ bool FreetypeServerFont::ApplyGSUB( cons
+
+ // parse Feature Table
+ const FT_Byte* pFeatureHeader = pGsubBase + nOfsFeatureTable;
+- const USHORT nCntFeature = NEXT_UShort( pFeatureHeader );
++ const USHORT nCntFeature = FT_NEXT_USHORT( pFeatureHeader );
+ for( USHORT nFeatureIndex = 0; nFeatureIndex < nCntFeature; ++nFeatureIndex )
+ {
+- const ULONG nTag = NEXT_Long( pFeatureHeader ); // e.g. locl/vert/trad/smpl/liga/fina/...
+- const USHORT nOffset= NEXT_UShort( pFeatureHeader );
++ const ULONG nTag = FT_NEXT_LONG( pFeatureHeader ); // e.g. locl/vert/trad/smpl/liga/fina/...
++ const USHORT nOffset= FT_NEXT_USHORT( pFeatureHeader );
+
+ // feature (required && (requested || available))?
+ if( (aFeatureIndexList[0] != nFeatureIndex)
+@@ -1614,10 +1621,10 @@ bool FreetypeServerFont::ApplyGSUB( cons
+ continue;
+
+ const FT_Byte* pFeatureTable = pGsubBase + nOfsFeatureTable + nOffset;
+- const USHORT nCntLookups = NEXT_UShort( pFeatureTable );
++ const USHORT nCntLookups = FT_NEXT_USHORT( pFeatureTable );
+ for( USHORT i = 0; i < nCntLookups; ++i )
+ {
+- const USHORT nLookupIndex = NEXT_UShort( pFeatureTable );
++ const USHORT nLookupIndex = FT_NEXT_USHORT( pFeatureTable );
+ aLookupIndexList.push_back( nLookupIndex );
+ }
+ if( nCntLookups == 0 ) //### hack needed by Mincho/Gothic/Mingliu/Simsun/...
+@@ -1626,10 +1633,10 @@ bool FreetypeServerFont::ApplyGSUB( cons
+
+ // parse Lookup List
+ const FT_Byte* pLookupHeader = pGsubBase + nOfsLookupList;
+- const USHORT nCntLookupTable = NEXT_UShort( pLookupHeader );
++ const USHORT nCntLookupTable = FT_NEXT_USHORT( pLookupHeader );
+ for( USHORT nLookupIdx = 0; nLookupIdx < nCntLookupTable; ++nLookupIdx )
+ {
+- const USHORT nOffset = NEXT_UShort( pLookupHeader );
++ const USHORT nOffset = FT_NEXT_USHORT( pLookupHeader );
+ if( std::count( aLookupIndexList.begin(), aLookupIndexList.end(), nLookupIdx ) )
+ aLookupOffsetList.push_back( nOffset );
+ }
+@@ -1639,9 +1646,9 @@ bool FreetypeServerFont::ApplyGSUB( cons
+ {
+ const USHORT nOfsLookupTable = *it;
+ const FT_Byte* pLookupTable = pGsubBase + nOfsLookupList + nOfsLookupTable;
+- const USHORT eLookupType = NEXT_UShort( pLookupTable );
+- const USHORT eLookupFlag = NEXT_UShort( pLookupTable );
+- const USHORT nCntLookupSubtable = NEXT_UShort( pLookupTable );
++ const USHORT eLookupType = FT_NEXT_USHORT( pLookupTable );
++ const USHORT eLookupFlag = FT_NEXT_USHORT( pLookupTable );
++ const USHORT nCntLookupSubtable = FT_NEXT_USHORT( pLookupTable );
+
+ // TODO: switch( eLookupType )
+ if( eLookupType != 1 ) // TODO: once we go beyond SingleSubst
+@@ -1649,28 +1656,28 @@ bool FreetypeServerFont::ApplyGSUB( cons
+
+ for( USHORT nSubTableIdx = 0; nSubTableIdx < nCntLookupSubtable; ++nSubTableIdx )
+ {
+- const USHORT nOfsSubLookupTable = NEXT_UShort( pLookupTable );
++ const USHORT nOfsSubLookupTable = FT_NEXT_USHORT( pLookupTable );
+ const FT_Byte* pSubLookup = pGsubBase + nOfsLookupList + nOfsLookupTable + nOfsSubLookupTable;
+
+
+- const USHORT nFmtSubstitution = NEXT_UShort( pSubLookup );
+- const USHORT nOfsCoverage = NEXT_UShort( pSubLookup );
++ const USHORT nFmtSubstitution = FT_NEXT_USHORT( pSubLookup );
++ const USHORT nOfsCoverage = FT_NEXT_USHORT( pSubLookup );
+
+ typedef std::pair<USHORT,USHORT> GlyphSubst;
+ typedef std::vector<GlyphSubst> SubstVector;
+ SubstVector aSubstVector;
+
+ const FT_Byte* pCoverage = pGsubBase + nOfsLookupList + nOfsLookupTable + nOfsSubLookupTable + nOfsCoverage;
+- const USHORT nFmtCoverage = NEXT_UShort( pCoverage );
++ const USHORT nFmtCoverage = FT_NEXT_USHORT( pCoverage );
+ switch( nFmtCoverage )
+ {
+ case 1: // Coverage Format 1
+ {
+- const USHORT nCntGlyph = NEXT_UShort( pCoverage );
++ const USHORT nCntGlyph = FT_NEXT_USHORT( pCoverage );
+ aSubstVector.reserve( nCntGlyph );
+ for( USHORT i = 0; i < nCntGlyph; ++i )
+ {
+- const USHORT nGlyphId = NEXT_UShort( pCoverage );
++ const USHORT nGlyphId = FT_NEXT_USHORT( pCoverage );
+ aSubstVector.push_back( GlyphSubst( nGlyphId, 0 ) );
+ }
+ }
+@@ -1678,12 +1685,12 @@ bool FreetypeServerFont::ApplyGSUB( cons
+
+ case 2: // Coverage Format 2
+ {
+- const USHORT nCntRange = NEXT_UShort( pCoverage );
++ const USHORT nCntRange = FT_NEXT_USHORT( pCoverage );
+ for( int i = nCntRange; --i >= 0; )
+ {
+- const USHORT nGlyph0 = NEXT_UShort( pCoverage );
+- const USHORT nGlyph1 = NEXT_UShort( pCoverage );
+- const USHORT nCovIdx = NEXT_UShort( pCoverage );
++ const USHORT nGlyph0 = FT_NEXT_USHORT( pCoverage );
++ const USHORT nGlyph1 = FT_NEXT_USHORT( pCoverage );
++ const USHORT nCovIdx = FT_NEXT_USHORT( pCoverage );
+ for( USHORT j = nGlyph0; j <= nGlyph1; ++j )
+ aSubstVector.push_back( GlyphSubst( j + nCovIdx, 0 ) );
+ }
+@@ -1697,7 +1704,7 @@ bool FreetypeServerFont::ApplyGSUB( cons
+ {
+ case 1: // Single Substitution Format 1
+ {
+- const USHORT nDeltaGlyphId = NEXT_UShort( pSubLookup );
++ const USHORT nDeltaGlyphId = FT_NEXT_USHORT( pSubLookup );
+ for(; it != aSubstVector.end(); ++it )
+ (*it).second = (*it).first + nDeltaGlyphId;
+ }
+@@ -1705,10 +1712,10 @@ bool FreetypeServerFont::ApplyGSUB( cons
+
+ case 2: // Single Substitution Format 2
+ {
+- const USHORT nCntGlyph = NEXT_UShort( pSubLookup );
++ const USHORT nCntGlyph = FT_NEXT_USHORT( pSubLookup );
+ for( int i = nCntGlyph; (it != aSubstVector.end()) && (--i>=0); ++it )
+ {
+- const USHORT nGlyphId = NEXT_UShort( pSubLookup );
++ const USHORT nGlyphId = FT_NEXT_USHORT( pSubLookup );
+ (*it).second = nGlyphId;
+ }
+ }
+--- oo_1.0.1_src/freetype/makefile.mk.orig Sun Sep 22 10:37:16 2002
++++ oo_1.0.1_src/freetype/makefile.mk Sun Sep 22 10:37:42 2002
+@@ -71,9 +71,9 @@
+
+ # --- Files --------------------------------------------------------
+
+-TARFILE_NAME=freetype-2.0.5
++TARFILE_NAME=freetype-2.1.2
+
+-PATCH_FILE_NAME=freetype-2.0.5.patch
++PATCH_FILE_NAME=freetype-2.1.2.patch
+
+ CONFIGURE_DIR=
+ #relative to CONFIGURE_DIR
diff --git a/app-office/openoffice/files/digest-openoffice-1.0.1-r1 b/app-office/openoffice/files/digest-openoffice-1.0.1-r1
new file mode 100644
index 000000000000..d72bfab15c97
--- /dev/null
+++ b/app-office/openoffice/files/digest-openoffice-1.0.1-r1
@@ -0,0 +1,4 @@
+MD5 34f2ca644b7d70573148c82d64eb6064 OOo_1.0.1_source.tar.bz2 136458398
+MD5 cd4dd34b623a8704fbc800de79705171 STLport-4.5.3.tar.gz 739943
+MD5 fdb06fdb5a4670b172f9fb738b717be9 gpc231.tar.Z 27917
+MD5 6574ebc4c33a175b54b73d94f681f39f freetype-2.1.2.tar.gz 950508
diff --git a/app-office/openoffice/openoffice-1.0.1-r1.ebuild b/app-office/openoffice/openoffice-1.0.1-r1.ebuild
new file mode 100644
index 000000000000..a4e5c9e22eb6
--- /dev/null
+++ b/app-office/openoffice/openoffice-1.0.1-r1.ebuild
@@ -0,0 +1,535 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice/openoffice-1.0.1-r1.ebuild,v 1.1 2002/09/22 14:13:49 azarah 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:
+#
+# 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
+# Compile problems with these ...
+filter-flags "-funroll-loops"
+filter-flags "-fomit-frame-pointer"
+replace-flags "-O3" "-O2"
+# Needed to stop segfaults in tools
+append-flags "-fno-strict-aliasing"
+
+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.2"
+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/${PV}/OOo_${PV}_source.tar.bz2
+ http://sf1.mirror.openoffice.org/${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-2.1.2.tar.gz"
+HOMEPAGE="http://www.openoffice.org/"
+
+LICENSE="LGPL-2 | SISSL-1.1"
+SLOT="0"
+KEYWORDS="x86"
+
+RDEPEND=">=sys-libs/glibc-2.1
+ >=sys-devel/perl-5.0
+ virtual/x11
+ app-arch/zip
+ app-arch/unzip
+ dev-libs/expat
+ >=virtual/jdk-1.3.1"
+
+DEPEND="${RDEPEND}
+ app-shells/tcsh"
+
+# fix a bug with tcsh and dircolors
+#
+# Azarah -- 10 April 2002
+export LS_COLORS=""
+
+
+pkg_setup() {
+
+ if [ "$(gcc-version)" != "3.2" ]
+ then
+ eerror
+ eerror "This build needs gcc-3.2 or later, but due to profile"
+ eerror "settings, it cannot DEPEND on it, so please merge it"
+ eerror "manually:"
+ eerror
+ eerror " # ebuild /usr/portage/sys-devel/gcc/gcc-3.2-r1.ebuild merge"
+ eerror
+ eerror "Please make sure that you use the latest availible revision of"
+ eerror "gcc-3.2. Thus if there is already a gcc-3.2-r2 out, use this"
+ eerror "rather than -r1."
+ eerror
+ eerror "As of writing, gcc-3.2 seemed to create the most stable builds."
+ eerror "Also, because OO is such a complex build, ONLY gcc-3.2 will be"
+ eerror "supported!"
+ 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-1.3.1"
+ eerror " # env-update"
+ eerror " # source /etc/profile"
+ eerror
+ eerror "At the time of writing, this was version 1.3.1, so please"
+ eerror "adjust the 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 " To get this thing to build at all, I had to use less agressive"
+ ewarn " CFLAGS and CXXFLAGS. If this build thus fails, and you edited"
+ ewarn " this ebuild at all, or used too agressive compiler flags ..."
+ ewarn
+ ewarn " You HAVE been Warned!"
+ ewarn
+ ewarn "****************************************************************"
+}
+
+src_unpack() {
+
+ cd ${WORKDIR}
+ unpack OOo_${PV}_source.tar.bz2 gpc231.tar.Z
+
+ # Install gpc
+ cd ${WORKDIR}/gpc231
+ cp gpc.* ${S}/external/gpc
+
+ cd ${S}
+
+ einfo "Applying patches..."
+ # This allows JDK 1.4.0 to be used (Prez)
+ patch -p1 < ${FILESDIR}/${PV}/${PN}-1.0.0-configure.patch || die
+
+ # Get OO to build with gcc-3.2's libstdc++.so (Az)
+ if [ "$(gcc-version)" = "3.2" ]
+ then
+ patch -p1 < ${FILESDIR}/${PV}/${P}-use-libstdc++-5.0.0.patch || die
+ fi
+
+ # Debian patch to enable build of zipdep
+ patch -p1 < ${FILESDIR}/${PV}/${PN}-1.0.0-zipdep-not-found.patch || die
+
+ # Some Debian patches to get the build to use $CC and $CXX,
+ # thanks to nidd from #openoffice.org
+ patch -p1 < ${FILESDIR}/${PV}/${P}-gcc-version-check.patch || die
+ patch -p1 < ${FILESDIR}/${PV}/${P}-set-compiler-vars.patch || die
+ patch -p1 < ${FILESDIR}/${PV}/${P}-use-compiler-vars.patch || die
+ # Update configure before we do anything else.
+ cd ${S}/config_office; autoconf || die; cd ${S}
+
+ # This resolves missing symbols (Debian)
+ patch -p1 < ${FILESDIR}/${PV}/${P}-compiler-flags.patch || die
+
+ # Enable ccache and distcc (Debian)
+ patch -p1 < ${FILESDIR}/${PV}/${P}-parallel-build.patch || die
+ # If $HOME is not set, ccache breaks. (Debian)
+ patch -p1 < ${FILESDIR}/${PV}/${P}-dont-unset-home.patch || die
+
+ if [ "$(use ppc)" ]
+ then
+ # Not sure about this .. PPC guys will have to verify.
+ patch -p1 < ${FILESDIR}/${PV}/${P}-bridge-fix-on-PPC.patch || die
+ fi
+
+ # Misc Debian patches to fixup build
+ patch -p1 < ${FILESDIR}/${PV}/${PN}-1.0.1-no-mozab.patch || die
+ echo "moz moz : NULL" > ${S}/moz/prj/build.lst
+
+ # Misc patches from Mandrake
+ patch -p1 < ${FILESDIR}/${PV}/${P}-braindamage.patch || die
+ patch -p1 < ${FILESDIR}/${PV}/${P}-fix-asm.patch || die
+
+ # Get OO to use STLport-4.5.3 (Az)
+ cp ${DISTDIR}/STLport-${STLP_VER}.tar.gz ${S}/stlport/download || die
+ cd ${S}/stlport
+ patch -p1 < ${FILESDIR}/${PV}/${P}-use-STLport-4.5.3.patch || die
+
+ # Get OO to build with freetype-2.1.2
+ cd ${S}
+ cp ${DISTDIR}/freetype-${FT_VER}.tar.gz ${S}/freetype/download || die
+ cp ${FILESDIR}/${PV}/freetype-${FT_VER}.patch ${S}/freetype || die
+ patch -p1 < ${FILESDIR}/${PV}/${P}-use-freetype-${FT_VER}.patch || die
+
+ # More gcc3 related fixes
+ if [ "$(gcc-major-version)" -eq 3 ] && [ "$(gcc-minor-version)" -ne 0 ]
+ then
+ local incver="$(gcc-version)"
+ local minver="$(gcc-minor-version)"
+
+ # Fix ./configure for gcc3 (Az)
+ perl -pi -e 's|CC --version|CC -dumpversion|g' \
+ ${S}/config_office/configure
+# perl -pi -e "s|_gccincname1=\"g++-v3\"|_gccincname1=\"g++-v${incver/\.}\"|g" \
+# ${S}/config_office/configure
+
+ # Fix header not supporting 3.2 and up (Az)
+ perl -pi -e "s|__GNUC_MINOR__ == 0|__GNUC_MINOR__ == ${minver}|g" \
+ ${S}/cppu/inc/uno/lbnames.h
+ fi
+
+ # 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
+}
+
+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 / {print $3}' ${LinuxEnvSet})"
+ export SOLPATH="$(awk '/^setenv INPATH / {print $3}' ${LinuxEnvSet})"
+}
+
+src_compile() {
+
+ local buildcmd=""
+
+ # Setup default compilers (We overide gcc2 if that is default here)
+ export CC="$(gcc-getCC)"
+ export CXX="$(gcc-getCXX)"
+
+ # Create aliases to normal gcc binary names to make sure we compile
+ # everything with the same version of gcc, and avoid possible
+ # segfaults. This is only done if gcc binaries with non standard
+ # names are used. (Az)
+ [ "${CC}" != "gcc" ] && ln -s $(which ${CC}) ${S}/solenv/bin/gcc
+ [ "${CXX}" != "gcc" -a "${CXX}" != "g++" ] && {\
+ ln -s $(which ${CXX}) ${S}/solenv/bin/g++
+ ln -s $(which ${CXX}) ${S}/solenv/bin/c++
+ ln -s $(which ${CXX}) ${S}/solenv/bin/cpp
+ }
+
+ # Enable distcc for this build (Az)
+ if [ "${FEATURES/-distcc/}" = "${FEATURES}" -a \
+ "${FEATURES/distcc/}" != "${FEATURES}" -a \
+ -x /usr/bin/distcc ]
+ then
+ # 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="distcc ${CC}"
+ export CXX="distcc ${CXX}"
+ fi
+
+ # Enable ccache for this build (Az)
+ if [ "${FEATURES/-ccache/}" = "${FEATURES}" -a \
+ "${FEATURES/ccache/}" != "${FEATURES}" -a \
+ -d /usr/bin/ccache -a -x /usr/bin/ccache/ccache ]
+ then
+ # Build uses its own env with $PATH, etc, so
+ # we take the easy way out. (Az)
+ export CC="/usr/bin/ccache/ccache ${CC}"
+ export CXX="/usr/bin/ccache/ccache ${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-lang=ENUS \
+ --with-x || die
+
+ cd ${S}
+ get_EnvSet
+
+ # Workaround for missing libs with GCC3 (thanks to Debian) (Az)
+ if [ "$(gcc-major-version)" -eq 3 ]
+ then
+ einfo "Installing GCC related libs..."
+
+ mkdir -p ${S}/solver/${SOLVER}/${SOLPATH}/lib
+
+ 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
+
+ # 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}
+
+ # 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
+
+ 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
+
+ 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() {
+
+ # This allows us to change languages without editing the ebuild.
+ #
+ # languages1="ENUS,FREN,GERM,SPAN,ITAL,DTCH,PORT,SWED,POL,RUSS"
+ # languages2="DAN,GREEK,TURK,CHINSIM,CHINTRAD,JAPN,KOREAN,CZECH,CAT"
+ #
+ # Supported languages for localized help files
+ #
+ # helplangs="ENUS,FREN,GERM,SPAN,ITAL,SWED"
+ #
+ [ -z "${LANGUAGE}" ] && LANGUAGE=01
+
+ get_EnvSet
+
+ # 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 registy..."
+ # 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 > ${T}/ooffice
+ doexe ${T}/ooffice
+ # 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
+ dosym ooffice /usr/bin/oopadmin
+
+ 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}
+
+ # 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 "******************************************************************"
+}
+