Bug 551119 - PDF import broken
Summary: PDF import broken
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: inkscape
Version: 12
Hardware: All
OS: Linux
high
medium
Target Milestone: ---
Assignee: Lubomir Rintel
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 555820
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-12-29 01:05 UTC by Milos Jakubicek
Modified: 2010-03-06 03:38 UTC (History)
9 users (show)

Fixed In Version: inkscape-0.47-2.fc12
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-03-06 03:38:22 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Patch inkscape for poppler API changes (3.20 KB, patch)
2010-02-09 05:09 UTC, Kieran Clancy
no flags Details | Diff

Description Milos Jakubicek 2009-12-29 01:05:08 UTC
Description of problem:

Trying to import a PDF results into:

inkscape: symbol lookup error: inkscape: undefined symbol: _ZN13GfxColorSpace5parseEP6Object

Looking into http://bugs.archlinux.org/task/17524, it seems that this is related to Poppler and rebuilding inkscape against current Poppler in F12 should solve this (but I didn't try a scratch build).

Version-Release number of selected component (if applicable):

inkscape-0.47-1.fc12.x86_64

How reproducible:

Always

Steps to Reproduce:
1. Open an AI/PDF to import

Comment 1 Jonathan Underwood 2010-01-15 14:57:53 UTC
Yes, I see exactly the same thing. Package versions:

$ rpm -qa | grep poppler
poppler-debuginfo-0.12.2-1.fc12.x86_64
poppler-utils-0.12.2-1.fc12.x86_64
poppler-0.12.2-1.fc12.x86_64
poppler-glib-0.12.2-1.fc12.x86_64

# rpm -qa | grep inkscape
inkscape-0.47-1.fc12.x86_64

Any chance of rebuilding and pushing if this indeed fixes it?

Comment 2 Jonathan Underwood 2010-01-15 15:21:49 UTC
Actually, doing a local mock build of the current F-12 package wihout changes fails with the message below when building pdf-parser.cpp. I think there must be a missing buildrequires, but am not sure what...



