[arch-commits] Commit in freetype2/trunk (PKGBUILD bug35833.patch bug35847.patch)

Jan de Groot jgc at archlinux.org
Tue Apr 3 06:23:07 EDT 2012


    Date: Tuesday, April 3, 2012 @ 06:23:06
  Author: jgc
Revision: 155390

upgpkg: freetype2 2.4.9-2

Add some upstream fixes, closes: FS#29034

Added:
  freetype2/trunk/bug35833.patch
  freetype2/trunk/bug35847.patch
Modified:
  freetype2/trunk/PKGBUILD

----------------+
 PKGBUILD       |   14 +++++--
 bug35833.patch |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 bug35847.patch |   28 ++++++++++++++
 3 files changed, 142 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-04-03 08:18:09 UTC (rev 155389)
+++ PKGBUILD	2012-04-03 10:23:06 UTC (rev 155390)
@@ -3,7 +3,7 @@
 
 pkgname=freetype2
 pkgver=2.4.9
-pkgrel=1
+pkgrel=2
 pkgdesc="TrueType font rendering library"
 arch=(i686 x86_64)
 license=('GPL')
@@ -12,16 +12,24 @@
 options=('!libtool')
 source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2
         freetype-2.3.0-enable-spr.patch
-        freetype-2.2.1-enable-valid.patch)
+        freetype-2.2.1-enable-valid.patch
+        bug35833.patch
+        bug35847.patch)
 md5sums=('77a893dae81fd5b896632715ca041179'
          '816dc8619a6904a7385769433c0a8653'
-         '214119610444c9b02766ccee5e220680')
+         '214119610444c9b02766ccee5e220680'
+         '69bde731a06448c7e4828e96c74d45ee'
+         '41f9c0a5362bf2cd9a4d7557ddf98098')
 
 build() {
   cd "${srcdir}/freetype-${pkgver}"
   patch -Np1 -i "${srcdir}/freetype-2.3.0-enable-spr.patch"
   patch -Np1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch"
 
+  #Upstream bugs fixed in git. Requested in FS#29034
+  patch -Np1 -i "${srcdir}/bug35833.patch"
+  patch -Np1 -i "${srcdir}/bug35847.patch"
+
   ./configure --prefix=/usr
   make
 }

