From 50f823557cb5857dfe585a9da88bb8f61ebfba99 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Wed, 17 Apr 2013 14:34:27 +0100 Subject: png: fix over-zealous warnings about transforms libpng 1.6.0/1.6.1 emits warnings about function ordering when there isn't a problem, which causes Cairo to fail loading images. Take the patch from upstream to fix this. Signed-off-by: Ross Burton Signed-off-by: Saul Wold --- .../libpng/libpng/transform.patch | 46 ++++++++++++++++++++++ meta/recipes-multimedia/libpng/libpng_1.6.1.bb | 1 + 2 files changed, 47 insertions(+) create mode 100644 meta/recipes-multimedia/libpng/libpng/transform.patch diff --git a/meta/recipes-multimedia/libpng/libpng/transform.patch b/meta/recipes-multimedia/libpng/libpng/transform.patch new file mode 100644 index 0000000000..369a2c0b7f --- /dev/null +++ b/meta/recipes-multimedia/libpng/libpng/transform.patch @@ -0,0 +1,46 @@ +Corrected the test on user transform changes on read. It was in the png_set of +the transform function, but that doesn't matter unless the transform function +changes the rowbuf size, and that is only valid if transform_info is called. + +Upstream-Status: Backport (will be in 1.6.2) + - b44cd59ad9747069b90c6ff0f76558157a61e26a + - a8715cabd11354da9650dff7c0770686a217b550 +Signed-off-by: Ross Burton + + +diff --git a/pngrtran.c b/pngrtran.c +index 626f3b0..4485e40 100644 +--- a/pngrtran.c ++++ b/pngrtran.c +@@ -1056,9 +1056,6 @@ png_set_read_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr + { + png_debug(1, "in png_set_read_user_transform_fn"); + +- if (!png_rtran_ok(png_ptr, 0)) +- return; +- + #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED + png_ptr->transformations |= PNG_USER_TRANSFORM; + png_ptr->read_user_transform_fn = read_user_transform_fn; +diff --git a/pngtrans.c b/pngtrans.c +index b532172..f822324 100644 +--- a/pngtrans.c ++++ b/pngtrans.c +@@ -782,6 +782,17 @@ png_set_user_transform_info(png_structrp png_ptr, png_voidp + + if (png_ptr == NULL) + return; ++ ++#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED ++ if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 && ++ (png_ptr->flags & PNG_FLAG_ROW_INIT) != 0) ++ { ++ png_app_error(png_ptr, ++ "info change after png_start_read_image or png_read_update_info"); ++ return; ++ } ++#endif ++ + png_ptr->user_transform_ptr = user_transform_ptr; + png_ptr->user_transform_depth = (png_byte)user_transform_depth; + png_ptr->user_transform_channels = (png_byte)user_transform_channels; diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.1.bb b/meta/recipes-multimedia/libpng/libpng_1.6.1.bb index 7895a6c4ba..6f9fb09c84 100644 --- a/meta/recipes-multimedia/libpng/libpng_1.6.1.bb +++ b/meta/recipes-multimedia/libpng/libpng_1.6.1.bb @@ -10,6 +10,7 @@ LIBV = "16" SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/${PV}/libpng-${PV}.tar.xz \ file://0001-configure-lower-automake-requirement.patch \ + file://transform.patch \ " SRC_URI[md5sum] = "93fc0b0841ce2db0e6756673e22dafc3" SRC_URI[sha256sum] = "5ef57f8b9ef591c8504e2a8f78d31779f0c8f2b34b34d01d533360d2483c8946" -- cgit v1.2.3