pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/graphics/autotrace Fix build with png-1.5.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/43f6e49cad11
branches:  trunk
changeset: 585090:43f6e49cad11
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Mon Feb 07 00:37:53 2011 +0000

description:
Fix build with png-1.5.
Upstream should come up with a better fix though.

diffstat:

 graphics/autotrace/distinfo                  |   3 +-
 graphics/autotrace/patches/patch-input-png.c |  95 ++++++++++++++++++++++++++++
 2 files changed, 97 insertions(+), 1 deletions(-)

diffs (110 lines):

diff -r 222f5095c659 -r 43f6e49cad11 graphics/autotrace/distinfo
--- a/graphics/autotrace/distinfo       Mon Feb 07 00:37:10 2011 +0000
+++ b/graphics/autotrace/distinfo       Mon Feb 07 00:37:53 2011 +0000
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.7 2005/02/24 08:45:03 agc Exp $
+$NetBSD: distinfo,v 1.8 2011/02/07 00:37:53 wiz Exp $
 
 SHA1 (autotrace-0.31.1.tar.gz) = 679e4912528030b86f23db5b99e60f8e7df883fd
 RMD160 (autotrace-0.31.1.tar.gz) = 9d008c6c519da7e006cb83ae6012f4d9e4e8b0ba
 Size (autotrace-0.31.1.tar.gz) = 362718 bytes
+SHA1 (patch-input-png.c) = 9c19beb3c8d2f9afa9b51cead8a9fe49e72106f1
diff -r 222f5095c659 -r 43f6e49cad11 graphics/autotrace/patches/patch-input-png.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics/autotrace/patches/patch-input-png.c      Mon Feb 07 00:37:53 2011 +0000
@@ -0,0 +1,95 @@
+$NetBSD: patch-input-png.c,v 1.1 2011/02/07 00:37:54 wiz Exp $
+
+Fix build with png-1.5.
+
+--- input-png.c.orig   2002-10-10 20:44:14.000000000 +0000
++++ input-png.c
+@@ -42,17 +42,17 @@ static png_bytep * read_png(png_structp 
+ 
+ static void handle_warning(png_structp png, const at_string message) {
+         LOG1("PNG warning: %s", message);
+-      at_exception_warning((at_exception_type *)png->error_ptr,
++      at_exception_warning((at_exception_type *)png_get_error_ptr(png),
+                            message);
+-      /* at_exception_fatal((at_exception_type *)at_png->error_ptr,
++      /* at_exception_fatal((at_exception_type *)png_get_error_ptr(at_png),
+          "PNG warning"); */
+ }
+ 
+ static void handle_error(png_structp png, const at_string message) {
+       LOG1("PNG error: %s", message);
+-      at_exception_fatal((at_exception_type *)png->error_ptr,
++      at_exception_fatal((at_exception_type *)png_get_error_ptr(png),
+                          message);
+-      /* at_exception_fatal((at_exception_type *)at_png->error_ptr,
++      /* at_exception_fatal((at_exception_type *)png_get_error_ptr(at_png),
+          "PNG error"); */
+       
+ }
+@@ -106,7 +106,8 @@ static int load_image(at_bitmap_type *im
+       png_init_io(png, stream);
+       CHECK_ERROR();
+       
+-      rows = read_png(png, info, opts);
++      png_read_png(png, info, PNG_TRANSFORM_STRIP_16 | PNG_TRANSFORM_PACKING | PNG_TRANSFORM_EXPAND, 0);
++      rows = png_get_rows(png, info);
+ 
+       width = (unsigned short)png_get_image_width(png, info);
+       height = (unsigned short)png_get_image_height(png, info);
+@@ -145,56 +146,3 @@ at_bitmap_type input_png_reader(at_strin
+ 
+       return image;
+ }
+-
+-static png_bytep *
+-read_png(png_structp png_ptr, png_infop info_ptr, at_input_opts_type * opts)
+-{
+-      int row;
+-      png_color_16p original_bg;
+-      png_color_16  my_bg;
+-
+-      png_read_info(png_ptr, info_ptr);
+-
+-      png_set_strip_16(png_ptr);
+-      png_set_packing(png_ptr);
+-      if ((png_ptr->bit_depth < 8) ||
+-          (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ||
+-          (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)))
+-              png_set_expand(png_ptr);
+-
+-      if (png_get_bKGD(png_ptr, info_ptr, &original_bg)) {
+-              /* Fill transparent region with ... */
+-              my_bg.index = 0;
+-
+-              if (opts && opts->background_color) {
+-                      my_bg.red   = 256 * opts->background_color->r;
+-                      my_bg.green = 256 * opts->background_color->g;
+-                      my_bg.blue  = 256 * opts->background_color->b;
+-                      my_bg.gray  = 256* ((opts->background_color->r
+-                                           + opts->background_color->g
+-                                           + opts->background_color->b) / 3);
+-              } else
+-                        /* else, use white */
+-                        my_bg.red = my_bg.green = my_bg.blue = my_bg.gray = 0xFFFF;
+-              
+-              png_set_background(png_ptr, &my_bg,
+-                                 PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
+-      } else
+-              png_set_strip_alpha(png_ptr);
+-      png_read_update_info(png_ptr, info_ptr);
+-
+-
+-      info_ptr->row_pointers = (png_bytepp)png_malloc(png_ptr,
+-                                                      info_ptr->height * sizeof(png_bytep));
+-#ifdef PNG_FREE_ME_SUPPORTED
+-      info_ptr->free_me |= PNG_FREE_ROWS;
+-#endif
+-      for (row = 0; row < (int)info_ptr->height; row++)
+-              info_ptr->row_pointers[row] = (png_bytep)png_malloc(png_ptr,
+-                                                                  png_get_rowbytes(png_ptr, info_ptr));
+-      
+-      png_read_image(png_ptr, info_ptr->row_pointers);
+-      info_ptr->valid |= PNG_INFO_IDAT;
+-      png_read_end(png_ptr, info_ptr);
+-      return png_get_rows(png_ptr, info_ptr);
+-}



Home | Main Index | Thread Index | Old Index