Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 426606 - dev-tex/luatex-0.70.1 fails to build against new app-text/poppler-0.20.1
Summary: dev-tex/luatex-0.70.1 fails to build against new app-text/poppler-0.20.1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: poppler-0.20
  Show dependency tree
 
Reported: 2012-07-14 16:26 UTC by N. Andrew Walsh
Modified: 2012-07-17 18:51 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description N. Andrew Walsh 2012-07-14 16:26:08 UTC
here we go again!

poppler upstream updated recently to 0.20.1, and my current luatex-0.70.1 won't build against it (which I understand is luatex upstream policy: they only support the bundled version of poppler, which gentoo doesn't use). Previous iteration of a similar bug (and discussion of possible solutions) is here:

http://forums.gentoo.org/viewtopic-t-896406

This time around, here is the error message:


luatexdir/lua/lepdflib.cc: In function 'int l_new_Annot(lua_State*)':
luatexdir/lua/lepdflib.cc:160:37: error: no matching function for call to 'Annot::Annot(XRef*, Dict*, Catalog*, Object*)'
luatexdir/lua/lepdflib.cc:160:37: note: candidates are:
/usr/include/poppler/Annot.h:520:3: note: Annot::Annot(PDFDoc*, Dict*, Object*)
/usr/include/poppler/Annot.h:520:3: note:   candidate expects 3 arguments, 4 provided
/usr/include/poppler/Annot.h:519:3: note: Annot::Annot(PDFDoc*, Dict*)
/usr/include/poppler/Annot.h:519:3: note:   candidate expects 2 arguments, 4 provided
/usr/include/poppler/Annot.h:518:3: note: Annot::Annot(PDFDoc*, PDFRectangle*)
/usr/include/poppler/Annot.h:518:3: note:   candidate expects 2 arguments, 4 provided
/usr/include/poppler/Annot.h:473:7: note: Annot::Annot(const Annot&)
/usr/include/poppler/Annot.h:473:7: note:   candidate expects 1 argument, 4 provided
luatexdir/lua/lepdflib.cc: In function 'int l_new_Annots(lua_State*)':
luatexdir/lua/lepdflib.cc:182:44: error: no matching function for call to 'Annots::Annots(XRef*, Catalog*, Object*)'
luatexdir/lua/lepdflib.cc:182:44: note: candidates are:
/usr/include/poppler/Annot.h:1369:3: note: Annots::Annots(PDFDoc*, Object*)
/usr/include/poppler/Annot.h:1369:3: note:   candidate expects 2 arguments, 3 provided
/usr/include/poppler/Annot.h:1365:7: note: Annots::Annots(const Annots&)
/usr/include/poppler/Annot.h:1365:7: note:   candidate expects 1 argument, 3 provided
luatexdir/lua/lepdflib.cc: In function 'int m_Annot_getAppearance(lua_State*)':
luatexdir/lua/lepdflib.cc:371:273: error: 'class Annot' has no member named 'getAppearance'
luatexdir/lua/lepdflib.cc: In function 'int m_Object_getTypeName(lua_State*)':
luatexdir/lua/lepdflib.cc:1377:42: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
luatexdir/lua/lepdflib.cc: In function 'int m_Page_getLinks(lua_State*)':
luatexdir/lua/lepdflib.cc:2059:60: error: no matching function for call to 'Page::getLinks(Catalog*)'
luatexdir/lua/lepdflib.cc:2059:60: note: candidate is:
/usr/include/poppler/Page.h:180:10: note: Links* Page::getLinks()
/usr/include/poppler/Page.h:180:10: note:   candidate expects 0 arguments, 1 provided
luatexdir/lua/lepdflib.cc: In function 'int m_XRef_getSize(lua_State*)':
luatexdir/lua/lepdflib.cc:2654:219: error: 'class XRef' has no member named 'getSize'
make: *** [libluatex_a-lepdflib.o] Error 1


Reproducible: always

Steps:
1) update poppler
2) revdep-rebuild luatex
3) failure and emo tears

What should happen:
I don't know, maybe luatex upstream could just build their software to work against poppler, instead of insisting on bundling their own (outdated) version, and only supporting that?

