[arch-commits] Commit in libgdiplus/trunk (3 files)

Jan de Groot jgc at nymeria.archlinux.org
Tue Jul 30 09:44:52 UTC 2013


    Date: Tuesday, July 30, 2013 @ 11:44:51
  Author: jgc
Revision: 191758

giflib rebuild, add patches to make it build
upgpkg: libgdiplus 2.10.9-1

Added:
  libgdiplus/trunk/libgdiplus-2.10.9-gold.patch
  libgdiplus/trunk/libgdiplus0-giflib5.patch
Modified:
  libgdiplus/trunk/PKGBUILD

------------------------------+
 PKGBUILD                     |   28 ++++++---
 libgdiplus-2.10.9-gold.patch |   16 +++++
 libgdiplus0-giflib5.patch    |  117 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 152 insertions(+), 9 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-07-30 09:24:26 UTC (rev 191757)
+++ PKGBUILD	2013-07-30 09:44:51 UTC (rev 191758)
@@ -2,27 +2,37 @@
 # Maintainer: Daniel Isenmann <daniel at archlinux.org>
 
 pkgname=libgdiplus
-pkgver=2.10
-pkgrel=4
+pkgver=2.10.9
+pkgrel=1
 pkgdesc="An Open Source Implementation of the GDI+ API"
 arch=(i686 x86_64)
 license=('MPL' 'LGPL')
 url="http://www.mono-project.com"
-depends=('libtiff>=3.9.2-2' 'cairo>=1.8.10' 'giflib' 'glib2>=2.24.0' 'libexif')
+depends=('libtiff' 'cairo' 'giflib' 'glib2' 'libexif')
 options=('!libtool')
-source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2 libpng15.patch)
-md5sums=('451966e8f637e3a1f02d1d30f900255d'
-         'a2d143676bbaceeb88b4c34069e93986')
+source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+        libpng15.patch
+        libgdiplus0-giflib5.patch
+        libgdiplus-2.10.9-gold.patch)
+md5sums=('b4615c14584b5d73cbb9757c28887654'
+         'a2d143676bbaceeb88b4c34069e93986'
+         'ad97558c721106eea03c7808b501814b'
+         '95fb92750c131ce9287419c3ac5fcb76')
 
+prepare() {
+  cd ${pkgname}-${pkgver}
+  patch -Np0 -i ../libpng15.patch
+  patch -Np1 -i ../libgdiplus0-giflib5.patch
+  patch -Np1 -i ../libgdiplus-2.10.9-gold.patch
+}
 build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -p0 <../libpng15.patch
+  cd ${pkgname}-${pkgver}
   ./configure --prefix=/usr --with-cairo=system
 
   make
 }
 
 package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
+  cd ${pkgname}-${pkgver}
   make DESTDIR="${pkgdir}" install
 }

Added: libgdiplus-2.10.9-gold.patch
===================================================================
--- libgdiplus-2.10.9-gold.patch	                        (rev 0)
+++ libgdiplus-2.10.9-gold.patch	2013-07-30 09:44:51 UTC (rev 191758)
@@ -0,0 +1,16 @@
+ tests/Makefile.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/tests/Makefile.in b/tests/Makefile.in
+index 97f5f4e..c02ca25 100644
+--- a/tests/Makefile.in
++++ b/tests/Makefile.in
+@@ -228,7 +228,7 @@ DEPS = \
+ 	$(top_builddir)/src/libgdiplus.la
+ 
+ LDADDS = \
+-	$(top_builddir)/src/libgdiplus.la
++	$(top_builddir)/src/libgdiplus.la -lX11 -lglib-2.0
+ 
+ testgdi_DEPENDENCIES = $(TEST_DEPS)
+ testgdi_LDADD = $(LDADDS)

