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 <dan...@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 + } + } +