[OE-core] [PATCH 1/1] cairo: add libpng to EXTRA_libcairo_la_DEPENDENCIES

Robert Yang liezhi.yang at windriver.com
Fri Mar 15 03:32:28 UTC 2013



On 03/14/2013 12:33 AM, Saul Wold wrote:
> On 03/13/2013 01:58 AM, Robert Yang wrote:
>> There is a build error when I update the git repo and build again:
>>
>> x86_64-linux-libtool: link: cannot find the library
>> `/path/to/sysroots/x86_64-linux/usr/lib/libpng15.la' or ...
>>
>> This because libpng was 1.5 before I update the git repo, and it
>> is 1.6 now, libpng's include dir and lib dir are special, they are:
>>
>> /usr/include/libpngXX/png.h
>> /usr/lib/libpngXX.la
>>
>> The XX is the version, e.g, libpng15.la, cairo doesn't handle this
>> depends well, the configure finds that the lbpng is 1.6 after the
>> update, but it doesn't rebuild libcairo.la since this depends isn't in
>> the Makefile, it should have a file like cairo.def (cairo has this file,
>> but it is only used for windows) to record this dependency.  Add
>> libpng's includedir to EXTRA_libcairo_la_DEPENDENCIES as a quick fix.
>>
> I understand what you are trying to do here, but this is a point fix for a much
> bigger issue with the renaming of libpngXX, there are a number of other issues
> that will be uncovered and making this a hard code change here is not correct.
>

Hi Saul,

Thanks, there is already a symlink libpng.pc to libpngXX.pc, but the content of
libpngXX.pc is still -lpngXX, change this to -lpng would fix the problem, I'm
thinking about whether we should change /usr/include/libpngXX/ to /usr/include
/libpng/ or make a symlink for it.

I will send a patch if you are fine with it.

// Robert

> There are other .la that will contain pngXX and cause problems, this issue is
> also contained in SSTATE files, in the past we would do PR bumps to all the
> affected recipes that depended on PNG.
>
> Sau!
>
>> [YOCTO #4002]
>>
>> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
>> ---
>>   meta/recipes-graphics/cairo/cairo_1.12.14.bb | 13 +++++++++++++
>>   1 file changed, 13 insertions(+)
>>
>> diff --git a/meta/recipes-graphics/cairo/cairo_1.12.14.bb
>> b/meta/recipes-graphics/cairo/cairo_1.12.14.bb
>> index 16f9d7b..857cfa6 100644
>> --- a/meta/recipes-graphics/cairo/cairo_1.12.14.bb
>> +++ b/meta/recipes-graphics/cairo/cairo_1.12.14.bb
>> @@ -38,6 +38,19 @@ FILES_cairo-gobject = "${libdir}/libcairo-gobject.so.*"
>>   FILES_cairo-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*"
>>   FILES_cairo-perf-utils = "${bindir}/cairo-trace
>> ${libdir}/cairo/libcairo-trace.so.*"
>>
>> +do_compile() {
>> +    # The libpng's include is special, it is usually
>> +    # usr/include/libpngXX, the XX is the version number, add it to
>> +    # libcairo.la's dependencies so that libcairo.la can be rebuilt
>> +    # when libpng upgrades.
>> +    if [ "${PN}" = "cairo-native" ]; then
>> +        libpng_DEPS="`pkg-config libpng --variable=includedir`"
>> +    else
>> +        libpng_DEPS="${STAGING_DIR_HOST}`pkg-config libpng
>> --variable=includedir`"
>> +    fi
>> +    oe_runmake EXTRA_libcairo_la_DEPENDENCIES="$libpng_DEPS"
>> +}
>> +
>>   do_install_append () {
>>       rm -rf ${D}${bindir}/cairo-sphinx
>>       rm -rf ${D}${libdir}/cairo/cairo-fdr*
>>
>
>




More information about the Openembedded-core mailing list