g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE  -I/usr/include/python2.6 -I/usr/inclu
de/freetype2  -pthread -DORBIT2=1 -I/usr/include/gnome-vfs-2.0 -I/usr/lib64/gnome-vfs-2.0/include -I/usr/include/gconf/2 -I/
usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/in
clude   -fopenmp -I/usr/include/ImageMagick    -I/usr/include/libwpg-0.1 -I/usr/include/libwpd-0.8     -I/usr/include/popple
r    -DPOTRACE=\"potrace\" -pthread -I/usr/include/gdkmm-2.4 -I/usr/lib64/gdkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/
lib64/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib64/pangomm-1.4/include -I/usr/include/gtk-2.0 -I/usr/include/gl
ibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sigc++-2.0 -I/
usr/lib64/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-
1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/gtkmm-
2.4 -I/usr/lib64/gtkmm-2.4/include -I/usr/include/gtk-unix-print-2.0 -I/usr/include/atkmm-1.6 -I/usr/include/libxml2 -I/usr/
include/gtkspell-2.0   -I../cxxtest  -I./bind/javainc -I./bind/javainc/linux   -Werror=format-security -Wall -Wformat -Wform
at-security -W -D_FORTIFY_SOURCE=2   -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-p
arameter -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=gen
eric -fopenmp -c -o extension/internal/pdfinput/pdf-parser.o extension/internal/pdfinput/pdf-parser.cpp
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opSetExtGState(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:812: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opSetFillColorSpace(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:1012: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp:1014: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opSetStrokeColorSpace(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:1035: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp:1037: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opSetFillColorN(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:1104: error: no matching function for call to 'GfxResources::lookupPattern(char*)
'
/usr/include/poppler/Gfx.h:113: note: candidates are: GfxPattern* GfxResources::lookupPattern(char*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opSetStrokeColorN(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:1148: error: no matching function for call to 'GfxResources::lookupPattern(char*)'
/usr/include/poppler/Gfx.h:113: note: candidates are: GfxPattern* GfxResources::lookupPattern(char*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opShFill(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:1546: error: no matching function for call to 'GfxResources::lookupShading(char*)'
/usr/include/poppler/Gfx.h:114: note: candidates are: GfxShading* GfxResources::lookupShading(char*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::doImage(Object*, Stream*, GBool)':
extension/internal/pdfinput/pdf-parser.cpp:2510: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp:2595: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::doForm(Object*)':
'
/usr/include/poppler/Gfx.h:113: note: candidates are: GfxPattern* GfxResources::lookupPattern(char*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opSetStrokeColorN(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:1148: error: no matching function for call to 'GfxResources::lookupPattern(char*)'
/usr/include/poppler/Gfx.h:113: note: candidates are: GfxPattern* GfxResources::lookupPattern(char*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::opShFill(Object*, int)':
extension/internal/pdfinput/pdf-parser.cpp:1546: error: no matching function for call to 'GfxResources::lookupShading(char*)'
/usr/include/poppler/Gfx.h:114: note: candidates are: GfxShading* GfxResources::lookupShading(char*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::doImage(Object*, Stream*, GBool)':
extension/internal/pdfinput/pdf-parser.cpp:2510: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp:2595: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
extension/internal/pdfinput/pdf-parser.cpp: In member function 'void PdfParser::doForm(Object*)':
extension/internal/pdfinput/pdf-parser.cpp:2770: error: no matching function for call to 'GfxColorSpace::parse(Object*)'
/usr/include/poppler/GfxState.h:182: note: candidates are: static GfxColorSpace* GfxColorSpace::parse(Object*, Gfx*)
make[2]: *** [extension/internal/pdfinput/pdf-parser.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.2/../../../../include/c++/4.4.2/ext/hash_map:59,
                 from ./libnrtype/font-instance.h:4,
                 from extension/internal/pdfinput/svg-builder.cpp:40:
/usr/lib/gcc/x86_64-redhat-linux/4.4.2/../../../../include/c++/4.4.2/backward/backward_warning.h:28:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
extension/internal/pdfinput/svg-builder.cpp: In member function 'std::string Inkscape::Extension::Internal::SvgBuilder::_BestMatchingFont(std::string)':
extension/internal/pdfinput/svg-builder.cpp:907: warning: comparison is always false due to limited range of data type
extension/internal/pdfinput/svg-builder.cpp:912: warning: comparison between signed and unsigned integer expressions
make[2]: Leaving directory `/builddir/build/BUILD/inkscape-0.47/src'
make[1]: Leaving directory `/builddir/build/BUILD/inkscape-0.47'
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.wICES1 (%build)
    Bad exit status from /var/tmp/rpm-tmp.wICES1 (%build)
Child returncode was: 1
EXCEPTION: Command failed. See logs for output.
 # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/inkscape.spec']
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/mock/trace_decorator.py", line 70, in trace
    result = func(*args, **kw)
  File "/usr/lib/python2.6/site-packages/mock/util.py", line 324, in do
    raise mock.exception.Error, ("Command failed. See logs for output.\n # %s" % (command,), child.returncode)
Error: Command failed. See logs for output.
 # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/inkscape.spec']
LEAVE do --> EXCEPTION RAISED

Comment 3 Jonathan Underwood 2010-01-15 15:30:41 UTC
Adding poppler maintainer to cc list.

Rex - an api change in poppler 0.12.2 would seem to have broken inkscape

Comment 4 Jonathan Underwood 2010-01-15 15:59:59 UTC
OK, I rebuilt the current rawhide package on F-12 (inside mock) - I see this includes a patch for poppler. I can confirm that this build has functional PDF import again.

So please, as a matter of urgency, push new package builds of inkscape for F-12 including the poppler patch. Thanks in advance.

Comment 5 Rex Dieter 2010-01-15 16:15:31 UTC
boo, the poppler abi breakage is certainly uncool, tracking in bug #555820.

Please hold on anything hasty here, while I 
1.  poke upstream.
2.  test poppler-0.12.3 in updates-testing

(we may be able to fix this in the pending poppler update).

Comment 6 Rex Dieter 2010-01-15 16:17:14 UTC
confirmed poppler-0.12.3-1 (in updates-testing) also affected.

Comment 7 Rex Dieter 2010-01-15 17:27:39 UTC
OK, poppler's change was intentional, and makes now guarantees using these low-level apis.

Patching inkscape appropriately appears to be the way forward here (and long-term, lobby upstream to use poppler's supported -glib or -qt api instead)

Comment 8 Jonathan Underwood 2010-01-29 17:34:27 UTC
Ping Milos? Any chance you can bump and rebuild the F-12 package to fix this.

Comment 9 Jonathan Underwood 2010-01-29 17:35:08 UTC
Apologies - wrong person, Comment #8 was meant for Lubomir, not Milos, of course.

Comment 10 Milos Jakubicek 2010-01-29 17:50:29 UTC
Hm...I can do that as well -- Lubomir?

Comment 11 Kieran Clancy 2010-02-09 05:09:11 UTC
Created attachment 389676 [details]
Patch inkscape for poppler API changes

Patch tested with latest inkscape trunk. Applies cleanly to Fedora package source.

Based on the patch from https://bugs.launchpad.net/inkscape/+bug/487038

Comment 12 Jonathan Underwood 2010-02-09 11:48:28 UTC
(In reply to comment #11)
> Created an attachment (id=389676) [details]
> Patch inkscape for poppler API changes
> 
> Patch tested with latest inkscape trunk. Applies cleanly to Fedora package
> source.
> 
> Based on the patch from https://bugs.launchpad.net/inkscape/+bug/487038    

Actually there's already a patch in the Fedora development (rawhide/F13) branch that fixes the bug and has been tested.

Milos - please do go ahead and build the current rawhide package for F-12, it seems Luomir is MIA.

Comment 13 Fedora Update System 2010-02-09 13:55:52 UTC
inkscape-0.47-2.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/inkscape-0.47-2.fc12

Comment 14 Milos Jakubicek 2010-02-09 14:47:34 UTC
(In reply to comment #12)

> Milos - please do go ahead and build the current rawhide package for F-12, it
> seems Luomir is MIA.    

He isn't, I just pinged him via IRC, he was just overwhelmed by abrt bugzilla mails and these got lost -- he immediately fixed that then, thank you Lubomir.

Comment 15 Jonathan Underwood 2010-02-09 14:49:40 UTC
OK, excellent, thanks Lubomir, apologies for thinking you were MIA.

Comment 16 Fedora Update System 2010-02-11 14:51:03 UTC
inkscape-0.47-2.fc12 has been pushed to the Fedora 12 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update inkscape'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2010-1743

Comment 17 Jacek Radzikowski 2010-02-26 05:01:01 UTC
Link to inkscape feedback is incorrect. Feedback for inkscape-0.47-2.fc12 can be left at https://admin.fedoraproject.org/updates/inkscape-0.47-2.fc12

Comment 18 Fedora Update System 2010-03-06 03:38:15 UTC
inkscape-0.47-2.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.