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

Reply via email to