summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2011-04-05 12:16:39 +0000
committerwiz <wiz@pkgsrc.org>2011-04-05 12:16:39 +0000
commit23898fde2f30856fb36585e38b9c8e975e7cff52 (patch)
treedd6a8821d0875d2689be7e59454693df3edd65eb /www
parent2951d205712b651128566d1ffe6d4330249a8eed (diff)
downloadpkgsrc-23898fde2f30856fb36585e38b9c8e975e7cff52.tar.gz
Fix build with png-1.5.
Diffstat (limited to 'www')
-rw-r--r--www/chimera/distinfo4
-rw-r--r--www/chimera/patches/patch-ad187
2 files changed, 177 insertions, 14 deletions
diff --git a/www/chimera/distinfo b/www/chimera/distinfo
index 513e02d0278..923e7b270a2 100644
--- a/www/chimera/distinfo
+++ b/www/chimera/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.8 2011/01/13 13:52:54 wiz Exp $
+$NetBSD: distinfo,v 1.9 2011/04/05 12:16:39 wiz Exp $
SHA1 (chimera-2.0a19.tar.gz) = c69b70b11cf12837e260eaa20e548bf9eb9ce309
RMD160 (chimera-2.0a19.tar.gz) = d3f4d2ff3328c3bf5020490ed851b281e0492fe2
@@ -6,6 +6,6 @@ Size (chimera-2.0a19.tar.gz) = 248431 bytes
SHA1 (patch-aa) = a49455c9e2ce2a9bd3b276ae870739ece6249373
SHA1 (patch-ab) = 1fc2f5f97f46403359a00e42cc25f4cbf9bc5331
SHA1 (patch-ac) = 5f18afd9a1452bfba010fe3eb4e773f5395789c6
-SHA1 (patch-ad) = fcfc16397954269a8493017ca06707f043a0cf06
+SHA1 (patch-ad) = 0f7e49c81761e4f9ace49163f550eef8723df933
SHA1 (patch-ae) = 8b8e1bc50791b635e5e87860302d0e758d159ed9
SHA1 (patch-af) = 76256ccb4b5183a8d30a46a89a0cd75b113122fc
diff --git a/www/chimera/patches/patch-ad b/www/chimera/patches/patch-ad
index f9077ca4c62..af0e40814da 100644
--- a/www/chimera/patches/patch-ad
+++ b/www/chimera/patches/patch-ad
@@ -1,27 +1,180 @@
-$NetBSD: patch-ad,v 1.4 2010/06/13 22:45:32 wiz Exp $
+$NetBSD: patch-ad,v 1.5 2011/04/05 12:16:39 wiz Exp $
+
+Fix build with png-1.5.
--- image/png.c.orig 1999-03-29 02:23:46.000000000 +0000
+++ image/png.c
-@@ -126,7 +126,7 @@ lf_info_callback(png_struct *state, png_
+@@ -60,33 +60,33 @@ lf_info_callback(png_struct *state, png_
+ int orig_depth = 0;
+ pngState *png = (pngState *) png_get_progressive_ptr(state);
+
+- if (info->bit_depth < 8 && (PNG_COLOR_TYPE_RGB == info->color_type ||
+- PNG_COLOR_TYPE_RGB_ALPHA == info->color_type))
++ if (png_get_bit_depth(state, info) < 8 && (PNG_COLOR_TYPE_RGB == png_get_color_type(state, info) ||
++ PNG_COLOR_TYPE_RGB_ALPHA == png_get_color_type(state, info)))
+ png_set_expand(state);
+
+ /* I wish the frame's background colour was available here */
+- if (info->color_type & PNG_COLOR_MASK_ALPHA) {
++ if (png_get_color_type(state, info) & PNG_COLOR_MASK_ALPHA) {
+ png_color_16 bg;
+ int gflag = PNG_BACKGROUND_GAMMA_SCREEN;
+ double gval = 1.0;
+ int expand = 0;
+
+ bg.red = bg.green = bg.blue = bg.gray = 0;
+- if (PNG_COLOR_TYPE_PALETTE == info->color_type)
++ if (PNG_COLOR_TYPE_PALETTE == png_get_color_type(state, info))
+ png_set_expand(state);
+
+ png_set_background(state, &bg, gflag, expand, gval);
+ }
+
+- if (info->bit_depth < 8 && (info->bit_depth > 1 ||
+- PNG_COLOR_TYPE_GRAY != info->color_type)) {
+- if (PNG_COLOR_TYPE_GRAY == info->color_type)
+- orig_depth = info->bit_depth;
++ if (png_get_bit_depth(state, info) < 8 && (png_get_bit_depth(state, info) > 1 ||
++ PNG_COLOR_TYPE_GRAY != png_get_color_type(state, info))) {
++ if (PNG_COLOR_TYPE_GRAY == png_get_color_type(state, info))
++ orig_depth = png_get_bit_depth(state, info);
+ png_set_packing(state);
+ }
+
+ /* tell libpng to strip 16 bit depth files down to 8 bits */
+- if (info->bit_depth > 8)
++ if (png_get_bit_depth(state, info) > 8)
+ png_set_strip_16(state);
+
+ png_set_interlace_handling(state);
+@@ -95,18 +95,21 @@ lf_info_callback(png_struct *state, png_
+ png_read_update_info(state, info);
+
+ /* allocate the memory to hold the image using the fields of png_info. */
+- if (PNG_COLOR_TYPE_GRAY == info->color_type && 1 == info->bit_depth) {
+- png->image = newBitImage(info->width, info->height);
++ if (PNG_COLOR_TYPE_GRAY == png_get_color_type(state, info) && 1 == png_get_bit_depth(state, info)) {
++ png->image = newBitImage(png_get_image_width(state, info), png_get_image_height(state, info));
+ if (!png->image) {
+ png->done = image_error;
+ return;
+ }
+
+ png_set_invert_mono(state);
+- } else if (PNG_COLOR_TYPE_PALETTE == info->color_type) {
++ } else if (PNG_COLOR_TYPE_PALETTE == png_get_color_type(state, info)) {
+ int i;
++ png_colorp palette;
++ int num_palette;
+
+- png->image = newRGBImage(info->width, info->height, info->bit_depth);
++ png_get_PLTE(state, info, &palette, &num_palette);
++ png->image = newRGBImage(png_get_image_width(state, info), png_get_image_height(state, info), png_get_bit_depth(state, info));
+ if (!png->image) {
+ png->done = image_error;
+ return;
+@@ -115,28 +118,32 @@ lf_info_callback(png_struct *state, png_
+ png->image->rgb.red = png->cmap[0];
+ png->image->rgb.green = png->cmap[1];
+ png->image->rgb.blue = png->cmap[2];
+- for (i = 0; i < info->num_palette; ++i) {
+- png->image->rgb.red[i] = info->palette[i].red << 8;
+- png->image->rgb.green[i] = info->palette[i].green << 8;
+- png->image->rgb.blue[i] = info->palette[i].blue << 8;
++ for (i = 0; i < num_palette; ++i) {
++ png->image->rgb.red[i] = palette[i].red << 8;
++ png->image->rgb.green[i] = palette[i].green << 8;
++ png->image->rgb.blue[i] = palette[i].blue << 8;
+ }
+- png->image->rgb.used = info->num_palette;
+- if (info->valid & PNG_INFO_tRNS) {
++ png->image->rgb.used = num_palette;
++ if (png_get_valid(state, info, PNG_INFO_tRNS)) {
+ int val, i;
++ png_bytep trans_alpha;
++ int num_trans;
++ png_color_16p trans_color;
++ png_get_tRNS(state, info, &trans_alpha, &num_trans, &trans_color);
val = 0;
- for (i = 0; i < info->num_trans; ++i) {
+- for (i = 0; i < info->num_trans; ++i) {
- if (info->trans[i] < info->trans[val])
-+ if (info->trans_alpha[i] < info->trans_alpha[val])
++ for (i = 0; i < num_trans; ++i) {
++ if (trans_alpha[i] < trans_alpha[val])
val = i;
}
png->image->transparent = val;
-@@ -154,7 +154,7 @@ lf_info_callback(png_struct *state, png_
+ }
+- } else if (PNG_COLOR_TYPE_GRAY == info->color_type) {
++ } else if (PNG_COLOR_TYPE_GRAY == png_get_color_type(state, info)) {
+ int i;
+- int depth = orig_depth ? orig_depth : info->bit_depth;
++ int depth = orig_depth ? orig_depth : png_get_bit_depth(state, info);
+ int maxval = (1 << depth) - 1;
+
+- png->image = newRGBImage(info->width, info->height, depth);
++ png->image = newRGBImage(png_get_image_width(state, info), png_get_image_height(state, info), depth);
+ if (!png->image) {
+ png->done = image_error;
+ return;
+@@ -153,10 +160,16 @@ lf_info_callback(png_struct *state, png_
+ }
png->image->rgb.used = maxval + 1;
- if (info->valid & PNG_INFO_tRNS)
+- if (info->valid & PNG_INFO_tRNS)
- png->image->transparent = info->trans_values.gray;
-+ png->image->transparent = info->trans_color.gray;
++ if (png_get_valid(state, info, PNG_INFO_tRNS)) {
++ png_bytep trans_alpha;
++ int num_trans;
++ png_color_16p trans_color;
++
++ png_get_tRNS(state, info, &trans_alpha, &num_trans, &trans_color);
++ png->image->transparent = trans_color->gray;
++ }
} else {
- png->image = newTrueImage(info->width, info->height);
+- png->image = newTrueImage(info->width, info->height);
++ png->image = newTrueImage(png_get_image_width(state, info), png_get_image_height(state, info));
if (!png->image) {
-@@ -222,17 +222,11 @@ pngDestroy(void *pointer)
- if (setjmp(png->state->jmpbuf))
+ png->done = image_error;
+ return;
+@@ -164,10 +177,13 @@ lf_info_callback(png_struct *state, png_
+
+ }
+
+- if (info->valid & PNG_INFO_gAMA && png->image->type != IBITMAP)
+- png->image->gamma = 1.0 / info->gamma;
++ if (png_get_valid(state, info, PNG_INFO_gAMA) && png->image->type != IBITMAP) {
++ double gamma;
++ png_get_gAMA(state, info, &gamma);
++ png->image->gamma = 1.0 / gamma;
++ }
+
+- assert((png->image->width * png->image->pixlen + 7) / 8 == info->rowbytes);
++ assert((png->image->width * png->image->pixlen + 7) / 8 == png_get_rowbytes(state, info));
+ }
+
+
+@@ -192,12 +208,12 @@ lf_row_callback(png_struct *state, png_b
+ /* I can't say I'm too fond of this endian business. */
+ #ifdef CHIMERA_LITTLE_ENDIAN
+ if (IBITMAP == png->image->type)
+- lc_reverse_byte(old_row, png->info->rowbytes);
++ lc_reverse_byte(old_row, png_get_rowbytes(png->state, png->info));
+ #endif
+ (png->lineProc)(png->closure, row_num, row_num);
+ #ifdef CHIMERA_LITTLE_ENDIAN
+ if (IBITMAP == png->image->type)
+- lc_reverse_byte(old_row,png->info->rowbytes);
++ lc_reverse_byte(old_row,png_get_rowbytes(png->state, png->info));
+ #endif
+ }
+ }
+@@ -219,20 +235,14 @@ pngDestroy(void *pointer)
+ if (!png)
+ return;
+
+- if (setjmp(png->state->jmpbuf))
++ if (setjmp(png_jmpbuf(png->state)))
return;
- if (png->state) {
@@ -40,7 +193,16 @@ $NetBSD: patch-ad,v 1.4 2010/06/13 22:45:32 wiz Exp $
if (png->image) {
freeImage(png->image);
png->image = 0;
-@@ -275,28 +269,22 @@ pngInit(void (*lineProc)(void *, int, in
+@@ -246,7 +256,7 @@ pngAddData(void *pointer, byte *data, in
+ {
+ pngState *png = (pngState *) pointer;
+
+- if (setjmp(png->state->jmpbuf))
++ if (setjmp(png_jmpbuf(png->state)))
+ return image_error;
+
+ if (len > png->lenSoFar) {
+@@ -275,28 +285,22 @@ pngInit(void (*lineProc)(void *, int, in
memset(png, 0, sizeof(pngState));
png->lineProc = lineProc;
png->closure = closure;
@@ -58,12 +220,13 @@ $NetBSD: patch-ad,v 1.4 2010/06/13 22:45:32 wiz Exp $
return;
}
- if (setjmp(png->state->jmpbuf)) {
+- if (setjmp(png->state->jmpbuf)) {
- png_read_destroy(png->state, png->info, (png_info *) 0);
- free_mem(png->state);
- free_mem(png->info);
- png->state = 0;
- png->info = 0;
++ if (setjmp(png_jmpbuf(png->state))) {
+ png_destroy_read_struct(&png->state, &png->info, (png_info **)NULL);
return;
}