[arch-commits] Commit in lib32-freetype2/repos (7 files)

Laurent Carlier lcarlier at archlinux.org
Tue Dec 9 18:36:32 UTC 2014


    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 <wl at 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 <ibiru at archlinux.org>
+# Contributor: Jan de Groot <jgc at 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
+ 
+ 
+   /*************************************************************************/



More information about the arch-commits mailing list