icu 50 and how to identify dependents

Ryan Schmidt ryandesign at macports.org
Sun Feb 10 01:49:20 PST 2013


On Feb 10, 2013, at 03:38, Jeremy Huddleston Sequoia wrote:

> 
>>>>> What makes you think that?  There's no reason to think that a port would use icu just because it's using pango.
>>>> 
>>>> The output of otool -L.
>>> 
>>> Yeah, that's the problem.  Look at the output of nm -m, and you'll see it's not actually using icu.  It's just linking against it because of glibtool's viral propagation of linkage.
>> 
>> What I mean is that I get messages that libraries a program or library links with cannot be found. In that sense at least, they are being "used". Therefore I revbump the affected port to rebuild it with the current version of the library and thus clear the error.
> 
> Yep, because of glibtool suckage, we need to rebump everything that depends indirectly on icu (through pango) and builds with glibtool … even packages that seem ok to you because you happened to have built them before pango was updated (because someone else may have built it after the viral spread of that link by glibtool).

I noticed pangox-compat doesn't link with icu even if I rebuild it now. Any idea why it's immune? It does build with libtool. It's its own copy of GNU libtool built at configure time, not MacPorts glibtool.


>>>>> Why are we even shipping the .la files.  We should really just delete them from every destroot as they serve no useful purpose and always seem to just screw up builds.
>>>> 
>>>> I don't know what .la files are for so I'm not in a position to be able to assert that we should remove them.
>>> 
>>> .la files are "instructions" that glibtool leaves for itself on how it should link against a particular library.  They're sometimes useful on other platforms, but on OS X, they serve absolutely NO useful purpose.
>> 
>> Then I'm surprised MacPorts has gone 11 years already without removing them. Do other OS X package managers remove them?
> 
> I don't know about fink or homebrew, so I can't comment there, but I certainly removed them from XQuartz after they messed things up quite a bit for X11 users.  There were also a handful of them shipped with OS X (in /usr/lib), but we got rid of them in Snow Leopard.

There are still .la files in /usr/lib on Mountain Lion (in /usr/lib/freeradius and /usr/lib/sasl2), and many in MacPorts in directories other than /opt/local/lib. Can we just go nuts and fs-traverse ${destroot} and remove all .la files wherever they might be? We could use `file` to make sure they're text files before doing so, in case some weird software somewhere uses its own .la files that are not libtool files.




More information about the macports-dev mailing list