Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=libpng.git;a=commitdiff;h=c39b860fb028feafe79312aafd0f1a4e1acf9774
commit c39b860fb028feafe79312aafd0f1a4e1acf9774 Author: Baste <[email protected]> Date: Tue Jan 15 16:54:35 2013 +0100 libgdiplus-2.10-3-x86_64 * Rebuild with gif/jpeg-turbo/tiff/cairo diff --git a/source/xlib/libgdiplus/FrugalBuild b/source/xlib/libgdiplus/FrugalBuild index 9a5b076..02e7dfc 100644 --- a/source/xlib/libgdiplus/FrugalBuild +++ b/source/xlib/libgdiplus/FrugalBuild @@ -4,15 +4,16 @@ pkgname=libgdiplus pkgver=2.10 -pkgrel=2 +pkgrel=3 pkgdesc="libgdiplus is an implementation of the GDI+ library on Windows" url="http://www.mono-project.com" -depends=('libxml2>=2.7.8' 'glib2>=2.20.4' 'libgif' 'libjpeg>=8a' 'libtiff' 'libexif' 'cairo>=1.8.8' 'libxi' 'libxmu') +depends=('libxml2>=2.7.8' 'glib2>=2.20.4' 'libgif>=4.2.1-2' 'libjpeg-turbo' 'libtiff>=4.0.3' 'libexif' 'cairo>=1.12.8-2' 'libxi' 'libxmu') groups=('xlib') archs=('i686' 'x86_64') up2date=("Flasttar http://www.go-mono.com/sources-stable/") -source=( http://ftp.novell.com/pub/mono/sources/$pkgname/$pkgname-$pkgver.tar.bz2) +source=(http://download.mono-project.com/sources/$pkgname/$pkgname-$pkgver.tar.bz2 libpng15.patch) Fconfopts+=" --with-cairo=system" -sha1sums=('cc88be4db56561039325cfda10a42408d64332d9') +sha1sums=('cc88be4db56561039325cfda10a42408d64332d9' \ + '80598bf133da104b8f40c88e011bac4fe3aaef73') # optimization OK diff --git a/source/xlib/libgdiplus/libpng15.patch b/source/xlib/libgdiplus/libpng15.patch new file mode 100644 index 0000000..bbdedd6 --- /dev/null +++ b/source/xlib/libgdiplus/libpng15.patch @@ -0,0 +1,165 @@ +$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; + } + _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
