inkscape 0.91.x build fails using poppler 0.29.0

Bug #1399811 reported by David Evans on 2014-12-05
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
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

su_v (suv-lp) on 2014-12-05
tags: removed: 0.91.x
Changed in inkscape:
importance: Undecided → High
su_v (suv-lp) on 2014-12-05
Changed in inkscape:
milestone: none → 0.91
tags: added: blocker
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
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>

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

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) on 2014-12-11
Changed in inkscape:
assignee: nobody → ~suv (suv-lp)
status: Confirmed → Fix Committed
tags: removed: blocker
su_v (suv-lp) wrote :

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

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  Edit
Everyone can see this information.

Other bug subscribers