diff options
Diffstat (limited to 'abs/extra/libgdiplus')
| -rw-r--r-- | abs/extra/libgdiplus/PKGBUILD | 15 | ||||
| -rw-r--r-- | abs/extra/libgdiplus/__changelog | 1 | ||||
| -rw-r--r-- | abs/extra/libgdiplus/libpng15.patch | 164 | 
3 files changed, 175 insertions, 5 deletions
| diff --git a/abs/extra/libgdiplus/PKGBUILD b/abs/extra/libgdiplus/PKGBUILD index d933fc1..84e3f45 100644 --- a/abs/extra/libgdiplus/PKGBUILD +++ b/abs/extra/libgdiplus/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 95327 2010-10-18 17:52:42Z daniel $ +# $Id: PKGBUILD 148818 2012-02-05 11:51:42Z ibiru $  # Maintainer: Daniel Isenmann <daniel@archlinux.org>  pkgname=libgdiplus -pkgver=2.8 +pkgver=2.10  pkgrel=2  pkgdesc="An Open Source Implementation of the GDI+ API"  arch=(i686 x86_64) @@ -11,12 +11,19 @@ url="http://www.mono-project.com"  depends=('libtiff>=3.9.2-2' 'cairo>=1.8.10' 'giflib' 'glib2>=2.24.0' 'libexif')  makedepends=('pkgconfig')  options=('!libtool') -source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2) -md5sums=('4fd70e5ab7847574c20453c349bc4c97') +source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2 libpng15.patch) +md5sums=('451966e8f637e3a1f02d1d30f900255d' +         'a2d143676bbaceeb88b4c34069e93986')  build() {    cd "${srcdir}/${pkgname}-${pkgver}" +  patch -p0 <../libpng15.patch    ./configure --prefix=/usr --with-cairo=system || return 1 +      make || return 1 +} + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}"    make DESTDIR="${pkgdir}" install || return 1  } diff --git a/abs/extra/libgdiplus/__changelog b/abs/extra/libgdiplus/__changelog deleted file mode 100644 index aecc073..0000000 --- a/abs/extra/libgdiplus/__changelog +++ /dev/null @@ -1 +0,0 @@ -update to 2.8 diff --git a/abs/extra/libgdiplus/libpng15.patch b/abs/extra/libgdiplus/libpng15.patch new file mode 100644 index 0000000..31a1c01 --- /dev/null +++ b/abs/extra/libgdiplus/libpng15.patch @@ -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; + 						} | 
