diff options
author | Martin Schlemmer <azarah@gentoo.org> | 2002-09-22 14:13:49 +0000 |
---|---|---|
committer | Martin Schlemmer <azarah@gentoo.org> | 2002-09-22 14:13:49 +0000 |
commit | 37c8277739c1632f1ab9832592259d270eb8a615 (patch) | |
tree | fd900618ebbbcf5709f2c2b807f3954bd8332646 /app-office/openoffice | |
parent | Unmasked stable openmosix-sources (diff) | |
download | gentoo-2-37c8277739c1632f1ab9832592259d270eb8a615.tar.gz gentoo-2-37c8277739c1632f1ab9832592259d270eb8a615.tar.bz2 gentoo-2-37c8277739c1632f1ab9832592259d270eb8a615.zip |
freetype-2.1.2 support
Diffstat (limited to 'app-office/openoffice')
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 "******************************************************************" +} + |