inkscape 0.91.x build fails using poppler 0.29.0

Bug #1399811 reported by David Evans
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
Fix Released
High
su_v

Bug Description

Build configuration:

Mac OS X 10.9.5 (Mavericks)
MacPorts 2.3.3
Xcode 6.1.1 (clang)

Inkscape versions effected:

inkscape-0.91.x r13678
inkscape-0.91pre3
inkscape trunk r13788
inkscape 0.48.5

Using recently released poppler stable version 0.29.0, inkscape-0.91.x r13678, build fails due to apparent GfxColorSpace API changes introduced in this version.

Failure as follows:

extension/internal/pdfinput/pdf-parser.cpp:927:65: error: too few arguments to function call, expected at least 4, have 3
            blendingColorSpace = GfxColorSpace::parse(&obj5, NULL, NULL);
                                 ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
extension/internal/pdfinput/pdf-parser.cpp:1164:59: error: too few arguments to function call, expected at least 4, have 3
    colorSpace = GfxColorSpace::parse(&args[0], NULL, NULL);
                 ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
extension/internal/pdfinput/pdf-parser.cpp:1166:55: error: too few arguments to function call, expected at least 4, have 3
    colorSpace = GfxColorSpace::parse(&obj, NULL, NULL);
                 ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
extension/internal/pdfinput/pdf-parser.cpp:1207:59: error: too few arguments to function call, expected at least 4, have 3
    colorSpace = GfxColorSpace::parse(&args[0], NULL, NULL);
                 ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
extension/internal/pdfinput/pdf-parser.cpp:1209:55: error: too few arguments to function call, expected at least 4, have 3
    colorSpace = GfxColorSpace::parse(&obj, NULL, NULL);
                 ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
extension/internal/pdfinput/pdf-parser.cpp:2914:64: error: too few arguments to function call, expected at least 4, have 3
            colorSpace = GfxColorSpace::parse(&obj1, NULL, NULL);
                         ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
extension/internal/pdfinput/pdf-parser.cpp:3008:83: error: too few arguments to function call, expected at least 4, have 3
            GfxColorSpace *maskColorSpace = GfxColorSpace::parse(&obj1, NULL, NULL);
                                            ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
extension/internal/pdfinput/pdf-parser.cpp:3200:61: error: too few arguments to function call, expected at least 4, have 3
        blendingColorSpace = GfxColorSpace::parse(&obj3, NULL, NULL);
                             ~~~~~~~~~~~~~~~~~~~~ ^
/opt/local/include/poppler/GfxState.h:211:3: note: 'parse' declared here
  static GfxColorSpace *parse(GfxResources *res, Object *csObj, OutputDev *out, GfxState *state, int recursion = 0);
  ^
8 errors generated.
make[3]: *** [extension/internal/pdfinput/pdf-parser.o] Error 1

Tags: build
su_v (suv-lp)
tags: removed: 0.91.x
Changed in inkscape:
importance: Undecided → High
su_v (suv-lp)
Changed in inkscape:
milestone: none → 0.91
tags: added: blocker
Revision history for this message
su_v (suv-lp) wrote :

Reproduced with 0.91+devel r13788 (OS X 10.7.5, poppler 0.29.0).

Changed in inkscape:
status: New → Confirmed
Revision history for this message
su_v (suv-lp) wrote :
Revision history for this message
su_v (suv-lp) wrote :

Tentative patch based on the same ("ugly" ;-) ) logic of earlier build fix for poppler 0.26 (bug #1315142, r13405) ...

Tested with Inkscape 0.91+devel r13790 and Inkscape 0.91pre3 r13683 on OS X 10.7.5 with poppler 0.29.0:
- build successful
- PDF import ok (but not extensively tested)

TODO:
- test compiling against older poppler versions
- backport for <lp:inkscape/0.48.x>

Revision history for this message
su_v (suv-lp) wrote :

Patched trunk r13790 compiled successfully on OS X 10.7.5 with
- poppler 0.28.1
- poppler 0.22.1
- poppler 0.18.4

Revision history for this message
su_v (suv-lp) wrote :

Patch backported to 0.48.x

Tested successfully with Inkscape 0.48.5 r10043 on OS X 10.7.5 using
- poppler 0.28.1
- poppler 0.29.0

ScislaC (scislac)
Changed in inkscape:
assignee: nobody → ~suv (suv-lp)
status: Confirmed → Fix Committed
tags: removed: blocker
Revision history for this message
su_v (suv-lp) wrote :

Committed to <lp:inkscape/0.91.x> in revision 13685.
Committed to <lp:inkscape> in revision 13794.

Revision history for this message
su_v (suv-lp) wrote :

JFTR: as discussed on irc, this patch is a "band-aid" for the current situation, not a real solution.

On the roadmap:
«Switch to using Poppler's API rather than using internals (the current situation causes regular breakage with new releases of Poppler)»
<http://wiki.inkscape.org/wiki/index.php/Roadmap#Maintenance>

Tracked in:
- Bug #239544 “direct usage of poppler (core)”
  <https://bugs.launchpad.net/inkscape/+bug/239544>

Changed in inkscape:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.