Date: Tuesday, December 9, 2014 @ 19:36:31 Author: lcarlier Revision: 123688
archrelease: copy trunk to multilib-testing-x86_64 Added: lib32-freetype2/repos/multilib-testing-x86_64/ lib32-freetype2/repos/multilib-testing-x86_64/0001-pcf-Fix-Savannah-bug-43774.patch (from rev 123687, lib32-freetype2/trunk/0001-pcf-Fix-Savannah-bug-43774.patch) lib32-freetype2/repos/multilib-testing-x86_64/PKGBUILD (from rev 123687, lib32-freetype2/trunk/PKGBUILD) lib32-freetype2/repos/multilib-testing-x86_64/env_FT2_NO_SUBPIXEL_HINTING.diff (from rev 123687, lib32-freetype2/trunk/env_FT2_NO_SUBPIXEL_HINTING.diff) lib32-freetype2/repos/multilib-testing-x86_64/freetype-2.2.1-enable-valid.patch (from rev 123687, lib32-freetype2/trunk/freetype-2.2.1-enable-valid.patch) lib32-freetype2/repos/multilib-testing-x86_64/freetype-2.5.1-enable-sph.patch (from rev 123687, lib32-freetype2/trunk/freetype-2.5.1-enable-sph.patch) lib32-freetype2/repos/multilib-testing-x86_64/freetype-2.5.1-enable-spr.patch (from rev 123687, lib32-freetype2/trunk/freetype-2.5.1-enable-spr.patch) ---------------------------------------+ 0001-pcf-Fix-Savannah-bug-43774.patch | 125 ++++++++++++++++++++++++++++++++ PKGBUILD | 63 ++++++++++++++++ env_FT2_NO_SUBPIXEL_HINTING.diff | 19 ++++ freetype-2.2.1-enable-valid.patch | 20 +++++ freetype-2.5.1-enable-sph.patch | 13 +++ freetype-2.5.1-enable-spr.patch | 13 +++ 6 files changed, 253 insertions(+) Copied: lib32-freetype2/repos/multilib-testing-x86_64/0001-pcf-Fix-Savannah-bug-43774.patch (from rev 123687, lib32-freetype2/trunk/0001-pcf-Fix-Savannah-bug-43774.patch) =================================================================== --- multilib-testing-x86_64/0001-pcf-Fix-Savannah-bug-43774.patch (rev 0) +++ multilib-testing-x86_64/0001-pcf-Fix-Savannah-bug-43774.patch 2014-12-09 18:36:31 UTC (rev 123688) @@ -0,0 +1,125 @@ +From 74af85c4b62b35e55b0ce9dec55ee10cbc4962a2 Mon Sep 17 00:00:00 2001 +From: Werner Lemberg <w...@gnu.org> +Date: Mon, 8 Dec 2014 16:01:50 +0100 +Subject: [PATCH] [pcf] Fix Savannah bug #43774. + +Work around `features' of X11's `pcfWriteFont' and `pcfReadFont' +functions. Since the PCF format doesn't have an official +specification, we have to exactly follow these functions' behaviour. + +The problem was unveiled with a patch from 2014-11-06, fixing issue #43547. + +* src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last +element. Instead, assign real size. +--- + ChangeLog | 14 ++++++++++++++ + src/pcf/pcfread.c | 54 +++++++++++++++++++++++++++++++++++++++++++----------- + 2 files changed, 57 insertions(+), 11 deletions(-) + +diff --git a/src/pcf/pcfread.c b/src/pcf/pcfread.c +index 998cbed..e3caf82 100644 +--- a/src/pcf/pcfread.c ++++ b/src/pcf/pcfread.c +@@ -2,7 +2,7 @@ + + FreeType font driver for pcf fonts + +- Copyright 2000-2010, 2012, 2013 by ++ Copyright 2000-2010, 2012-2014 by + Francesco Zappa Nardelli + + Permission is hereby granted, free of charge, to any person obtaining a copy +@@ -78,7 +78,7 @@ THE SOFTWARE. + FT_FRAME_START( 16 ), + FT_FRAME_ULONG_LE( type ), + FT_FRAME_ULONG_LE( format ), +- FT_FRAME_ULONG_LE( size ), ++ FT_FRAME_ULONG_LE( size ), /* rounded up to a multiple of 4 */ + FT_FRAME_ULONG_LE( offset ), + FT_FRAME_END + }; +@@ -95,9 +95,11 @@ THE SOFTWARE. + FT_Memory memory = FT_FACE( face )->memory; + FT_UInt n; + ++ FT_ULong size; + +- if ( FT_STREAM_SEEK ( 0 ) || +- FT_STREAM_READ_FIELDS ( pcf_toc_header, toc ) ) ++ ++ if ( FT_STREAM_SEEK( 0 ) || ++ FT_STREAM_READ_FIELDS( pcf_toc_header, toc ) ) + return FT_THROW( Cannot_Open_Resource ); + + if ( toc->version != PCF_FILE_VERSION || +@@ -154,14 +156,35 @@ THE SOFTWARE. + break; + } + +- /* we now check whether the `size' and `offset' values are reasonable: */ +- /* `offset' + `size' must not exceed the stream size */ ++ /* ++ * We now check whether the `size' and `offset' values are reasonable: ++ * `offset' + `size' must not exceed the stream size. ++ * ++ * Note, however, that X11's `pcfWriteFont' routine (used by the ++ * `bdftopcf' program to create PDF font files) has two special ++ * features. ++ * ++ * - It always assigns the accelerator table a size of 100 bytes in the ++ * TOC, regardless of its real size, which can vary between 34 and 72 ++ * bytes. ++ * ++ * - Due to the way the routine is designed, it ships out the last font ++ * table with its real size, ignoring the TOC's size value. Since ++ * the TOC size values are always rounded up to a multiple of 4, the ++ * difference can be up to three bytes for all tables except the ++ * accelerator table, for which the difference can be as large as 66 ++ * bytes. ++ * ++ */ ++ + tables = face->toc.tables; +- for ( n = 0; n < toc->count; n++ ) ++ size = stream->size; ++ ++ for ( n = 0; n < toc->count - 1; n++ ) + { + /* we need two checks to avoid overflow */ +- if ( ( tables->size > stream->size ) || +- ( tables->offset > stream->size - tables->size ) ) ++ if ( ( tables->size > size ) || ++ ( tables->offset > size - tables->size ) ) + { + error = FT_THROW( Invalid_Table ); + goto Exit; +@@ -169,6 +192,15 @@ THE SOFTWARE. + tables++; + } + ++ /* no check of `tables->size' for last table element ... */ ++ if ( ( tables->offset > size ) ) ++ { ++ error = FT_THROW( Invalid_Table ); ++ goto Exit; ++ } ++ /* ... instead, we adjust `tables->size' to the real value */ ++ tables->size = size - tables->offset; ++ + #ifdef FT_DEBUG_LEVEL_TRACE + + { +@@ -733,8 +765,8 @@ THE SOFTWARE. + + FT_TRACE4(( " number of bitmaps: %d\n", nbitmaps )); + +- /* XXX: PCF_Face->nmetrics is singed FT_Long, see pcf.h */ +- if ( face->nmetrics < 0 || nbitmaps != ( FT_ULong )face->nmetrics ) ++ /* XXX: PCF_Face->nmetrics is signed FT_Long, see pcf.h */ ++ if ( face->nmetrics < 0 || nbitmaps != (FT_ULong)face->nmetrics ) + return FT_THROW( Invalid_File_Format ); + + if ( FT_NEW_ARRAY( offsets, nbitmaps ) ) +-- +2.1.3 + Copied: lib32-freetype2/repos/multilib-testing-x86_64/PKGBUILD (from rev 123687, lib32-freetype2/trunk/PKGBUILD) =================================================================== --- multilib-testing-x86_64/PKGBUILD (rev 0) +++ multilib-testing-x86_64/PKGBUILD 2014-12-09 18:36:31 UTC (rev 123688) @@ -0,0 +1,63 @@ +# $Id$ +# Maintainer: Ionut Biru <ib...@archlinux.org> +# Contributor: Jan de Groot <j...@archlinux.org> + +_pkgbasename=freetype2 +pkgname=lib32-$_pkgbasename +pkgver=2.5.4 +pkgrel=1 +pkgdesc="TrueType font rendering library (32-bit)" +arch=(x86_64) +license=('GPL') +url="http://freetype.sourceforge.net" +depends=('lib32-zlib' 'lib32-bzip2' 'lib32-libpng' 'lib32-harfbuzz' $_pkgbasename) +makedepends=(gcc-multilib) +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2{,.sig} + freetype-2.2.1-enable-valid.patch + freetype-2.5.1-enable-spr.patch + freetype-2.5.1-enable-sph.patch + env_FT2_NO_SUBPIXEL_HINTING.diff + 0001-pcf-Fix-Savannah-bug-43774.patch) +sha1sums=('f30b929e2edc5d7ca64c1ccc65f0c2068e84c5e2' + 'SKIP' + 'f279d922a873d62a8af50bfc873051839d194dca' + '13ee8d558593db991ad29fa090b461f914536104' + 'c31fa3d342ead56f3acfa1f267b474a7686d0014' + 'ddba70eef4270e5a89e098d6ee1e7ceb03ea98da' + '16057f51b084e9ce5c614a4add41b532d32648b4') + +prepare() { + cd "${srcdir}/freetype-${pkgver}" + patch -Np1 -i "${srcdir}/freetype-2.5.1-enable-spr.patch" + patch -Np1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch" + + # https://bugs.archlinux.org/task/35274 + patch -Np1 -i "${srcdir}/freetype-2.5.1-enable-sph.patch" + # Provide a way to disable the above patch at runtime. + # Expected to be a temporary measure until fontconfig picks up + # the necessary configurables. + patch -Np1 -i "${srcdir}/env_FT2_NO_SUBPIXEL_HINTING.diff" + + # http://savannah.nongnu.org/bugs/index.php?43774 + patch -Np1 -i "${srcdir}/0001-pcf-Fix-Savannah-bug-43774.patch" +} + +build() { + export CC="gcc -m32" + export CXX="g++ -m32" + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + + cd "${srcdir}/freetype-${pkgver}" + + ./configure --prefix=/usr --libdir=/usr/lib32 + make +} + +package() { + cd "${srcdir}/freetype-${pkgver}" + + make DESTDIR="${pkgdir}" install + + rm -rf "${pkgdir}"/usr/{include,share,bin} +} Copied: lib32-freetype2/repos/multilib-testing-x86_64/env_FT2_NO_SUBPIXEL_HINTING.diff (from rev 123687, lib32-freetype2/trunk/env_FT2_NO_SUBPIXEL_HINTING.diff) =================================================================== --- multilib-testing-x86_64/env_FT2_NO_SUBPIXEL_HINTING.diff (rev 0) +++ multilib-testing-x86_64/env_FT2_NO_SUBPIXEL_HINTING.diff 2014-12-09 18:36:31 UTC (rev 123688) @@ -0,0 +1,19 @@ +diff --git i/src/truetype/ttobjs.c w/src/truetype/ttobjs.c +index 46f1332..af50a1d 100644 +--- i/src/truetype/ttobjs.c ++++ w/src/truetype/ttobjs.c +@@ -1264,10 +1264,11 @@ + return FT_THROW( Could_Not_Find_Context ); + + #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING +- driver->interpreter_version = TT_INTERPRETER_VERSION_38; +-#else +- driver->interpreter_version = TT_INTERPRETER_VERSION_35; ++ if ( !getenv( "FT2_NO_SUBPIXEL_HINTING" ) ) ++ driver->interpreter_version = TT_INTERPRETER_VERSION_38; ++ else + #endif ++ driver->interpreter_version = TT_INTERPRETER_VERSION_35; + + #else /* !TT_USE_BYTECODE_INTERPRETER */ + Copied: lib32-freetype2/repos/multilib-testing-x86_64/freetype-2.2.1-enable-valid.patch (from rev 123687, lib32-freetype2/trunk/freetype-2.2.1-enable-valid.patch) =================================================================== --- multilib-testing-x86_64/freetype-2.2.1-enable-valid.patch (rev 0) +++ multilib-testing-x86_64/freetype-2.2.1-enable-valid.patch 2014-12-09 18:36:31 UTC (rev 123688) @@ -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 @@ + AUX_MODULES += cache + + # TrueType GX/AAT table validation. Needs ftgxval.c below. +-# 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. + # +-# AUX_MODULES += otvalid ++AUX_MODULES += otvalid + + # Auxiliary PostScript driver component to share common code. + # Copied: lib32-freetype2/repos/multilib-testing-x86_64/freetype-2.5.1-enable-sph.patch (from rev 123687, lib32-freetype2/trunk/freetype-2.5.1-enable-sph.patch) =================================================================== --- multilib-testing-x86_64/freetype-2.5.1-enable-sph.patch (rev 0) +++ multilib-testing-x86_64/freetype-2.5.1-enable-sph.patch 2014-12-09 18:36:31 UTC (rev 123688) @@ -0,0 +1,13 @@ +diff --git i/include/config/ftoption.h w/include/config/ftoption.h +index fe2ba15..1ab4226 100644 +--- i/include/config/ftoption.h ++++ w/include/config/ftoption.h +@@ -591,7 +591,7 @@ FT_BEGIN_HEADER + /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ + /* defined. */ + /* */ +-/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ ++#define TT_CONFIG_OPTION_SUBPIXEL_HINTING + + + /*************************************************************************/ Copied: lib32-freetype2/repos/multilib-testing-x86_64/freetype-2.5.1-enable-spr.patch (from rev 123687, lib32-freetype2/trunk/freetype-2.5.1-enable-spr.patch) =================================================================== --- multilib-testing-x86_64/freetype-2.5.1-enable-spr.patch (rev 0) +++ multilib-testing-x86_64/freetype-2.5.1-enable-spr.patch 2014-12-09 18:36:31 UTC (rev 123688) @@ -0,0 +1,13 @@ +diff --git i/include/config/ftoption.h w/include/config/ftoption.h +index fe2ba15..22ce1a3 100644 +--- i/include/config/ftoption.h ++++ w/include/config/ftoption.h +@@ -92,7 +92,7 @@ FT_BEGIN_HEADER + /* 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 + + + /*************************************************************************/