From b6594a2a8254b962fa9862b3616f63335ce6d5c1 Mon Sep 17 00:00:00 2001
From: adam <adam@pkgsrc.org>
Date: Mon, 2 May 2011 11:15:41 +0000
Subject: Changes 20110222: * Did a lot of work to improve the accuracy in
 remove overlap. Improved   accuracy means that it is less likely to do the
 wrong thing. Problems happen   when there are points or intersections very
 close to each other.   (So quadratic glyphs are more likely to have problems
 than cubics simply   because they have more points, on average). * Fix
 various error messages. * Remove some obsolete documentation. * Technical
 fixes to stroking code. * Add a miterlimit to stroking code. * FontForge was
 using the wrong MIME type for svg files. W3C has changed it and   it's now
 "image/svg+xml" not "image/svg-xml" or "image/svg". * Since Inkscape images
 tend to be at unexpected y positions, force the view to   rescale/recenter
 itself if the result after a paste/import is outside the   current window.
 (Inkscape tends to put things at the top of a page, but the   origin is at
 the bottom, and FF looks at the origin. * A line joint of 180 degrees (which
 shouldn't have happened in stroking, but   did) caused an infinite loop. *
 Typo in add extrema code (again). * More...

---
 fonts/fontforge/Makefile         |  18 ++--
 fonts/fontforge/PLIST            |   8 +-
 fonts/fontforge/distinfo         |  16 ++-
 fonts/fontforge/patches/patch-aa |   4 +-
 fonts/fontforge/patches/patch-ae |   4 +-
 fonts/fontforge/patches/patch-ai |  16 ---
 fonts/fontforge/patches/patch-aj | 210 -------------------------------------
 fonts/fontforge/patches/patch-ak | 219 ---------------------------------------
 fonts/fontforge/patches/patch-al |  54 ----------
 9 files changed, 23 insertions(+), 526 deletions(-)
 delete mode 100644 fonts/fontforge/patches/patch-ai
 delete mode 100644 fonts/fontforge/patches/patch-aj
 delete mode 100644 fonts/fontforge/patches/patch-ak
 delete mode 100644 fonts/fontforge/patches/patch-al

diff --git a/fonts/fontforge/Makefile b/fonts/fontforge/Makefile
index f8c324f261b..6ea224f634c 100644
--- a/fonts/fontforge/Makefile
+++ b/fonts/fontforge/Makefile
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.72 2011/04/22 13:43:31 obache Exp $
+# $NetBSD: Makefile,v 1.73 2011/05/02 11:15:41 adam Exp $
 
 DISTNAME=	fontforge_full-${VERSION}
 PKGNAME=	fontforge-${VERSION}
-PKGREVISION=	7
 CATEGORIES=	fonts editors
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE:=fontforge/}
 EXTRACT_SUFX=	.tar.bz2
@@ -10,26 +9,27 @@ EXTRACT_SUFX=	.tar.bz2
 MAINTAINER=	adam@NetBSD.org
 HOMEPAGE=	http://fontforge.sourceforge.net/
 COMMENT=	Postscript font editor
+LICENSE=	modified-bsd
 
-VERSION=	20100501
+VERSION=	20110222
 
 PKG_DESTDIR_SUPPORT=	user-destdir
 
 WRKSRC=			${WRKDIR}/${PKGNAME_NOREV}
 
-MAKE_ENV+=	PKGLOCALEDIR=${PKGLOCALEDIR}
-
-GNU_CONFIGURE=		yes
 USE_LANGUAGES=		c
 USE_LIBTOOL=		yes
 USE_PKGLOCALEDIR=	yes
 USE_TOOLS+=		gmake msgfmt
+GNU_CONFIGURE=		yes
 CONFIGURE_ARGS+=	--without-freetype-src
 CONFIGURE_ARGS+=	--without-python
-BROKEN_GETTEXT_DETECTION=	yes
 
+MAKE_ENV+=		PKGLOCALEDIR=${PKGLOCALEDIR}
 LDFLAGS.SunOS+=		-lrt
 
+BROKEN_GETTEXT_DETECTION=	yes
+
 .include "options.mk"
 
 .include "../../converters/libiconv/buildlink3.mk"
@@ -37,9 +37,9 @@ LDFLAGS.SunOS+=		-lrt
 .include "../../devel/pango/buildlink3.mk"
 .include "../../graphics/cairo/buildlink3.mk"
 .include "../../graphics/freetype2/buildlink3.mk"
-.include "../../mk/jpeg.buildlink3.mk"
-.include "../../mk/giflib.buildlink3.mk"
 .include "../../graphics/png/buildlink3.mk"
 .include "../../graphics/tiff/buildlink3.mk"
 .include "../../textproc/libxml2/buildlink3.mk"
+.include "../../mk/giflib.buildlink3.mk"
+.include "../../mk/jpeg.buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
diff --git a/fonts/fontforge/PLIST b/fonts/fontforge/PLIST
index 7de29533c5a..d2fe38c3599 100644
--- a/fonts/fontforge/PLIST
+++ b/fonts/fontforge/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.29 2010/05/21 06:34:23 adam Exp $
+@comment $NetBSD: PLIST,v 1.30 2011/05/02 11:15:42 adam Exp $
 bin/fontforge
 bin/fontimage
 bin/fontlint
@@ -13,7 +13,7 @@ include/fontforge/bitmapcontrol.h
 include/fontforge/chardata.h
 include/fontforge/charset.h
 include/fontforge/config.h
-include/fontforge/configure-pfaedit.h
+include/fontforge/configure-fontforge.h
 include/fontforge/delta.h
 include/fontforge/dynamic.h
 include/fontforge/edgelist.h
@@ -22,6 +22,7 @@ include/fontforge/encoding.h
 include/fontforge/fffreetype.h
 include/fontforge/ffpython.h
 include/fontforge/fileutil.h
+include/fontforge/fontforge.h
 include/fontforge/fontforgevw.h
 include/fontforge/fvmetrics.h
 include/fontforge/gdraw.h
@@ -45,7 +46,6 @@ include/fontforge/mm.h
 include/fontforge/namehash.h
 include/fontforge/nonlineartrans.h
 include/fontforge/ofl.h
-include/fontforge/pfaedit.h
 include/fontforge/plugins.h
 include/fontforge/print.h
 include/fontforge/psfont.h
@@ -247,7 +247,7 @@ share/locale/es/LC_MESSAGES/FontForge.mo
 share/locale/fr/LC_MESSAGES/FontForge.mo
 share/locale/it/LC_MESSAGES/FontForge.mo
 share/locale/ja/LC_MESSAGES/FontForge.mo
-share/locale/mal/LC_MESSAGES/FontForge.mo
+share/locale/ml/LC_MESSAGES/FontForge.mo
 share/locale/pl/LC_MESSAGES/FontForge.mo
 share/locale/ru/LC_MESSAGES/FontForge.mo
 share/locale/uk/LC_MESSAGES/FontForge.mo
diff --git a/fonts/fontforge/distinfo b/fonts/fontforge/distinfo
index 0115e39aa1b..6671a10427f 100644
--- a/fonts/fontforge/distinfo
+++ b/fonts/fontforge/distinfo
@@ -1,12 +1,8 @@
-$NetBSD: distinfo,v 1.57 2011/01/24 12:08:26 wiz Exp $
+$NetBSD: distinfo,v 1.58 2011/05/02 11:15:42 adam Exp $
 
-SHA1 (fontforge_full-20100501.tar.bz2) = 483425116c6af6ad90e37f9ada0c28e34f251ec3
-RMD160 (fontforge_full-20100501.tar.bz2) = 4dee2ecdbd32bf3854105f195984d9cabf198fd8
-Size (fontforge_full-20100501.tar.bz2) = 6666386 bytes
-SHA1 (patch-aa) = e6846a21c973aaa265bb46ba63d145d5f9c00714
+SHA1 (fontforge_full-20110222.tar.bz2) = 8fada07647f102351bb1d7d1c4da487356e7142f
+RMD160 (fontforge_full-20110222.tar.bz2) = 7f276e9e3ef673b78355bb7be50f6b2587aee633
+Size (fontforge_full-20110222.tar.bz2) = 5126031 bytes
+SHA1 (patch-aa) = 9b94b0dccc3006112dae8289ed81c5aaba262576
 SHA1 (patch-ab) = ec93a47051186bcb901fd145edffad7c457c33fd
-SHA1 (patch-ae) = ca532490137e83ff328ad32c0102d57bed7bb453
-SHA1 (patch-ai) = 4b30556509007d1c74ccdfc9d27f7f23f30bbdb1
-SHA1 (patch-aj) = 751baf7cdaf3c74632a95389611366134fe36da5
-SHA1 (patch-ak) = a69ec30586d61b89896758d5a1e817d917a835d2
-SHA1 (patch-al) = f34104791646030bb76df20e5ddb88bf21842b02
+SHA1 (patch-ae) = 2cffc4dad365ff3f7850c1982bbe27bc9821f792
diff --git a/fonts/fontforge/patches/patch-aa b/fonts/fontforge/patches/patch-aa
index dc125cf76c1..da962e98abe 100644
--- a/fonts/fontforge/patches/patch-aa
+++ b/fonts/fontforge/patches/patch-aa
@@ -1,4 +1,4 @@
-$NetBSD: patch-aa,v 1.9 2010/05/21 06:34:23 adam Exp $
+$NetBSD: patch-aa,v 1.10 2011/05/02 11:15:42 adam Exp $
 
 --- fontforge/Makefile.dynamic.in.orig	2010-02-02 05:23:06.000000000 +0000
 +++ fontforge/Makefile.dynamic.in
@@ -11,7 +11,7 @@ $NetBSD: patch-aa,v 1.9 2010/05/21 06:34:23 adam Exp $
  X_11LIB = @X_11LIB@
  X_EXTRA_LIBS = @X_EXTRA_LIBS@
  X_PRE_LIBS = @X_PRE_LIBS@
-@@ -74,7 +74,7 @@ LIBLIBS = -rpath $(libdir) ../libgutils.
+@@ -75,7 +75,7 @@ LIBLIBS = -rpath $(libdir) ../libgutils.
      @LIBS@ $(STATIC_LIBS) -lm
  DLIBS = -rpath $(libdir)  ../libfontforge.la ../libgutils.la ../libgunicode.la @LIBS@ $(STATIC_LIBS) -lm
  
diff --git a/fonts/fontforge/patches/patch-ae b/fonts/fontforge/patches/patch-ae
index b6bcdfd296f..846655be044 100644
--- a/fonts/fontforge/patches/patch-ae
+++ b/fonts/fontforge/patches/patch-ae
@@ -1,4 +1,4 @@
-$NetBSD: patch-ae,v 1.22 2010/05/21 06:34:23 adam Exp $
+$NetBSD: patch-ae,v 1.23 2011/05/02 11:15:42 adam Exp $
 
 --- configure.orig	2010-04-29 17:53:45.000000000 +0000
 +++ configure
@@ -29,7 +29,7 @@ $NetBSD: patch-ae,v 1.22 2010/05/21 06:34:23 adam Exp $
  else
    $as_echo "#define _NO_LIBXML 1" >>confdefs.h
  
-@@ -22930,7 +22930,7 @@ if test "$gww_has_gettext" = "yes" >/dev
+@@ -23016,7 +23016,7 @@ if test "$gww_has_gettext" = "yes" >/dev
  
   cat </dev/null >$ac_confdir/po/Makefile.in
   echo 'prefix = @prefix@' >> $ac_confdir/po/Makefile.in
diff --git a/fonts/fontforge/patches/patch-ai b/fonts/fontforge/patches/patch-ai
deleted file mode 100644
index 3466bca0b1d..00000000000
--- a/fonts/fontforge/patches/patch-ai
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-ai,v 1.5 2010/10/10 18:44:54 wiz Exp $
-
-Stack overflow bug, see:
-http://sourceforge.net/mailarchive/forum.php?thread_name=4C5D676B.3000509%40limes.com.pl&forum_name=fontforge-devel
-
---- fontforge/svg.c.orig	2010-04-29 03:53:22.000000000 +0000
-+++ fontforge/svg.c
-@@ -150,7 +150,7 @@ return( defwid );
- static int svg_pathdump(FILE *file, SplineSet *spl, int lineout,
- 	int forceclosed, int do_clips) {
-     BasePoint last;
--    char buffer[60];
-+    char buffer[85];
-     int closed=false;
-     Spline *sp, *first;
-     /* as I see it there is nothing to be gained by optimizing out the */
diff --git a/fonts/fontforge/patches/patch-aj b/fonts/fontforge/patches/patch-aj
deleted file mode 100644
index 6497a608bf5..00000000000
--- a/fonts/fontforge/patches/patch-aj
+++ /dev/null
@@ -1,210 +0,0 @@
-$NetBSD: patch-aj,v 1.4 2011/01/24 12:08:26 wiz Exp $
-
-Fix build with png-1.5.
-
---- gutils/gimagereadpng.c.orig	2010-04-29 03:53:22.000000000 +0000
-+++ gutils/gimagereadpng.c
-@@ -60,6 +60,15 @@ static void (*_png_set_packing)(png_stru
- static void (*_png_set_filler)(png_structp,png_uint_32,int);
- static void (*_png_read_image)(png_structp,png_bytep*);
- static void (*_png_read_end)(png_structp,png_infop);
-+static void (*_png_longjmp)(png_structp, int);
-+static jmp_buf* (*_png_set_longjmp_fn)(png_structp,png_longjmp_ptr, size_t);
-+static png_byte (*_png_get_color_type)(png_structp,png_infop);
-+static png_byte (*_png_get_bit_depth)(png_structp,png_infop);
-+static png_uint_32 (*_png_get_image_width)(png_structp,png_infop);
-+static png_uint_32 (*_png_get_image_height)(png_structp,png_infop);
-+static png_uint_32 (*_png_get_PLTE)(png_structp,png_infop,png_colorp *,int *);
-+static png_uint_32 (*_png_get_tRNS)(png_structp,png_infop,png_bytep *,int *,png_color_16p *);
-+static png_uint_32 (*_png_get_valid)(png_structp,png_infop,png_uint_32);
- 
- #ifndef RTLD_GLOBAL		/* OSF on Alpha doesn't define this */
- # define RTLD_GLOBAL 0
-@@ -78,7 +87,7 @@ return( 0 );
-     }
- 
- #  if !defined(_LIBPNG12)
--    libpng = dlopen("libpng" SO_EXT,RTLD_LAZY);
-+    libpng = dlopen("libpng15" SO_EXT,RTLD_LAZY);
- #    ifdef SO_2_EXT
-     if ( libpng==NULL )
- 	libpng = dlopen("libpng" SO_2_EXT,RTLD_LAZY);
-@@ -105,6 +114,15 @@ return( 0 );
-     _png_set_filler = (void (*)(png_structp,png_uint_32,int)) dlsym(libpng,"png_set_filler");
-     _png_read_image = (void (*)(png_structp,png_bytep*)) dlsym(libpng,"png_read_image");
-     _png_read_end = (void (*)(png_structp,png_infop)) dlsym(libpng,"png_read_end");
-+    _png_longjmp = (void (*)(png_structp, int)) dlsym(libpng,"png_longjmp");
-+    _png_set_longjmp_fn = (jmp_buf* (*)(png_structp,png_longjmp_ptr,size_t)) dlsym(libpng,"png_set_longjmp_fn");
-+    _png_get_color_type = (png_byte (*)(png_structp,png_infop)) dlsym(libpng,"png_get_color_type");
-+    _png_get_bit_depth = (png_byte (*)(png_structp,png_infop)) dlsym(libpng,"png_get_bit_depth");
-+    _png_get_image_width = (png_uint_32 (*)(png_structp,png_infop)) dlsym(libpng,"png_get_image_width");
-+    _png_get_image_height = (png_uint_32 (*)(png_structp,png_infop)) dlsym(libpng,"png_get_image_height");
-+    _png_get_PLTE = (png_uint_32 (*)(png_structp,png_infop,png_colorp *,int *)) dlsym(libpng,"png_get_PLTE");
-+    _png_get_tRNS = (png_uint_32 (*)(png_structp,png_infop,png_bytep *,int *,png_color_16p *)) dlsym(libpng,"png_get_tRNS");
-+    _png_get_valid = (png_uint_32 (*)(png_structp,png_infop,png_uint_32)) dlsym(libpng,"png_get_valid");
-     if ( _png_create_read_struct && _png_create_info_struct && _png_destroy_read_struct &&
- 	    _png_init_io && _png_read_info && _png_set_strip_16 && _png_set_packing &&
- 	    _png_set_filler && _png_read_image && _png_read_end &&
-@@ -126,6 +144,15 @@ return( 0 );
- #  define _png_set_filler png_set_filler
- #  define _png_read_image png_read_image
- #  define _png_read_end png_read_end
-+#  define _png_longjmp png_longjmp
-+#  define _png_set_longjmp_fn png_set_longjmp_fn
-+#  define _png_get_color_type png_get_color_type
-+#  define _png_get_bit_depth png_get_bit_depth
-+#  define _png_get_image_width png_get_image_width
-+#  define _png_get_image_height png_get_image_height
-+#  define _png_get_PLTE png_get_PLTE
-+#  define _png_get_tRNS png_get_tRNS
-+#  define _png_get_valid png_get_valid
- static void *libpng=(void *) 1;
- 
- static int loadpng() { return true; }
-@@ -133,7 +160,11 @@ static int loadpng() { return true; }
-  
- static void user_error_fn(png_structp png_ptr, png_const_charp error_msg) {
-     fprintf(stderr,"%s\n", error_msg);
-+#if (PNG_LIBPNG_VER < 10500)
-     longjmp(png_ptr->jmpbuf,1);
-+#else
-+    _png_longjmp (png_ptr, 1);
-+#endif
- }
- 
- static void user_warning_fn(png_structp png_ptr, png_const_charp warning_msg) {
-@@ -146,6 +177,9 @@ GImage *GImageRead_Png(FILE *fp) {
-     png_structp png_ptr;
-     png_infop info_ptr;
-     png_bytep *row_pointers=NULL;
-+    png_bytep trans_alpha;
-+    int num_trans;
-+    png_color_16p trans_color;
-     int i;
- 
-     if ( libpng==NULL )
-@@ -164,7 +198,7 @@ return( NULL );
- return( NULL );
-     }
- 
--    if (setjmp(png_ptr->jmpbuf)) {
-+    if (setjmp(*_png_set_longjmp_fn(png_ptr, longjmp, sizeof (jmp_buf)))) {
-       /* Free all of the memory associated with the png_ptr and info_ptr */
-       _png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
-       if ( ret!=NULL ) {
-@@ -178,74 +212,63 @@ return( NULL );
-     _png_init_io(png_ptr, fp);
-     _png_read_info(png_ptr, info_ptr);
-     _png_set_strip_16(png_ptr);
--    if ( (info_ptr->color_type==PNG_COLOR_TYPE_GRAY || info_ptr->color_type==PNG_COLOR_TYPE_PALETTE ) &&
--	    info_ptr->bit_depth == 1 )
-+    if ( (_png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_GRAY || _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_PALETTE ) &&
-+	    _png_get_bit_depth(png_ptr,info_ptr) == 1 )
- 	/* Leave bitmaps packed */;
-     else
- 	_png_set_packing(png_ptr);
--    if ( info_ptr->color_type==PNG_COLOR_TYPE_GRAY_ALPHA )
-+    if ( _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_GRAY_ALPHA )
- 	_png_set_strip_alpha(png_ptr);
--    if (info_ptr->color_type == PNG_COLOR_TYPE_RGB)
-+    if (_png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB)
- 	_png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER);
- 
--    if ( info_ptr->color_type==PNG_COLOR_TYPE_GRAY && info_ptr->bit_depth == 1 ) {
--	ret = GImageCreate(it_mono,info_ptr->width,info_ptr->height);
--    } else if ( info_ptr->color_type==PNG_COLOR_TYPE_GRAY || info_ptr->color_type==PNG_COLOR_TYPE_GRAY_ALPHA ) {
-+    if ( _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_GRAY && _png_get_bit_depth(png_ptr,info_ptr) == 1 ) {
-+	ret = GImageCreate(it_mono,_png_get_image_width(png_ptr,info_ptr),_png_get_image_height(png_ptr,info_ptr));
-+    } else if ( _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_GRAY || _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_GRAY_ALPHA ) {
- 	GClut *clut;
--	ret = GImageCreate(it_index,info_ptr->width,info_ptr->height);
-+	ret = GImageCreate(it_index,_png_get_image_width(png_ptr,info_ptr),_png_get_image_height(png_ptr,info_ptr));
- 	clut = ret->u.image->clut;
- 	clut->is_grey = true;
- 	clut->clut_len = 256;
- 	for ( i=0; i<256; ++i )
- 	    clut->clut[i] = COLOR_CREATE(i,i,i);
--    } else if ( info_ptr->color_type==PNG_COLOR_TYPE_RGB_ALPHA ) {
--	ret = GImageCreate(it_rgba,info_ptr->width,info_ptr->height);
--    } else if ( info_ptr->color_type==PNG_COLOR_TYPE_RGB || info_ptr->color_type==PNG_COLOR_TYPE_RGB_ALPHA )
--	ret = GImageCreate(it_true,info_ptr->width,info_ptr->height);
-+    } else if ( _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_RGB_ALPHA ) {
-+	ret = GImageCreate(it_rgba,_png_get_image_width(png_ptr,info_ptr),_png_get_image_height(png_ptr,info_ptr));
-+    } else if ( _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_RGB || _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_RGB_ALPHA )
-+	ret = GImageCreate(it_true,_png_get_image_width(png_ptr,info_ptr),_png_get_image_height(png_ptr,info_ptr));
-     else {
-+	png_colorp palette;
-+	int num_palette;
- 	GClut *clut;
--	ret = GImageCreate(info_ptr->bit_depth != 1? it_index : it_mono,
--		info_ptr->width,info_ptr->height);
-+	ret = GImageCreate(_png_get_bit_depth(png_ptr,info_ptr) != 1? it_index : it_mono,
-+		_png_get_image_width(png_ptr,info_ptr),_png_get_image_height(png_ptr,info_ptr));
- 	clut = ret->u.image->clut;
- 	if ( clut==NULL )
- 	    clut = ret->u.image->clut = gcalloc(1,sizeof(GClut));
- 	clut->is_grey = true;
--	clut->clut_len = info_ptr->num_palette;
--	for ( i=0; i<info_ptr->num_palette; ++i )
--	    clut->clut[i] = COLOR_CREATE(info_ptr->palette[i].red,
--			info_ptr->palette[i].green,
--			info_ptr->palette[i].blue);
-+	_png_get_PLTE(png_ptr,info_ptr,&palette,&num_palette);
-+	clut->clut_len = num_palette;
-+	for ( i=0; i<num_palette; ++i )
-+	    clut->clut[i] = COLOR_CREATE(palette[i].red,
-+			palette[i].green,
-+			palette[i].blue);
-     }
-+    _png_get_tRNS(png_ptr,info_ptr,&trans_alpha,&num_trans,&trans_color);
-     base = ret->u.image;
--    if ( (info_ptr->valid&PNG_INFO_tRNS) && info_ptr->num_trans>0 ) {
--	if ( info_ptr->color_type==PNG_COLOR_TYPE_RGB || info_ptr->color_type==PNG_COLOR_TYPE_RGB_ALPHA )
--#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
-+    if ( (_png_get_valid(png_ptr,info_ptr,PNG_INFO_tRNS)) && num_trans>0 ) {
-+	if ( _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_RGB || _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_RGB_ALPHA )
- 	    base->trans = COLOR_CREATE(
--		    (info_ptr->trans_color.red>>8),
--		    (info_ptr->trans_color.green>>8),
--		    (info_ptr->trans_color.blue>>8));
--#else
--	    base->trans = COLOR_CREATE(
--		    (info_ptr->trans_values.red>>8),
--		    (info_ptr->trans_values.green>>8),
--		    (info_ptr->trans_values.blue>>8));
--#endif
-+		    (trans_color->red>>8),
-+		    (trans_color->green>>8),
-+		    (trans_color->blue>>8));
-         else if ( base->image_type == it_mono )
--#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
--	    base->trans = info_ptr->trans_alpha[0];
--#else
--	    base->trans = info_ptr->trans[0];
--#endif
-+	    base->trans = trans_alpha[0];
- 	else
--#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
--	    base->clut->trans_index = base->trans = info_ptr->trans_alpha[0];
--#else
--	    base->clut->trans_index = base->trans = info_ptr->trans[0];
--#endif
-+	    base->clut->trans_index = base->trans = trans_alpha[0];
-     }
- 
--    row_pointers = galloc(info_ptr->height*sizeof(png_bytep));
--    for ( i=0; i<info_ptr->height; ++i )
-+    row_pointers = galloc(_png_get_image_height(png_ptr,info_ptr)*sizeof(png_bytep));
-+    for ( i=0; i<_png_get_image_height(png_ptr,info_ptr); ++i )
- 	row_pointers[i] = (png_bytep) (base->data + i*base->bytes_per_line);
- 
-     /* Ignore progressive loads for now */
-@@ -254,7 +277,7 @@ return( NULL );
-     _png_read_image(png_ptr,row_pointers);
-     _png_read_end(png_ptr, NULL);
- 
--    if ( info_ptr->color_type==PNG_COLOR_TYPE_RGB || info_ptr->color_type==PNG_COLOR_TYPE_RGB_ALPHA ) {
-+    if ( _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_RGB || _png_get_color_type(png_ptr, info_ptr)==PNG_COLOR_TYPE_RGB_ALPHA ) {
- 	/* PNG orders its bytes as AABBGGRR instead of 00RRGGBB */
- 	uint32 *ipt, *iend;
- 	for ( ipt = (uint32 *) (base->data), iend=ipt+base->width*base->height; ipt<iend; ++ipt ) {
diff --git a/fonts/fontforge/patches/patch-ak b/fonts/fontforge/patches/patch-ak
deleted file mode 100644
index 05637a23dcd..00000000000
--- a/fonts/fontforge/patches/patch-ak
+++ /dev/null
@@ -1,219 +0,0 @@
-$NetBSD: patch-ak,v 1.3 2011/01/24 12:08:26 wiz Exp $
-
-Fix build with png-1.5.
-
---- gutils/gimagewritepng.c.orig	2010-04-29 17:52:54.000000000 +0000
-+++ gutils/gimagewritepng.c
-@@ -53,6 +53,11 @@ static void (*_png_set_packing)(png_stru
- static void (*_png_set_filler)(png_structp,png_uint_32,int);
- static void (*_png_write_image)(png_structp,png_bytep*);
- static void (*_png_write_end)(png_structp,png_infop);
-+static void (*_png_longjmp)(png_structp, int);
-+static jmp_buf* (*_png_set_longjmp_fn)(png_structp,png_longjmp_ptr, size_t);
-+static void (*_png_set_IHDR)(png_structp,png_infop,png_uint_32,png_uint_32,int,int,int,int,int);
-+static void (*_png_set_PLTE)(png_structp,png_infop,png_colorp,int);
-+static void (*_png_set_tRNS)(png_structp,png_infop,png_bytep,int,png_color_16p);
- 
- static int loadpng() {
-     /* Oops someone might have libpng without libz. If we try to load libpng */
-@@ -66,7 +71,7 @@ static int loadpng() {
- return( 0 );
-     }
- #  if !defined(_LIBPNG12)
--    libpng = dlopen("libpng" SO_EXT,RTLD_LAZY);
-+    libpng = dlopen("libpng15" SO_EXT,RTLD_LAZY);
- #    ifdef SO_2_EXT
-     if ( libpng==NULL )
- 	libpng = dlopen("libpng" SO_2_EXT,RTLD_LAZY);
-@@ -100,6 +105,16 @@ return( 0 );
- 	    dlsym(libpng,"png_write_image");
-     _png_write_end = (void (*)(png_structp,png_infop))
- 	    dlsym(libpng,"png_write_end");
-+    _png_longjmp = (void (*)(png_structp, int))
-+	    dlsym(libpng,"png_longjmp");
-+    _png_set_longjmp_fn = (jmp_buf* (*)(png_structp,png_longjmp_ptr,size_t))
-+	    dlsym(libpng,"png_set_longjmp_fn");
-+    _png_set_IHDR = (void (*)(png_structp,png_infop,png_uint_32,png_uint_32,int,int,int,int,int))
-+	    dlsym(libpng,"png_set_IHDR");
-+    _png_set_PLTE = (void (*)(png_structp,png_infop,png_colorp,int))
-+	    dlsym(libpng,"png_set_PLTE");
-+    _png_set_tRNS = (void (*)(png_structp,png_infop,png_bytep,int,png_color_16p))
-+	    dlsym(libpng,"png_set_tRNS");
-     if ( _png_create_write_struct && _png_create_info_struct && _png_destroy_write_struct &&
- 	    _png_init_io && _png_set_filler && _png_write_info && _png_set_packing &&
- 	    _png_write_image && _png_write_end)
-@@ -111,7 +126,11 @@ return( 0 );
- 
- static void user_error_fn(png_structp png_ptr, png_const_charp error_msg) {
-     fprintf(stderr,"%s", error_msg );
-+#if (PNG_LIBPNG_VER < 10500)
-     longjmp(png_ptr->jmpbuf,1);
-+#else
-+    _png_longjmp (png_ptr, 1);
-+#endif
- }
- 
- static void user_warning_fn(png_structp png_ptr, png_const_charp warning_msg) {
-@@ -124,6 +143,12 @@ int GImageWrite_Png(GImage *gi, FILE *fp
-     png_infop info_ptr;
-     png_byte **rows;
-     int i;
-+    int bit_depth;
-+    int color_type;
-+    int num_palette;
-+    png_bytep trans_alpha = NULL;
-+    png_color_16p trans_color = NULL;
-+    png_colorp palette = NULL;
- 
-     if ( libpng==NULL )
- 	if ( !loadpng())
-@@ -142,75 +167,66 @@ return(false);
- return(false);
-    }
- 
--   if (setjmp(png_ptr->jmpbuf)) {
-+   if (setjmp(*_png_set_longjmp_fn(png_ptr, longjmp, sizeof (jmp_buf)))) {
-       _png_destroy_write_struct(&png_ptr,  (png_infopp)NULL);
- return(false);
-    }
- 
-    _png_init_io(png_ptr, fp);
- 
--   info_ptr->width = base->width;
--   info_ptr->height = base->height;
--   info_ptr->bit_depth = 8;
--   info_ptr->valid = 0;
--   info_ptr->interlace_type = progressive;
--   if ( base->trans!=-1 ) {
--       info_ptr->num_trans = 1;
--       info_ptr->valid |= PNG_INFO_tRNS;
-+   bit_depth = 8;
-+   num_palette = base->clut==NULL?2:base->clut->clut_len;
-+   if ( base->image_type==it_index || base->image_type==it_bitmap ) {
-+       color_type = PNG_COLOR_TYPE_PALETTE;
-+       if ( num_palette<=2 )
-+	   bit_depth=1;
-+       else if ( num_palette<=4 )
-+	   bit_depth=2;
-+       else if ( num_palette<=16 )
-+	   bit_depth=4;
-+   } else {
-+       color_type = PNG_COLOR_TYPE_RGB;
-+       if ( base->image_type == it_rgba )
-+	   color_type = PNG_COLOR_TYPE_RGB_ALPHA;
-    }
-+
-+   _png_set_IHDR(png_ptr, info_ptr, base->width, base->height,
-+		 bit_depth, color_type, progressive,
-+		 PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
-    if ( base->image_type==it_index || base->image_type==it_bitmap ) {
--       info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
--       info_ptr->valid |= PNG_INFO_PLTE;
--       info_ptr->num_palette = base->clut==NULL?2:base->clut->clut_len;
--       info_ptr->palette = (png_color *) galloc(info_ptr->num_palette*sizeof(png_color));
-+       palette = (png_color *) galloc(num_palette*sizeof(png_color));
-        if ( base->clut==NULL ) {
--	    info_ptr->palette[0].red = info_ptr->palette[0].green = info_ptr->palette[0].blue = 0;
--	    info_ptr->palette[1].red = info_ptr->palette[1].green = info_ptr->palette[1].blue = 0xff;
-+	    palette[0].red = palette[0].green = palette[0].blue = 0;
-+	    palette[1].red = palette[1].green = palette[1].blue = 0xff;
-        } else {
--	   for ( i=0; i<info_ptr->num_palette; ++i ) {
-+	   for ( i=0; i<num_palette; ++i ) {
- 		long col = base->clut->clut[i];
--		info_ptr->palette[i].red = COLOR_RED(col);
--		info_ptr->palette[i].green = COLOR_GREEN(col);
--		info_ptr->palette[i].blue = COLOR_BLUE(col);
-+		palette[i].red = COLOR_RED(col);
-+		palette[i].green = COLOR_GREEN(col);
-+		palette[i].blue = COLOR_BLUE(col);
- 	   }
-        }
--       if ( info_ptr->num_palette<=2 )
--	   info_ptr->bit_depth=1;
--       else if ( info_ptr->num_palette<=4 )
--	   info_ptr->bit_depth=2;
--       else if ( info_ptr->num_palette<=16 )
--	   info_ptr->bit_depth=4;
--       if ( info_ptr->num_palette<=16 )
-+       _png_set_PLTE(png_ptr, info_ptr, palette, num_palette);
-+       if ( num_palette<=16 )
- 	   _png_set_packing(png_ptr);
-+
-        if ( base->trans!=-1 ) {
--#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
--	   info_ptr->trans_alpha = galloc(1);
--	   info_ptr->trans_alpha[0] = base->trans;
--#else
--	   info_ptr->trans = galloc(1);
--	   info_ptr->trans[0] = base->trans;
--#endif
-+	   trans_alpha = galloc(1);
-+	   trans_alpha[0] = base->trans;
-        }
-    } else {
--       info_ptr->color_type = PNG_COLOR_TYPE_RGB;
--       if ( base->image_type == it_rgba )
--	   info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
--
-        if ( base->trans!=-1 ) {
--#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
--	   info_ptr->trans_color.red = COLOR_RED(base->trans);
--	   info_ptr->trans_color.green = COLOR_GREEN(base->trans);
--	   info_ptr->trans_color.blue = COLOR_BLUE(base->trans);
--#else
--	   info_ptr->trans_values.red = COLOR_RED(base->trans);
--	   info_ptr->trans_values.green = COLOR_GREEN(base->trans);
--	   info_ptr->trans_values.blue = COLOR_BLUE(base->trans);
--#endif
-+	   trans_color->red = COLOR_RED(base->trans);
-+	   trans_color->green = COLOR_GREEN(base->trans);
-+	   trans_color->blue = COLOR_BLUE(base->trans);
-        }
-    }
-+   if ( base->trans!=-1 ) {
-+       _png_set_tRNS(png_ptr, info_ptr, trans_alpha, 1, trans_color);
-+   }
-    _png_write_info(png_ptr, info_ptr);
- 
--    if (info_ptr->color_type == PNG_COLOR_TYPE_RGB)
-+    if (color_type == PNG_COLOR_TYPE_RGB)
- 	_png_set_filler(png_ptr, '\0', PNG_FILLER_BEFORE);
- 
-     rows = galloc(base->height*sizeof(png_byte *));
-@@ -221,12 +237,8 @@ return(false);
- 
-     _png_write_end(png_ptr, info_ptr);
- 
--#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
--    if ( info_ptr->trans_alpha!=NULL ) gfree(info_ptr->trans_alpha);
--#else
--    if ( info_ptr->trans!=NULL ) gfree(info_ptr->trans);
--#endif
--    if ( info_ptr->palette!=NULL ) gfree(info_ptr->palette);
-+    if ( trans_alpha!=NULL ) gfree(trans_alpha);
-+    if ( palette!=NULL ) gfree(palette);
-     _png_destroy_write_struct(&png_ptr, &info_ptr);
-     gfree(rows);
- return( 1 );
-@@ -261,7 +273,11 @@ return( ret );
- 
- static void user_error_fn(png_structp png_ptr, png_const_charp error_msg) {
-     fprintf(stderr, "%s\n", error_msg );
-+#if (PNG_LIBPNG_VER < 10500)
-     longjmp(png_ptr->jmpbuf,1);
-+#else
-+    _png_longjmp (png_ptr, 1);
-+#endif
- }
- 
- static void user_warning_fn(png_structp png_ptr, png_const_charp warning_msg) {
-@@ -288,7 +304,7 @@ return(false);
- return(false);
-    }
- 
--   if (setjmp(png_ptr->jmpbuf)) {
-+   if (setjmp(*_png_set_longjmp_fn(png_ptr, longjmp, sizeof (jmp_buf)))) {
-       png_destroy_write_struct(&png_ptr,  (png_infopp)NULL);
- return(false);
-    }
diff --git a/fonts/fontforge/patches/patch-al b/fonts/fontforge/patches/patch-al
deleted file mode 100644
index 92b0c073218..00000000000
--- a/fonts/fontforge/patches/patch-al
+++ /dev/null
@@ -1,54 +0,0 @@
-$NetBSD: patch-al,v 1.1 2010/12/07 16:58:12 drochner Exp $
-
-CVE-2010-4259
-
---- fontforge/fvimportbdf.c.orig	2010-04-16 03:02:02.000000000 +0000
-+++ fontforge/fvimportbdf.c
-@@ -560,7 +560,7 @@ static int slurp_header(FILE *bdf, int *
- 	}
-     
- 	if ( strcmp(tok,"FONT")==0 ) {
--	    if ( sscanf(buf,"-%*[^-]-%[^-]-%[^-]-%[^-]-%*[^-]-", family, weight, italic )!=0 ) {
-+	    if ( sscanf(buf,"-%*[^-]-%99[^-]-%99[^-]-%99[^-]-%*[^-]-", family, weight, italic )!=0 ) {
- 		char *pt=buf;
- 		int dcnt=0;
- 		while ( *pt=='-' && dcnt<7 ) { ++pt; ++dcnt; }
-@@ -616,26 +616,30 @@ static int slurp_header(FILE *bdf, int *
- 	    sscanf(buf, "%d", &defs->metricsset );
- 	else if ( strcmp(tok,"VVECTOR")==0 )
- 	    sscanf(buf, "%*d %d", &defs->vertical_origin );
-+	/* For foundry, fontname and encname, only copy up to the buffer size */
- 	else if ( strcmp(tok,"FOUNDRY")==0 )
--	    sscanf(buf, "%[^\"]", foundry );
-+	    sscanf(buf, "%99[^\"]", foundry );
- 	else if ( strcmp(tok,"FONT_NAME")==0 )
--	    sscanf(buf, "%[^\"]", fontname );
-+	    sscanf(buf, "%99[^\"]", fontname );
- 	else if ( strcmp(tok,"CHARSET_REGISTRY")==0 )
--	    sscanf(buf, "%[^\"]", encname );
-+	    sscanf(buf, "%99[^\"]", encname );
- 	else if ( strcmp(tok,"CHARSET_ENCODING")==0 ) {
- 	    enc = 0;
- 	    if ( sscanf(buf, " %d", &enc )!=1 )
- 		sscanf(buf, "%d", &enc );
-+	/* These properties should be copied up to the buffer length too */
- 	} else if ( strcmp(tok,"FAMILY_NAME")==0 ) {
--	    strcpy(family,buf);
-+	    strncpy(family,buf,99);
- 	} else if ( strcmp(tok,"FULL_NAME")==0 || strcmp(tok,"FACE_NAME")==0 ) {
--	    strcpy(full,buf);
-+	    strncpy(full,buf,99);
- 	} else if ( strcmp(tok,"WEIGHT_NAME")==0 )
--	    strcpy(weight,buf);
-+	    strncpy(weight,buf,99);
- 	else if ( strcmp(tok,"SLANT")==0 )
--	    strcpy(italic,buf);
-+	    strncpy(italic,buf,99);
- 	else if ( strcmp(tok,"COPYRIGHT")==0 ) {
--	    strcpy(comments,buf);
-+		/* LS: Assume the size of the passed-in buffer is 1000, see below in
-+		 * COMMENT */
-+	    strncpy(comments,buf,999);
- 	    found_copyright = true;
- 	} else if ( strcmp(tok,"COMMENT")==0 && !found_copyright ) {
- 	    char *pt = comments+strlen(comments);
-- 
cgit v1.2.3