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