Cheers.
Comment 1 Andreas Sturmlechner gentoo-dev 2012-07-15 13:23:04 UTC
luatex-0.70.1 just built fine against poppler-0.20.2.
Comment 2 Maciej Mrozowski gentoo-dev 2012-07-16 22:43:12 UTC
Indeed, and since poppler-0.20.1 is gone, I'll close the bug. Thanks for reporting!
Comment 3 Steven Green 2012-07-17 06:46:17 UTC
I get exactly the same compile error with poppler 0.20.2 and luatex-0.70.1


luatexdir/lua/lepdflib.cc: In function 'int l_new_Annot(lua_State*)':
luatexdir/lua/lepdflib.cc:160:37: error: no matching function for call to 'Annot::Annot(XRef*, Dict*, Catalog*, Object*)'
/usr/include/poppler/Annot.h:520:3: note: candidates are: Annot::Annot(PDFDoc*, Dict*, Object*)
/usr/include/poppler/Annot.h:519:3: note:                 Annot::Annot(PDFDoc*, Dict*)
/usr/include/poppler/Annot.h:518:3: note:                 Annot::Annot(PDFDoc*, PDFRectangle*)
/usr/include/poppler/Annot.h:473:13: note:                 Annot::Annot(const Annot&)
luatexdir/lua/lepdflib.cc: In function 'int l_new_Annots(lua_State*)':
luatexdir/lua/lepdflib.cc:182:44: error: no matching function for call to 'Annots::Annots(XRef*, Catalog*, Object*)'
/usr/include/poppler/Annot.h:1369:3: note: candidates are: Annots::Annots(PDFDoc*, Object*)
/usr/include/poppler/Annot.h:1365:14: note:                 Annots::Annots(const Annots&)
luatexdir/lua/lepdflib.cc: In function 'int m_Annot_getAppearance(lua_State*)':
luatexdir/lua/lepdflib.cc:371:273: error: 'class Annot' has no member named 'getAppearance'
luatexdir/lua/lepdflib.cc: In function 'int m_Object_getTypeName(lua_State*)':
luatexdir/lua/lepdflib.cc:1377:42: error: invalid conversion from 'const char*' to 'char*'
luatexdir/lua/lepdflib.cc: In function 'int m_Page_getLinks(lua_State*)':
luatexdir/lua/lepdflib.cc:2059:60: error: no matching function for call to 'Page::getLinks(Catalog*)'
/usr/include/poppler/Page.h:180:10: note: candidate is: Links* Page::getLinks()
luatexdir/lua/lepdflib.cc: In function 'int m_XRef_getSize(lua_State*)':
luatexdir/lua/lepdflib.cc:2654:219: error: 'class XRef' has no member named 'getSize'
make: *** [libluatex_a-lepdflib.o] Error 1
make: *** Waiting for unfinished jobs....
mv -f .deps/libluatex_a-loslibext.Tpo .deps/libluatex_a-loslibext.Po
mv -f .deps/libluatex_a-lnodelib.Tpo .deps/libluatex_a-lnodelib.Po
emake failed
Comment 4 Steven Green 2012-07-17 18:21:57 UTC
This is weird...
Using emerge or revdep-rebuild, I get the error above because it has not applied the poppler020.patch.

If instead I run:
$> ebuild /usr/portage/dev-tex/luatex/luatex-0.70.1.ebuild merge
it compiles and installs fine.

Looking at the files in /var/tmp/portage... lepdflib.cc in unpatched after emerge or revdep-rebuild.

$> ebuild /usr/portage/dev-tex/luatex/luatex-0.70.1.ebuild prepare
Patches lepdflib.cc correctly.

So it looks like there is a problem with 'emerge' that is somehow causing it to skip the patching in src_prepare() of the ebuild.
Comment 5 Steven Green 2012-07-17 18:45:50 UTC
Mystery solved.... ignore my comments above.

Problem was caused by a local overlay, which I'd added to fix a problem with an earlier version of poppler and luatex-0.70.1

Wouldn't it make sense to add a revision number to the ebuild if a change like this is made? eg. luatex-0.70.1-r1 so that emerge would see that there is a new version to build.

From the gentoo ebuild handbook:

The fourth subsection of the package name is the Gentoo Linux-specific revision number ({-r#}). This subsection, like the suffix, is also optional. # is a non-zero positive integer; e.g., package-4.5.3-r3.

This revision number is independent of the version of the source tarball and is used to inform people that a new and improved Gentoo Linux revision of a particular package is available.
Comment 6 Andreas Sturmlechner gentoo-dev 2012-07-17 18:51:49 UTC
As far as I know, build fixes do not trigger minor revision bumps.