Date: Fri, 13 Jul 2007 11:51:24 GMT From: Sven Gaerner <sgaerner@gmx.net> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/114551: poppler-qt4 is unusable Message-ID: <200707131151.l6DBpOAk085259@www.freebsd.org> Resent-Message-ID: <200707131200.l6DC09Ir050040@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 114551 >Category: ports >Synopsis: poppler-qt4 is unusable >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jul 13 12:00:09 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Sven Gaerner >Release: 6.2 >Organization: >Environment: FreeBSD insomnia.hactar.home 6.2-RELEASE-p5 FreeBSD 6.2-RELEASE-p5 #1: Sat Jun 9 00:09:47 CEST 2007 root@insomnia.hactar.home:/usr/obj/usr/src/sys/INSOMNIA i386 >Description: poppler-qt4 is unusable because linking against libpoppler-qt4.so results in a link error. /usr/local/lib/libpoppler-qt4.so: undefined reference to `ArthurOutputDev::startDoc(XRef*)' /usr/local/lib/libpoppler-qt4.so: undefined reference to `ArthurOutputDev::~ArthurOutputDev()' /usr/local/lib/libpoppler-qt4.so: undefined reference to `ArthurOutputDev::ArthurOutputDev(QPainter*)' This error is caused by a poppler configuration. The above mentioned Arthur rendering backend is only build if QT4 support is requested. But unfortunately the implementation is located within the poppler/ subdirectory and is linked into libpoppler.so. This is no problem if the whole library is build but the poppler-qt4 port just builds the QT4 support forgetting to link the Arthur backend object into the library. That means the resulting libpoppler-qt4.so references the Arthur backend which is not available. >How-To-Repeat: Link against libpoppler-qt4 and reference some class. For example: #include <poppler-qt4.h> int main(int argc, char **argv) { Poppler::Document *doc = NULL; doc = Poppler::Document::load("/path/to/pdf_file.pdf"); delete doc; return 0; } And the QMake file: TARGET = poppler-test TEMPLATE = app QT += core gui xml INCLUDEPATH += /usr/local/include/poppler/qt4 LIBS += -lpoppler-qt4 CONFIG(debug, debug|release) { TARGET = pdfviewd } else { TARGET = pdfview } MOC_DIR = .moc OBJECTS_DIR = .obj SOURCES += poppler-test.cc Set environment variable QMAKESPEC to freebsd-g++ >Fix: Build the Arthur backend located in the poppler/ subdirectory and link it into the libpoppler-qt4.so. I think this is more a workaround than a solution. It would be better if the poppler developers would link the Arthur backend into the libpoppler-qt4.so library. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707131151.l6DBpOAk085259>