Detect OS upgrades and refer users to Migration

Ryan Schmidt ryandesign at macports.org
Sun Nov 17 14:09:58 PST 2013


On Nov 17, 2013, at 13:02, Chris Jones wrote:

> On 17 Nov 2013, at 06:06 pm, Landon Fuller wrote:
> 
>> On Nov 4, 2013, at 20:06 , Ryan Schmidt wrote:
>> 
>>> ... we’d really prefer them to uninstall and reinstall all ports.
>> 
>> Users *really* (and rightfully) hate this, especially when there aren't binary packages available.

Understandable. The Mavericks buildbot is now set up and binary packages are gradually being generated.

>> For our local machines, we simply upgraded MacPorts base, and left the existing port installs in place -- so far, everything has worked fine.
>> 
>> In theory, Apple should provide ABI compatibility across releases; is there any modern reason why we should still be encouraging (or enforcing) a full uninstall and reinstall?

The main times when we’ve seen problems with migrated ports installations was when migrating from PowerPC to Intel; when upgrading to Leopard (I think… at some point there was a new libcurl version), when upgrading to Snow Leopard (default build_arch change), and now when upgrading to Mavericks.

> Yes, there are. For instance the change in the default c++ runtime from libstdc++ to libc++ with OSX 10.9. These two runtimes cannot reliably be mixed, so rebuilding all ports is the only safe option. Yes, you might get by not doing this, for a while, but sooner or later you will run into problems, and the root cause is often hard to spot. users might consider the rebuild a pain, but the macPorts devs equally would consider the stream of 'bug' reports because this is not done, a pain... A rebuild is better all round, in the long term.

And we did in fact have a stream of bug reports caused by not rebuilding all ports after upgrading to Mavericks, from people who did not know that they were supposed to do so. That is why I would like to detect the situation and tell the user what to do, to save time and aggravation for both the user and for those like myself triaging issues in the issue tracker.

The libstdc++/libc++ issue may have played a role, but the most frequent cause I observed was the MacPorts behavior of deleting .la files by default on Mavericks. I don’t disagree with this behavior. But when users don’t begin from a clean slate, then .la files getting deleted from ports in an uncontrolled order causes build failures.



More information about the macports-dev mailing list