diff options
author | wiz <wiz> | 2011-02-07 00:37:53 +0000 |
---|---|---|
committer | wiz <wiz> | 2011-02-07 00:37:53 +0000 |
commit | 3990e4c3660fb55ddc23fa8a934adf90d944c408 (patch) | |
tree | 6f4cf55e9df5d7c1798ee048edbd48df7a7b3c4b /graphics/autotrace | |
parent | 73517d187c3c81b49c63df72d215c125d871e912 (diff) | |
download | pkgsrc-3990e4c3660fb55ddc23fa8a934adf90d944c408.tar.gz |
Fix build with png-1.5.
Upstream should come up with a better fix though.
Diffstat (limited to 'graphics/autotrace')
-rw-r--r-- | graphics/autotrace/distinfo | 3 | ||||
-rw-r--r-- | graphics/autotrace/patches/patch-input-png.c | 95 |
2 files changed, 97 insertions, 1 deletions
diff --git a/graphics/autotrace/distinfo b/graphics/autotrace/distinfo index be42a2dcbdf..f7acda5c38c 100644 --- a/graphics/autotrace/distinfo +++ b/graphics/autotrace/distinfo @@ -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 --git a/graphics/autotrace/patches/patch-input-png.c b/graphics/autotrace/patches/patch-input-png.c new file mode 100644 index 00000000000..b2a3a595086 --- /dev/null +++ b/graphics/autotrace/patches/patch-input-png.c @@ -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); +-} |