Hello community,

here is the log from the commit of package libgdiplus0 for openSUSE:Factory 
checked in at 2012-11-12 13:31:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgdiplus0 (Old)
 and      /work/SRC/openSUSE:Factory/.libgdiplus0.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libgdiplus0", Maintainer is "mono-maintain...@suse.de"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libgdiplus0/libgdiplus0.changes  2012-01-19 
09:42:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libgdiplus0.new/libgdiplus0.changes     
2012-11-12 13:31:02.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Aug 30 13:01:50 UTC 2012 - pgaj...@suse.com
+
+- build also against libpng15
+  * libpng15.patch
+
+-------------------------------------------------------------------

New:
----
  libgdiplus0-libpng15.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libgdiplus0.spec ++++++
--- /var/tmp/diff_new_pack.0WQqwV/_old  2012-11-12 13:31:03.000000000 +0100
+++ /var/tmp/diff_new_pack.0WQqwV/_new  2012-11-12 13:31:03.000000000 +0100
@@ -15,6 +15,7 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 %define real_name libgdiplus
 # There may be strange bugs when using the system cairo
 %define system_cairo 0
@@ -24,8 +25,10 @@
 Release:        0
 Url:            http://go-mono.org/
 Source0:        %{real_name}-%{version}.tar.bz2
+# link to libpng15.patch content sent to  m...@xamarin.com
+Patch0:         %{name}-libpng15.patch
 Summary:        Open Source Implementation of the GDI+ API
-License:        LGPL-2.1+ or MPL-1.1; MIT
+License:        LGPL-2.1+ or MPL-1.1 and MIT
 Group:          Development/Libraries/Other
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Obsoletes:      libgdiplus-devel
@@ -67,6 +70,7 @@
 
 %prep
 %setup -q -n %{real_name}-%{version}
+%patch0
 
 %build
 export CFLAGS="$RPM_OPT_FLAGS"

++++++ libgdiplus0-libpng15.patch ++++++
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-dotnet/libgdiplus/files/libgdiplus-2.10.1-libpng15.patch?revision=1.1
$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;
                                                }

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to