Binary packages not rebuilding against updated libraries

Artur Szostak aszostak at partner.eso.org
Tue Apr 24 16:05:21 UTC 2018


>> Hi,
>>
>> I have a Portfile for a library (called CPL) that was linked against Cfitsio from a week ago. Cfitsio was updated very recently. What I expect is that during the installation of CPL, MacPorts is able to figure out that Cfitsio changed and that CPL needs to be rebuilt. However, during the "Scanning binaries for linking errors" stage it indicates "No broken files found". Why would the MacPorts mechanism not be working?
>>
>> The relevant parts from "otool -L /opt/local/lib/libcfitsio.dylib":
>>         /opt/local/lib/libcfitsio.dylib (compatibility version 6.0.0, current version 6.3.44)
>> and from "otool -L /opt/local/lib/libcplcore.dylib":
>>         /opt/local/lib/libcplcore.26.dylib (compatibility version 28.0.0, current version 28.0.0)
>>         /opt/local/lib/libcfitsio.dylib (compatibility version 5.0.0, current version 5.3.41)
>>
>> Surely MacPorts should see that what libcplcore.dylib was linked against is no longer compatible with the installed libcfitsio.dylib? or am I not understanding how compatibility version is working on MacOS?
>
> An increased compatibility version means that symbols have been added. A
> program thus can't run with an older compatibility version of a library
> than it was built against, but it can run with a newer one.
>
> If symbols are removed or their semantics change, the library major
> version needs to change. This is part of the install_name, e.g. "26" in
> the case of libcplcore. If libcfitsio is not changing its install_name
> when its ABI changes incompatibly, that's a problem.

So then there is a bug from what I understand, or cfitsio in MacPorts is being built incorrectly. Compare file names for the newer Cfitsio:
  /opt/local/lib/libcfitsio.6.3.44.dylib
  /opt/local/lib/libcfitsio.6.dylib -> libcfitsio.6.3.44.dylib (symlink)
and the older Cfitsio:
  /opt/local/lib/libcfitsio.5.3.41.dylib
  /opt/local/lib/libcfitsio.5.dylib -> libcfitsio.5.3.41.dylib (symlink)


More information about the macports-dev mailing list