icu 50 and how to identify dependents
ryandesign at macports.org
Sun Feb 10 00:57:27 PST 2013
On Feb 10, 2013, at 02:52, Jeremy Huddleston Sequoia <jeremyhu at apple.com> wrote:
> On Feb 8, 2013, at 8:45 PM, Ryan Schmidt <ryandesign at macports.org> wrote:
>> I'd like to upgrade the icu port to version 50. This changes the library version number so I'll need to revbump everything linking with it. Any tips on how to identify what ports those are? I know I can find ports declaring a dependency on icu with:
>> port file all | sort -u | xargs grep :icu
>> But what about ports not declaring a dependency? I also need to examine the dependents of every port that depends on icu don't I?
> I think if a port actually links against another port, it should have a dependency listed. Indirect dependencies should indicate that the project doesn't actually link it directly (and thus would not need such a bump).
> Just bump those that list the dependency and do a local upgrade of all of them on your systems. Do a 'revdep-upgrade' in report mode and look for anything that got missed. Add the dependency to those ports and revbump them as well.
>> For example pango was recently updated to 1.32.5, which for the first time uses harfbuzz, which uses icu, so now everything that uses pango also uses icu and needs a revbump.
> That's not true. As an example, libX11 now uses libxcb as a backend instead of xtrans, but clients of libX11 don't care what transport backend libX11 uses. They just link against libX11 and didn't need to bump when I switched libX11's backend to libxcb.
>> I think I want to explicitly add a port:icu dependency to all ports using pango to make these easier to find in the future.
> No, please don't do that. Only do that if the port actually links against icu.
Obviously I would only add the dependency if it actually links to icu. The problem is that now that pango uses harfbuzz and harfbuzz uses icu, now things that use pango use icu. Maybe not all; I've been building ports for days and haven't come close to trying all possibly affected ports yet. But I can give you some examples. If you rebuild gtk2 or graphviz (which depend on pango) they use icu now. Same with py27-pygtk (which depends on gtk2). Trying to unravel this is becoming extremely tedious and I'm not sure if I should just continue, or decide never to upgrade icu ever again, or remove icu from harfbuzz or what.
More information about the macports-dev