Hello community, here is the log from the commit of package xaos for openSUSE:Factory checked in at 2012-09-14 12:42:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xaos (Old) and /work/SRC/openSUSE:Factory/.xaos.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xaos", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/xaos/xaos.changes 2012-06-14 21:12:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xaos.new/xaos.changes 2012-09-14 12:42:48.000000000 +0200 @@ -1,0 +2,6 @@ +Tue Sep 4 15:58:27 UTC 2012 - [email protected] + +- builds also with libpng15 + * libpng15.patch + +------------------------------------------------------------------- New: ---- xaos-libpng15.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xaos.spec ++++++ --- /var/tmp/diff_new_pack.bkbdfj/_old 2012-09-14 12:42:48.000000000 +0200 +++ /var/tmp/diff_new_pack.bkbdfj/_new 2012-09-14 12:42:48.000000000 +0200 @@ -29,6 +29,8 @@ Source3: %{name}.png Patch0: %{name}-%{version}-strip.patch Patch1: fix-prototypes.diff +# libpng15.patch should be upstreamed yet +Patch2: xaos-libpng15.patch BuildRequires: aalib-devel BuildRequires: dos2unix BuildRequires: fdupes @@ -53,6 +55,7 @@ %setup -q %patch0 %patch1 -p1 +%patch2 %build # convert all xpf-files to UNIX format ++++++ xaos-libpng15.patch ++++++ http://mailman.archlinux.org/pipermail/arch-commits/2012-January/156237.html --- src/util/png.c +++ src/util/png.c @@ -3,6 +3,7 @@ #include <aconfig.h> #ifdef USE_PNG #include <png.h> +#include <zlib.h> #endif #include <stdlib.h> #include <stdio.h> @@ -31,6 +32,9 @@ png_structp png_ptr; png_infop info_ptr; png_color palette[256]; + png_color_8 sig_bit; + int color_type; + int bit_depth; volatile unsigned short a = 255; volatile unsigned char *b = (volatile unsigned char *) &a; #ifdef _undefined_ @@ -59,7 +63,7 @@ png_destroy_write_struct(&png_ptr, (png_infopp) NULL); return "No memory to create png info structure"; } - if (setjmp(png_ptr->jmpbuf)) { + if (setjmp(png_jmpbuf(png_ptr))) { png_destroy_write_struct(&png_ptr, &info_ptr); fclose(file); return strerror(errno); @@ -78,57 +82,70 @@ png_set_compression_window_bits(png_ptr, 15); png_set_compression_method(png_ptr, 8); - info_ptr->width = image->width; - info_ptr->height = image->height; - /*info_ptr->gamma=1.0; */ - info_ptr->gamma = 0.5; - info_ptr->valid |= PNG_INFO_gAMA | PNG_INFO_pHYs; - info_ptr->x_pixels_per_unit = (png_uint_32) (100 / image->pixelwidth); - info_ptr->y_pixels_per_unit = (png_uint_32) (100 / image->pixelheight); + switch (image->palette->type) + { + case C256: + color_type = PNG_COLOR_TYPE_PALETTE; + bit_depth = image->bytesperpixel * 8; + break; + case SMALLITER: + case LARGEITER: + case GRAYSCALE: + color_type = PNG_COLOR_TYPE_GRAY; + bit_depth = image->bytesperpixel * 8; + break; + case TRUECOLOR: + case TRUECOLOR24: + case TRUECOLOR16: + color_type = PNG_COLOR_TYPE_RGB; + bit_depth = 8; + break; + } + png_set_IHDR (png_ptr, info_ptr, image->width, image->height, bit_depth, + color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, + PNG_FILTER_TYPE_BASE); switch (image->palette->type) { case C256: { int i; - info_ptr->color_type = PNG_COLOR_TYPE_PALETTE; - info_ptr->bit_depth = image->bytesperpixel * 8; - info_ptr->palette = palette; - info_ptr->valid |= PNG_INFO_PLTE; + png_color png_palette[257]; + int png_num_palette; for (i = 0; i < image->palette->end; i++) - info_ptr->palette[i].red = image->palette->rgb[i][0], - info_ptr->palette[i].green = image->palette->rgb[i][1], - info_ptr->palette[i].blue = image->palette->rgb[i][2], - info_ptr->num_palette = image->palette->end; + png_palette[i].red = image->palette->rgb[i][0], + png_palette[i].green = image->palette->rgb[i][1], + png_palette[i].blue = image->palette->rgb[i][2], + png_num_palette = image->palette->end; + png_set_PLTE(png_ptr, info_ptr, png_palette, png_num_palette); } break; - case SMALLITER: - case LARGEITER: - case GRAYSCALE: - info_ptr->color_type = PNG_COLOR_TYPE_GRAY; - info_ptr->bit_depth = image->bytesperpixel * 8; - break; case TRUECOLOR: case TRUECOLOR24: case TRUECOLOR16: - info_ptr->color_type = PNG_COLOR_TYPE_RGB; - info_ptr->bit_depth = 8; - info_ptr->sig_bit.red = 8 - image->palette->info.truec.rprec; - info_ptr->sig_bit.green = 8 - image->palette->info.truec.gprec; - info_ptr->sig_bit.blue = 8 - image->palette->info.truec.bprec; + sig_bit.red = 8 - image->palette->info.truec.rprec; + sig_bit.green = 8 - image->palette->info.truec.gprec; + sig_bit.blue = 8 - image->palette->info.truec.bprec; + png_set_sBIT(png_ptr, info_ptr, &sig_bit); break; } - info_ptr->interlace_type = 0; + + png_write_info (png_ptr, info_ptr); + #ifdef _undefined_ png_set_text(png_ptr, info_ptr, comments, sizeof(comments) / sizeof(png_text)); #endif - png_write_info(png_ptr, info_ptr); + png_set_gAMA(png_ptr, info_ptr, 0.5 /* 1.0 */); + png_set_pHYs(png_ptr, info_ptr, (png_uint_32) (100 / image->pixelwidth), + (png_uint_32) (100 / image->pixelheight), + PNG_RESOLUTION_UNKNOWN); + /*png_set_filler(png_ptr,0,PNG_FILLER_AFTER); */ png_set_packing(png_ptr); if (image->palette->type & (TRUECOLOR | TRUECOLOR24 | TRUECOLOR16)) - png_set_shift(png_ptr, &(info_ptr->sig_bit)); + png_set_shift (png_ptr, &sig_bit); if (*b == 255) png_set_swap(png_ptr); png_set_bgr(png_ptr); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
