From 72a7238eaf63b1ec1f96b4db325bcf0cab81bbb3 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 24 Nov 2014 20:39:39 +0000
Subject: freetype2: update 2.5.1

---
 abs/core/freetype2/PKGBUILD                        | 47 +++++++++++++++-------
 abs/core/freetype2/__changelog                     |  1 -
 abs/core/freetype2/fix_segfault_with_harfbuzz.diff | 32 +++++++++++++++
 abs/core/freetype2/freetype-2.3.0-enable-spr.patch | 11 -----
 abs/core/freetype2/freetype-2.5.1-enable-sph.patch | 13 ++++++
 abs/core/freetype2/freetype-2.5.1-enable-spr.patch | 13 ++++++
 6 files changed, 90 insertions(+), 27 deletions(-)
 delete mode 100644 abs/core/freetype2/__changelog
 create mode 100644 abs/core/freetype2/fix_segfault_with_harfbuzz.diff
 delete mode 100644 abs/core/freetype2/freetype-2.3.0-enable-spr.patch
 create mode 100644 abs/core/freetype2/freetype-2.5.1-enable-sph.patch
 create mode 100644 abs/core/freetype2/freetype-2.5.1-enable-spr.patch

diff --git a/abs/core/freetype2/PKGBUILD b/abs/core/freetype2/PKGBUILD
index 36accb9..a8236f6 100644
--- a/abs/core/freetype2/PKGBUILD
+++ b/abs/core/freetype2/PKGBUILD
@@ -1,29 +1,46 @@
-# $Id: PKGBUILD 161854 2012-06-15 16:53:25Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=freetype2
-pkgver=2.4.10
-pkgrel=1
+pkgver=2.5.3
+pkgrel=2
 pkgdesc="TrueType font rendering library"
 arch=(i686 x86_64)
 license=('GPL')
 url="http://freetype.sourceforge.net"
-depends=('zlib' 'bzip2' 'sh')
-options=('!libtool')
-replaces=('freetype2-static') 
-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)
-md5sums=('13286702e9390a91661f980608adaff1'
-         '816dc8619a6904a7385769433c0a8653'
-         '214119610444c9b02766ccee5e220680')
+# adding harfbuzz for improved OpenType features auto-hinting 
+# introduces a cycle dep to harfbuzz depending on freetype wanted by upstream
+depends=('zlib' 'bzip2' 'sh' 'libpng' 'harfbuzz')
+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
+        fix_segfault_with_harfbuzz.diff)
+sha1sums=('d3c26cc17ec7fe6c36f4efc02ef92ab6aa3f4b46'
+          'SKIP'
+          'f279d922a873d62a8af50bfc873051839d194dca'
+          '13ee8d558593db991ad29fa090b461f914536104'
+          'c31fa3d342ead56f3acfa1f267b474a7686d0014'
+          'c99013b4c19494cd26031878368191cd2b4459b0')
 
-build() {
+prepare() {
   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"
+  patch -Np1 -i "${srcdir}/freetype-2.5.1-enable-spr.patch"
+  
+  # fix segfaults # https://bugs.archlinux.org/task/39365
+  # http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=23367ff97f33ef6a2b7e1fced1157c87a46d9596
+  patch -Np1 -i "${srcdir}/fix_segfault_with_harfbuzz.diff"
+  
+  # Disabled for now due to resistance
+  # Kept here for easier rebuilds via ABS
+  # https://bugs.archlinux.org/task/35274
+  #patch -Np1 -i "${srcdir}/freetype-2.5.1-enable-sph.patch"
+}
 
-  ./configure --prefix=/usr
+build() {
+  cd "${srcdir}/freetype-${pkgver}"
+  ./configure --prefix=/usr --disable-static
   make
 }
 
diff --git a/abs/core/freetype2/__changelog b/abs/core/freetype2/__changelog
deleted file mode 100644
index a1edbbd..0000000
--- a/abs/core/freetype2/__changelog
+++ /dev/null
@@ -1 +0,0 @@
-- added replaces=('freetype2-static') to PKGBUILD
diff --git a/abs/core/freetype2/fix_segfault_with_harfbuzz.diff b/abs/core/freetype2/fix_segfault_with_harfbuzz.diff
new file mode 100644
index 0000000..a1832eb
--- /dev/null
+++ b/abs/core/freetype2/fix_segfault_with_harfbuzz.diff
@@ -0,0 +1,32 @@
+From 23367ff97f33ef6a2b7e1fced1157c87a46d9596 Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl@gnu.org>
+Date: Mon, 17 Mar 2014 06:33:14 +0000
+Subject: Fix Savannah bug #41869.
+
+This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
+validate glyph indices returned by
+`hb_ot_layout_lookup_collect_glyphs'.
+
+* src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
+
+* docs/CHANGES: Updated.
+---
+diff --git a/src/autofit/hbshim.c b/src/autofit/hbshim.c
+index 11fb743..2eda8d7 100644
+--- a/src/autofit/hbshim.c
++++ b/src/autofit/hbshim.c
+@@ -347,6 +347,11 @@
+       count++;
+ #endif
+ 
++      /* HarfBuzz 0.9.26 and older doesn't validate glyph indices */
++      /* returned by `hb_ot_layout_lookup_collect_glyphs'...      */
++      if ( idx >= (hb_codepoint_t)globals->glyph_count )
++        continue;
++
+       if ( gstyles[idx] == AF_STYLE_UNASSIGNED )
+         gstyles[idx] = (FT_Byte)style_class->style;
+ #ifdef FT_DEBUG_LEVEL_TRACE
+--
+cgit v0.9.0.2
+
diff --git a/abs/core/freetype2/freetype-2.3.0-enable-spr.patch b/abs/core/freetype2/freetype-2.3.0-enable-spr.patch
deleted file mode 100644
index 8432e28..0000000
--- a/abs/core/freetype2/freetype-2.3.0-enable-spr.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/abs/core/freetype2/freetype-2.5.1-enable-sph.patch b/abs/core/freetype2/freetype-2.5.1-enable-sph.patch
new file mode 100644
index 0000000..69f73b7
--- /dev/null
+++ b/abs/core/freetype2/freetype-2.5.1-enable-sph.patch
@@ -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
+ 
+ 
+   /*************************************************************************/
diff --git a/abs/core/freetype2/freetype-2.5.1-enable-spr.patch b/abs/core/freetype2/freetype-2.5.1-enable-spr.patch
new file mode 100644
index 0000000..0d300a8
--- /dev/null
+++ b/abs/core/freetype2/freetype-2.5.1-enable-spr.patch
@@ -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
+ 
+ 
+   /*************************************************************************/
-- 
cgit v0.12

