#41928 closed defect (invalid)
harfbuzz: possibly missing dependency on libpng
Reported by: | mojca (Mojca Miklavec) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ||
Port: | harfbuzz |
Description
Upgrading gnuplot failed for me with the following error:
Making all in docs ./doc2gih ./gnuplot.doc gnuplot.gih dyld: Library not loaded: /opt/local/lib/libpng15.15.dylib Referenced from: /opt/local/lib/libharfbuzz.0.dylib Reason: image not found make[2]: *** [gnuplot.gih] Trace/BPT trap: 5 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
I see that /opt/local/lib/libharfbuzz.0.dylib
indeed references libpng15.15.dylib
without declaring an explicit dependency, but I'm not sure if this is a problem with my installation (and those new rules that ports don't need to depend on libraries if dependency is just a recursive one) or if dependency is in fact missing.
It is true that many of the ports here are still outdated. Harfbuz is at version harfbuzz @0.9.25_0.
(Gnuplot depends on pango and pango depends on harfbuzz, but for some reason harfbuzz kept linking against libpng15
and wasn't revbumped.)
Change History (3)
comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 follow-up: 3 Changed 11 years ago by mojca (Mojca Miklavec)
Resolution: | → invalid |
---|---|
Status: | new → closed |
OK, thank you. I'm running the latest version of MacPorts, but I'm not sure why harfbuzz remained overlinked here. I reinstalled it and now it seems OK.
Is there any FAQ entry about how to properly avoid overlinking (possibly without having to rebuild every single package from source)? Last time I was told that all the packages on the buildbots would need to be rebuilt (more or less from scratch) for this to work 100% right.
comment:3 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to mojca@…:
Is there any FAQ entry about how to properly avoid overlinking
Not that I know of.
(possibly without having to rebuild every single package from source)?
Overlinking affects ports using libtool .la files. Overlinking is cured by rebuilding the port, however you have to first rebuild its dependencies that use .la files. The simplest way to ensure you rebuild all ports in the correct order is to uninstall and reinstall all ports.
Last time I was told that all the packages on the buildbots would need to be rebuilt (more or less from scratch) for this to work 100% right.
Yes I suggested we do this, but Josh thought it was a waste of time, so I guess we're not doing it. Therefore some packages on the packages server are probably still overlinked, and will remain so until whatever future time when they happen to get rebuilt in the right order. If you want to ensure you don't get overlinked binaries on your sytsem, don't use the pre-built binaries; build from source.
harfbuzz does not link with libpng on my system, so on your system harfbuzz is overlinked. This shouldn't be the case anymore, since harfbuzz has been updated several times since the release of MacPorts 2.2. Is it possible you did not update your machine to MacPorts 2.2 until after the last time harfbuzz was updated (r114336, 2013-12-05), or indeed are not yet running MacPorts 2.2?
The solution is to rebuild harfbuzz by running "sudo port -n upgrade --force harfbuzz".
I checked the Snow Leopard binaries on our packages server and they're not overlinked either so I don't think we need to make any change in the port.