icu 50 and how to identify dependents
Jeremy Huddleston Sequoia
jeremyhu at macports.org
Sun Feb 10 09:02:39 PST 2013
On Feb 10, 2013, at 2:11 AM, Ryan Schmidt <ryandesign at macports.org> wrote:
>>> And what will we do once the .la removal code you talk about is added? Won't we have to revbump almost every port?
>> At minimum, we should poke the buildbots to do a rebuild. I don't think a revbump would be warranted for every port. The situation would clear itself up as ports bumped themselves. The risk in not bumping is that someone might still have a viral link which we didn't account for when we update something again in the future, but rev-upgrade should catch those cases.
> I was going to disagree with you until you said rev-upgrade, and then I had to think for a minute. I often forget we have rev-upgrade because I have it turned off on my main machine, and set to report only on my other machines.
> Poking the buildbots to rebuild everything without .la files would take care of new installs. It's already been suggested we should update the buildbots to Xcode 4.6 and rebuild all binaries with that. So we could take care of both at once.
I think moving up to XCode 4.6 should be sooner than later.
I'm thinking the .la deletion should be done on trunk and we should sit on it for a while to make sure we deal with any fallout. Realistically, the main issue that I see falling out are possible build failures where a port isn't explicitly linking against a library it needs and is getting lucky in picking it up through the .la. Such an issue is a bug in the port, and hopefully isn't too common.
The other possible fallout is with applications that want to link statically. The one helpful aspect of the viral propagation of the links is that it helps with static linking which requires one to list all the static libraries needed (even indirectly) at link time, BUT the information can only be guaranteed to be correct if dependencies were compiled in order.
> I wonder if many of our users have rev-upgrade turned off, and if so, if they will know what to do when stuff breaks, especially since the fallout will occur over a long period of time, probably years, until every port has coincidentally been updated or rebuilt.
My gut tells me that the set of users who turn off rev-upgrade are probably a subset of users who know what to do if they notices broken dependencies themselves.
> I worry that references to .la files would remain in ports somewhere even if library linkage was not broken, such that rev-upgrade would not trigger a rebuild and these relics would cause problems later. I'm not sure if that worry makes sense.
Globally deleting the .la files is a nice shotgun approach, but we may need some finer-tuned cleanup for fallout or pieces missed.
Gentoo Linux has a revdep-upgrade script which is very similar to our 'port rev-upgrade'. In addition to looking for broken links, it also looks at the .la files to see if they reference missing .la files and will trigger a rebuild.
More information about the macports-dev