diff --git a/SOURCES/freetype-2.2.1-enable-valid.patch b/SOURCES/freetype-2.2.1-enable-valid.patch new file mode 100644 index 0000000..21d80da --- /dev/null +++ b/SOURCES/freetype-2.2.1-enable-valid.patch @@ -0,0 +1,20 @@ +--- freetype-2.2.1/modules.cfg.orig 2006-07-07 21:01:09.000000000 -0400 ++++ freetype-2.2.1/modules.cfg 2006-07-07 21:01:54.000000000 -0400 +@@ -110,7 +110,7 @@ + # TrueType GX/AAT table validation. Needs ftgxval.c below. + # + # No FT_CONFIG_OPTION_PIC support. +-# AUX_MODULES += gxvalid ++AUX_MODULES += gxvalid + + # Support for streams compressed with gzip (files with suffix .gz). + # +@@ -124,7 +124,7 @@ + # OpenType table validation. Needs ftotval.c below. + # + # No FT_CONFIG_OPTION_PIC support. +-# AUX_MODULES += otvalid ++AUX_MODULES += otvalid + + # Auxiliary PostScript driver component to share common code. + # diff --git a/SOURCES/freetype-2.3.0-enable-spr.patch b/SOURCES/freetype-2.3.0-enable-spr.patch new file mode 100644 index 0000000..8432e28 --- /dev/null +++ b/SOURCES/freetype-2.3.0-enable-spr.patch @@ -0,0 +1,11 @@ +--- freetype-2.3.0/include/freetype/config/ftoption.h.spf 2007-01-18 14:27:34.000000000 -0500 ++++ freetype-2.3.0/include/freetype/config/ftoption.h 2007-01-18 14:27:48.000000000 -0500 +@@ -92,7 +92,7 @@ + /* This is done to allow FreeType clients to run unmodified, forcing */ + /* them to display normal gray-level anti-aliased glyphs. */ + /* */ +-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ ++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + + /*************************************************************************/ diff --git a/SOURCES/freetype-2.3.11-more-demos.patch b/SOURCES/freetype-2.3.11-more-demos.patch new file mode 100644 index 0000000..7d43b58 --- /dev/null +++ b/SOURCES/freetype-2.3.11-more-demos.patch @@ -0,0 +1,18 @@ +diff -up ft2demos-2.3.11/Makefile.more-demos freetype-2.3.11/ft2demos-2.3.11/Makefile +--- ft2demos-2.3.11/Makefile.more-demos 2009-10-22 16:02:26.000000000 -0400 ++++ ft2demos-2.3.11/Makefile 2009-10-22 16:02:32.000000000 -0400 +@@ -296,10 +296,10 @@ else + # The following programs are not compiled automatically; either comment + # out the affected line or use the program name as a Makefile target. + # +- # EXES += ftchkwd +- # EXES += ftmemchk +- # EXES += ftpatchk +- # EXES += fttimer ++ EXES += ftchkwd ++ EXES += ftmemchk ++ EXES += ftpatchk ++ EXES += fttimer + # EXES += testname + + exes: $(EXES:%=$(BIN_DIR_2)/%$E) diff --git a/SOURCES/freetype-2.4.11-inode-overflow.patch b/SOURCES/freetype-2.4.11-inode-overflow.patch new file mode 100644 index 0000000..6243b00 --- /dev/null +++ b/SOURCES/freetype-2.4.11-inode-overflow.patch @@ -0,0 +1,14 @@ +--- freetype-2.4.11/src/tools/ftrandom/ftrandom.c.orig 2009-03-14 14:45:26.000000000 +0100 ++++ freetype-2.4.11/src/tools/ftrandom/ftrandom.c 2016-02-10 17:51:45.047340575 +0100 +@@ -369,6 +369,11 @@ + } + + fontlist[fcnt].name = strdup( buffer ); ++ if ( statb.st_size > LONG_MAX ) ++ { ++ fprintf( stderr, "The file is too big\n" ); ++ exit( 1 ); ++ } + fontlist[fcnt].len = statb.st_size; + + figurefiletype( &fontlist[fcnt] ); diff --git a/SOURCES/freetype-2.4.11-libtool.patch b/SOURCES/freetype-2.4.11-libtool.patch new file mode 100644 index 0000000..6cabf2a --- /dev/null +++ b/SOURCES/freetype-2.4.11-libtool.patch @@ -0,0 +1,11 @@ +--- freetype-2.4.11/builds/unix/freetype-config.in ++++ freetype-2.4.11/builds/unix/freetype-config.in +@@ -205,7 +205,7 @@ if test "$echo_libs" = "yes" ; then + fi + + if test "$echo_libtool" = "yes" ; then +- echo ${SYSROOT}$libdir/libfreetype.la ++ echo "" + fi + + # EOF diff --git a/SOURCES/freetype-2.4.11-signed.patch b/SOURCES/freetype-2.4.11-signed.patch new file mode 100644 index 0000000..88d717b --- /dev/null +++ b/SOURCES/freetype-2.4.11-signed.patch @@ -0,0 +1,399 @@ +--- freetype-2.4.11/src/base/ftstream.c ++++ freetype-2.4.11/src/base/ftstream.c +@@ -373,6 +373,25 @@ + } + + ++ FT_BASE_DEF( FT_Short ) ++ FT_Stream_GetShort( FT_Stream stream ) ++ { ++ FT_Byte* p; ++ FT_Short result; ++ ++ ++ FT_ASSERT( stream && stream->cursor ); ++ ++ result = 0; ++ p = stream->cursor; ++ if ( p + 1 < stream->limit ) ++ result = FT_NEXT_SHORT( p ); ++ stream->cursor = p; ++ ++ return result; ++ } ++ ++ + FT_BASE_DEF( FT_UShort ) + FT_Stream_GetUShortLE( FT_Stream stream ) + { +@@ -392,6 +411,25 @@ + } + + ++ FT_BASE_DEF( FT_Short ) ++ FT_Stream_GetShortLE( FT_Stream stream ) ++ { ++ FT_Byte* p; ++ FT_Short result; ++ ++ ++ FT_ASSERT( stream && stream->cursor ); ++ ++ result = 0; ++ p = stream->cursor; ++ if ( p + 1 < stream->limit ) ++ result = FT_NEXT_SHORT_LE( p ); ++ stream->cursor = p; ++ ++ return result; ++ } ++ ++ + FT_BASE_DEF( FT_ULong ) + FT_Stream_GetUOffset( FT_Stream stream ) + { +@@ -410,6 +448,24 @@ + } + + ++ FT_BASE_DEF( FT_Long ) ++ FT_Stream_GetOffset( FT_Stream stream ) ++ { ++ FT_Byte* p; ++ FT_Long result; ++ ++ ++ FT_ASSERT( stream && stream->cursor ); ++ ++ result = 0; ++ p = stream->cursor; ++ if ( p + 2 < stream->limit ) ++ result = FT_NEXT_OFF3( p ); ++ stream->cursor = p; ++ return result; ++ } ++ ++ + FT_BASE_DEF( FT_ULong ) + FT_Stream_GetULong( FT_Stream stream ) + { +@@ -428,6 +484,24 @@ + } + + ++ FT_BASE_DEF( FT_Long ) ++ FT_Stream_GetLong( FT_Stream stream ) ++ { ++ FT_Byte* p; ++ FT_Long result; ++ ++ ++ FT_ASSERT( stream && stream->cursor ); ++ ++ result = 0; ++ p = stream->cursor; ++ if ( p + 3 < stream->limit ) ++ result = FT_NEXT_LONG( p ); ++ stream->cursor = p; ++ return result; ++ } ++ ++ + FT_BASE_DEF( FT_ULong ) + FT_Stream_GetULongLE( FT_Stream stream ) + { +@@ -446,6 +520,24 @@ + } + + ++ FT_BASE_DEF( FT_Long ) ++ FT_Stream_GetLongLE( FT_Stream stream ) ++ { ++ FT_Byte* p; ++ FT_Long result; ++ ++ ++ FT_ASSERT( stream && stream->cursor ); ++ ++ result = 0; ++ p = stream->cursor; ++ if ( p + 3 < stream->limit ) ++ result = FT_NEXT_LONG_LE( p ); ++ stream->cursor = p; ++ return result; ++ } ++ ++ + FT_BASE_DEF( FT_Char ) + FT_Stream_ReadChar( FT_Stream stream, + FT_Error* error ) +@@ -530,6 +622,53 @@ + } + + ++ FT_BASE_DEF( FT_Short ) ++ FT_Stream_ReadShort( FT_Stream stream, ++ FT_Error* error ) ++ { ++ FT_Byte reads[2]; ++ FT_Byte* p = 0; ++ FT_Short result = 0; ++ ++ ++ FT_ASSERT( stream ); ++ ++ *error = FT_Err_Ok; ++ ++ if ( stream->pos + 1 < stream->size ) ++ { ++ if ( stream->read ) ++ { ++ if ( stream->read( stream, stream->pos, reads, 2L ) != 2L ) ++ goto Fail; ++ ++ p = reads; ++ } ++ else ++ { ++ p = stream->base + stream->pos; ++ } ++ ++ if ( p ) ++ result = FT_NEXT_SHORT( p ); ++ } ++ else ++ goto Fail; ++ ++ stream->pos += 2; ++ ++ return result; ++ ++ Fail: ++ *error = FT_Err_Invalid_Stream_Operation; ++ FT_ERROR(( "FT_Stream_ReadShort:" ++ " invalid i/o; pos = 0x%lx, size = 0x%lx\n", ++ stream->pos, stream->size )); ++ ++ return 0; ++ } ++ ++ + FT_BASE_DEF( FT_UShort ) + FT_Stream_ReadUShortLE( FT_Stream stream, + FT_Error* error ) +@@ -577,6 +716,53 @@ + } + + ++ FT_BASE_DEF( FT_Short ) ++ FT_Stream_ReadShortLE( FT_Stream stream, ++ FT_Error* error ) ++ { ++ FT_Byte reads[2]; ++ FT_Byte* p = 0; ++ FT_Short result = 0; ++ ++ ++ FT_ASSERT( stream ); ++ ++ *error = FT_Err_Ok; ++ ++ if ( stream->pos + 1 < stream->size ) ++ { ++ if ( stream->read ) ++ { ++ if ( stream->read( stream, stream->pos, reads, 2L ) != 2L ) ++ goto Fail; ++ ++ p = reads; ++ } ++ else ++ { ++ p = stream->base + stream->pos; ++ } ++ ++ if ( p ) ++ result = FT_NEXT_SHORT_LE( p ); ++ } ++ else ++ goto Fail; ++ ++ stream->pos += 2; ++ ++ return result; ++ ++ Fail: ++ *error = FT_Err_Invalid_Stream_Operation; ++ FT_ERROR(( "FT_Stream_ReadShortLE:" ++ " invalid i/o; pos = 0x%lx, size = 0x%lx\n", ++ stream->pos, stream->size )); ++ ++ return 0; ++ } ++ ++ + FT_BASE_DEF( FT_ULong ) + FT_Stream_ReadUOffset( FT_Stream stream, + FT_Error* error ) +@@ -624,6 +810,53 @@ + } + + ++ FT_BASE_DEF( FT_Long ) ++ FT_Stream_ReadOffset( FT_Stream stream, ++ FT_Error* error ) ++ { ++ FT_Byte reads[3]; ++ FT_Byte* p = 0; ++ FT_Long result = 0; ++ ++ ++ FT_ASSERT( stream ); ++ ++ *error = FT_Err_Ok; ++ ++ if ( stream->pos + 2 < stream->size ) ++ { ++ if ( stream->read ) ++ { ++ if (stream->read( stream, stream->pos, reads, 3L ) != 3L ) ++ goto Fail; ++ ++ p = reads; ++ } ++ else ++ { ++ p = stream->base + stream->pos; ++ } ++ ++ if ( p ) ++ result = FT_NEXT_OFF3( p ); ++ } ++ else ++ goto Fail; ++ ++ stream->pos += 3; ++ ++ return result; ++ ++ Fail: ++ *error = FT_Err_Invalid_Stream_Operation; ++ FT_ERROR(( "FT_Stream_ReadOffset:" ++ " invalid i/o; pos = 0x%lx, size = 0x%lx\n", ++ stream->pos, stream->size )); ++ ++ return 0; ++ } ++ ++ + FT_BASE_DEF( FT_ULong ) + FT_Stream_ReadULong( FT_Stream stream, + FT_Error* error ) +@@ -671,6 +904,53 @@ + } + + ++ FT_BASE_DEF( FT_Long ) ++ FT_Stream_ReadLong( FT_Stream stream, ++ FT_Error* error ) ++ { ++ FT_Byte reads[4]; ++ FT_Byte* p = 0; ++ FT_Long result = 0; ++ ++ ++ FT_ASSERT( stream ); ++ ++ *error = FT_Err_Ok; ++ ++ if ( stream->pos + 3 < stream->size ) ++ { ++ if ( stream->read ) ++ { ++ if ( stream->read( stream, stream->pos, reads, 4L ) != 4L ) ++ goto Fail; ++ ++ p = reads; ++ } ++ else ++ { ++ p = stream->base + stream->pos; ++ } ++ ++ if ( p ) ++ result = FT_NEXT_LONG( p ); ++ } ++ else ++ goto Fail; ++ ++ stream->pos += 4; ++ ++ return result; ++ ++ Fail: ++ *error = FT_Err_Invalid_Stream_Operation; ++ FT_ERROR(( "FT_Stream_ReadLong:" ++ " invalid i/o; pos = 0x%lx, size = 0x%lx\n", ++ stream->pos, stream->size )); ++ ++ return 0; ++ } ++ ++ + FT_BASE_DEF( FT_ULong ) + FT_Stream_ReadULongLE( FT_Stream stream, + FT_Error* error ) +@@ -714,6 +994,53 @@ + " invalid i/o; pos = 0x%lx, size = 0x%lx\n", + stream->pos, stream->size )); + ++ return 0; ++ } ++ ++ ++ FT_BASE_DEF( FT_Long ) ++ FT_Stream_ReadLongLE( FT_Stream stream, ++ FT_Error* error ) ++ { ++ FT_Byte reads[4]; ++ FT_Byte* p = 0; ++ FT_Long result = 0; ++ ++ ++ FT_ASSERT( stream ); ++ ++ *error = FT_Err_Ok; ++ ++ if ( stream->pos + 3 < stream->size ) ++ { ++ if ( stream->read ) ++ { ++ if ( stream->read( stream, stream->pos, reads, 4L ) != 4L ) ++ goto Fail; ++ ++ p = reads; ++ } ++ else ++ { ++ p = stream->base + stream->pos; ++ } ++ ++ if ( p ) ++ result = FT_NEXT_LONG_LE( p ); ++ } ++ else ++ goto Fail; ++ ++ stream->pos += 4; ++ ++ return result; ++ ++ Fail: ++ *error = FT_Err_Invalid_Stream_Operation; ++ FT_ERROR(( "FT_Stream_ReadLongLE:" ++ " invalid i/o; pos = 0x%lx, size = 0x%lx\n", ++ stream->pos, stream->size )); ++ + return 0; + } + diff --git a/SOURCES/freetype-2.8-2.4.11-API.patch b/SOURCES/freetype-2.8-2.4.11-API.patch new file mode 100644 index 0000000..203e9e4 --- /dev/null +++ b/SOURCES/freetype-2.8-2.4.11-API.patch @@ -0,0 +1,696 @@ +--- freetype-2.8/builds/unix/unix-cc.in.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/builds/unix/unix-cc.in 2018-06-07 19:16:35.881770695 +0200 +@@ -109,6 +109,6 @@ CCexe := $(CCraw_build) # used to + LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \ + -rpath $(libdir) -version-info $(version_info) \ + $(LDFLAGS) -no-undefined \ +- -export-symbols $(EXPORTS_LIST) ++ # -export-symbols $(EXPORTS_LIST) + + # EOF +--- freetype-2.8/ft2demos-2.8/src/ftview.c.api 2017-05-11 18:31:16.000000000 +0200 ++++ freetype-2.8/ft2demos-2.8/src/ftview.c 2018-06-04 16:53:29.960331386 +0200 +@@ -1531,8 +1531,8 @@ + case FT_ENCODING_SJIS: + encoding = "SJIS"; + break; +- case FT_ENCODING_PRC: +- encoding = "PRC"; ++ case FT_ENCODING_GB2312: ++ encoding = "GB2312"; + break; + case FT_ENCODING_BIG5: + encoding = "Big5"; +--- freetype-2.8/include/freetype/freetype.h.api 2017-05-13 06:28:40.000000000 +0200 ++++ freetype-2.8/include/freetype/freetype.h 2018-06-04 16:53:29.961331388 +0200 +@@ -766,15 +766,14 @@ FT_BEGIN_HEADER + FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), + + FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ), +- FT_ENC_TAG( FT_ENCODING_PRC, 'g', 'b', ' ', ' ' ), ++ FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ), + FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ), + FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ), + FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ), + + /* for backward compatibility */ +- FT_ENCODING_GB2312 = FT_ENCODING_PRC, + FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, +- FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC, ++ FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, + FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, + FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, + FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, +--- freetype-2.8/include/freetype/ftcache.h.api 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/include/freetype/ftcache.h 2018-06-04 16:53:29.961331388 +0200 +@@ -667,8 +667,8 @@ FT_BEGIN_HEADER + typedef struct FTC_ImageTypeRec_ + { + FTC_FaceID face_id; +- FT_UInt width; +- FT_UInt height; ++ FT_Int width; ++ FT_Int height; + FT_Int32 flags; + + } FTC_ImageTypeRec; +--- freetype-2.8/include/freetype/ftimage.h.api 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/include/freetype/ftimage.h 2018-06-04 16:53:29.962331389 +0200 +@@ -260,13 +260,13 @@ FT_BEGIN_HEADER + /* */ + typedef struct FT_Bitmap_ + { +- unsigned int rows; +- unsigned int width; ++ int rows; ++ int width; + int pitch; + unsigned char* buffer; +- unsigned short num_grays; +- unsigned char pixel_mode; +- unsigned char palette_mode; ++ short num_grays; ++ char pixel_mode; ++ char palette_mode; + void* palette; + + } FT_Bitmap; +--- freetype-2.8/include/freetype/ftmm.h.api 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/include/freetype/ftmm.h 2018-06-04 16:53:29.962331389 +0200 +@@ -177,14 +177,10 @@ FT_BEGIN_HEADER + /* */ + /* strid :: The entry in `name' table identifying this instance. */ + /* */ +- /* psid :: The entry in `name' table identifying a PostScript name */ +- /* for this instance. */ +- /* */ + typedef struct FT_Var_Named_Style_ + { + FT_Fixed* coords; + FT_UInt strid; +- FT_UInt psid; /* since 2.7.1 */ + + } FT_Var_Named_Style; + +--- freetype-2.8/include/freetype/ttnameid.h.api 2017-05-03 23:26:45.000000000 +0200 ++++ freetype-2.8/include/freetype/ttnameid.h 2018-06-04 16:53:29.963331391 +0200 +@@ -1217,9 +1217,9 @@ FT_BEGIN_HEADER + /* */ + + /* for backward compatibility with older FreeType versions */ +-#define TT_UCR_ARABIC_PRESENTATION_A \ ++#define TT_UCR_ARABIC_PRESENTATIONS_A \ + TT_UCR_ARABIC_PRESENTATION_FORMS_A +-#define TT_UCR_ARABIC_PRESENTATION_B \ ++#define TT_UCR_ARABIC_PRESENTATIONS_B \ + TT_UCR_ARABIC_PRESENTATION_FORMS_B + + #define TT_UCR_COMBINING_DIACRITICS \ +--- freetype-2.8/include/freetype/tttables.h.api 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/include/freetype/tttables.h 2018-06-04 17:18:26.699449088 +0200 +@@ -383,7 +383,7 @@ FT_BEGIN_HEADER + FT_Short xAvgCharWidth; + FT_UShort usWeightClass; + FT_UShort usWidthClass; +- FT_UShort fsType; ++ FT_Short fsType; + FT_Short ySubscriptXSize; + FT_Short ySubscriptYSize; + FT_Short ySubscriptXOffset; +@@ -427,11 +427,6 @@ FT_BEGIN_HEADER + FT_UShort usBreakChar; + FT_UShort usMaxContext; + +- /* only version 5 and higher: */ +- +- FT_UShort usLowerOpticalPointSize; /* in twips (1/20th points) */ +- FT_UShort usUpperOpticalPointSize; /* in twips (1/20th points) */ +- + } TT_OS2; + + +@@ -596,43 +591,41 @@ FT_BEGIN_HEADER + /* @FT_Get_Sfnt_Table API function. */ + /* */ + /* */ +- /* FT_SFNT_HEAD :: To access the font's @TT_Header structure. */ ++ /* ft_sfnt_head :: To access the font's @TT_Header structure. */ + /* */ +- /* FT_SFNT_MAXP :: To access the font's @TT_MaxProfile structure. */ ++ /* ft_sfnt_maxp :: To access the font's @TT_MaxProfile structure. */ + /* */ +- /* FT_SFNT_OS2 :: To access the font's @TT_OS2 structure. */ ++ /* ft_sfnt_os2 :: To access the font's @TT_OS2 structure. */ + /* */ +- /* FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure. */ ++ /* ft_sfnt_hhea :: To access the font's @TT_HoriHeader structure. */ + /* */ +- /* FT_SFNT_VHEA :: To access the font's @TT_VertHeader structure. */ ++ /* ft_sfnt_vhea :: To access the font's @TT_VertHeader structure. */ + /* */ +- /* FT_SFNT_POST :: To access the font's @TT_Postscript structure. */ ++ /* ft_sfnt_post :: To access the font's @TT_Postscript structure. */ + /* */ +- /* FT_SFNT_PCLT :: To access the font's @TT_PCLT structure. */ ++ /* ft_sfnt_pclt :: To access the font's @TT_PCLT structure. */ + /* */ + typedef enum FT_Sfnt_Tag_ + { +- FT_SFNT_HEAD, +- FT_SFNT_MAXP, +- FT_SFNT_OS2, +- FT_SFNT_HHEA, +- FT_SFNT_VHEA, +- FT_SFNT_POST, +- FT_SFNT_PCLT, ++ ft_sfnt_head = 0, ++ ft_sfnt_maxp = 1, ++ ft_sfnt_os2 = 2, ++ ft_sfnt_hhea = 3, ++ ft_sfnt_vhea = 4, ++ ft_sfnt_post = 5, ++ ft_sfnt_pclt = 6, + +- FT_SFNT_MAX ++ sfnt_max + + } FT_Sfnt_Tag; + +- /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag' */ +- /* values instead */ +-#define ft_sfnt_head FT_SFNT_HEAD +-#define ft_sfnt_maxp FT_SFNT_MAXP +-#define ft_sfnt_os2 FT_SFNT_OS2 +-#define ft_sfnt_hhea FT_SFNT_HHEA +-#define ft_sfnt_vhea FT_SFNT_VHEA +-#define ft_sfnt_post FT_SFNT_POST +-#define ft_sfnt_pclt FT_SFNT_PCLT ++#define FT_SFNT_HEAD ft_sfnt_head ++#define FT_SFNT_MAXP ft_sfnt_maxp ++#define FT_SFNT_OS2 ft_sfnt_os2 ++#define FT_SFNT_HHEA ft_sfnt_hhea ++#define FT_SFNT_VHEA ft_sfnt_vhea ++#define FT_SFNT_POST ft_sfnt_post ++#define FT_SFNT_PCLT ft_sfnt_pclt + + + /*************************************************************************/ +--- freetype-2.8/src/sfnt/sfdriver.c.api 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/sfnt/sfdriver.c 2018-06-04 16:53:29.964331392 +0200 +@@ -867,16 +867,9 @@ + SFNT_Service sfnt = (SFNT_Service)face->sfnt; + + FT_Long instance = ( ( face->root.face_index & 0x7FFF0000L ) >> 16 ) - 1; +- FT_UInt psid = mm_var->namedstyle[instance].psid; + + char* ps_name = NULL; + +- +- /* try first to load the name string with index `postScriptNameID' */ +- if ( psid == 6 || +- ( psid > 255 && psid < 32768 ) ) +- (void)sfnt->get_name( face, (FT_UShort)psid, &ps_name ); +- + if ( ps_name ) + { + result = ps_name; +--- freetype-2.8/src/sfnt/sfobjs.c.api 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/sfnt/sfobjs.c 2018-06-04 16:53:29.964331392 +0200 +@@ -311,7 +311,7 @@ + { TT_PLATFORM_MICROSOFT, TT_MS_ID_UCS_4, FT_ENCODING_UNICODE }, + { TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, FT_ENCODING_UNICODE }, + { TT_PLATFORM_MICROSOFT, TT_MS_ID_SJIS, FT_ENCODING_SJIS }, +- { TT_PLATFORM_MICROSOFT, TT_MS_ID_PRC, FT_ENCODING_PRC }, ++ { TT_PLATFORM_MICROSOFT, TT_MS_ID_GB2312, FT_ENCODING_GB2312 }, + { TT_PLATFORM_MICROSOFT, TT_MS_ID_BIG_5, FT_ENCODING_BIG5 }, + { TT_PLATFORM_MICROSOFT, TT_MS_ID_WANSUNG, FT_ENCODING_WANSUNG }, + { TT_PLATFORM_MICROSOFT, TT_MS_ID_JOHAB, FT_ENCODING_JOHAB } +--- freetype-2.8/src/sfnt/ttload.c.api 2017-04-22 07:39:36.000000000 +0200 ++++ freetype-2.8/src/sfnt/ttload.c 2018-06-04 16:53:29.965331393 +0200 +@@ -1164,15 +1164,6 @@ + FT_FRAME_END + }; + +- /* `OS/2' version 5 and newer */ +- static const FT_Frame_Field os2_fields_extra5[] = +- { +- FT_FRAME_START( 4 ), +- FT_FRAME_USHORT( usLowerOpticalPointSize ), +- FT_FRAME_USHORT( usUpperOpticalPointSize ), +- FT_FRAME_END +- }; +- + + /* We now support old Mac fonts where the OS/2 table doesn't */ + /* exist. Simply put, we set the `version' field to 0xFFFF */ +@@ -1193,8 +1184,6 @@ + os2->usDefaultChar = 0; + os2->usBreakChar = 0; + os2->usMaxContext = 0; +- os2->usLowerOpticalPointSize = 0; +- os2->usUpperOpticalPointSize = 0xFFFF; + + if ( os2->version >= 0x0001 ) + { +@@ -1207,13 +1196,6 @@ + /* only version 2 tables */ + if ( FT_STREAM_READ_FIELDS( os2_fields_extra2, os2 ) ) + goto Exit; +- +- if ( os2->version >= 0x0005 ) +- { +- /* only version 5 tables */ +- if ( FT_STREAM_READ_FIELDS( os2_fields_extra5, os2 ) ) +- goto Exit; +- } + } + } + +--- freetype-2.8/src/truetype/ttgxvar.c.api 2017-05-02 14:37:55.000000000 +0200 ++++ freetype-2.8/src/truetype/ttgxvar.c 2018-06-04 16:53:29.966331395 +0200 +@@ -2155,7 +2155,7 @@ + *c = FT_GET_LONG(); + + if ( usePsName ) +- ns->psid = FT_GET_USHORT(); ++ (void) FT_GET_USHORT(); + + ft_var_to_normalized( face, + fvar_head.axisCount, +@@ -2206,7 +2206,6 @@ + ns = &mmvar->namedstyle[fvar_head.instanceCount]; + + ns->strid = strid; +- ns->psid = TT_NAME_ID_PS_NAME; + + a = mmvar->axis; + c = ns->coords; +--- freetype-2.8/devel/ftoption.h.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/devel/ftoption.h 2018-06-07 11:30:34.431455285 +0200 +@@ -903,7 +903,7 @@ FT_BEGIN_HEADER + * This macro is obsolete. Support has been removed in FreeType + * version 2.5. + */ +-/* #define FT_CONFIG_OPTION_OLD_INTERNALS */ ++#define FT_CONFIG_OPTION_OLD_INTERNALS + + + /* +--- freetype-2.8/include/freetype/config/ftoption.h.orig 2017-05-01 09:39:06.000000000 +0200 ++++ freetype-2.8/include/freetype/config/ftoption.h 2018-06-07 11:30:53.662506048 +0200 +@@ -934,7 +934,7 @@ FT_BEGIN_HEADER + * This macro is obsolete. Support has been removed in FreeType + * version 2.5. + */ +-/* #define FT_CONFIG_OPTION_OLD_INTERNALS */ ++#define FT_CONFIG_OPTION_OLD_INTERNALS + + + /* +--- freetype-2.8/include/freetype/ftcache.h.orig 2018-06-07 11:33:07.663882169 +0200 ++++ freetype-2.8/include/freetype/ftcache.h 2018-06-07 11:33:23.127947502 +0200 +@@ -1049,6 +1049,54 @@ FT_BEGIN_HEADER + /* */ + + ++#ifdef FT_CONFIG_OPTION_OLD_INTERNALS ++ ++ /*@***********************************************************************/ ++ /* */ ++ /* */ ++ /* FTC_FontRec */ ++ /* */ ++ /* */ ++ /* A simple structure used to describe a given `font' to the cache */ ++ /* manager. Note that a `font' is the combination of a given face */ ++ /* with a given character size. */ ++ /* */ ++ /* */ ++ /* face_id :: The ID of the face to use. */ ++ /* */ ++ /* pix_width :: The character width in integer pixels. */ ++ /* */ ++ /* pix_height :: The character height in integer pixels. */ ++ /* */ ++ typedef struct FTC_FontRec_ ++ { ++ FTC_FaceID face_id; ++ FT_UShort pix_width; ++ FT_UShort pix_height; ++ ++ } FTC_FontRec; ++ ++ ++ /* */ ++ ++ ++ typedef FTC_FontRec* FTC_Font; ++ ++ ++ FT_EXPORT( FT_Error ) ++ FTC_Manager_Lookup_Face( FTC_Manager manager, ++ FTC_FaceID face_id, ++ FT_Face *aface ); ++ ++ FT_EXPORT( FT_Error ) ++ FTC_Manager_Lookup_Size( FTC_Manager manager, ++ FTC_Font font, ++ FT_Face *aface, ++ FT_Size *asize ); ++ ++#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ ++ ++ + FT_END_HEADER + + #endif /* FTCACHE_H_ */ +--- freetype-2.8/src/cache/ftcmanag.c.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/cache/ftcmanag.c 2018-06-07 11:28:18.663096906 +0200 +@@ -701,4 +701,55 @@ + } + + ++#ifdef FT_CONFIG_OPTION_OLD_INTERNALS ++ ++ FT_EXPORT_DEF( FT_Error ) ++ FTC_Manager_Lookup_Face( FTC_Manager manager, ++ FTC_FaceID face_id, ++ FT_Face *aface ) ++ { ++ return FTC_Manager_LookupFace( manager, face_id, aface ); ++ } ++ ++ ++ FT_EXPORT( FT_Error ) ++ FTC_Manager_Lookup_Size( FTC_Manager manager, ++ FTC_Font font, ++ FT_Face *aface, ++ FT_Size *asize ) ++ { ++ FTC_ScalerRec scaler; ++ FT_Error error; ++ FT_Size size; ++ FT_Face face; ++ ++ ++ scaler.face_id = font->face_id; ++ scaler.width = font->pix_width; ++ scaler.height = font->pix_height; ++ scaler.pixel = TRUE; ++ scaler.x_res = 0; ++ scaler.y_res = 0; ++ ++ error = FTC_Manager_LookupSize( manager, &scaler, &size ); ++ if ( error ) ++ { ++ face = NULL; ++ size = NULL; ++ } ++ else ++ face = size->face; ++ ++ if ( aface ) ++ *aface = face; ++ ++ if ( asize ) ++ *asize = size; ++ ++ return error; ++ } ++ ++#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ ++ ++ + /* END */ +--- freetype-2.8/ft2demos-2.8/graph/x11/grx11.c.orig 2016-10-19 06:55:23.000000000 +0200 ++++ freetype-2.8/ft2demos-2.8/graph/x11/grx11.c 2018-06-07 16:41:52.626432650 +0200 +@@ -1404,8 +1404,8 @@ typedef unsigned long uint32; + RootWindow( display, screen ), + 0, + 0, +- (unsigned int)bitmap->width, +- (unsigned int)bitmap->rows, ++ bitmap->width, ++ bitmap->rows, + 10, + format->x_depth, + InputOutput, +--- freetype-2.8/src/base/ftbitmap.c.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/base/ftbitmap.c 2018-06-07 18:26:08.488060315 +0200 +@@ -90,7 +90,7 @@ + + if ( pitch < 0 ) + pitch = -pitch; +- size = (FT_ULong)pitch * source->rows; ++ size = (FT_ULong)( pitch * source->rows ); + + if ( target->buffer ) + { +@@ -100,7 +100,7 @@ + + if ( target_pitch < 0 ) + target_pitch = -target_pitch; +- target_size = (FT_ULong)target_pitch * target->rows; ++ target_size = (FT_ULong)( target_pitch * target->rows ); + + if ( target_size != size ) + (void)FT_QREALLOC( target->buffer, target_size, size ); +@@ -156,7 +156,7 @@ + int pitch; + int new_pitch; + FT_UInt bpp; +- FT_UInt i, width, height; ++ FT_Int i, width, height; + unsigned char* buffer = NULL; + + +@@ -194,17 +194,17 @@ + if ( ypixels == 0 && new_pitch <= pitch ) + { + /* zero the padding */ +- FT_UInt bit_width = (FT_UInt)pitch * 8; +- FT_UInt bit_last = ( width + xpixels ) * bpp; ++ FT_Int bit_width = pitch * 8; ++ FT_Int bit_last = ( width + xpixels ) * bpp; + + + if ( bit_last < bit_width ) + { + FT_Byte* line = bitmap->buffer + ( bit_last >> 3 ); + FT_Byte* end = bitmap->buffer + pitch; +- FT_UInt shift = bit_last & 7; ++ FT_Int shift = bit_last & 7; + FT_UInt mask = 0xFF00U >> shift; +- FT_UInt count = height; ++ FT_Int count = height; + + + for ( ; count > 0; count--, line += pitch, end += pitch ) +@@ -233,7 +233,7 @@ + /* thus take care of the flow direction */ + if ( bitmap->pitch > 0 ) + { +- FT_UInt len = ( width * bpp + 7 ) >> 3; ++ FT_Int len = ( width * bpp + 7 ) >> 3; + + + for ( i = 0; i < bitmap->rows; i++ ) +@@ -243,7 +243,7 @@ + } + else + { +- FT_UInt len = ( width * bpp + 7 ) >> 3; ++ FT_Int len = ( width * bpp + 7 ) >> 3; + + + for ( i = 0; i < bitmap->rows; i++ ) +@@ -275,8 +275,7 @@ + { + FT_Error error; + unsigned char* p; +- FT_Int i, x, pitch; +- FT_UInt y; ++ FT_Int i, x, y, pitch; + FT_Int xstr, ystr; + + +@@ -420,8 +419,8 @@ + p += bitmap->pitch; + } + +- bitmap->width += (FT_UInt)xstr; +- bitmap->rows += (FT_UInt)ystr; ++ bitmap->width += xstr; ++ bitmap->rows += ystr; + + return FT_Err_Ok; + } +@@ -506,8 +505,8 @@ + case FT_PIXEL_MODE_LCD_V: + case FT_PIXEL_MODE_BGRA: + { +- FT_Int pad, old_target_pitch, target_pitch; +- FT_ULong old_size; ++ FT_Int pad, old_target_pitch, target_pitch; ++ FT_Long old_size; + + + old_target_pitch = target->pitch; +@@ -617,7 +616,7 @@ + case FT_PIXEL_MODE_LCD: + case FT_PIXEL_MODE_LCD_V: + { +- FT_UInt width = source->width; ++ FT_Int width = source->width; + FT_UInt i; + + +--- freetype-2.8/src/pcf/pcfdrivr.c.orig 2018-06-07 11:42:57.757375204 +0200 ++++ freetype-2.8/src/pcf/pcfdrivr.c 2018-06-07 16:59:25.832896549 +0200 +@@ -523,10 +523,10 @@ THE SOFTWARE. + + metric = face->metrics + glyph_index; + +- bitmap->rows = (unsigned int)( metric->ascent + +- metric->descent ); +- bitmap->width = (unsigned int)( metric->rightSideBearing - +- metric->leftSideBearing ); ++ bitmap->rows = ( metric->ascent + ++ metric->descent ); ++ bitmap->width = ( metric->rightSideBearing - ++ metric->leftSideBearing ); + bitmap->num_grays = 1; + bitmap->pixel_mode = FT_PIXEL_MODE_MONO; + +--- freetype-2.8/src/raster/ftraster.c.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/raster/ftraster.c 2018-06-07 18:07:14.977278387 +0200 +@@ -2479,7 +2479,7 @@ + { + e1 = TRUNC( e1 ); + +- if ( e1 >= 0 && (ULong)e1 < ras.target.rows ) ++ if ( e1 >= 0 && e1 < ras.target.rows ) + { + Byte f1; + PByte bits; +@@ -2589,7 +2589,7 @@ + /* bounding box instead */ + if ( pxl < 0 ) + pxl = e1; +- else if ( (ULong)( TRUNC( pxl ) ) >= ras.target.rows ) ++ else if ( ( TRUNC( pxl ) ) >= ras.target.rows ) + pxl = e2; + + /* check that the other pixel isn't set */ +@@ -2604,9 +2604,9 @@ + if ( ras.target.pitch > 0 ) + bits += (Long)( ras.target.rows - 1 ) * ras.target.pitch; + +- if ( e1 >= 0 && +- (ULong)e1 < ras.target.rows && +- *bits & f1 ) ++ if ( e1 >= 0 && ++ e1 < ras.target.rows && ++ *bits & f1 ) + goto Exit; + } + else +@@ -2615,7 +2615,7 @@ + + e1 = TRUNC( pxl ); + +- if ( e1 >= 0 && (ULong)e1 < ras.target.rows ) ++ if ( e1 >= 0 && e1 < ras.target.rows ) + { + FT_TRACE7(( " -> y=%d (drop-out)", e1 )); + +--- freetype-2.8/src/sfnt/pngshim.c.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/sfnt/pngshim.c 2018-06-07 18:08:07.825359421 +0200 +@@ -209,10 +209,10 @@ + } + + if ( !populate_map_and_metrics && +- ( (FT_UInt)x_offset + metrics->width > map->width || +- (FT_UInt)y_offset + metrics->height > map->rows || +- pix_bits != 32 || +- map->pixel_mode != FT_PIXEL_MODE_BGRA ) ) ++ ( x_offset + metrics->width > map->width || ++ y_offset + metrics->height > map->rows || ++ pix_bits != 32 || ++ map->pixel_mode != FT_PIXEL_MODE_BGRA ) ) + { + error = FT_THROW( Invalid_Argument ); + goto Exit; +@@ -270,7 +270,7 @@ + map->num_grays = 256; + + /* reject too large bitmaps similarly to the rasterizer */ +- if ( map->rows > 0x7FFF || map->width > 0x7FFF ) ++ if ( map->rows > 0x4FFF || map->width > 0x4FFF ) + { + error = FT_THROW( Array_Too_Large ); + goto DestroyExit; +@@ -346,7 +346,7 @@ + + if ( populate_map_and_metrics ) + { +- /* this doesn't overflow: 0x7FFF * 0x7FFF * 4 < 2^32 */ ++ /* this doesn't overflow: 0x4FFF * 0x4FFF * 4 < 2^31 */ + FT_ULong size = map->rows * (FT_ULong)map->pitch; + + +--- freetype-2.8/src/sfnt/ttsbit.c.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/sfnt/ttsbit.c 2018-06-07 18:31:57.610612501 +0200 +@@ -705,7 +705,7 @@ + FT_Error error = FT_Err_Ok; + FT_Byte* line; + FT_Int pitch, width, height, line_bits, h; +- FT_UInt bit_height, bit_width; ++ FT_Int bit_height, bit_width; + FT_Bitmap* bitmap; + + FT_UNUSED( recurse_count ); +--- freetype-2.8/src/smooth/ftgrays.c.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/smooth/ftgrays.c 2018-06-07 17:01:09.008070697 +0200 +@@ -1880,7 +1880,7 @@ typedef ptrdiff_t FT_PtrDist; + ras.target.origin = target_map->buffer; + else + ras.target.origin = target_map->buffer +- + ( target_map->rows - 1 ) * (unsigned int)target_map->pitch; ++ + (unsigned int) (( target_map->rows - 1 ) * target_map->pitch); + + ras.target.pitch = target_map->pitch; + +--- freetype-2.8/src/smooth/ftsmooth.c.orig 2017-05-01 09:35:12.000000000 +0200 ++++ freetype-2.8/src/smooth/ftsmooth.c 2018-06-07 17:01:51.040141641 +0200 +@@ -292,8 +292,8 @@ + + bitmap->pixel_mode = FT_PIXEL_MODE_GRAY; + bitmap->num_grays = 256; +- bitmap->width = (unsigned int)width; +- bitmap->rows = (unsigned int)height; ++ bitmap->width = width; ++ bitmap->rows = height; + bitmap->pitch = pitch; + + /* translate outline to render it into the bitmap */ +--- freetype-2.8/src/winfonts/winfnt.c.orig 2017-03-30 12:20:23.000000000 +0200 ++++ freetype-2.8/src/winfonts/winfnt.c 2018-06-07 18:21:47.809648016 +0200 +@@ -1038,7 +1038,7 @@ + + p = font->fnt_frame + offset; + +- bitmap->width = FT_NEXT_USHORT_LE( p ); ++ bitmap->width = FT_NEXT_SHORT_LE( p ); + + /* jump to glyph entry */ + if ( new_format ) +@@ -1079,7 +1079,7 @@ + /* allocate and build bitmap */ + { + FT_Memory memory = FT_FACE_MEMORY( slot->face ); +- FT_UInt pitch = ( bitmap->width + 7 ) >> 3; ++ FT_Int pitch = ( bitmap->width + 7 ) >> 3; + FT_Byte* column; + FT_Byte* write; + diff --git a/SOURCES/freetype-2.8-avar-table-load.patch b/SOURCES/freetype-2.8-avar-table-load.patch new file mode 100644 index 0000000..bd6416c --- /dev/null +++ b/SOURCES/freetype-2.8-avar-table-load.patch @@ -0,0 +1,46 @@ +From 55bbb98f5c5a89230127d6b998a6e23e634b5d0e Mon Sep 17 00:00:00 2001 +From: Behdad Esfahbod +Date: Tue, 1 Aug 2017 09:17:02 +0200 +Subject: [PATCH 077/132] [truetype] Fix loading of named instances. + +* src/truetype/ttgxvar.c (TT_Get_MM_Var): Preserve file position +while loading the `avar' table. +--- + ChangeLog | 7 +++++++ + include/freetype/ftmm.h | 2 +- + src/truetype/ttgxvar.c | 11 ++++++++++- + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c +index 68458362e..df42b3bfd 100644 +--- a/src/truetype/ttgxvar.c ++++ b/src/truetype/ttgxvar.c +@@ -2136,8 +2136,16 @@ + goto Exit; + + if ( fvar_head.instanceCount && !face->blend->avar_loaded ) ++ { ++ FT_ULong offset = FT_STREAM_POS(); ++ ++ + ft_var_load_avar( face ); + ++ if ( FT_STREAM_SEEK( offset ) ) ++ goto Exit; ++ } ++ + ns = mmvar->namedstyle; + nsc = face->blend->normalized_stylecoords; + for ( i = 0; i < fvar_head.instanceCount; i++, ns++ ) +@@ -2171,7 +2179,7 @@ + SFNT_Service sfnt = (SFNT_Service)face->sfnt; + + FT_Int found, dummy1, dummy2; +- FT_UInt strid = 0xFFFFFFFFUL; ++ FT_UInt strid = ~0U; + + + /* the default instance is missing in array the */ +-- +2.13.5 + diff --git a/SOURCES/freetype-2.8-getvariation.patch b/SOURCES/freetype-2.8-getvariation.patch new file mode 100644 index 0000000..7e0ecf9 --- /dev/null +++ b/SOURCES/freetype-2.8-getvariation.patch @@ -0,0 +1,39 @@ +From 29c759284e305ec428703c9a5831d0b1fc3497ef Mon Sep 17 00:00:00 2001 +From: Werner Lemberg +Date: Sat, 27 Jan 2018 14:43:43 +0100 +Subject: [PATCH] * src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL + reference. + +Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736 +--- + src/truetype/ttinterp.c | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c +index d855aaaa9..551f14a2e 100644 +--- a/src/truetype/ttinterp.c ++++ b/src/truetype/ttinterp.c +@@ -7470,8 +7470,16 @@ + return; + } + +- for ( i = 0; i < num_axes; i++ ) +- args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */ ++ if ( coords ) ++ { ++ for ( i = 0; i < num_axes; i++ ) ++ args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */ ++ } ++ else ++ { ++ for ( i = 0; i < num_axes; i++ ) ++ args[i] = 0; ++ } + } + + +-- +2.14.3 + diff --git a/SOURCES/freetype-2.8-loop-counter.patch b/SOURCES/freetype-2.8-loop-counter.patch new file mode 100644 index 0000000..61e9052 --- /dev/null +++ b/SOURCES/freetype-2.8-loop-counter.patch @@ -0,0 +1,36 @@ +From 8d435c463d22f6de35015b244d6f9bb433beb7e6 Mon Sep 17 00:00:00 2001 +From: Werner Lemberg +Date: Thu, 1 Jun 2017 07:09:44 +0200 +Subject: [PATCH] * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter + again. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Problem reported by Marek Kašík . + +The problematic font that exceeds the old limit is Padauk-Bold, +version 3.002, containing bytecode generated by a buggy version of +ttfautohint. +--- + ChangeLog | 10 ++++++++++ + src/truetype/ttinterp.c | 3 +-- + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c +index 0c48c256..775d1104 100644 +--- a/src/truetype/ttinterp.c ++++ b/src/truetype/ttinterp.c +@@ -7649,8 +7649,7 @@ + FT_MAX( 50, + exc->cvtSize / 10 ); + else +- exc->loopcall_counter_max = FT_MAX( 100, +- 10 * exc->cvtSize ); ++ exc->loopcall_counter_max = 300 + 8 * exc->cvtSize; + + /* as a protection against an unreasonable number of CVT entries */ + /* we assume at most 100 control values per glyph for the counter */ +-- +2.13.0 + diff --git a/SOURCES/freetype-2.8-pcf-encoding.patch b/SOURCES/freetype-2.8-pcf-encoding.patch new file mode 100644 index 0000000..fd1c706 --- /dev/null +++ b/SOURCES/freetype-2.8-pcf-encoding.patch @@ -0,0 +1,58 @@ +From 082f2faf5007812bac6a1f783c7dcc6f49d761fe Mon Sep 17 00:00:00 2001 +From: Werner Lemberg +Date: Wed, 24 May 2017 07:40:46 +0200 +Subject: [PATCH] [bdf, pcf] Support ISO646.1991-IRV character encoding (aka + ASCII). +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Problem reported by Marek Kašík , cf. + + https://bugzilla.redhat.com/show_bug.cgi?id=1451795 + +* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdrivr.c +(PCF_Face_Init): Implement it. +--- + ChangeLog | 11 +++++++++++ + src/bdf/bdfdrivr.c | 6 +++++- + src/pcf/pcfdrivr.c | 6 +++++- + 3 files changed, 21 insertions(+), 2 deletions(-) + +diff --git a/src/bdf/bdfdrivr.c b/src/bdf/bdfdrivr.c +index a2242be0..c0a5a5c5 100644 +--- a/src/bdf/bdfdrivr.c ++++ b/src/bdf/bdfdrivr.c +@@ -545,7 +545,11 @@ THE SOFTWARE. + if ( !ft_strcmp( s, "10646" ) || + ( !ft_strcmp( s, "8859" ) && + !ft_strcmp( face->charset_encoding, "1" ) ) ) +- unicode_charmap = 1; ++ unicode_charmap = 1; ++ /* another name for ASCII */ ++ else if ( !ft_strcmp( s, "646.1991" ) && ++ !ft_strcmp( face->charset_encoding, "IRV" ) ) ++ unicode_charmap = 1; + } + + { +diff --git a/src/pcf/pcfdrivr.c b/src/pcf/pcfdrivr.c +index 9f4d36d1..50530941 100644 +--- a/src/pcf/pcfdrivr.c ++++ b/src/pcf/pcfdrivr.c +@@ -387,7 +387,11 @@ THE SOFTWARE. + if ( !ft_strcmp( s, "10646" ) || + ( !ft_strcmp( s, "8859" ) && + !ft_strcmp( face->charset_encoding, "1" ) ) ) +- unicode_charmap = 1; ++ unicode_charmap = 1; ++ /* another name for ASCII */ ++ else if ( !ft_strcmp( s, "646.1991" ) && ++ !ft_strcmp( face->charset_encoding, "IRV" ) ) ++ unicode_charmap = 1; + } + } + +-- +2.13.0 + diff --git a/SOURCES/freetype-multilib.patch b/SOURCES/freetype-multilib.patch new file mode 100644 index 0000000..4f40a80 --- /dev/null +++ b/SOURCES/freetype-multilib.patch @@ -0,0 +1,65 @@ +--- freetype-2.8/builds/unix/freetype-config.in ++++ freetype-2.8/builds/unix/freetype-config.in +@@ -13,45 +13,25 @@ LC_ALL=C + export LC_ALL + + +-# if `pkg-config' is available, use values from `freetype2.pc' +-pkg-config --version >/dev/null 2>&1 +-if test $? -eq 0 ; then +- # note that option `--variable' is not affected by the +- # PKG_CONFIG_SYSROOT_DIR environment variable +- if test "x$SYSROOT" != "x" ; then +- PKG_CONFIG_SYSROOT_DIR="$SYSROOT" +- export PKG_CONFIG_SYSROOT_DIR +- fi +- +- prefix=`pkg-config --variable prefix freetype2` +- exec_prefix=`pkg-config --variable exec_prefix freetype2` +- +- includedir=`pkg-config --variable includedir freetype2` +- libdir=`pkg-config --variable libdir freetype2` +- +- version=`pkg-config --modversion freetype2` +- +- cflags=`pkg-config --cflags freetype2` +- dynamic_libs=`pkg-config --libs freetype2` +- static_libs=`pkg-config --static --libs freetype2` +-else +- prefix="%prefix%" +- exec_prefix="%exec_prefix%" +- +- includedir="%includedir%" +- libdir="%libdir%" +- +- version=%ft_version% +- +- cflags="-I${SYSROOT}$includedir/freetype2" +- dynamic_libs="-lfreetype" +- static_libs="%LIBSSTATIC_CONFIG%" +- if test "${SYSROOT}$libdir" != "/usr/lib" && +- test "${SYSROOT}$libdir" != "/usr/lib64" ; then +- libs_L="-L${SYSROOT}$libdir" +- fi ++# note that option `--variable' is not affected by the ++# PKG_CONFIG_SYSROOT_DIR environment variable ++if test "x$SYSROOT" != "x" ; then ++ PKG_CONFIG_SYSROOT_DIR="$SYSROOT" ++ export PKG_CONFIG_SYSROOT_DIR + fi + ++prefix=`pkg-config --variable prefix freetype2` ++exec_prefix=`pkg-config --variable exec_prefix freetype2` ++ ++includedir=`pkg-config --variable includedir freetype2` ++libdir=`pkg-config --variable libdir freetype2` ++ ++version=`pkg-config --modversion freetype2` ++ ++cflags=`pkg-config --cflags freetype2` ++dynamic_libs=`pkg-config --libs freetype2` ++static_libs=`pkg-config --static --libs freetype2` ++ + orig_prefix=$prefix + orig_exec_prefix=$exec_prefix + diff --git a/SOURCES/ftconfig.h b/SOURCES/ftconfig.h new file mode 100644 index 0000000..8d4a074 --- /dev/null +++ b/SOURCES/ftconfig.h @@ -0,0 +1,14 @@ +#ifndef __FTCONFIG_H__MULTILIB +#define __FTCONFIG_H__MULTILIB + +#include + +#if __WORDSIZE == 32 +# include "ftconfig-32.h" +#elif __WORDSIZE == 64 +# include "ftconfig-64.h" +#else +# error "unexpected value for __WORDSIZE macro" +#endif + +#endif diff --git a/SPECS/freetype.spec b/SPECS/freetype.spec new file mode 100644 index 0000000..c7e62a0 --- /dev/null +++ b/SPECS/freetype.spec @@ -0,0 +1,916 @@ +# Patented subpixel rendering disabled by default. +# Pass '--with subpixel_rendering' on rpmbuild command-line to enable. +%{!?_with_subpixel_rendering: %{!?_without_subpixel_rendering: %define _without_subpixel_rendering --without-subpixel_rendering}} + +%{!?with_xfree86:%define with_xfree86 1} + +Summary: A free and portable font rendering engine +Name: freetype +Version: 2.8 +Release: 12%{?dist} +License: (FTL or GPLv2+) and BSD and MIT and Public Domain and zlib with acknowledgement +Group: System Environment/Libraries +URL: http://www.freetype.org +Source: http://download.savannah.gnu.org/releases/freetype/freetype-%{version}.tar.bz2 +Source1: http://download.savannah.gnu.org/releases/freetype/freetype-doc-%{version}.tar.bz2 +Source2: http://download.savannah.gnu.org/releases/freetype/ft2demos-%{version}.tar.bz2 +Source3: ftconfig.h + +Patch0: freetype-2.3.0-enable-spr.patch + +# Enable otvalid and gxvalid modules +Patch1: freetype-2.2.1-enable-valid.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1197740 +Patch2: freetype-2.4.11-inode-overflow.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1381678 +Patch3: freetype-2.4.11-signed.patch + +# Enable additional demos +Patch4: freetype-2.3.11-more-demos.patch + +Patch5: freetype-2.4.11-libtool.patch + +Patch6: freetype-2.8-pcf-encoding.patch + +Patch7: freetype-2.8-loop-counter.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1497443 +Patch8: freetype-multilib.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1544775 +Patch9: freetype-2.8-getvariation.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1576504 +Patch10: freetype-2.8-2.4.11-API.patch +Patch11: freetype-2.8-avar-table-load.patch + +BuildRequires: libX11-devel +BuildRequires: libpng-devel +BuildRequires: zlib-devel +BuildRequires: bzip2-devel + +Provides: %{name}-bytecode +%if %{?_with_subpixel_rendering:1}%{!?_with_subpixel_rendering:0} +Provides: %{name}-subpixel +%endif + +%description +The FreeType engine is a free and portable font rendering +engine, developed to provide advanced font support for a variety of +platforms and environments. FreeType is a library which can open and +manages font files as well as efficiently load, hint and render +individual glyphs. FreeType is not a font server or a complete +text-rendering library. + + +%package demos +Summary: A collection of FreeType demos +Group: System Environment/Libraries +Requires: %{name} = %{version}-%{release} + +%description demos +The FreeType engine is a free and portable font rendering +engine, developed to provide advanced font support for a variety of +platforms and environments. The demos package includes a set of useful +small utilities showing various capabilities of the FreeType library. + + +%package devel +Summary: FreeType development libraries and header files +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig%{?_isa} + +%description devel +The freetype-devel package includes the static libraries and header files +for the FreeType font rendering engine. + +Install freetype-devel if you want to develop programs which will use +FreeType. + + +%prep +%setup -q -b 1 -a 2 + +%if %{?_with_subpixel_rendering:1}%{!?_with_subpixel_rendering:0} +%patch0 -p1 -b .enable-spr +%endif + +%patch1 -p1 -b .enable-valid +%patch2 -p1 -b .inode-overflow +%patch3 -p1 -b .signed + +pushd ft2demos-%{version} +%patch4 -p1 -b .more-demos +popd + +%patch5 -p1 -b .libtool +%patch6 -p1 -b .pcf-encoding +%patch7 -p1 -b .loop-counter +%patch8 -p1 -b .multilib +%patch9 -p1 -b .getvariation +%patch10 -p1 -b .2.4.11-api +%patch11 -p1 -b .avar-table-load + +%build + +%configure --disable-static \ + --with-zlib=yes \ + --with-bzip2=yes \ + --with-png=yes \ + --with-harfbuzz=no \ + CFLAGS="%optflags -D_FILE_OFFSET_BITS=64" + +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' builds/unix/libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' builds/unix/libtool +make %{?_smp_mflags} + +%if %{with_xfree86} +# Build demos +pushd ft2demos-%{version} +make TOP_DIR=".." +popd +%endif + +# Convert FTL.txt and example3.cpp to UTF-8 +pushd docs +iconv -f latin1 -t utf-8 < FTL.TXT > FTL.TXT.tmp && \ +touch -r FTL.TXT FTL.TXT.tmp && \ +mv FTL.TXT.tmp FTL.TXT + +iconv -f iso-8859-1 -t utf-8 < "tutorial/example3.cpp" > "tutorial/example3.cpp.utf8" +touch -r tutorial/example3.cpp tutorial/example3.cpp.utf8 && \ +mv tutorial/example3.cpp.utf8 tutorial/example3.cpp +popd + + +%install + +%make_install gnulocaledir=$RPM_BUILD_ROOT%{_datadir}/locale + +{ + for ftdemo in ftbench ftchkwd ftmemchk ftpatchk fttimer ftdump ftlint ftmemchk ftvalid ; do + builds/unix/libtool --mode=install install -m 755 ft2demos-%{version}/bin/$ftdemo $RPM_BUILD_ROOT/%{_bindir} + done +} +%if %{with_xfree86} +{ + for ftdemo in ftdiff ftgamma ftgrid ftmulti ftstring fttimer ftview ; do + builds/unix/libtool --mode=install install -m 755 ft2demos-%{version}/bin/$ftdemo $RPM_BUILD_ROOT/%{_bindir} + done +} +%endif + +# fix multilib issues +%define wordsize %{__isa_bits} + +mv $RPM_BUILD_ROOT%{_includedir}/freetype2/freetype/config/ftconfig.h \ + $RPM_BUILD_ROOT%{_includedir}/freetype2/freetype/config/ftconfig-%{wordsize}.h +install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_includedir}/freetype2/freetype/config/ftconfig.h + +# Don't package static a or .la files +rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la} + + +%triggerpostun -- freetype < 2.0.5-3 +{ + # ttmkfdir updated - as of 2.0.5-3, on upgrades we need xfs to regenerate + # things to get the iso10646-1 encoding listed. + for I in %{_datadir}/fonts/*/TrueType /usr/share/X11/fonts/TTF; do + [ -d $I ] && [ -f $I/fonts.scale ] && [ -f $I/fonts.dir ] && touch $I/fonts.scale + done + exit 0 +} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%{!?_licensedir:%global license %%doc} +%license docs/LICENSE.TXT docs/FTL.TXT docs/GPLv2.TXT +%{_libdir}/libfreetype.so.* +%doc README + +%files demos +%{_bindir}/ftbench +%{_bindir}/ftchkwd +%{_bindir}/ftmemchk +%{_bindir}/ftpatchk +%{_bindir}/fttimer +%{_bindir}/ftdump +%{_bindir}/ftlint +%{_bindir}/ftvalid +%if %{with_xfree86} +%{_bindir}/ftdiff +%{_bindir}/ftgamma +%{_bindir}/ftgrid +%{_bindir}/ftmulti +%{_bindir}/ftstring +%{_bindir}/ftview +%endif +%doc ChangeLog README + +%files devel +%doc docs/CHANGES docs/formats.txt docs/ft2faq.html +%dir %{_includedir}/freetype2 +%{_datadir}/aclocal/freetype2.m4 +%{_includedir}/freetype2/* +%{_libdir}/libfreetype.so +%{_bindir}/freetype-config +%{_libdir}/pkgconfig/freetype2.pc +%doc docs/design +%doc docs/glyphs +%doc docs/reference +%doc docs/tutorial +%{_mandir}/man1/* + +%changelog +* Fri Jun 08 2018 Marek Kasik - 2.8-12 +- Fix loading of avar tables +- Resolves: #1576504 + +* Thu Jun 07 2018 Marek Kasik - 2.8-11 +- Preserve API/ABI compatibility for public symbols +- Resolves: #1576504 + +* Wed Jun 06 2018 Richard Hughes - 2.8-10 +- Update to 2.8 +- Resolves: #1576504 + +* Mon Feb 20 2017 Marek Kasik - 2.4.11-15 +- Fix shellcheck warning (coverity) +- Related: #1368141 + +* Mon Feb 20 2017 Marek Kasik - 2.4.11-14 +- Backport functions for reading signed values from stream +- Resolves: #1381678 + +* Fri Feb 17 2017 Marek Kasik - 2.4.11-13 +- Don't show path of non-existing libtool file +- Resolves: #1368141 + +* Tue Mar 22 2016 Marek Kasik - 2.4.11-12 +- Define _FILE_OFFSET_BITS=64 to handle inodes higher than or equal to 2^31 +- Resolves: #1303268 + +* Tue Mar 10 2015 Marek Kasik - 2.4.11-11 +- Fixes CVE-2014-9657 + - Check minimum size of `record_size'. +- Fixes CVE-2014-9658 + - Use correct value for minimum table length test. +- Fixes CVE-2014-9675 + - New macro that checks one character more than `strncmp'. +- Fixes CVE-2014-9660 + - Check `_BDF_GLYPH_BITS'. +- Fixes CVE-2014-9661 + - Initialize `face->ttf_size'. + - Always set `face->ttf_size' directly. + - Exclusively use the `truetype' font driver for loading + the font contained in the `sfnts' array. +- Fixes CVE-2014-9663 + - Fix order of validity tests. +- Fixes CVE-2014-9664 + - Add another boundary testing. + - Fix boundary testing. +- Fixes CVE-2014-9667 + - Protect against addition overflow. +- Fixes CVE-2014-9669 + - Protect against overflow in additions and multiplications. +- Fixes CVE-2014-9670 + - Add sanity checks for row and column values. +- Fixes CVE-2014-9671 + - Check `size' and `offset' values. +- Fixes CVE-2014-9673 + - Fix integer overflow by a broken POST table in resource-fork. +- Fixes CVE-2014-9674 + - Fix integer overflow by a broken POST table in resource-fork. + - Additional overflow check in the summation of POST fragment lengths. +- Work around behaviour of X11's `pcfWriteFont' and `pcfReadFont' functions +- Resolves: #1197740 + +* Mon Aug 18 2014 Peter Robinson - 2.4.11-10 +- Generic 32/64 bit platform detection (fix ppc64le build) +- Resolves: #1126099 + +* Fri Jan 24 2014 Daniel Mach - 2.4.11-9 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 2.4.11-8 +- Mass rebuild 2013-12-27 + +* Thu Oct 3 2013 Marek Kasik - 2.4.11-7 +- Fix vertical size of emboldened glyphs +- Resolves: #1010341 + +* Wed May 29 2013 Peter Robinson 2.4.11-6 +- Add aarch64 to 64 bit arch list + +* Thu May 16 2013 Marek Kasik - 2.4.11-5 +- Change encoding of "docs/tutorial/example3.cpp" to UTF-8 + +* Thu May 16 2013 Marek Kasik - 2.4.11-4 +- Package ftconfig.h as source file + +* Tue Mar 19 2013 Marek Kasik - 2.4.11-3 +- Fix emboldening: + - split out MSB function + - fix integer overflows + - fix broken emboldening at small sizes +- Resolves: #891457 + +* Wed Feb 13 2013 Fedora Release Engineering - 2.4.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jan 2 2013 Marek Kasik - 2.4.11-1 +- Update to 2.4.11 +- Resolves: #889177 + +* Wed Oct 24 2012 Marek Kasik - 2.4.10-3 +- Update License field + +* Fri Jul 27 2012 Fedora Release Engineering - 2.4.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jul 11 2012 Marek Kasik 2.4.10-1 +- Update to 2.4.10 +- Remove patches which are already included in upstream +- Resolves: #832651 + +* Fri Mar 30 2012 Marek Kasik 2.4.9-1 +- Update to 2.4.9 +- Fixes various CVEs +- Resolves: #806270 + +* Fri Jan 13 2012 Fedora Release Engineering - 2.4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Nov 15 2011 Marek Kasik 2.4.8-1 +- Update to 2.4.8 +- Remove an unneeded patch + +* Wed Oct 26 2011 Fedora Release Engineering - 2.4.7-2 +- Rebuilt for glibc bug#747377 + +* Thu Oct 20 2011 Marek Kasik 2.4.7-1 +- Update to 2.4.7 +- Fixes CVE-2011-3256 +- Resolves: #747262 + +* Thu Aug 4 2011 Marek Kasik 2.4.6-1 +- Update to 2.4.6 + +* Wed Jul 20 2011 Marek Kasik 2.4.5-2 +- Add freetype-2.4.5-CVE-2011-0226.patch + (Add better argument check for `callothersubr'.) + - based on patches by Werner Lemberg, + Alexei Podtelezhnikov and Matthias Drochner +- Resolves: #723469 + +* Tue Jun 28 2011 Marek Kasik 2.4.5-1 +- Update to 2.4.5 + +* Tue Mar 8 2011 Marek Kasik 2.4.4-4 +- Fix autohinting fallback (#547532). +- Ignore CFF-based OTFs. + +* Sun Feb 20 2011 Marek Kasik 2.4.4-3 +- Enable bytecode interpreter (#547532). +- Fall back to autohinting if a TTF/OTF doesn't contain any bytecode. + +* Tue Feb 08 2011 Fedora Release Engineering - 2.4.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Dec 2 2010 Marek Kasik 2.4.4-1 +- Update to 2.4.4 +- Remove freetype-2.4.3-CVE-2010-3855.patch +- Resolves: #659020 + +* Mon Nov 15 2010 Marek Kasik 2.4.3-2 +- Add freetype-2.4.3-CVE-2010-3855.patch + (Protect against invalid `runcnt' values.) +- Resolves: #651764 + +* Tue Oct 26 2010 Marek Kasik 2.4.3-1 +- Update to 2.4.3 +- Resolves: #639906 + +* Wed Oct 6 2010 Marek Kasik 2.4.2-3 +- Add freetype-2.4.2-CVE-2010-3311.patch + (Don't seek behind end of stream.) +- Resolves: #638522 + +* Fri Aug 6 2010 Matthias Clasen 2.4.2-2 +- Fix a thinko, we still want to disable the bytecode interpreter + by default + +* Fri Aug 6 2010 Matthias Clasen 2.4.2-1 +- Update to 2.4.2 +- Drop upstreamed patch, bytecode interpreter now on by default + +* Thu Feb 23 2010 Behdad Esfahbod 2.3.12-1 +- Update to 2.3.12 +- Drop mathlib patch + +* Thu Dec 3 2009 Behdad Esfahbod 2.3.11-2 +- Drop upstreamed patch. +- Enable patented bytecode interpretter now that the patents are expired. + +* Thu Oct 22 2009 Behdad Esfahbod 2.3.11-1 +- Update to 2.3.11. +- Add freetype-2.3.11-more-demos.patch +- New demo programs ftmemchk, ftpatchk, and fttimer + +* Thu Oct 08 2009 Behdad Esfahbod 2.3.10-1 +- Drop freetype-2.3.9-aliasing.patch +- Update to 2.3.10. + +* Thu Jul 30 2009 Behdad Esfahbod 2.3.9-6 +- Add freetype-2.3.9-aliasing.patch +- Resolves: 513582 + +* Fri Jul 24 2009 Fedora Release Engineering - 2.3.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu May 7 2009 Matthias Clasen 2.3.9-4 +- Don't own /usr/lib/pkgconfig + +* Wed Mar 27 2009 Behdad Esfahbod 2.3.9-3 +- Disable subpixel hinting by default. Was turned on unintentionally. + +* Wed Mar 25 2009 Behdad Esfahbod 2.3.9-2 +- Add Provides: freetype-bytecode and freetype-subpixel if built + with those options. +- Resolves: #155210 + +* Thu Mar 13 2009 Behdad Esfahbod 2.3.9-1 +- Update to 2.3.9. +- Resolves #489928 + +* Thu Mar 09 2009 Behdad Esfahbod 2.3.8-2.1 +- Preserve timestamp of FTL.TXT when converting to UTF-8. + +* Tue Feb 24 2009 Fedora Release Engineering - 2.3.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Jan 15 2009 Behdad Esfahbod 2.3.8-1 +- Update to 2.3.8 +- Remove freetype-autohinter-ligature.patch + +* Tue Dec 09 2008 Behdad Esfahbod 2.3.7-3 +- Add full source URL to Source lines. +- Add docs to main and devel package. +- rpmlint is happy now. +- Resolves: #225770 + +* Fri Dec 05 2008 Behdad Esfahbod 2.3.7-2 +- Add freetype-autohinter-ligature.patch +- Resolves: #368561 + +* Tue Aug 14 2008 Behdad Esfahbod 2.3.7-1 +- Update to 2.3.7 + +* Tue Jun 10 2008 Behdad Esfahbod 2.3.6-1 +- Update to 2.3.6 + +* Wed May 21 2008 Tom "spot" Callaway - 2.3.5-5 +- fix license tag +- add sparc64 to list of 64bit arches + +* Mon Feb 18 2008 Fedora Release Engineering - 2.3.5-4 +- Autorebuild for GCC 4.3 + +* Thu Aug 23 2007 Adam Jackson - 2.3.5-3 +- Rebuild for build ID + +* Tue Jul 31 2007 Behdad Esfahbod 2.3.5-2 +- Change spec file to permit enabling bytecode-interpreter and + subpixel-rendering without editing spec file. +- Resolves: 249986 + +* Wed Jul 25 2007 Behdad Esfahbod 2.3.5-1 +- Update to 2.3.5. +- Drop freetype-2.3.4-ttf-overflow.patch + +* Fri Jun 29 2007 Adam Jackson 2.3.4-4 +- Fix builds/unix/libtool to not emit rpath into binaries. (#225770) + +* Thu May 31 2007 Behdad Esfahbod 2.3.4-3 +- Add freetype-2.3.4-ttf-overflow.patch + +* Thu Apr 12 2007 Behdad Esfahbod 2.3.4-2 +- Add alpha to 64-bit archs (#236166) + +* Tue Apr 05 2007 Behdad Esfahbod 2.3.4-1 +- Update to 2.3.4. + +* Thu Apr 05 2007 Behdad Esfahbod 2.3.3-2 +- Include new demos ftgrid and ftdiff in freetype-demos. (#235478) + +* Thu Apr 05 2007 Behdad Esfahbod 2.3.3-1 +- Update to 2.3.3. + +* Fri Mar 09 2007 Behdad Esfahbod 2.3.2-1 +- Update to 2.3.2. + +* Fri Feb 02 2007 Behdad Esfahbod 2.3.1-1 +- Update to 2.3.1. + +* Wed Jan 17 2007 Behdad Esfahbod 2.3.0-2 +- Add without_subpixel_rendering. +- Drop X11_PATH=/usr. Not needed anymore. + +* Wed Jan 17 2007 Behdad Esfahbod 2.3.0-1 +- Update to 2.3.0. +- Drop upstream patches. +- Drop -fno-strict-aliasing, it should just work. +- Fix typo in ftconfig.h generation. + +* Tue Jan 09 2007 Behdad Esfahbod 2.2.1-16 +- Backport binary-search fixes from HEAD +- Add freetype-2.2.1-ttcmap.patch +- Resolves: #208734 + +- Fix rendering issue with some Asian fonts. +- Add freetype-2.2.1-fix-get-orientation.patch +- Resolves: #207261 + +- Copy non-X demos even if not compiling with_xfree86. + +- Add freetype-2.2.1-zero-item-size.patch, to fix crasher. +- Resolves #214048 + +- Add X11_PATH=/usr to "make"s, to find modern X. +- Resolves #212199 + +* Mon Sep 11 2006 Behdad Esfahbod 2.2.1-10 +- Fix crasher https://bugs.freedesktop.org/show_bug.cgi?id=6841 +- Add freetype-2.2.1-memcpy-fix.patch + +* Thu Sep 07 2006 Behdad Esfahbod 2.2.1-9 +- Add BuildRequires: libX11-devel (#205355) + +* Tue Aug 29 2006 Behdad Esfahbod 2.2.1-8 +- Add freetype-composite.patch and freetype-more-composite.patch + from upstream. (#131851) + +* Mon Aug 28 2006 Matthias Clasen - 2.2.1-7 +- Require pkgconfig in the -devel package + +* Fri Aug 18 2006 Jesse Keating - 2.2.1-6 +- pass --disable-static to %%configure. (#172628) + +* Thu Aug 17 2006 Jesse Keating - 2.2.1-5 +- don't package static libs + +* Sun Aug 13 2006 Matthias Clasen - 2.2.1-4.fc6 +- fix a problem with the multilib patch (#202366) + +* Thu Jul 27 2006 Matthias Clasen - 2.2.1-3 +- fix multilib issues + +* Wed Jul 12 2006 Jesse Keating - 2.2.1-2.1 +- rebuild + +* Fri Jul 07 2006 Behdad Esfahbod 2.2.1-2 +- Remove unused BuildRequires + +* Fri Jul 07 2006 Behdad Esfahbod 2.2.1-1 +- Update to 2.2.1 +- Remove FreeType 1, to move to extras +- Install new demos ftbench, ftchkwd, ftgamma, and ftvalid +- Enable modules gxvalid and otvalid + +* Wed May 17 2006 Karsten Hopp 2.1.10-6 +- add buildrequires libICE-devel, libSM-devel + +* Fri Feb 10 2006 Jesse Keating - 2.1.10-5.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.1.10-5.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Fri Nov 18 2005 Bill Nottingham 2.1.10-5 +- Remove references to obsolete /usr/X11R6 paths + +* Tue Nov 1 2005 Matthias Clasen 2.1.10-4 +- Switch requires to modular X + +* Fri Oct 21 2005 Matthias Clasen 2.1.10-3 +- BuildRequire gettext + +* Wed Oct 12 2005 Jason Vas Dias 2.1.10-2 +- fix 'without_bytecode_interpreter 0' build: freetype-2.1.10-enable-ft2-bci.patch + +* Fri Oct 7 2005 Matthias Clasen 2.1.10-1 +- Update to 2.1.10 +- Add necessary fixes + +* Tue Aug 16 2005 Kristian Høgsberg 2.1.9-4 +- Fix freetype-config on 64 bit platforms. + +* Thu Jul 07 2005 Karsten Hopp 2.1.9-3 +- BuildRequires xorg-x11-devel + +* Fri Mar 4 2005 David Zeuthen - 2.1.9-2 +- Rebuild + +* Wed Aug 4 2004 Owen Taylor - 2.1.9-1 +- Upgrade to 2.1.9 +- Since we are just using automake for aclocal, use it unversioned, + instead of specifying 1.4. + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Mon Apr 19 2004 Owen Taylor 2.1.7-4 +- Add patch from freetype CVS to fix problem with eexec (#117743) +- Add freetype-devel to buildrequires and -devel requires + (Maxim Dzumanenko, #111108) + +* Wed Mar 10 2004 Mike A. Harris 2.1.7-3 +- Added -fno-strict-aliasing to CFLAGS and CXXFLAGS to try to fix SEGV and + SIGILL crashes in mkfontscale which have been traced into freetype and seem + to be caused by aliasing issues in freetype macros (#118021) + +* Tue Mar 02 2004 Elliot Lee 2.1.7-2.1 +- rebuilt + +* Fri Feb 13 2004 Elliot Lee 2.1.7-2 +- rebuilt + +* Fri Jan 23 2004 Owen Taylor 2.1.7-1 +- Upgrade to 2.1.7 + +* Tue Sep 23 2003 Florian La Roche +- allow compiling without the demos as that requires XFree86 + (this allows bootstrapping XFree86 on new archs) + +* Fri Aug 8 2003 Elliot Lee 2.1.4-4.1 +- Rebuilt + +* Tue Jul 8 2003 Owen Taylor 2.1.4-4.0 +- Bump for rebuild + +* Wed Jun 25 2003 Owen Taylor 2.1.4-3 +- Fix crash with non-format-0 hdmx tables (found by David Woodhouse) + +* Mon Jun 9 2003 Owen Taylor 2.1.4-1 +- Version 2.1.4 +- Relibtoolize to get deplibs right for x86_64 +- Use autoconf-2.5x for freetype-1.4 to fix libtool-1.5 compat problem (#91781) +- Relativize absolute symlinks to fix the -debuginfo package + (#83521, Mike Harris) + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Thu May 22 2003 Jeremy Katz 2.1.3-9 +- fix build with gcc 3.3 + +* Tue Feb 25 2003 Owen Taylor +- Add a memleak fix for the gzip backend from Federic Crozat + +* Thu Feb 13 2003 Elliot Lee 2.1.3-7 +- Run libtoolize/aclocal/autoconf so that libtool knows to generate shared libraries + on ppc64. +- Use _smp_mflags (for freetype 2.x only) + +* Tue Feb 4 2003 Owen Taylor +- Switch to using %%configure (should fix #82330) + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Mon Jan 6 2003 Owen Taylor 2.1.3-4 +- Make FreeType robust against corrupt fonts with recursive composite + glyphs (#74782, James Antill) + +* Thu Jan 2 2003 Owen Taylor 2.1.3-3 +- Add a patch to implement FT_LOAD_TARGET_LIGHT +- Fix up freetype-1.4-libtool.patch + +* Sat Dec 12 2002 Mike A. Harris 2.1.3-2 +- Update to freetype 2.1.3 +- Removed ttmkfdir sources and patches, as they have been moved from the + freetype packaging to XFree86 packaging, and now to the ttmkfdir package +- Removed patches that are now included in 2.1.3: + freetype-2.1.1-primaryhints.patch, freetype-2.1.2-slighthint.patch, + freetype-2.1.2-bluefuzz.patch, freetype-2.1.2-stdw.patch, + freetype-2.1.2-transform.patch, freetype-2.1.2-autohint.patch, + freetype-2.1.2-leftright.patch +- Conditionalized inclusion of freetype 1.4 library. + +* Wed Dec 04 2002 Florian La Roche +- disable perl, it is not used at all + +* Tue Dec 03 2002 Elliot Lee 2.1.2-11 +- Instead of removing unpackaged file, include it in the package. + +* Sat Nov 30 2002 Mike A. Harris 2.1.2-10 +- Attempted to fix lib64 issue in freetype-demos build with X11_LINKLIBS +- Cleaned up various _foodir macros throughtout specfile +- Removed with_ttmkfdir build option as it is way obsolete + +* Fri Nov 29 2002 Tim Powers 2.1.2-8 +- remove unpackaged files from the buildroot + +* Wed Aug 28 2002 Owen Taylor +- Fix a bug with PCF metrics + +* Fri Aug 9 2002 Owen Taylor +- Backport autohinter improvements from CVS + +* Tue Jul 23 2002 Owen Taylor +- Fix from CVS for transformations (#68964) + +* Tue Jul 9 2002 Owen Taylor +- Add another bugfix for the postscript hinter + +* Mon Jul 8 2002 Owen Taylor +- Add support for BlueFuzz private dict value, fixing rendering + glitch for Luxi Mono. + +* Wed Jul 3 2002 Owen Taylor +- Add an experimental FT_Set_Hint_Flags() call + +* Mon Jul 1 2002 Owen Taylor +- Update to 2.1.2 +- Add a patch fixing freetype PS hinter bug + +* Fri Jun 21 2002 Mike A. Harris 2.1.1-2 +- Added ft rpm build time conditionalizations upon user requests + +* Tue Jun 11 2002 Owen Taylor 2.1.1-1 +- Version 2.1.1 + +* Mon Jun 10 2002 Owen Taylor +- Add a fix for PCF character maps + +* Sun May 26 2002 Tim Powers +- automated rebuild + +* Fri May 17 2002 Mike A. Harris 2.1.0-2 +- Updated freetype to version 2.1.0 +- Added libtool fix for freetype 1.4 (#64631) + +* Wed Mar 27 2002 Nalin Dahyabhai 2.0.9-2 +- use "libtool install" instead of "install" to install some binaries (#62005) + +* Mon Mar 11 2002 Mike A. Harris 2.0.9-1 +- Updated to freetype 2.0.9 + +* Sun Feb 24 2002 Mike A. Harris 2.0.8-4 +- Added proper docs+demos source for 2.0.8. + +* Sat Feb 23 2002 Mike A. Harris 2.0.8-3 +- Added compat patch so 2.x works more like 1.x +- Rebuilt with new build toolchain + +* Fri Feb 22 2002 Mike A. Harris 2.0.8-2 +- Updated to freetype 2.0.8, however docs and demos are stuck at 2.0.7 + on the freetype website. Munged specfile to deal with the problem by using + {oldversion} instead of version where appropriate. + +* Sat Feb 2 2002 Tim Powers 2.0.6-3 +- bumping release so that we don't collide with another build of + freetype, make sure to change the release requirement in the XFree86 + package + +* Fri Feb 1 2002 Mike A. Harris 2.0.6-2 +- Made ttmkfdir inclusion conditional, and set up a define to include + ttmkfdir in RHL 7.x builds, since ttmkfdir is now moving to the new + XFree86-font-utils package. + +* Wed Jan 16 2002 Mike A. Harris 2.0.6-1 +- Updated freetype to version 2.0.6 + +* Wed Jan 09 2002 Tim Powers 2.0.5-4 +- automated rebuild + +* Fri Nov 30 2001 Elliot Lee 2.0.5-3 +- Fix bug #56901 (ttmkfdir needed to list Unicode encoding when generating + font list). (ttmkfdir-iso10646.patch) +- Use _smp_mflags macro everywhere relevant. (freetype-pre1.4-make.patch) +- Undo fix for #24253, assume compiler was fixed. + +* Mon Nov 12 2001 Bernhard Rosenkraenzer 2.0.5-2 +- Fix build with gcc 3.1 (#56079) + +* Sun Nov 11 2001 Mike A. Harris 2.0.5-1 +- Updated freetype to version 2.0.5 + +* Sat Sep 22 2001 Mike A. Harris 2.0.4-2 +- Added new subpackage freetype-demos, added demos to build +- Disabled ftdump, ftlint in utils package favoring the newer utils in + demos package. + +* Tue Sep 11 2001 Mike A. Harris 2.0.4-1 +- Updated source to 2.0.4 +- Added freetype demo's back into src.rpm, but not building yet. + +* Wed Aug 15 2001 Mike A. Harris 2.0.3-7 +- Changed package to use {findlang} macro to fix bug (#50676) + +* Sun Jul 15 2001 Mike A. Harris 2.0.3-6 +- Changed freetype-devel to group Development/Libraries (#47625) + +* Mon Jul 9 2001 Bernhard Rosenkraenzer 2.0.3-5 +- Fix up FT1 headers to please Qt 3.0.0 beta 2 + +* Sun Jun 24 2001 Bernhard Rosenkraenzer 2.0.3-4 +- Add ft2build.h to -devel package, since it's included by all other + freetype headers, the package is useless without it + +* Thu Jun 21 2001 Nalin Dahyabhai 2.0.3-3 +- Change "Requires: freetype = name/ver" to "freetype = version/release", + and move the requirements to the subpackages. + +* Mon Jun 18 2001 Mike A. Harris 2.0.3-2 +- Added "Requires: freetype = name/ver" + +* Tue Jun 12 2001 Mike A. Harris 2.0.3-1 +- Updated to Freetype 2.0.3, minor specfile tweaks. +- Freetype2 docs are is in a separate tarball now. Integrated it. +- Built in new environment. + +* Fri Apr 27 2001 Bill Nottingham +- rebuild for C++ exception handling on ia64 + +* Sat Jan 20 2001 Bernhard Rosenkraenzer +- Build ttmkfdir with -O0, workaround for Bug #24253 + +* Fri Jan 19 2001 Nalin Dahyabhai +- libtool is used to build libttf, so use libtool to link ttmkfdir with it +- fixup a paths for a couple of missing docs + +* Thu Jan 11 2001 Bernhard Rosenkraenzer +- Update ttmkfdir + +* Wed Dec 27 2000 Bernhard Rosenkraenzer +- Update to 2.0.1 and 1.4 +- Mark locale files as such + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Mon Jun 12 2000 Preston Brown +- move .la file to devel pkg +- FHS paths + +* Thu Feb 17 2000 Preston Brown +- revert spaces patch, fix up some foundry names to match X ones + +* Mon Feb 07 2000 Nalin Dahyabhai +- add defattr, ftmetric, ftsbit, ftstrtto per bug #9174 + +* Wed Feb 02 2000 Cristian Gafton +- fix description and summary + +* Wed Jan 12 2000 Preston Brown +- make ttmkfdir replace spaces in family names with underscores (#7613) + +* Tue Jan 11 2000 Bernhard Rosenkraenzer +- 1.3.1 +- handle RPM_OPT_FLAGS + +* Wed Nov 10 1999 Preston Brown +- fix a path for ttmkfdir Makefile + +* Thu Aug 19 1999 Preston Brown +- newer ttmkfdir that works better, moved ttmkfdir to /usr/bin from /usr/sbin +- freetype utilities moved to subpkg, X dependency removed from main pkg +- libttf.so symlink moved to devel pkg + +* Mon Mar 22 1999 Preston Brown +- strip binaries + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 5) + +* Thu Mar 18 1999 Cristian Gafton +- fixed the doc file list + +* Wed Feb 24 1999 Preston Brown +- Injected new description and group. + +* Mon Feb 15 1999 Preston Brown +- added ttmkfdir + +* Tue Feb 02 1999 Preston Brown +- update to 1.2 + +* Thu Jan 07 1999 Cristian Gafton +- call libtoolize to sanitize config.sub and get ARM support +- dispoze of the patch (not necessary anymore) + +* Wed Oct 21 1998 Preston Brown +- post/postun sections for ldconfig action. + +* Tue Oct 20 1998 Preston Brown +- initial RPM, includes normal and development packages.