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