Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#41928 closed defect (invalid)

harfbuzz: possibly missing dependency on libpng

Reported by: mojca (Mojca Miklavec) Owned by: ryandesign (Ryan 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 7 years ago by ryandesign (Ryan Schmidt)

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.

comment:2 Changed 7 years ago by mojca (Mojca Miklavec)

Resolution: invalid
Status: newclosed

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 in reply to:  2 Changed 7 years ago by ryandesign (Ryan 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.

Note: See TracTickets for help on using tickets.