Bug 239195 - app-text/xpdf-3.02-r1 FTBFS with app-text/poppler-0.10.0
|
Bug#:
239195
|
Product: Gentoo Linux
|
Version: 2008.0
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: printing@gentoo.org
|
Reported By: loki_val@gentoo.org
|
|
Component: Applications
|
|
|
URL:
|
|
Summary: app-text/xpdf-3.02-r1 FTBFS with app-text/poppler-0.10.0
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2008-09-30 21:27 0000
|
XPDFCore.cc:559: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:570: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:600: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:607: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:620: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:620: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:632: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:633: warning: deprecated conversion from string constant to 'char*'
XPDFCore.cc:634: error: 'getFileSpecName' is not a member of 'LinkAction'
XPDFCore.cc:656: warning: deprecated conversion from string constant to 'char*'
Same here... I think (what is a FTBFS?).
Some more information:
The problem has happened after a system update: xpdf needs to be rebuilt
(together with gimp and inkscape) and when trying, some preprocessor and then
compiling fatal errors happen:
# equery list poppler
[I--] [ ~] app-text/poppler-0.9.2 (0)
[I--] [ ~] app-text/poppler-bindings-0.9.2 (0)
# equery list xpdf
[I--] [ ] app-text/xpdf-3.02-r1 (0)
# equery uses xpdf
[ Found these USE variables for app-text/xpdf-3.02-r1 ]
U I
- - linguas_ar : <unknown>
- - linguas_el : <unknown>
- - linguas_he : <unknown>
- - linguas_ja : <unknown>
- - linguas_ko : <unknown>
- - linguas_la : <unknown>
- - linguas_ru : <unknown>
- - linguas_th : <unknown>
- - linguas_tr : <unknown>
- - linguas_zh_CN : <unknown>
- - linguas_zh_TW : <unknown>
- - nodrm : Disable the drm feature decoder
# equery uses poppler
[ Found these USE variables for app-text/poppler-0.9.2 ]
U I
- - cjk : Adds support for Multi-byte character languages (Chinese, Japanese,
Korean)
+ + doc : Adds extra documentation (API, Javadoc, etc)
+ + jpeg : Adds JPEG image support
+ + zlib : Adds support for zlib (de)compression
# revdep-rebuild
[...]
* Checking dynamic linking consistency
[ 11% ] * broken /usr/bin/inkscape (requires libpoppler-glib.so.3
libpoppler.so.3)
* broken /usr/bin/inkview (requires libpoppler-glib.so.3
libpoppler.so.3)
[ 24% ] * broken /usr/bin/xpdf (requires libpoppler.so.3)
[ 55% ] * broken /usr/lib64/gimp/2.0/plug-ins/poppler (requires
libpoppler-glib.so.3
libpoppler.so.3)
[...]
g++ -march=nocona -O2 -pipe -I/usr/include/poppler -I/usr/include/poppler/goo
-I/usr/include/poppler/splash -DHAVE_DIRENT_H -c -o ImageOutputDev.o
ImageOutputDev.cc
In file included from ImageOutputDev.cc:20:
config.h:31:1: warning: "xpdfCopyright" redefined
In file included from ImageOutputDev.cc:9:
/usr/include/poppler/poppler-config.h:52:1: warning: this is the location of
the previous definition
g++ -march=nocona -O2 -pipe -I/usr/include/poppler -I/usr/include/poppler/goo
-I/usr/include/poppler/splash -DHAVE_DIRENT_H -c -o PDFCore.o PDFCore.cc
In file included from GlobalParams.h:16,
from PDFCore.cc:18:
config.h:31:1: warning: "xpdfCopyright" redefined
In file included from PDFCore.cc:9:
/usr/include/poppler/poppler-config.h:52:1: warning: this is the location of
the previous definition
g++ -march=nocona -O2 -pipe -I/usr/include/poppler -I/usr/include/poppler/goo
-I/usr/include/poppler/splash -DHAVE_DIRENT_H -c -o XPDFApp.o XPDFApp.cc
In file included from XPDFApp.cc:20:
config.h:31:1: warning: "xpdfCopyright" redefined
In file included from XPDFApp.cc:9:
/usr/include/poppler/poppler-config.h:52:1: warning: this is the location of
the previous definition
g++ -march=nocona -O2 -pipe -I/usr/include/poppler -I/usr/include/poppler/goo
-I/usr/include/poppler/splash -DHAVE_DIRENT_H -c -o XPDFCore.o XPDFCore.cc
In file included from GlobalParams.h:16,
from XPDFCore.cc:22:
config.h:31:1: warning: "xpdfCopyright" redefined
In file included from XPDFCore.cc:9:
/usr/include/poppler/poppler-config.h:52:1: warning: this is the location of
the previous definition
XPDFCore.cc: In member function 'void XPDFCore::doAction(LinkAction*)':
XPDFCore.cc:634: error: 'getFileSpecName' is not a member of 'LinkAction'
make: *** [XPDFCore.o] Error 1
(In reply to comment #1)
> Same here... I think (what is a FTBFS?).
Fails To Build From Scratch?
Same problem here.
After updating to: app-text/poppler-0.10.0
and emerge @preserved-rebuild
xpdf fails to compile with the same error as in comment #1
(on 3 different machines).
(~x86) I can supply emerge --info if required.
Poppler upstream has simply broken API again (as they tend to do
on such releases).
xpdf needs simply a patch for new api.
*** Bug 241792 has been marked as a duplicate of this bug. ***
http://cgit.freedesktop.org/poppler/poppler/commit/?id=996d2e176057e22acbc374cff7a712ce6fd92d93
turned getFileSpecName from a static class function in Link.h into a global
function in the newly added FileSpec.h. It seems that none of the installed
headers includes this one, so an application using that function would have to
do so itself.
A likely solution would be to have configure check for FileSpec.h, and if it is
present, have XPDFCore.cc include it and use the new global function instead of
the local one. I'll try to see whether I can turn this into a patch.
Created an attachment (id=168468) [details]
Patch replacing LinkAction::getFileSpecName with getFileSpecNameForPlatform
Been a bit rash in comment #6 because
1. there is no configure script for xpdf
2. getFileSpecNameForPlatform seems to be the closest replacement for
LinkAction::getFileSpecName, getFileSpecName looks quite different
3. even getFileSpecNameForPlatform has a different signature
4. a redefinition of xpdfCopyright in config.h also causes a compiler error
Problem 1. I'll leave to ebuild writers to resolve in whatever way they see
fit, be it checking for theinstalled poppler package or for the FileSpec.h
header file.
The attached patch attempts to solve 2. through 4. It copies some code from
http://cgit.freedesktop.org/poppler/poppler/diff/?id=49b3e4560f62a9a7db350d94d50e229f5e1208bf
but that's no guarantee for correctness, only an educated guess. So if anybody
has a PDF file referencing an external Movie, please test this code.
Created an attachment (id=168472) [details]
Patch replacing LinkAction::getFileSpecName with getFileSpecNameForPlatform
Had a line left over from a previous attempt, sorry. That would have introduced
a minor memory leak, which this one here should avoid.
+ 14 Oct 2008; Peter Alfredsen <loki_val@gentoo.org>
+ -files/poppler-0.5.9.patch, +files/poppler-0.10.0.patch,
+ -files/xpdf-3.01-poppler-0.5.1.patch,
+ -files/xpdf-3.01-poppler-nodrm.patch, -xpdf-3.01-r8.ebuild,
+ xpdf-3.02-r1.ebuild:
+ Fix compatibility with poppler-0.10.0, bug #239195. Thanks to Martin von
+ Gagern <Martin.vGagern@gmx.net> for providing the patch. Also clean out
+ old ebuilds and patches.
+
Excellent work!
Thank you very much.