Added: bug35833.patch
===================================================================
--- bug35833.patch	                        (rev 0)
+++ bug35833.patch	2012-04-03 10:23:06 UTC (rev 155390)
@@ -0,0 +1,103 @@
+From 9a55cb7a71286154cb62e947ed1c183450a8004d Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl at gnu.org>
+Date: Wed, 14 Mar 2012 13:40:03 +0000
+Subject: Fix Savannah bug #35833.
+
+Based on the patch given in the bug report.
+
+* src/type1/t1load.c (IS_INCREMENTAL): New macro.
+(read_binary_data): Add parameter `incremental'.
+Update all callers using `IS_INCREMENTAL'.
+---
+diff --git a/src/type1/t1load.c b/src/type1/t1load.c
+index a0adfd4..4385417 100644
+--- a/src/type1/t1load.c
++++ b/src/type1/t1load.c
+@@ -71,6 +71,13 @@
+ #include "t1errors.h"
+ 
+ 
++#ifdef FT_CONFIG_OPTION_INCREMENTAL
++#define IS_INCREMENTAL  ( face->root.internal->incremental_interface != 0 )
++#else
++#define IS_INCREMENTAL  0
++#endif
++
++
+   /*************************************************************************/
+   /*                                                                       */
+   /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
+@@ -1030,7 +1037,8 @@
+   static int
+   read_binary_data( T1_Parser  parser,
+                     FT_Long*   size,
+-                    FT_Byte**  base )
++                    FT_Byte**  base,
++                    FT_Bool    incremental )
+   {
+     FT_Byte*  cur;
+     FT_Byte*  limit = parser->root.limit;
+@@ -1065,8 +1073,12 @@
+       }
+     }
+ 
+-    FT_ERROR(( "read_binary_data: invalid size field\n" ));
+-    parser->root.error = T1_Err_Invalid_File_Format;
++    if( !incremental )
++    {
++      FT_ERROR(( "read_binary_data: invalid size field\n" ));
++      parser->root.error = T1_Err_Invalid_File_Format;
++    }
++
+     return 0;
+   }
+ 
+@@ -1396,7 +1408,7 @@
+ 
+       idx = T1_ToInt( parser );
+ 
+-      if ( !read_binary_data( parser, &size, &base ) )
++      if ( !read_binary_data( parser, &size, &base, IS_INCREMENTAL ) )
+         return;
+ 
+       /* The binary string is followed by one token, e.g. `NP' */
+@@ -1582,7 +1594,7 @@
+         cur++;                              /* skip `/' */
+         len = parser->root.cursor - cur;
+ 
+-        if ( !read_binary_data( parser, &size, &base ) )
++        if ( !read_binary_data( parser, &size, &base, IS_INCREMENTAL ) )
+           return;
+ 
+         /* for some non-standard fonts like `Optima' which provides */
+@@ -1871,7 +1883,7 @@
+ 
+ 
+         parser->root.cursor = start_binary;
+-        if ( !read_binary_data( parser, &s, &b ) )
++        if ( !read_binary_data( parser, &s, &b, IS_INCREMENTAL ) )
+           return T1_Err_Invalid_File_Format;
+         have_integer = 0;
+       }
+@@ -1884,7 +1896,7 @@
+ 
+ 
+         parser->root.cursor = start_binary;
+-        if ( !read_binary_data( parser, &s, &b ) )
++        if ( !read_binary_data( parser, &s, &b, IS_INCREMENTAL ) )
+           return T1_Err_Invalid_File_Format;
+         have_integer = 0;
+       }
+@@ -2160,9 +2172,7 @@
+       type1->subrs_len   = loader.subrs.lengths;
+     }
+ 
+-#ifdef FT_CONFIG_OPTION_INCREMENTAL
+-    if ( !face->root.internal->incremental_interface )
+-#endif
++    if ( !IS_INCREMENTAL )
+       if ( !loader.charstrings.init )
+       {
+         FT_ERROR(( "T1_Open_Face: no `/CharStrings' array in face\n" ));
+--
+cgit v0.9.0.2

Added: bug35847.patch
===================================================================
--- bug35847.patch	                        (rev 0)
+++ bug35847.patch	2012-04-03 10:23:06 UTC (rev 155390)
@@ -0,0 +1,28 @@
+From b43e0f4413b2aafb88be8cb3fb7aaa84ac0b9102 Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl at gnu.org>
+Date: Sat, 17 Mar 2012 06:42:43 +0000
+Subject: [type1] Fix Savannah bug #35847.
+
+* src/type1/t1load.c (parse_subrs): Fix the loop exit condition;
+we want to exit when we have run out of data.
+---
+diff --git a/src/type1/t1load.c b/src/type1/t1load.c
+index 4385417..5803fde 100644
+--- a/src/type1/t1load.c
++++ b/src/type1/t1load.c
+@@ -1399,9 +1399,10 @@
+       FT_Byte*  base;
+ 
+ 
+-      /* If the next token isn't `dup' we are done. */
+-      if ( parser->root.cursor + 4 < parser->root.limit            &&
+-           ft_strncmp( (char*)parser->root.cursor, "dup", 3 ) != 0 )
++      /* If we are out of data, or if the next token isn't `dup', */
++      /* we are done.                                             */
++      if ( parser->root.cursor + 4 >= parser->root.limit          ||
++          ft_strncmp( (char*)parser->root.cursor, "dup", 3 ) != 0 )
+         break;
+ 
+       T1_Skip_PS_Token( parser );       /* `dup' */
+--
+cgit v0.9.0.2



More information about the arch-commits mailing list