NetBSD Problem Report #48074
From www@NetBSD.org Mon Jul 22 15:58:02 2013
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "Postmaster NetBSD.org" (verified OK))
by mollari.NetBSD.org (Postfix) with ESMTPS id A3A3F70611
for <gnats-bugs@gnats.NetBSD.org>; Mon, 22 Jul 2013 15:58:02 +0000 (UTC)
Message-Id: <20130722155801.14CD370628@mollari.NetBSD.org>
Date: Mon, 22 Jul 2013 15:58:01 +0000 (UTC)
From: ci4ic4@gmail.com
Reply-To: ci4ic4@gmail.com
To: gnats-bugs@NetBSD.org
Subject: libgdiplus fails build with the latest giflib
X-Send-Pr-Version: www-1.0
>Number: 48074
>Category: pkg
>Synopsis: libgdiplus fails build with the latest giflib
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kefren
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Jul 22 16:00:00 +0000 2013
>Closed-Date: Sun May 24 16:28:52 +0000 2015
>Last-Modified: Sun May 24 16:28:52 +0000 2015
>Originator: Chavdar Ivanov
>Release: 6.99.23
>Organization:
Delcam Plc
>Environment:
NetBSD support6.delcam.local 6.99.23 NetBSD 6.99.23 (MINE) #16: Sat Jul 20 12:06:55 BST 2013 root@support6.delcam.local:/usr/src/sys/arch/amd64/compile/MINE amd64
>Description:
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include -D_REENTRANT -I/usr/pkg/include/cairo -I/usr/X11R7/include/pixman-1 -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/pkg/include/libpng16 -I/usr/X11R7/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -D_REENTRANT -I/usr/X11R7/include -Wall -Wno-unused -Wno-format -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/freetype2 -O2 -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/freetype2 -pthread -MT gifcodec.lo -MD -MP -MF .deps/gifcodec.Tpo -c -o gifcodec.lo gifcodec.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/pkgsrc/graphics/libgdiplus/work/.buildlink/include/glib/glib-2.0 -I/usr/pkgsrc/graphics/libgdiplus/work/.buildlink/lib/glib-2.0/include -I/usr/pkgsrc/graphics/libgdiplus/work/.buildlink/include -D_REENTRANT -I/usr/pkgsrc/graphics/libgdiplus/work/.buildlink/include/cairo -I/usr/pkgsrc/graphics/libgdiplus/work/.x11-buildlink/include/pixman-1 -I/usr/pkgsrc/graphics/libgdiplus/work/.x11-buildlink/include -I/usr/pkgsrc/graphics/libgdiplus/work/.x11-buildlink/include/freetype2 -I/usr/pkgsrc/graphics/libgdiplus/work/.buildlink/include/libpng16 -Wall -Wno-unused -Wno-format -I/usr/pkgsrc/graphics/libgdiplus/work/.x11-buildlink/include/libdrm -O2 -pthread -MT gifcodec.lo -MD -MP -MF .deps/gifcodec.Tpo -c gifcodec.c -fPIC -DPIC -o .libs/gifcodec.o
gifcodec.c: In function 'AddExtensionBlockMono':
gifcodec.c:129:12: warning: pointer targets in assignment differ in signedness
gifcodec.c:136:21: error: 'SavedImage' has no member named 'Function'
gifcodec.c: In function 'DGifSlurpMono':
gifcodec.c:239:45: error: 'SavedImage' has no member named 'Function'
gifcodec.c: In function 'gdip_save_gif_image':
gifcodec.c:982:3: warning: implicit declaration of function 'FreeMapObject'
gmake: *** [gifcodec.lo] Error 1
'Function' member was marked as "deprecated" in the include file of giflib v.4.1.6; it has been removed in the include file of the new giflib 5.0 package. Two references to SavedImage.Function exist in gifcodec.c .
>How-To-Repeat:
Upgrade giflib to 5.0; try to build libgdiplus.
>Fix:
N/A
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: pkg-manager->kefren
Responsible-Changed-By: hauke@NetBSD.org
Responsible-Changed-When: Mon, 22 Jul 2013 19:50:53 +0000
Responsible-Changed-Why:
Over to maintainer.
From: Ryo ONODERA <ryo_on@yk.rim.or.jp>
To: gnats-bugs@NetBSD.org, ci4ic4@gmail.com
Cc:
Subject: Re: pkg/48074: libgdiplus fails build with the latest giflib
Date: Tue, 23 Jul 2013 19:46:20 +0900 (JST)
I have following patch, but I am not sure whether this patch is correct or not.
I cannot understand gif's function yet.
With this patch, Pinta from http://pinta-project.com/ works for me.
$NetBSD: patch-src_gifcodec.c,v 1.1 2013/07/13 10:50:05 obache Exp $
* fixes build with giflib>=5
--- src/gifcodec.c.orig 2011-01-13 22:28:19.000000000 +0000
+++ src/gifcodec.c
@@ -39,8 +39,12 @@ GUID gdip_gif_image_format_guid = {0xb96
#include "gifcodec.h"
-/* 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
/* Data structure used for callback */
typedef struct
@@ -129,7 +133,7 @@ AddExtensionBlockMono(SavedImage *New, i
if (ExtData) {
memcpy(ep->Bytes, ExtData, Len);
- ep->Function = New->Function;
+ ep->Function = New->ExtensionBlocks[New->ExtensionBlockCount++].Function;
}
return (GIF_OK);
@@ -232,7 +236,7 @@ DGifSlurpMono(GifFileType * GifFile, Sav
}
case EXTENSION_RECORD_TYPE: {
- if (DGifGetExtension(GifFile, &temp_save.Function, &ExtData) == GIF_ERROR) {
+ if (DGifGetExtension(GifFile, &temp_save.ExtensionBlocks[temp_save.ExtensionBlockCount].Function, &ExtData) == GIF_ERROR) {
return (GIF_ERROR);
}
@@ -245,7 +249,9 @@ DGifSlurpMono(GifFileType * GifFile, Sav
if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) {
return (GIF_ERROR);
}
+#if GIFLIB_MAJOR < 5
temp_save.Function = 0;
+#endif
}
break;
}
@@ -304,9 +310,17 @@ gdip_load_gif_image (void *stream, GpIma
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) {
@@ -662,9 +676,17 @@ gdip_save_gif_image (void *stream, GpIma
}
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) {
@@ -703,7 +725,11 @@ gdip_save_gif_image (void *stream, GpIma
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) {
@@ -794,7 +820,11 @@ gdip_save_gif_image (void *stream, GpIma
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);
@@ -825,13 +855,21 @@ gdip_save_gif_image (void *stream, GpIma
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)) {
@@ -849,8 +887,15 @@ gdip_save_gif_image (void *stream, GpIma
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
}
}
@@ -902,7 +947,11 @@ gdip_save_gif_image (void *stream, GpIma
pixbuf += bitmap_data->width;
}
+#if GIFLIB_MAJOR >= 5
+ GifFreeMapObject (cmap);
+#else
FreeMapObject (cmap);
+#endif
if (red != NULL) {
GdipFree (red);
}
@@ -930,7 +979,11 @@ gdip_save_gif_image (void *stream, GpIma
error:
if (cmap != NULL) {
+#if GIFLIB_MAJOR >= 5
+ GifFreeMapObject (cmap);
+#else
FreeMapObject (cmap);
+#endif
}
if (red != NULL) {
--
Ryo ONODERA // ryo_on@yk.rim.or.jp
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
From: Mihai Chelaru <kefren@NetBSD.org>
To: gnats-bugs@netbsd.org
Cc: gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org, ci4ic4@gmail.com
Subject: Re: pkg/48074: libgdiplus fails build with the latest giflib
Date: Tue, 23 Jul 2013 16:08:21 +0300
Hi,
Any reason why not using GIFLIB_MAJOR everywhere in this patch instead
of checking for GIF_LIB_VERSION (@39) and the other couple of places
@192, @232 ?
I'm not a GIF expert myself, but the changeset looks ok to me, so if
it works for you and PR reporter please commit it.
Thank you !
From: "OBATA Akio" <obache@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/48074: libgdiplus fails build with the latest giflib
Date: Tue, 23 Jul 2013 22:23:47 +0900
On Tue, 23 Jul 2013 22:10:01 +0900, Mihai Chelaru <kefren@netbsd.org> wrote:
> Any reason why not using GIFLIB_MAJOR everywhere in this patch instead
> of checking for GIF_LIB_VERSION (@39) and the other couple of places
> @192, @232 ?
GIF_LIB_VERSION is defined in 4.1.6 and prior.
GIFLIB_MAJOR is defined after 4.1.6 (include 4.2.x).
Then...
GIF_LIB_VERSION must be used for version check before 4.1.6,
GIFLIB_MAJOR must be used for version check after 4.1.6.
> I'm not a GIF expert myself, but the changeset looks ok to me, so if
> it works for you and PR reporter please commit it.
Me too.
I've patched some of them, and I'm not sure those are correct or not.
Here are some information about `Forward and Backward Compatibility' of giflib:
http://giflib.sourceforge.net/gif_lib.html#compatibility
--
OBATA Akio / obache@NetBSD.org
From: "OBATA Akio" <obache@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/48074 CVS commit: pkgsrc/graphics/libgdiplus
Date: Thu, 19 Sep 2013 11:53:56 +0000
Module Name: pkgsrc
Committed By: obache
Date: Thu Sep 19 11:53:56 UTC 2013
Modified Files:
pkgsrc/graphics/libgdiplus: distinfo
pkgsrc/graphics/libgdiplus/patches: patch-src_gifcodec.c
Log Message:
apply rest of giflib>=5.0 compatibilitiy patch from PR pkg/48074
To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 pkgsrc/graphics/libgdiplus/distinfo
cvs rdiff -u -r1.1 -r1.2 \
pkgsrc/graphics/libgdiplus/patches/patch-src_gifcodec.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 30 Dec 2013 00:30:15 +0000
State-Changed-Why:
Is this fixed?
From: Chavdar Ivanov <ci4ic4@gmail.com>
To: "gnats-bugs@netbsd.org" <gnats-bugs@netbsd.org>
Cc: kefren@netbsd.org, pkgsrc-bugs@netbsd.org,
"gnats-admin@netbsd.org" <gnats-admin@netbsd.org>, David Holland <dholland@netbsd.org>
Subject: Re: pkg/48074 (libgdiplus fails build with the latest giflib)
Date: Mon, 30 Dec 2013 12:00:55 +0000
Apparently yes - now I have
# pkg_info | egrep 'giflib|libgdiplus'
giflib-5.0.5 GIF image format library
libgdiplus-2.10nb12 Implementation of the GDI+ API
compiled yesterday under fresh mad64 -current.
Chavdar
On 30 December 2013 00:30, <dholland@netbsd.org> wrote:
> Synopsis: libgdiplus fails build with the latest giflib
>
> State-Changed-From-To: open->feedback
> State-Changed-By: dholland@NetBSD.org
> State-Changed-When: Mon, 30 Dec 2013 00:30:15 +0000
> State-Changed-Why:
> Is this fixed?
>
>
>
--
----
State-Changed-From-To: feedback->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 30 Dec 2013 19:41:10 +0000
State-Changed-Why:
confirmed fixed, thanks.
From: Onno van der Linden <o.vd.linden@quicknet.nl>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/48074 (libgdiplus fails build with the latest giflib)
Date: Sun, 5 Jan 2014 15:30:52 +0100
Yes it compiles. But it can cause a crash due to calling
DGifGetExtension() with
&temp_save.ExtensionBlocks[temp_save.ExtensionBlockCount].Function
as the second parameter.
If the ExtensionBlocks pointer is NULL .........
Here's one line from a mono stack trace and some debug output
with some printfs in libgdiplus' DGifSlurpMono() and in
giflib's DGifGetExtension()
$ mono /usr/local/CUETools_2.1.5/CUETools.exe
ExtensionBlockCount = 0 ExtensionBlocks = 0x0 <----------
GifFile = 0xb9595380 ExtCode = 0x8 Extension = 0xbfbfd8d8
Before IS_READABLE
Before READ
Before *ExtCode
Stacktrace:
at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipLoadImageFromDelegate_linux (System.Drawing.GDIPlus/StreamGetHeaderDelegate,System.Drawing.GDIPlus/StreamGetBytesDelegate,System.Drawing.GDIPlus/StreamPutBytesDelegate,System.Drawing.GDIPlus/StreamSeekDelegate,System.Drawing.GDIPlus/StreamCloseDelegate,System.Drawing.GDIPlus/StreamSizeDelegate,intptr&) <0xffffffff>
Here's the (complete) gifcodec diff which seems to work for me:
--- gifcodec.c.orig 2011-01-13 23:28:19.000000000 +0100
+++ gifcodec.c 2014-01-05 15:23:43.000000000 +0100
@@ -39,8 +39,12 @@
#include "gifcodec.h"
-/* 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
/* Data structure used for callback */
typedef struct
@@ -105,7 +109,7 @@
*/
static int
-AddExtensionBlockMono(SavedImage *New, int Len, BYTE ExtData[])
+AddExtensionBlockMono(SavedImage *New, int ExtCode, int Len, BYTE ExtData[])
{
ExtensionBlock *ep;
@@ -129,7 +133,7 @@
if (ExtData) {
memcpy(ep->Bytes, ExtData, Len);
- ep->Function = New->Function;
+ ep->Function = ExtCode;
}
return (GIF_OK);
@@ -232,20 +236,31 @@
}
case EXTENSION_RECORD_TYPE: {
+#if GIFLIB_MAJOR >= 5
+ int ExtCode;
+ if (DGifGetExtension(GifFile, &ExtCode, &ExtData) == GIF_ERROR) {
+#else
if (DGifGetExtension(GifFile, &temp_save.Function, &ExtData) == GIF_ERROR) {
+#endif
return (GIF_ERROR);
}
while (ExtData != NULL) {
/* Create an extension block with our data */
- if (AddExtensionBlockMono(&temp_save, ExtData[0], &ExtData[1]) == GIF_ERROR) {
+#if GIFLIB_MAJOR >= 5
+ if (AddExtensionBlockMono(&temp_save, ExtCode, ExtData[0], &ExtData[1]) == GIF_ERROR) {
+#else
+ if (AddExtensionBlockMono(&temp_save, temp_save.Function ExtData[0], &ExtData[1]) == GIF_ERROR) {
+#endif
return (GIF_ERROR);
}
if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) {
return (GIF_ERROR);
}
+#if GIFLIB_MAJOR < 5
temp_save.Function = 0;
+#endif
}
break;
}
@@ -304,9 +319,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) {
@@ -662,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) {
@@ -703,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) {
@@ -794,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);
@@ -825,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)) {
@@ -849,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
}
}
@@ -902,7 +956,11 @@
pixbuf += bitmap_data->width;
}
+#if GIFLIB_MAJOR >= 5
+ GifFreeMapObject (cmap);
+#else
FreeMapObject (cmap);
+#endif
if (red != NULL) {
GdipFree (red);
}
@@ -930,7 +988,11 @@
error:
if (cmap != NULL) {
+#if GIFLIB_MAJOR >= 5
+ GifFreeMapObject (cmap);
+#else
FreeMapObject (cmap);
+#endif
}
if (red != NULL) {
State-Changed-From-To: closed->open
State-Changed-By: obache@NetBSD.org
State-Changed-When: Tue, 07 Jan 2014 22:39:53 +0000
State-Changed-Why:
need more paches to fix runtime error
From: "Mihai Chelaru" <kefren@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/48074 CVS commit: pkgsrc/graphics/libgdiplus
Date: Sat, 23 May 2015 11:52:46 +0000
Module Name: pkgsrc
Committed By: kefren
Date: Sat May 23 11:52:46 UTC 2015
Modified Files:
pkgsrc/graphics/libgdiplus: Makefile distinfo
pkgsrc/graphics/libgdiplus/patches: patch-src_gifcodec.c
Log Message:
Add gif patch from PR/48074
PKGREVISION++
To generate a diff of this commit:
cvs rdiff -u -r1.74 -r1.75 pkgsrc/graphics/libgdiplus/Makefile
cvs rdiff -u -r1.37 -r1.38 pkgsrc/graphics/libgdiplus/distinfo
cvs rdiff -u -r1.4 -r1.5 \
pkgsrc/graphics/libgdiplus/patches/patch-src_gifcodec.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: open->closed
State-Changed-By: kefren@NetBSD.org
State-Changed-When: Sun, 24 May 2015 16:28:52 +0000
State-Changed-Why:
Fixed in libgdiplus-3.12nb1
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.