Versions in ports

Daniel J. Luke dluke at
Tue Sep 15 08:28:18 PDT 2015

> On Sep 15, 2015, at 6:11 AM, Artur Szostak <aszostak at> wrote:
>>> And their newer versions are not backwards compatible with C 1.0, thus:
>> what is the nature of this incompatibility?
> Two examples that I can think of that affect the kind of software I work with are:
> 1) The internal algorithm of some API functions have changed, even though the API interface has not. This might lead to different results for certain invocations of these functions.

this would be a bug in that software

> 2) The command line interface for certain programs has changed, which are used under the hood by higher level tools.

and this also if the command line interface was meant to be an interface to other programs

>> rev-upgrade (which runs automatically after upgrade) will catch and rebuild B for the cases of incompatibility
>> that I’m aware of.
> I do not see how any tool could handle the above two examples I gave in an automated manner. If that is the case, I want to know more, because that would be really impressive.

you are correct, rev-upgrade can’t handle (and doesn’t attempt to handle) these cases.

In practice, I’m not aware of any case where this has been a problem (most projects are more well behaved and try to preserve compatibility).

MacPorts would welcome improvements, though - there have been several attempts at defining how to add versioned dependencies but as far as I’m aware, there hasn’t been any code contributed yet.

It’s a pretty longstanding issue (along with being able to properly depend on variants). 

it’s possible that we should update our documentation to recommend ‘port upgrade outdated’ as safe and ‘port upgrade foo’ as usually works, but potentially unsafe (in a way that can be fixed by running ‘port upgrade outdated’ after ‘port upgrade foo’ has completed).

Daniel J. Luke                                                                   
| *---------------- dluke at ----------------* |                          
| *-------------- -------------* |                          
|   Opinions expressed are mine and do not necessarily   |                          
|          reflect the opinions of my employer.          |                          

More information about the macports-users mailing list