Why does macports require a migration across major version bumps?

Mojca Miklavec mojca at macports.org
Wed Aug 30 10:46:31 UTC 2017


Hi,

Sorry, I accidentally clicked on the wrong place (Send) while the
browser was doing its smart layout changes.

On 30 August 2017 at 12:16, Mojca Miklavec wrote:
> On 30 August 2017 at 03:01, Eitan Adler wrote:
>> What is the underlying reason to require a reinstall across major
>> versions? I did something silly/stupid/smart  and removed the check
>> from libexec/macports/lib/macports1.0/macports.tcl and just did 'sudo
>> port upgrade outdated' to rebuild the world. It got about 90% of the
>> way through and only errored on a few expected
>> broken-for-other-reasons ports.
>>
>> Obvious I'm down the deep hole of unsupported actions but I'm curious
>> about what gets missed when someone does this?

It's hard or nearly impossible to tell. Most of the time everything
will work until you try to upgrade or install something new. Problems
might include:

- a port A that builds differently depending on OS version and another
port B that has certain expectations of A; or maybe a port doesn't
even build and an upgrade will cause you troubles while B could easily
skip dependency on A
- change of compiler, potentially totally incompatible compiler that
will lead to further crashes
- some software hardcodes the compiler which will no longer exist on
the new machine and thus that software will be broken
- some software or libraries remember existing features of the
compiler used; when you compile another software against that library,
wrong features will be used and you might run into unexpected troubles
(anything from build failures to crashes)

The worst idea would be keeping the installation for transition from
10.8 to 10.9. I guess your system would pretty much "explode" there
due to the change of default stdlib, not to mention inability to
install many ports.

The best part is that most likely 99% of stuff will work, but those
remaining 1% might easily cost you 99% of time you'll spend fighting
with MacPorts. You might run into random problems that will likely
cost you a lot more time the time spent doing a proper migration in
the first place. Other people won't be able to help you and your time
spent debugging will be totally wasted as it won't help anyone else in
the long term. If you spend time on something that everyone could
benefit from, that would be your time much better spent than fighting
with your machine for its own sake.

Of course there are also lots of problems when using macports
"properly" :), like ports no longer compiling on newer or older OSes
or using some mix-and-match compilers, compiler bugs, software bugs
...

Random thoughts. But I have absolutely no experience with this, so
you'll probably know it better if you try it out.

Mojca


More information about the macports-dev mailing list