upgrades fail after leopard update

Ryan Schmidt ryandesign at macports.org
Fri Jun 13 16:21:11 PDT 2008


On Jun 13, 2008, at 16:27, Alan Batie wrote:

> Ryan Schmidt wrote:
>
>> MacPorts just has no way to know. That's why it's an excellent  
>> suggestion to add the OS version, Xcode version and processor  
>> architecture to the unique identifier to try to make it truly unique.
>
> We're in violent agreement ;-)  I was thinking of this future,  
> sorry about that...
>
>> You never want "port upgrade installed"; you want "port upgrade  
>> outdated", if anything. "port upgrade" does not upgrade ports that  
>> are not outdated, so saying "port upgrade installed" just wastes  
>> time evaluating ports that won't get upgraded.
>
> makes sense
>
>> Just having a newer version of Xcode should not trigger a port to  
>> show up in "port outdated", though once we start storing  
>> information about Xcode version and such with each installed port,  
>> there could be an optional more-pedantic "outdated" which could  
>> list this.
>
> perhaps a "port rebuild outdated", where "outdated" in this case  
> refers to the environment rather than the port version?

"outdated" is a "pseudo-port", which MacPorts expands into a list of  
ports. MacPorts cannot expand "outdated" to mean one set of ports in  
one circumstance and a different set of ports in a different  
circumstance. The list of "outdated" ports is always the same,  
regardless what port command you issue.

> I'm assuming "port upgrade outdated" would eliminate the issue in  
> the cases where the port *does* have a newer version.

Not in the case where the port you're wanting to upgrade already has  
e.g. the +darwin_8 variant selected. In that case, MacPorts will  
currently add the +darwin_9 variant (if the port has one) but not  
remove the +darwin_8 variant. MacPorts should be enhanced to remove  
the +darwin_8 variant in this case.

>> If you want to go back to the old version, you can deactivate the  
>> new version and (re)activate the old one.
>
> Ahhh, cool.
>
>> You already have that, for individual ports. To rebuild port foo  
>> even if port doesn't think it needs to be rebuilt:
>> sudo port -ncuf upgrade foo
>
> Also cool.  Though this is going to fetch the latest version, which  
> may not be what you want.

Correct.

> Perhaps if you specified the existing version as the "upgrade"?

Not possible. MacPorts has no built-in way to install an older  
version once a portfile has been updated. Instructions for getting an  
older version are in the How To's:

http://trac.macports.org/wiki/howto/InstallingOlderPort

>> installed and activated dovecot @1.0.13_0+darwin_8 and deactivated  
>> (but left installed) dovecot @1.0.0_0+darwin_8.
>
>> Then you asked for dovecot to be installed, and because the set of  
>> variants MacPorts decided to use (only +darwin_9) differed from  
>> what was already installed, it built it again, and installed (but  
>> couldn't activate because of the other version already active)
>
> I'm confused why it could activate the new version the first time  
> and not the second?

In one instance, I think you said "port upgrade", which means  
"install the new version, then deactivate the currently-active  
version, then activate the new version." In the other case, I think  
you said "port install", which means "install the new version and  
activate it". Only one port can be active at a time, so "port  
install" had an error when attempting to activate.




More information about the macports-users mailing list