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.
luatex-0.70.1 just built fine against poppler-0.20.2.
Indeed, and since poppler-0.20.1 is gone, I'll close the bug. Thanks for reporting!
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
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.
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.
As far as I know, build fixes do not trigger minor revision bumps.