Added: libgdiplus0-giflib5.patch
===================================================================
--- libgdiplus0-giflib5.patch	                        (rev 0)
+++ libgdiplus0-giflib5.patch	2013-07-30 09:44:51 UTC (rev 191758)
@@ -0,0 +1,117 @@
+diff --git a/src/gifcodec.c b/src/gifcodec.c
+index 8dee0eb..564beed 100644
+--- a/src/gifcodec.c
++++ b/src/gifcodec.c
+@@ -39,8 +39,10 @@ GUID gdip_gif_image_format_guid = {0xb96b3cb0U, 0x0728U, 0x11d3U, {0x9d, 0x7b, 0
+ 
+ #include "gifcodec.h"
+ 
++#if GIFLIB_MAJOR < 5
+ /* giflib declares this incorrectly as EgifOpen */
+ extern GifFileType *EGifOpen(void *userData, OutputFunc writeFunc);
++#endif
+ 
+ /* Data structure used for callback */
+ typedef struct
+@@ -105,7 +107,7 @@ gdip_gif_inputfunc (GifFileType *gif, GifByteType *data, int len)
+ */
+ 
+ static int
+-AddExtensionBlockMono(SavedImage *New, int Len, BYTE ExtData[])
++AddExtensionBlockMono(SavedImage *New, int Len, int func, BYTE ExtData[])
+ {
+ 	ExtensionBlock	*ep;
+ 
+@@ -129,7 +131,7 @@ AddExtensionBlockMono(SavedImage *New, int Len, BYTE ExtData[])
+ 
+ 	if (ExtData) {
+ 		memcpy(ep->Bytes, ExtData, Len);
+-		ep->Function = New->Function;
++		ep->Function = func;
+ 	}
+ 
+ 	return (GIF_OK);
+@@ -232,20 +234,20 @@ DGifSlurpMono(GifFileType * GifFile, SavedImage *TrailingExtensions)
+ 			}
+ 
+ 			case EXTENSION_RECORD_TYPE: {
+-				if (DGifGetExtension(GifFile, &temp_save.Function, &ExtData) == GIF_ERROR) {
++				int func;
++				if (DGifGetExtension(GifFile, &func, &ExtData) == GIF_ERROR) {
+ 					return (GIF_ERROR);
+ 				}
+ 
+ 				while (ExtData != NULL) {
+ 					/* Create an extension block with our data */
+-					if (AddExtensionBlockMono(&temp_save, ExtData[0], &ExtData[1]) == GIF_ERROR) {
++					if (AddExtensionBlockMono(&temp_save, func, ExtData[0], &ExtData[1]) == GIF_ERROR) {
+ 						return (GIF_ERROR);
+ 					}
+ 
+ 					if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) {
+ 						return (GIF_ERROR);
+ 					}
+-					temp_save.Function = 0;
+ 				}
+ 				break;
+ 			}
+@@ -303,12 +305,19 @@ gdip_load_gif_image (void *stream, GpImage **image, BOOL from_file)
+ 	result = NULL;
+ 	loop_counter = FALSE;
+ 
++#if GIFLIB_MAJOR < 5
+ 	if (from_file) {
+ 		gif = DGifOpen(stream, &gdip_gif_fileinputfunc);
+ 	} else {
+ 		gif = DGifOpen (stream, &gdip_gif_inputfunc);
+ 	}
+-	
++#else
++	if (from_file)
++		gif = DGifOpen(stream, &gdip_gif_fileinputfunc, NULL);
++	else
++		gif = DGifOpen(stream, &gdip_gif_inputfunc, NULL);
++#endif
++
+ 	if (gif == NULL) {
+ 		goto error;
+ 	}
+@@ -660,11 +669,22 @@ gdip_save_gif_image (void *stream, GpImage *image, BOOL from_file)
+ 		return InvalidParameter;
+ 	}
+ 
++#if GIFLIB_MAJOR < 5
+ 	if (from_file) {
+ 		fp = EGifOpenFileName (stream, 0);
+ 	} else {
+ 		fp = EGifOpen (stream, gdip_gif_outputfunc);
+ 	}
++#else
++	if (from_file)
++		fp = EGifOpenFileName (stream, 0, NULL);
++	else
++		fp = EGifOpen (stream, gdip_gif_outputfunc, NULL);
++#define MakeMapObject  GifMakeMapObject
++#define FreeMapObject  GifFreeMapObject
++#define QuantizeBuffer GifQuantizeBuffer
++#define BitSize        GifBitSize
++#endif
+ 		
+ 	if (!fp) {
+ 		return FileNotFound;
+@@ -848,8 +868,15 @@ gdip_save_gif_image (void *stream, GpImage *image, BOOL from_file)
+ 						Buffer[0] = 1;
+ 						Buffer[1] = ptr[0];
+ 						Buffer[2] = ptr[1];
++#if GIFLIB_MAJOR < 5
+ 						EGifPutExtensionFirst(fp, APPLICATION_EXT_FUNC_CODE, 11, "NETSCAPE2.0");
+ 						EGifPutExtensionLast(fp, APPLICATION_EXT_FUNC_CODE, 3, Buffer);
++#else
++						EGifPutExtensionLeader(fp, APPLICATION_EXT_FUNC_CODE);
++						EGifPutExtensionBlock(fp, 11, "NETSCAPE2.0");
++						EGifPutExtensionBlock(fp, 3, Buffer);
++						EGifPutExtensionTrailer(fp);
++#endif
+ 					}
+ 				}
+ 




More information about the arch-commits mailing list