[oe] [meta-oe][PATCH] poppler: fix compile errors

Andreas Müller schnitzeltony at gmail.com
Mon Apr 2 19:38:20 UTC 2018


On Mon, Apr 2, 2018 at 6:53 PM, Andreas Müller <schnitzeltony at gmail.com> wrote:
> On Mon, Apr 2, 2018 at 4:54 PM, akuster808 <akuster808 at gmail.com> wrote:
>>
>>
>> On 04/02/2018 04:56 AM, Andreas Müller wrote:
>>> On Mon, Apr 2, 2018 at 4:36 AM, Armin Kuster <akuster808 at gmail.com> wrote:
>>>> disable glib  via new PACKGAGECONFIG option
>>>>
>>>> glib.so, not found (try using -rpath or -rpath-link)
>>>> | ./libpoppler-glib.so: undefined reference to `FormWidgetText::noSpellCheck() const'
>>>> | ./libpoppler-glib.so: undefined reference to `FormWidgetChoice::deselectAll()'
>>>> | ./libpoppler-glib.so: undefined reference to `StructElement::getTextSpansInternal(MarkedContentOutputDev&) const'
>>>> | ./libpoppler-glib.so: undefined reference to `PopplerCache::PopplerCache(int)'
>>>> | ./libpoppler-glib.so: undefined reference to `MemStream::MemStream(char*, long long, long long, Object&&)'
>>>> | ./libpoppler-glib.so: undefined reference to `StructElement::appendSubTreeText(GooString*, bool) const'
>>>> | ./libpoppler-glib.so: undefined reference to `typeinfo for LinkOCGState'
>>>> | ./libpoppler-glib.so: undefined reference to `FormWidgetChoice::noSpellCheck() const'
>>>> | ./libpoppler-glib.so: undefined reference to `XRef::okToChange(bool)'
>>>> | ./libpoppler-glib.so: undefined reference to `globalParams'
>>>> | ./libpoppler-glib.so: undefined reference to `MarkedContentOutputDev::MarkedContentOutputDev(int)'
>>>> | ./libpoppler-glib.so: undefined reference to `GfxPath::lineTo(double, double)'
>>>> | ./libpoppler-glib.so: undefined reference to `FormWidgetButton::getButtonType() const'
>>>> | ./libpoppler-glib.so: undefined reference to `GfxPath::close()'
>>>> | ./libpoppler-glib.so: undefined reference to `PDFDoc::getID(GooString*, GooString*)'
>>>> | ./libpoppler-glib.so: undefined reference to `pdfDocEncoding'
>>>> | ./libpoppler-glib.so: undefined reference to `BaseStream::BaseStream(Object&&, long long)'
>>>> | ./libpoppler-glib.so: undefined reference to `GfxGouraudTriangleShading::getTriangle(int, double*, double*, double*, double*, double*, double*, double*, double*, double*)'
>>>>
>>>> Signed-off-by: Armin Kuster <akuster808 at gmail.com>
>>>> ---
>>>>  meta-oe/recipes-support/poppler/poppler_0.62.0.bb | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/meta-oe/recipes-support/poppler/poppler_0.62.0.bb b/meta-oe/recipes-support/poppler/poppler_0.62.0.bb
>>>> index 6966219..d20751f 100644
>>>> --- a/meta-oe/recipes-support/poppler/poppler_0.62.0.bb
>>>> +++ b/meta-oe/recipes-support/poppler/poppler_0.62.0.bb
>>>> @@ -21,6 +21,7 @@ PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
>>>>  PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
>>>>  PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
>>>>  PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
>>>> +PACKAGECONFIG[glib] = "-DENABLE_GLIB=ON,-DENABLE_GLIB=OFF, glib-2.0"
>>>>
>>>>  # surprise - did not expect this to work :)
>>>>  inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
>>>> --
>>>> 2.7.4
>>>>
>>> This looks odd to me: poppler depends on cairo and cairo depends on
>>> glib-2.0 - both dependencies are unconditional. So glib-2.0 should be
>>> in poppler's recipe specific sysroot. Seems there is something else
>>> wrong here.
>> Its why I sent out the patch.
>>
>>>
>>> I am a bit afraid that this will break evince which is THE pdf-viewer
>>> we have in our common layers. Are there some public log I can look
>>> into?
>>
>> Please see: http://errors.yoctoproject.org/Errors/Build/57086
>>
> I found
>
> | warning: libpoppler.so.73, needed by ./libpoppler-glib.so, not found
> (try using -rpath or -rpath-link)
>
> Looks like some some race for missing dependencies within poppler's
> build. Will investigate and hope to come back with a solution soon.
>
Hi Armin,

as usual things are not that easy:
* My builds are fine - whatever I do - so I cannot debug properly. And
even worse: CMake scripts of poppler look perfectly fine to me.
* The patch which I added for poppler is good for us but makes it more
complicated to ask for help at poppler-project. So I reworked the
patch to turn into a proper fix and submitted it to poppler [1].

Now I would like to:
* Add this patch to poppler
* Update poppler to 0.63.0
* Wait for autobuilder's result (with these patches applied / undo
your patch disabling glib-2.0 wrapper)

If autobuilder still fails I can open a bug at poppler and hope
they're able to help me. If autobuilder passes - we're done with this.

Since I did all this to get our sumo into good shape (oe-core already
branched): How much time do I have to get recent (and of course fixed)
poppler into sumo?

[1] https://bugs.freedesktop.org/show_bug.cgi?id=105852

Cheers

Andreas



More information about the Openembedded-devel mailing list