summaryrefslogtreecommitdiff
path: root/extra/freetype2
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-04-05 00:01:23 +0000
committerroot <root@rshg054.dnsready.net>2012-04-05 00:01:23 +0000
commit608a49084f8c6599f8adef56b6c1480c3e293c04 (patch)
treeb385b78ccb9657030d632f662b68a495286e9a55 /extra/freetype2
parent96deddcec133f85220a15d4c435004c577395169 (diff)
Thu Apr 5 00:01:22 UTC 2012
Diffstat (limited to 'extra/freetype2')
-rw-r--r--extra/freetype2/PKGBUILD16
-rw-r--r--extra/freetype2/bug35833.patch103
-rw-r--r--extra/freetype2/bug35847.patch28
3 files changed, 143 insertions, 4 deletions
diff --git a/extra/freetype2/PKGBUILD b/extra/freetype2/PKGBUILD
index 6cbf66f72..849c87353 100644
--- a/extra/freetype2/PKGBUILD
+++ b/extra/freetype2/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 153269 2012-03-12 19:00:15Z jgc $
+# $Id: PKGBUILD 155391 2012-04-03 10:23:46Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
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 @@ depends=('zlib' 'bzip2' 'sh')
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
}
diff --git a/extra/freetype2/bug35833.patch b/extra/freetype2/bug35833.patch
new file mode 100644
index 000000000..69ad25402
--- /dev/null
+++ b/extra/freetype2/bug35833.patch
@@ -0,0 +1,103 @@
+From 9a55cb7a71286154cb62e947ed1c183450a8004d Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl@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
diff --git a/extra/freetype2/bug35847.patch b/extra/freetype2/bug35847.patch
new file mode 100644
index 000000000..683cbc37e
--- /dev/null
+++ b/extra/freetype2/bug35847.patch
@@ -0,0 +1,28 @@
+From b43e0f4413b2aafb88be8cb3fb7aaa84ac0b9102 Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl@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