* [PATCH 1/2] png: fix over-zealous warnings about transforms @ 2013-04-17 13:34 Ross Burton 2013-04-17 13:34 ` [PATCH 2/2] cairo: drop transform patch, it's been rejected upstream Ross Burton 2013-04-17 13:48 ` [PATCH 1/2] png: fix over-zealous warnings about transforms Koen Kooi 0 siblings, 2 replies; 6+ messages in thread From: Ross Burton @ 2013-04-17 13:34 UTC (permalink / raw) To: openembedded-core 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 <ross.burton@intel.com> --- .../libpng/libpng/transform.patch | 46 ++++++++++++++++++++ meta/recipes-multimedia/libpng/libpng_1.6.0.bb | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) 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 0000000..369a2c0 --- /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 <ross.burton@intel.com> + + +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.0.bb b/meta/recipes-multimedia/libpng/libpng_1.6.0.bb index 951e34a..2353e8d 100644 --- a/meta/recipes-multimedia/libpng/libpng_1.6.0.bb +++ b/meta/recipes-multimedia/libpng/libpng_1.6.0.bb @@ -10,7 +10,7 @@ PR = "r0" LIBV = "16" SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/${PV}/libpng-${PV}.tar.xz \ - " + file://transform.patch" SRC_URI[md5sum] = "3ee623b9a4d33bda7310a5124080b14d" SRC_URI[sha256sum] = "5e13c31321083b03956b5ff298bacffab7a7ad35c34c122acef314593944b97b" -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] cairo: drop transform patch, it's been rejected upstream 2013-04-17 13:34 [PATCH 1/2] png: fix over-zealous warnings about transforms Ross Burton @ 2013-04-17 13:34 ` Ross Burton 2013-04-17 13:46 ` Koen Kooi 2013-04-17 13:48 ` [PATCH 1/2] png: fix over-zealous warnings about transforms Koen Kooi 1 sibling, 1 reply; 6+ messages in thread From: Ross Burton @ 2013-04-17 13:34 UTC (permalink / raw) To: openembedded-core This fix was rejected by upstream, the correct fix is actually to fix libpng. Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/recipes-graphics/cairo/cairo/png.patch | 77 ++------------------------- 1 file changed, 3 insertions(+), 74 deletions(-) diff --git a/meta/recipes-graphics/cairo/cairo/png.patch b/meta/recipes-graphics/cairo/cairo/png.patch index 15ce80a..bf00332 100644 --- a/meta/recipes-graphics/cairo/cairo/png.patch +++ b/meta/recipes-graphics/cairo/cairo/png.patch @@ -1,81 +1,10 @@ -libpng 1.6 is stricter in various ways, which trips up Cairo's PNG loader. +libpng 1.6 is stricter in various ways, which can trip up the PNG loader as it +considers all warnings fatal. -Upstream-Status: Submitted (first)/Backport (second) +Upstream-Status: Backport Signed-off-by: Ross Burton <ross.burton@intel.com> -From 1535e4eeda7e0792fe5e7e5ab377c5253ee89ce7 Mon Sep 17 00:00:00 2001 -From: Ingmar Runge <ingmar@irsoft.de> -Date: Tue, 16 Apr 2013 10:48:59 +0100 -Subject: [PATCH 1/2] png: fix transform ordering - -libpng 1.6 is stricter with the function ordering, emitting the warning "invalid -before the PNG header has been read" when calling png_set_read_user_transform_fn -whilst loading a PNG. - -So, re-order the functions to the order that libpng is happy with. - -Signed-off-by: Ross Burton <ross.burton@intel.com> ---- - src/cairo-png.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/src/cairo-png.c b/src/cairo-png.c -index e74a4a8..3aec86a 100644 ---- a/src/cairo-png.c -+++ b/src/cairo-png.c -@@ -497,6 +497,20 @@ convert_bytes_to_data (png_structp png, png_row_infop row_info, png_bytep data) - } - } - -+/* branches into premultiply_data or convert_bytes_to_data depending on color type */ -+static void read_user_transform_func (png_structp png, png_row_infop row_info, png_bytep data) -+{ -+ switch ((cairo_format_t) png_get_user_transform_ptr (png)) { -+ case CAIRO_FORMAT_ARGB32: -+ premultiply_data (png, row_info, data); -+ break; -+ -+ case CAIRO_FORMAT_RGB24: -+ convert_bytes_to_data (png, row_info, data); -+ break; -+ } -+} -+ - static cairo_status_t - stdio_read_func (void *closure, unsigned char *data, unsigned int size) - { -@@ -623,6 +637,9 @@ read_png (struct png_read_closure_t *png_closure) - - png_set_filler (png, 0xff, PNG_FILLER_AFTER); - -+ /* this must be stored before calling png_read_update_info */ -+ png_set_read_user_transform_fn (png, read_user_transform_func); -+ - /* recheck header after setting EXPAND options */ - png_read_update_info (png, info); - png_get_IHDR (png, info, -@@ -643,15 +660,15 @@ read_png (struct png_read_closure_t *png_closure) - - case PNG_COLOR_TYPE_RGB_ALPHA: - format = CAIRO_FORMAT_ARGB32; -- png_set_read_user_transform_fn (png, premultiply_data); - break; - - case PNG_COLOR_TYPE_RGB: - format = CAIRO_FORMAT_RGB24; -- png_set_read_user_transform_fn (png, convert_bytes_to_data); - break; - } - -+ png_set_user_transform_info (png, (void*) format, 0, 0); -+ - stride = cairo_format_stride_for_width (format, png_width); - if (stride < 0) { - surface = _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_STRIDE)); --- -1.7.10.4 - From 2dd2c826a5b367d32cf2d48ed69754795990c5db Mon Sep 17 00:00:00 2001 From: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue, 16 Apr 2013 10:58:56 +0100 -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] cairo: drop transform patch, it's been rejected upstream 2013-04-17 13:34 ` [PATCH 2/2] cairo: drop transform patch, it's been rejected upstream Ross Burton @ 2013-04-17 13:46 ` Koen Kooi 2013-04-17 13:54 ` Burton, Ross 0 siblings, 1 reply; 6+ messages in thread From: Koen Kooi @ 2013-04-17 13:46 UTC (permalink / raw) To: Ross Burton; +Cc: openembedded-core Op 17 apr. 2013, om 15:34 heeft Ross Burton <ross.burton@intel.com> het volgende geschreven: > This fix was rejected by upstream, the correct fix is actually to fix libpng. That fix is supposed to be in libpng HEAD and appear in 1.6.2: "The git head of libpng16 (and libpng17) has a fix that should allow user transforms (but not png_set_user_transform_info) to be called after png_read_update_info." - John Bowler regards, Koen > > Signed-off-by: Ross Burton <ross.burton@intel.com> > --- > meta/recipes-graphics/cairo/cairo/png.patch | 77 ++------------------------- > 1 file changed, 3 insertions(+), 74 deletions(-) > > diff --git a/meta/recipes-graphics/cairo/cairo/png.patch b/meta/recipes-graphics/cairo/cairo/png.patch > index 15ce80a..bf00332 100644 > --- a/meta/recipes-graphics/cairo/cairo/png.patch > +++ b/meta/recipes-graphics/cairo/cairo/png.patch > @@ -1,81 +1,10 @@ > -libpng 1.6 is stricter in various ways, which trips up Cairo's PNG loader. > +libpng 1.6 is stricter in various ways, which can trip up the PNG loader as it > +considers all warnings fatal. > > -Upstream-Status: Submitted (first)/Backport (second) > +Upstream-Status: Backport > Signed-off-by: Ross Burton <ross.burton@intel.com> > > > -From 1535e4eeda7e0792fe5e7e5ab377c5253ee89ce7 Mon Sep 17 00:00:00 2001 > -From: Ingmar Runge <ingmar@irsoft.de> > -Date: Tue, 16 Apr 2013 10:48:59 +0100 > -Subject: [PATCH 1/2] png: fix transform ordering > - > -libpng 1.6 is stricter with the function ordering, emitting the warning "invalid > -before the PNG header has been read" when calling png_set_read_user_transform_fn > -whilst loading a PNG. > - > -So, re-order the functions to the order that libpng is happy with. > - > -Signed-off-by: Ross Burton <ross.burton@intel.com> > ---- > - src/cairo-png.c | 21 +++++++++++++++++++-- > - 1 file changed, 19 insertions(+), 2 deletions(-) > - > -diff --git a/src/cairo-png.c b/src/cairo-png.c > -index e74a4a8..3aec86a 100644 > ---- a/src/cairo-png.c > -+++ b/src/cairo-png.c > -@@ -497,6 +497,20 @@ convert_bytes_to_data (png_structp png, png_row_infop row_info, png_bytep data) > - } > - } > - > -+/* branches into premultiply_data or convert_bytes_to_data depending on color type */ > -+static void read_user_transform_func (png_structp png, png_row_infop row_info, png_bytep data) > -+{ > -+ switch ((cairo_format_t) png_get_user_transform_ptr (png)) { > -+ case CAIRO_FORMAT_ARGB32: > -+ premultiply_data (png, row_info, data); > -+ break; > -+ > -+ case CAIRO_FORMAT_RGB24: > -+ convert_bytes_to_data (png, row_info, data); > -+ break; > -+ } > -+} > -+ > - static cairo_status_t > - stdio_read_func (void *closure, unsigned char *data, unsigned int size) > - { > -@@ -623,6 +637,9 @@ read_png (struct png_read_closure_t *png_closure) > - > - png_set_filler (png, 0xff, PNG_FILLER_AFTER); > - > -+ /* this must be stored before calling png_read_update_info */ > -+ png_set_read_user_transform_fn (png, read_user_transform_func); > -+ > - /* recheck header after setting EXPAND options */ > - png_read_update_info (png, info); > - png_get_IHDR (png, info, > -@@ -643,15 +660,15 @@ read_png (struct png_read_closure_t *png_closure) > - > - case PNG_COLOR_TYPE_RGB_ALPHA: > - format = CAIRO_FORMAT_ARGB32; > -- png_set_read_user_transform_fn (png, premultiply_data); > - break; > - > - case PNG_COLOR_TYPE_RGB: > - format = CAIRO_FORMAT_RGB24; > -- png_set_read_user_transform_fn (png, convert_bytes_to_data); > - break; > - } > - > -+ png_set_user_transform_info (png, (void*) format, 0, 0); > -+ > - stride = cairo_format_stride_for_width (format, png_width); > - if (stride < 0) { > - surface = _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_STRIDE)); > --- > -1.7.10.4 > - > From 2dd2c826a5b367d32cf2d48ed69754795990c5db Mon Sep 17 00:00:00 2001 > From: Chris Wilson <chris@chris-wilson.co.uk> > Date: Tue, 16 Apr 2013 10:58:56 +0100 > -- > 1.7.10.4 > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] cairo: drop transform patch, it's been rejected upstream 2013-04-17 13:46 ` Koen Kooi @ 2013-04-17 13:54 ` Burton, Ross 0 siblings, 0 replies; 6+ messages in thread From: Burton, Ross @ 2013-04-17 13:54 UTC (permalink / raw) To: Koen Kooi; +Cc: openembedded-core On 17 April 2013 14:46, Koen Kooi <koen@dominion.thruhere.net> wrote: > Op 17 apr. 2013, om 15:34 heeft Ross Burton <ross.burton@intel.com> het volgende geschreven: > >> This fix was rejected by upstream, the correct fix is actually to fix libpng. > > That fix is supposed to be in libpng HEAD and appear in 1.6.2: Yes, that's where the patch in 1/2 comes from. Ross ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] png: fix over-zealous warnings about transforms 2013-04-17 13:34 [PATCH 1/2] png: fix over-zealous warnings about transforms Ross Burton 2013-04-17 13:34 ` [PATCH 2/2] cairo: drop transform patch, it's been rejected upstream Ross Burton @ 2013-04-17 13:48 ` Koen Kooi 2013-04-17 13:55 ` Burton, Ross 1 sibling, 1 reply; 6+ messages in thread From: Koen Kooi @ 2013-04-17 13:48 UTC (permalink / raw) To: Ross Burton; +Cc: openembedded-core Op 17 apr. 2013, om 15:34 heeft Ross Burton <ross.burton@intel.com> het volgende geschreven: > 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. Any chance of 1.6.1 getting into the release to get the NEON filter fixes? regards, Koen > > Signed-off-by: Ross Burton <ross.burton@intel.com> > --- > .../libpng/libpng/transform.patch | 46 ++++++++++++++++++++ > meta/recipes-multimedia/libpng/libpng_1.6.0.bb | 2 +- > 2 files changed, 47 insertions(+), 1 deletion(-) > 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 0000000..369a2c0 > --- /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 <ross.burton@intel.com> > + > + > +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.0.bb b/meta/recipes-multimedia/libpng/libpng_1.6.0.bb > index 951e34a..2353e8d 100644 > --- a/meta/recipes-multimedia/libpng/libpng_1.6.0.bb > +++ b/meta/recipes-multimedia/libpng/libpng_1.6.0.bb > @@ -10,7 +10,7 @@ PR = "r0" > LIBV = "16" > > SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/${PV}/libpng-${PV}.tar.xz \ > - " > + file://transform.patch" > > SRC_URI[md5sum] = "3ee623b9a4d33bda7310a5124080b14d" > SRC_URI[sha256sum] = "5e13c31321083b03956b5ff298bacffab7a7ad35c34c122acef314593944b97b" > -- > 1.7.10.4 > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] png: fix over-zealous warnings about transforms 2013-04-17 13:48 ` [PATCH 1/2] png: fix over-zealous warnings about transforms Koen Kooi @ 2013-04-17 13:55 ` Burton, Ross 0 siblings, 0 replies; 6+ messages in thread From: Burton, Ross @ 2013-04-17 13:55 UTC (permalink / raw) To: Koen Kooi; +Cc: openembedded-core On 17 April 2013 14:48, Koen Kooi <koen@dominion.thruhere.net> wrote: > Any chance of 1.6.1 getting into the release to get the NEON filter fixes? Not in Dylan, at least not right now. I'm not going to be entirely surprised if RP queues these for 1.4.1 as they're not critical, just doing it right. Ross ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-04-17 14:12 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-17 13:34 [PATCH 1/2] png: fix over-zealous warnings about transforms Ross Burton 2013-04-17 13:34 ` [PATCH 2/2] cairo: drop transform patch, it's been rejected upstream Ross Burton 2013-04-17 13:46 ` Koen Kooi 2013-04-17 13:54 ` Burton, Ross 2013-04-17 13:48 ` [PATCH 1/2] png: fix over-zealous warnings about transforms Koen Kooi 2013-04-17 13:55 ` Burton, Ross
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox