Index: head/x11-toolkits/libgdiplus/Makefile =================================================================== --- head/x11-toolkits/libgdiplus/Makefile (revision 381535) +++ head/x11-toolkits/libgdiplus/Makefile (revision 381536) @@ -1,34 +1,33 @@ # Created by: Tom McLaughlin # $FreeBSD$ PORTNAME= libgdiplus -PORTVERSION= 3.8 -PORTREVISION= 3 +PORTVERSION= 3.12 CATEGORIES= x11-toolkits MASTER_SITES= http://download.mono-project.com/sources/${PORTNAME}/ MAINTAINER= mono@FreeBSD.org COMMENT= GDI+ API for System.Windows.Forms in Mono LIB_DEPENDS= libtiff.so:${PORTSDIR}/graphics/tiff \ libgif.so:${PORTSDIR}/graphics/giflib \ libpng.so:${PORTSDIR}/graphics/png \ libcairo.so:${PORTSDIR}/graphics/cairo GNU_CONFIGURE= yes USES= gmake libtool:keepla pathfix pkgconfig USE_GNOME= glib20 USE_LDCONFIG= yes USE_XORG= x11 CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib INSTALL_TARGET= install-strip PLIST_FILES= lib/libgdiplus.a \ lib/libgdiplus.la \ lib/libgdiplus.so \ lib/libgdiplus.so.0 \ lib/libgdiplus.so.0.0.0 \ libdata/pkgconfig/libgdiplus.pc .include Index: head/x11-toolkits/libgdiplus/distinfo =================================================================== --- head/x11-toolkits/libgdiplus/distinfo (revision 381535) +++ head/x11-toolkits/libgdiplus/distinfo (revision 381536) @@ -1,2 +1,2 @@ -SHA256 (libgdiplus-3.8.tar.gz) = 6a3cfb4a1b67dd09197c385bacb8654f8d7ff49499f39c57825e1a8f77e69b28 -SIZE (libgdiplus-3.8.tar.gz) = 688029 +SHA256 (libgdiplus-3.12.tar.gz) = e61c4dc1bc2ba993e4f79029472efcf5760eb9e60eb20d9cd31f0ebe9113bfc9 +SIZE (libgdiplus-3.12.tar.gz) = 688120 Index: head/x11-toolkits/libgdiplus/files/patch-src_gifcodec.c =================================================================== --- head/x11-toolkits/libgdiplus/files/patch-src_gifcodec.c (revision 381535) +++ head/x11-toolkits/libgdiplus/files/patch-src_gifcodec.c (revision 381536) @@ -1,177 +1,176 @@ -$OpenBSD: patch-src_gifcodec_c,v 1.2 2014/07/18 16:00:28 ajacoutot Exp $ -giflib 5.0+ -http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/pkgsrc/graphics/libgdiplus/patches/patch-src_gifcodec.c?rev=1.2 +$FreeBSD$ ---- src/gifcodec.c.orig Fri Dec 2 18:23:12 2011 -+++ src/gifcodec.c Fri Jul 18 15:30:15 2014 -@@ -39,8 +39,12 @@ GUID gdip_gif_image_format_guid = {0xb96b3cb0U, 0x0728 - +--- src/gifcodec.c.orig ++++ src/gifcodec.c +@@ -40,9 +40,13 @@ #include "gifcodec.h" + #ifdef EgifOpen -/* giflib declares this incorrectly as EgifOpen */ +/* giflib declares this incorrectly as EgifOpen up to 4.1.2 + GIF_LIB_VERSION is defined up to 4.1.6, and prototype is changed in 5.0, + so it is safe to use it as check condition */ +#ifdef GIF_LIB_VERSION extern GifFileType *EGifOpen(void *userData, OutputFunc writeFunc); + #endif +#endif /* Data structure used for callback */ typedef struct -@@ -129,7 +133,11 @@ AddExtensionBlockMono(SavedImage *New, int Len, BYTE E +@@ -131,7 +135,11 @@ if (ExtData) { memcpy(ep->Bytes, ExtData, Len); +#if GIFLIB_MAJOR >= 5 + ep->Function = New->ExtensionBlocks[New->ExtensionBlockCount++].Function; +#else ep->Function = New->Function; +#endif } return (GIF_OK); -@@ -232,7 +240,11 @@ DGifSlurpMono(GifFileType * GifFile, SavedImage *Trail +@@ -234,7 +242,11 @@ } case EXTENSION_RECORD_TYPE: { +#if GIFLIB_MAJOR >= 5 + if (DGifGetExtension(GifFile, &temp_save.ExtensionBlocks[temp_save.ExtensionBlockCount].Function, &ExtData) == GIF_ERROR) { +#else if (DGifGetExtension(GifFile, &temp_save.Function, &ExtData) == GIF_ERROR) { +#endif return (GIF_ERROR); } -@@ -245,7 +257,9 @@ DGifSlurpMono(GifFileType * GifFile, SavedImage *Trail +@@ -247,7 +259,9 @@ if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) { return (GIF_ERROR); } +#if GIFLIB_MAJOR < 5 temp_save.Function = 0; +#endif } break; } -@@ -304,9 +318,17 @@ gdip_load_gif_image (void *stream, GpImage **image, BO +@@ -306,9 +320,17 @@ loop_counter = FALSE; if (from_file) { +#if GIFLIB_MAJOR >= 5 + gif = DGifOpen(stream, &gdip_gif_fileinputfunc, NULL); +#else gif = DGifOpen(stream, &gdip_gif_fileinputfunc); +#endif } else { +#if GIFLIB_MAJOR >= 5 + gif = DGifOpen (stream, &gdip_gif_inputfunc, NULL); +#else gif = DGifOpen (stream, &gdip_gif_inputfunc); +#endif } if (gif == NULL) { -@@ -661,9 +683,17 @@ gdip_save_gif_image (void *stream, GpImage *image, BOO +@@ -663,9 +685,17 @@ } if (from_file) { +#if GIFLIB_MAJOR >= 5 + fp = EGifOpenFileName (stream, 0, NULL); +#else fp = EGifOpenFileName (stream, 0); +#endif } else { +#if GIFLIB_MAJOR >= 5 + fp = EGifOpen (stream, gdip_gif_outputfunc, NULL); +#else fp = EGifOpen (stream, gdip_gif_outputfunc); +#endif } if (!fp) { -@@ -702,7 +732,11 @@ gdip_save_gif_image (void *stream, GpImage *image, BOO +@@ -704,7 +734,11 @@ goto error; } +#if GIFLIB_MAJOR >= 5 + cmap = GifMakeMapObject(cmap_size, 0); +#else cmap = MakeMapObject(cmap_size, 0); +#endif pixbuf = GdipAlloc(pixbuf_size); if (pixbuf == NULL) { -@@ -793,7 +827,11 @@ gdip_save_gif_image (void *stream, GpImage *image, BOO +@@ -795,7 +829,11 @@ pixbuf = pixbuf_org; } else { cmap_size = 256; +#if GIFLIB_MAJOR >= 5 + cmap = GifMakeMapObject (cmap_size, 0); +#else cmap = MakeMapObject (cmap_size, 0); +#endif red = GdipAlloc(pixbuf_size); green = GdipAlloc(pixbuf_size); -@@ -824,13 +862,21 @@ gdip_save_gif_image (void *stream, GpImage *image, BOO +@@ -826,13 +864,21 @@ v += 4; } } +#if GIFLIB_MAJOR >= 5 + if (GifQuantizeBuffer(bitmap_data->width, bitmap_data->height, &cmap_size, +#else if (QuantizeBuffer(bitmap_data->width, bitmap_data->height, &cmap_size, +#endif red, green, blue, pixbuf, cmap->Colors) == GIF_ERROR) { goto error; } } +#if GIFLIB_MAJOR >= 5 + cmap->BitsPerPixel = GifBitSize (cmap_size); +#else cmap->BitsPerPixel = BitSize (cmap_size); +#endif cmap->ColorCount = 1 << cmap->BitsPerPixel; if ((frame == 0) && (k == 0)) { -@@ -848,8 +894,15 @@ gdip_save_gif_image (void *stream, GpImage *image, BOO +@@ -850,8 +896,15 @@ Buffer[0] = 1; Buffer[1] = ptr[0]; Buffer[2] = ptr[1]; +#if GIFLIB_MAJOR >= 5 + EGifPutExtensionLeader(fp, APPLICATION_EXT_FUNC_CODE); + EGifPutExtensionBlock(fp, 11, "NETSCAPE2.0"); + EGifPutExtensionBlock(fp, 3, Buffer); + EGifPutExtensionTrailer(fp); +#else EGifPutExtensionFirst(fp, APPLICATION_EXT_FUNC_CODE, 11, "NETSCAPE2.0"); EGifPutExtensionLast(fp, APPLICATION_EXT_FUNC_CODE, 3, Buffer); +#endif } } -@@ -901,7 +954,11 @@ gdip_save_gif_image (void *stream, GpImage *image, BOO +@@ -903,7 +956,11 @@ pixbuf += bitmap_data->width; } +#if GIFLIB_MAJOR >= 5 + GifFreeMapObject (cmap); +#else FreeMapObject (cmap); +#endif if (red != NULL) { GdipFree (red); } -@@ -929,7 +986,11 @@ gdip_save_gif_image (void *stream, GpImage *image, BOO +@@ -931,7 +988,11 @@ error: if (cmap != NULL) { +#if GIFLIB_MAJOR >= 5 + GifFreeMapObject (cmap); +#else FreeMapObject (cmap); +#endif } if (red != NULL) {