[OE-core] Libpng 1.6.x is broken, switch back to 1.5.x before release?

Burton, Ross ross.burton at intel.com
Tue Apr 16 09:34:00 UTC 2013


Hi,

On 16 April 2013 10:06, Koen Kooi <koen at dominion.thruhere.net> wrote:
> I've been looking into the libpng problems people have been reporting (e.g. #4060) and tried to upgrade 1.16.1 to fix those. Long story short, 1.16.1 doesn't fix them. I'm currently using weston as a testbed and was able to narrow the problems with weston down to:
>
>         cairo_surface_t *surface = cairo_image_surface_create_from_png(icon);
>
> with ends up as:
>
>         ERROR loading icon from file '/usr/share/icons/gnome/24x24/apps/utilities-terminal.png', error: 'out of memory'

I just spoke to Chris Wilson about this.  libpng 1.6 is throwing more
warnings to the caller, often about invalid PNG extensions that are
being ignored apparently, and cairo-png is being over-zealous (his
words) in handling the warnings, by turning them into errors.

static void
png_simple_warning_callback (png_structp png,
	                     png_const_charp error_msg)
{
    cairo_status_t *error = png_get_error_ptr (png);

    /* default to the most likely error */
    if (*error == CAIRO_STATUS_SUCCESS)
	*error = _cairo_error (CAIRO_STATUS_NO_MEMORY);

    /* png does not expect to abort and will try to tidy up after a warning */
}

The warnings are just warnings and libpng will continue to load the
images.  Sending a patch once this git clone has finished.

Ross




More information about the Openembedded-core mailing list