Date: Sunday, June 1, 2014 @ 13:25:35 Author: bpiotrowski Revision: 214018
archrelease: copy trunk to staging-i686, staging-x86_64 Added: libgdiplus/repos/staging-i686/ libgdiplus/repos/staging-i686/PKGBUILD (from rev 214017, libgdiplus/trunk/PKGBUILD) libgdiplus/repos/staging-i686/libgdiplus-2.10.9-freetype25.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-freetype25.patch) libgdiplus/repos/staging-i686/libgdiplus-2.10.9-giflib-5.1.0.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-giflib-5.1.0.patch) libgdiplus/repos/staging-i686/libgdiplus-2.10.9-gold.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-gold.patch) libgdiplus/repos/staging-i686/libgdiplus0-giflib5.patch (from rev 214017, libgdiplus/trunk/libgdiplus0-giflib5.patch) libgdiplus/repos/staging-i686/libpng15.patch (from rev 214017, libgdiplus/trunk/libpng15.patch) libgdiplus/repos/staging-x86_64/ libgdiplus/repos/staging-x86_64/PKGBUILD (from rev 214017, libgdiplus/trunk/PKGBUILD) libgdiplus/repos/staging-x86_64/libgdiplus-2.10.9-freetype25.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-freetype25.patch) libgdiplus/repos/staging-x86_64/libgdiplus-2.10.9-giflib-5.1.0.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-giflib-5.1.0.patch) libgdiplus/repos/staging-x86_64/libgdiplus-2.10.9-gold.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-gold.patch) libgdiplus/repos/staging-x86_64/libgdiplus0-giflib5.patch (from rev 214017, libgdiplus/trunk/libgdiplus0-giflib5.patch) libgdiplus/repos/staging-x86_64/libpng15.patch (from rev 214017, libgdiplus/trunk/libpng15.patch) -----------------------------------------------------+ staging-i686/PKGBUILD | 46 +++++ staging-i686/libgdiplus-2.10.9-freetype25.patch | 26 ++ staging-i686/libgdiplus-2.10.9-giflib-5.1.0.patch | 30 +++ staging-i686/libgdiplus-2.10.9-gold.patch | 16 + staging-i686/libgdiplus0-giflib5.patch | 117 ++++++++++++ staging-i686/libpng15.patch | 164 ++++++++++++++++++ staging-x86_64/PKGBUILD | 46 +++++ staging-x86_64/libgdiplus-2.10.9-freetype25.patch | 26 ++ staging-x86_64/libgdiplus-2.10.9-giflib-5.1.0.patch | 30 +++ staging-x86_64/libgdiplus-2.10.9-gold.patch | 16 + staging-x86_64/libgdiplus0-giflib5.patch | 117 ++++++++++++ staging-x86_64/libpng15.patch | 164 ++++++++++++++++++ 12 files changed, 798 insertions(+) Copied: libgdiplus/repos/staging-i686/PKGBUILD (from rev 214017, libgdiplus/trunk/PKGBUILD) =================================================================== --- staging-i686/PKGBUILD (rev 0) +++ staging-i686/PKGBUILD 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,46 @@ +# $Id$ +# Maintainer: Daniel Isenmann <dan...@archlinux.org> + +pkgname=libgdiplus +pkgver=2.10.9 +pkgrel=5 +pkgdesc="An Open Source Implementation of the GDI+ API" +arch=(i686 x86_64) +license=('MPL' 'LGPL') +url="http://www.mono-project.com" +depends=('libtiff' 'cairo' 'giflib' 'glib2' 'libexif') +source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2 + libpng15.patch + libgdiplus0-giflib5.patch + libgdiplus-2.10.9-gold.patch + libgdiplus-2.10.9-freetype25.patch + libgdiplus-2.10.9-giflib-5.1.0.patch) +md5sums=('b4615c14584b5d73cbb9757c28887654' + 'a2d143676bbaceeb88b4c34069e93986' + 'ad97558c721106eea03c7808b501814b' + '95fb92750c131ce9287419c3ac5fcb76' + '6ee484dde02ea89aded1287c0a8d4bad' + '8c0a975b12a011b21e4216c44be1416e') + +prepare() { + cd ${pkgname}-${pkgver} + patch -Np0 -i ../libpng15.patch + patch -Np1 -i ../libgdiplus0-giflib5.patch + patch -Np1 -i ../libgdiplus-2.10.9-gold.patch + patch -Np1 -i ../libgdiplus-2.10.9-freetype25.patch + patch -Np1 -i ../libgdiplus-2.10.9-giflib-5.1.0.patch + + sed -i -e 's/-L\${libjpeg_prefix}\/lib -ljpeg/-ljpeg/' configure +} + +build() { + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr --with-cairo=system + + make +} + +package() { + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install +} Copied: libgdiplus/repos/staging-i686/libgdiplus-2.10.9-freetype25.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-freetype25.patch) =================================================================== --- staging-i686/libgdiplus-2.10.9-freetype25.patch (rev 0) +++ staging-i686/libgdiplus-2.10.9-freetype25.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,26 @@ +commit 180c02e0f2a2016eba8520b456ca929e9dcf03db +Author: Jo Shields <direct...@apebox.org> +Date: Mon Dec 16 09:24:57 2013 +0000 + + Use FreeType macros for tttables.h inclusion + + As of FreeType 2.1.6 (November 2003), using #include to include Freetype libraries directly is not supported. + + This has come to a head, as in FreeType 2.5.0, the location of headers has been moved around, breaking building of libgdiplus. + + This slight change uses the "official" way to include the required header file, without breaking building on older versions of the library. + +diff --git a/src/gdiplus-private.h b/src/gdiplus-private.h +index 59edf9e..dfccc02 100644 +--- a/src/gdiplus-private.h ++++ b/src/gdiplus-private.h +@@ -30,7 +30,8 @@ + #include <stdio.h> + #include <math.h> + #include <glib.h> +-#include <freetype/tttables.h> ++#include <ft2build.h> ++#include FT_TRUETYPE_TABLES_H + #include <pthread.h> + #include <unistd.h> + Copied: libgdiplus/repos/staging-i686/libgdiplus-2.10.9-giflib-5.1.0.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-giflib-5.1.0.patch) =================================================================== --- staging-i686/libgdiplus-2.10.9-giflib-5.1.0.patch (rev 0) +++ staging-i686/libgdiplus-2.10.9-giflib-5.1.0.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,30 @@ +diff -rupN a/src/gifcodec.c b/src/gifcodec.c +--- a/src/gifcodec.c 2011-12-02 18:23:12.000000000 +0100 ++++ b/src/gifcodec.c 2014-06-01 13:20:17.027203704 +0200 +@@ -581,7 +581,7 @@ gdip_load_gif_image (void *stream, GpIma + } + + FreeExtensionMono(&global_extensions); +- DGifCloseFile (gif); ++ DGifCloseFile (gif, NULL); + + *image = result; + return Ok; +@@ -597,7 +597,7 @@ error: + + if (gif != NULL) { + FreeExtensionMono (&global_extensions); +- DGifCloseFile (gif); ++ DGifCloseFile (gif, NULL); + } + + *image = NULL; +@@ -923,7 +923,7 @@ gdip_save_gif_image (void *stream, GpIma + } + } + +- EGifCloseFile (fp); ++ EGifCloseFile (fp, NULL); + + return Ok; + Copied: libgdiplus/repos/staging-i686/libgdiplus-2.10.9-gold.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-gold.patch) =================================================================== --- staging-i686/libgdiplus-2.10.9-gold.patch (rev 0) +++ staging-i686/libgdiplus-2.10.9-gold.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -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) Copied: libgdiplus/repos/staging-i686/libgdiplus0-giflib5.patch (from rev 214017, libgdiplus/trunk/libgdiplus0-giflib5.patch) =================================================================== --- staging-i686/libgdiplus0-giflib5.patch (rev 0) +++ staging-i686/libgdiplus0-giflib5.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -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 + } + } + Copied: libgdiplus/repos/staging-i686/libpng15.patch (from rev 214017, libgdiplus/trunk/libpng15.patch) =================================================================== --- staging-i686/libpng15.patch (rev 0) +++ staging-i686/libpng15.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,164 @@ +$NetBSD: patch-aa,v 1.8 2011/01/21 10:21:51 wiz Exp $ + +Fix build with png-1.5. + +--- src/pngcodec.c.orig 2010-11-03 16:52:54.000000000 +0000 ++++ src/pngcodec.c +@@ -116,10 +116,15 @@ gdip_load_png_properties (png_structp pn + bitmap_data->dpi_horz = png_get_x_pixels_per_inch(png_ptr, info_ptr); + bitmap_data->dpi_vert = png_get_y_pixels_per_inch(png_ptr, info_ptr); + #elif defined(PNG_pHYs_SUPPORTED) +- if ((info_ptr->valid & PNG_INFO_pHYs) && (info_ptr->phys_unit_type == PNG_RESOLUTION_METER)) { +- bitmap_data->image_flags |= ImageFlagsHasRealDPI; +- bitmap_data->dpi_horz = info_ptr->x_pixels_per_unit * 0.0254; +- bitmap_data->dpi_vert = info_ptr->y_pixels_per_unit * 0.0254; ++ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_pHYs)) { ++ png_uint_32 res_x, res_y; ++ int unit_type; ++ png_get_pHYs (png_ptr, info_ptr, &res_x, &res_y, &unit_type); ++ if (unit_type == PNG_RESOLUTION_METER) { ++ bitmap_data->image_flags |= ImageFlagsHasRealDPI; ++ bitmap_data->dpi_horz = res_x * 0.0254; ++ bitmap_data->dpi_vert = res_y * 0.0254; ++ } + } + #endif + /* default to screen resolution (if nothing was provided or available) */ +@@ -130,7 +135,7 @@ gdip_load_png_properties (png_structp pn + #if defined(PNG_iCCP_SUPPORTED) + { + png_charp name; +- png_charp profile; ++ png_bytep profile; + png_uint_32 proflen; + int compression_type; + +@@ -292,6 +297,11 @@ gdip_load_png_image_from_file_or_stream + ImageFlags colourspace_flag; + int i; + int j; ++ png_colorp png_palette; ++ int png_num_palette; ++ png_bytep trans_alpha; ++ int num_trans; ++ png_color_16p trans_color; + + width = png_get_image_width (png_ptr, info_ptr); + height = png_get_image_height (png_ptr, info_ptr); +@@ -309,6 +319,8 @@ gdip_load_png_image_from_file_or_stream + } + + /* Copy palette. */ ++ png_get_PLTE (png_ptr, info_ptr, &png_palette, &png_num_palette); ++ + num_colours = 1 << bit_depth; + + if (png_get_color_type (png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY) { +@@ -321,8 +333,8 @@ gdip_load_png_image_from_file_or_stream + colourspace_flag = ImageFlagsColorSpaceRGB; + + palette_entries = num_colours; +- if (palette_entries > info_ptr->num_palette) { +- palette_entries = info_ptr->num_palette; ++ if (palette_entries > png_num_palette) { ++ palette_entries = png_num_palette; + } + + palette = GdipAlloc (sizeof(ColorPalette) + (num_colours - 1) * sizeof(ARGB)); +@@ -331,29 +343,30 @@ gdip_load_png_image_from_file_or_stream + + for (i=0; i < palette_entries; i++) { + set_pixel_bgra (&palette->Entries[i], 0, +- info_ptr->palette[i].blue, +- info_ptr->palette[i].green, +- info_ptr->palette[i].red, ++ png_palette[i].blue, ++ png_palette[i].green, ++ png_palette[i].red, + 0xFF); /* alpha */ + } + } + ++ png_get_tRNS (png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color); + /* Make sure transparency is respected. */ +- if (info_ptr->num_trans > 0) { ++ if (num_trans > 0) { + palette->Flags |= PaletteFlagsHasAlpha; + colourspace_flag |= ImageFlagsHasAlpha; + +- if (info_ptr->num_trans > info_ptr->num_palette) { +- info_ptr->num_trans = info_ptr->num_palette; ++ if (num_trans > png_num_palette) { ++ num_trans = png_num_palette; + } + +- for (i=0; i < info_ptr->num_trans; i++) { ++ for (i=0; i < num_trans; i++) { + set_pixel_bgra(&palette->Entries[i], 0, +- info_ptr->palette[i].blue, +- info_ptr->palette[i].green, +- info_ptr->palette[i].red, ++ png_palette[i].blue, ++ png_palette[i].green, ++ png_palette[i].red, + #if PNG_LIBPNG_VER > 10399 +- info_ptr->trans_alpha [i]); /* alpha */ ++ trans_alpha [i]); /* alpha */ + #else + info_ptr->trans[i]); /* alpha */ + #endif +@@ -398,6 +411,8 @@ gdip_load_png_image_from_file_or_stream + BYTE bit_depth; + int stride; + int interlace; ++ png_colorp png_palette; ++ int png_num_palette; + png_bytep *row_pointers; + BYTE *rawptr; + int i, j; +@@ -490,32 +505,33 @@ gdip_load_png_image_from_file_or_stream + png_byte palette = 0; + png_byte pix = *rowp++; + ++ png_get_PLTE (png_ptr, info_ptr, &png_palette, &png_num_palette); + palette = (pix >> 6) & 0x03; + set_pixel_bgra (rawptr, 0, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + + palette = (pix >> 4) & 0x03; + set_pixel_bgra (rawptr, 4, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + + palette = (pix >> 2) & 0x03; + set_pixel_bgra (rawptr, 8, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + + palette = pix & 0x03; + set_pixel_bgra (rawptr, 12, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + rawptr += 16; + } Copied: libgdiplus/repos/staging-x86_64/PKGBUILD (from rev 214017, libgdiplus/trunk/PKGBUILD) =================================================================== --- staging-x86_64/PKGBUILD (rev 0) +++ staging-x86_64/PKGBUILD 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,46 @@ +# $Id$ +# Maintainer: Daniel Isenmann <dan...@archlinux.org> + +pkgname=libgdiplus +pkgver=2.10.9 +pkgrel=5 +pkgdesc="An Open Source Implementation of the GDI+ API" +arch=(i686 x86_64) +license=('MPL' 'LGPL') +url="http://www.mono-project.com" +depends=('libtiff' 'cairo' 'giflib' 'glib2' 'libexif') +source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2 + libpng15.patch + libgdiplus0-giflib5.patch + libgdiplus-2.10.9-gold.patch + libgdiplus-2.10.9-freetype25.patch + libgdiplus-2.10.9-giflib-5.1.0.patch) +md5sums=('b4615c14584b5d73cbb9757c28887654' + 'a2d143676bbaceeb88b4c34069e93986' + 'ad97558c721106eea03c7808b501814b' + '95fb92750c131ce9287419c3ac5fcb76' + '6ee484dde02ea89aded1287c0a8d4bad' + '8c0a975b12a011b21e4216c44be1416e') + +prepare() { + cd ${pkgname}-${pkgver} + patch -Np0 -i ../libpng15.patch + patch -Np1 -i ../libgdiplus0-giflib5.patch + patch -Np1 -i ../libgdiplus-2.10.9-gold.patch + patch -Np1 -i ../libgdiplus-2.10.9-freetype25.patch + patch -Np1 -i ../libgdiplus-2.10.9-giflib-5.1.0.patch + + sed -i -e 's/-L\${libjpeg_prefix}\/lib -ljpeg/-ljpeg/' configure +} + +build() { + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr --with-cairo=system + + make +} + +package() { + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install +} Copied: libgdiplus/repos/staging-x86_64/libgdiplus-2.10.9-freetype25.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-freetype25.patch) =================================================================== --- staging-x86_64/libgdiplus-2.10.9-freetype25.patch (rev 0) +++ staging-x86_64/libgdiplus-2.10.9-freetype25.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,26 @@ +commit 180c02e0f2a2016eba8520b456ca929e9dcf03db +Author: Jo Shields <direct...@apebox.org> +Date: Mon Dec 16 09:24:57 2013 +0000 + + Use FreeType macros for tttables.h inclusion + + As of FreeType 2.1.6 (November 2003), using #include to include Freetype libraries directly is not supported. + + This has come to a head, as in FreeType 2.5.0, the location of headers has been moved around, breaking building of libgdiplus. + + This slight change uses the "official" way to include the required header file, without breaking building on older versions of the library. + +diff --git a/src/gdiplus-private.h b/src/gdiplus-private.h +index 59edf9e..dfccc02 100644 +--- a/src/gdiplus-private.h ++++ b/src/gdiplus-private.h +@@ -30,7 +30,8 @@ + #include <stdio.h> + #include <math.h> + #include <glib.h> +-#include <freetype/tttables.h> ++#include <ft2build.h> ++#include FT_TRUETYPE_TABLES_H + #include <pthread.h> + #include <unistd.h> + Copied: libgdiplus/repos/staging-x86_64/libgdiplus-2.10.9-giflib-5.1.0.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-giflib-5.1.0.patch) =================================================================== --- staging-x86_64/libgdiplus-2.10.9-giflib-5.1.0.patch (rev 0) +++ staging-x86_64/libgdiplus-2.10.9-giflib-5.1.0.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,30 @@ +diff -rupN a/src/gifcodec.c b/src/gifcodec.c +--- a/src/gifcodec.c 2011-12-02 18:23:12.000000000 +0100 ++++ b/src/gifcodec.c 2014-06-01 13:20:17.027203704 +0200 +@@ -581,7 +581,7 @@ gdip_load_gif_image (void *stream, GpIma + } + + FreeExtensionMono(&global_extensions); +- DGifCloseFile (gif); ++ DGifCloseFile (gif, NULL); + + *image = result; + return Ok; +@@ -597,7 +597,7 @@ error: + + if (gif != NULL) { + FreeExtensionMono (&global_extensions); +- DGifCloseFile (gif); ++ DGifCloseFile (gif, NULL); + } + + *image = NULL; +@@ -923,7 +923,7 @@ gdip_save_gif_image (void *stream, GpIma + } + } + +- EGifCloseFile (fp); ++ EGifCloseFile (fp, NULL); + + return Ok; + Copied: libgdiplus/repos/staging-x86_64/libgdiplus-2.10.9-gold.patch (from rev 214017, libgdiplus/trunk/libgdiplus-2.10.9-gold.patch) =================================================================== --- staging-x86_64/libgdiplus-2.10.9-gold.patch (rev 0) +++ staging-x86_64/libgdiplus-2.10.9-gold.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -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) Copied: libgdiplus/repos/staging-x86_64/libgdiplus0-giflib5.patch (from rev 214017, libgdiplus/trunk/libgdiplus0-giflib5.patch) =================================================================== --- staging-x86_64/libgdiplus0-giflib5.patch (rev 0) +++ staging-x86_64/libgdiplus0-giflib5.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -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 + } + } + Copied: libgdiplus/repos/staging-x86_64/libpng15.patch (from rev 214017, libgdiplus/trunk/libpng15.patch) =================================================================== --- staging-x86_64/libpng15.patch (rev 0) +++ staging-x86_64/libpng15.patch 2014-06-01 11:25:35 UTC (rev 214018) @@ -0,0 +1,164 @@ +$NetBSD: patch-aa,v 1.8 2011/01/21 10:21:51 wiz Exp $ + +Fix build with png-1.5. + +--- src/pngcodec.c.orig 2010-11-03 16:52:54.000000000 +0000 ++++ src/pngcodec.c +@@ -116,10 +116,15 @@ gdip_load_png_properties (png_structp pn + bitmap_data->dpi_horz = png_get_x_pixels_per_inch(png_ptr, info_ptr); + bitmap_data->dpi_vert = png_get_y_pixels_per_inch(png_ptr, info_ptr); + #elif defined(PNG_pHYs_SUPPORTED) +- if ((info_ptr->valid & PNG_INFO_pHYs) && (info_ptr->phys_unit_type == PNG_RESOLUTION_METER)) { +- bitmap_data->image_flags |= ImageFlagsHasRealDPI; +- bitmap_data->dpi_horz = info_ptr->x_pixels_per_unit * 0.0254; +- bitmap_data->dpi_vert = info_ptr->y_pixels_per_unit * 0.0254; ++ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_pHYs)) { ++ png_uint_32 res_x, res_y; ++ int unit_type; ++ png_get_pHYs (png_ptr, info_ptr, &res_x, &res_y, &unit_type); ++ if (unit_type == PNG_RESOLUTION_METER) { ++ bitmap_data->image_flags |= ImageFlagsHasRealDPI; ++ bitmap_data->dpi_horz = res_x * 0.0254; ++ bitmap_data->dpi_vert = res_y * 0.0254; ++ } + } + #endif + /* default to screen resolution (if nothing was provided or available) */ +@@ -130,7 +135,7 @@ gdip_load_png_properties (png_structp pn + #if defined(PNG_iCCP_SUPPORTED) + { + png_charp name; +- png_charp profile; ++ png_bytep profile; + png_uint_32 proflen; + int compression_type; + +@@ -292,6 +297,11 @@ gdip_load_png_image_from_file_or_stream + ImageFlags colourspace_flag; + int i; + int j; ++ png_colorp png_palette; ++ int png_num_palette; ++ png_bytep trans_alpha; ++ int num_trans; ++ png_color_16p trans_color; + + width = png_get_image_width (png_ptr, info_ptr); + height = png_get_image_height (png_ptr, info_ptr); +@@ -309,6 +319,8 @@ gdip_load_png_image_from_file_or_stream + } + + /* Copy palette. */ ++ png_get_PLTE (png_ptr, info_ptr, &png_palette, &png_num_palette); ++ + num_colours = 1 << bit_depth; + + if (png_get_color_type (png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY) { +@@ -321,8 +333,8 @@ gdip_load_png_image_from_file_or_stream + colourspace_flag = ImageFlagsColorSpaceRGB; + + palette_entries = num_colours; +- if (palette_entries > info_ptr->num_palette) { +- palette_entries = info_ptr->num_palette; ++ if (palette_entries > png_num_palette) { ++ palette_entries = png_num_palette; + } + + palette = GdipAlloc (sizeof(ColorPalette) + (num_colours - 1) * sizeof(ARGB)); +@@ -331,29 +343,30 @@ gdip_load_png_image_from_file_or_stream + + for (i=0; i < palette_entries; i++) { + set_pixel_bgra (&palette->Entries[i], 0, +- info_ptr->palette[i].blue, +- info_ptr->palette[i].green, +- info_ptr->palette[i].red, ++ png_palette[i].blue, ++ png_palette[i].green, ++ png_palette[i].red, + 0xFF); /* alpha */ + } + } + ++ png_get_tRNS (png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color); + /* Make sure transparency is respected. */ +- if (info_ptr->num_trans > 0) { ++ if (num_trans > 0) { + palette->Flags |= PaletteFlagsHasAlpha; + colourspace_flag |= ImageFlagsHasAlpha; + +- if (info_ptr->num_trans > info_ptr->num_palette) { +- info_ptr->num_trans = info_ptr->num_palette; ++ if (num_trans > png_num_palette) { ++ num_trans = png_num_palette; + } + +- for (i=0; i < info_ptr->num_trans; i++) { ++ for (i=0; i < num_trans; i++) { + set_pixel_bgra(&palette->Entries[i], 0, +- info_ptr->palette[i].blue, +- info_ptr->palette[i].green, +- info_ptr->palette[i].red, ++ png_palette[i].blue, ++ png_palette[i].green, ++ png_palette[i].red, + #if PNG_LIBPNG_VER > 10399 +- info_ptr->trans_alpha [i]); /* alpha */ ++ trans_alpha [i]); /* alpha */ + #else + info_ptr->trans[i]); /* alpha */ + #endif +@@ -398,6 +411,8 @@ gdip_load_png_image_from_file_or_stream + BYTE bit_depth; + int stride; + int interlace; ++ png_colorp png_palette; ++ int png_num_palette; + png_bytep *row_pointers; + BYTE *rawptr; + int i, j; +@@ -490,32 +505,33 @@ gdip_load_png_image_from_file_or_stream + png_byte palette = 0; + png_byte pix = *rowp++; + ++ png_get_PLTE (png_ptr, info_ptr, &png_palette, &png_num_palette); + palette = (pix >> 6) & 0x03; + set_pixel_bgra (rawptr, 0, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + + palette = (pix >> 4) & 0x03; + set_pixel_bgra (rawptr, 4, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + + palette = (pix >> 2) & 0x03; + set_pixel_bgra (rawptr, 8, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + + palette = pix & 0x03; + set_pixel_bgra (rawptr, 12, +- info_ptr->palette[palette].blue, +- info_ptr->palette[palette].green, +- info_ptr->palette[palette].red, ++ png_palette[palette].blue, ++ png_palette[palette].green, ++ png_palette[palette].red, + 0xFF); /* alpha */ + rawptr += 16; + }