[MacPorts] #58574: poppler upgrade fails if older poppler is installed

MacPorts noreply at macports.org
Wed Oct 14 15:54:01 UTC 2020


#58574: poppler upgrade fails if older poppler is installed
----------------------+----------------------
  Reporter:  RobK88   |      Owner:  dbevans
      Type:  defect   |     Status:  reopened
  Priority:  Normal   |  Milestone:
 Component:  ports    |    Version:  2.5.4
Resolution:           |   Keywords:
      Port:  poppler  |
----------------------+----------------------

Comment (by michaelld):

 The issues are quite multi-faceted, and thus require quite a bit of
 testing / verification! The critical PR is in now:
 https://github.com/macports/macports-ports/pull/8779 .. I'll get in the
 other one to Poppler itself shortly, but I don't think this one is
 critical to the in-build execution.

 It's easy to replicate -- just install a much older poppler version from
 current; I'm using 0.79.0_0. Then with that active, try to build current
 poppler. With an old enough poppler, the new-poppler build will fail
 because of the issues discussed herein. Tracking down the sources of the
 errors isn't trivial, but, as @kencu notes:

 Replying to [comment:71 kencu]:
 > The gobject-introspection source code is quite readable and hackable.

 Agreed! The scanner is written in Python, which is nice and easy to work
 with since one can make changes without having to recompile / reinstall;
 makes debugging -so- much easier! Still not trivial, but much better than
 C/C++!

 > I think, as Ryan said, we just need to use {{{DYLD_LIBRARY_PATH}}}
 instead of {{{DYLD_FALLBACK_LIBRARY_PATH}}} ...

 You are correct ... and this is an almost trivial change.

 > ... and have the code stop adding {{{-L/opt/local/lib}}} to that path,
 which seems both unnecessary and troublesome.

 This is actually OK, it turns out. The GO-I scanner adds all of the build
 / source library directories -before- any system ones, and CC takes these
 in the order provided, so this entry works out OK -- at least in my
 current testing. Removing this entry is non-trivial, but doable. I'm going
 to add this to my fixes, since it seems like the right thing to do.

 There is 1 more step for completion is to reorder the {{{-I}}} entries so
 that those in the build / source are found before those in the system.
 poppler's CMake code does this correctly for its own C/C++ compiling, but
 then totally borks it in the interface to gobject-introspection. Doing
 this isn't too difficult; it's tracking down where to do it in the first
 place that's the pain!

 Note that since we're using an older version of GO-I (pre-meson @ 1.60.2 ;
 current is 1.66.1), so any fixes here may or not be relevant to current
 GO-I. If/when we decide to upgrade GO-I, it will involve retesting and
 possible fixing up the patches we come up with to fix this issue for us
 ... which makes upgrading that much more challenging!

-- 
Ticket URL: <https://trac.macports.org/ticket/58574#comment:75>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list