dependency doesn't upgrade so existing version of port broken

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

dependency doesn't upgrade so existing version of port broken

Lenore Horner-2
I just tried to run port upgrade outdated and a dependency of openscad (qscintilla-qt4) failed to upgrade.  I still have the previous version of that dependency listed as active and only one version of port is listed as installed and it is listed as active.  I thought the port would get upgraded after all its dependencies got upgraded so the old port which referred to the old version of the dependency should still work but it won’t even start.  I guess that means my ports are now in some mixed state where some dependencies of openscad have been upgraded but the port itself hasn’t been so the port is trying to link against something that’s now inactive.  Is there any way to go back to previous versions of everything I just upgraded other than scrolling through the terminal buffer and going through deactivate of new and activate of previous on everything in the list?

TIA,
Lenore
Reply | Threaded
Open this post in threaded view
|

Re: dependency doesn't upgrade so existing version of port broken

Ryan Schmidt-24

On Mar 10, 2018, at 18:51, Lenore Horner wrote:

> I just tried to run port upgrade outdated and a dependency of openscad (qscintilla-qt4) failed to upgrade.  I still have the previous version of that dependency listed as active and only one version of port is listed as installed and it is listed as active.  I thought the port would get upgraded after all its dependencies got upgraded so the old port which referred to the old version of the dependency should still work but it won’t even start.  I guess that means my ports are now in some mixed state where some dependencies of openscad have been upgraded but the port itself hasn’t been so the port is trying to link against something that’s now inactive.

That sounds right.

> Is there any way to go back to previous versions of everything I just upgraded other than scrolling through the terminal buffer and going through deactivate of new and activate of previous on everything in the list?

No automated way, no, unless you recorded a list of what was active before you started the upgrade.

My usual procedure when I update ports on the MacPorts build server is to selfupdate (sudo port selfupdate), uninstall inactive ports (sudo port uninstall inactive), then upgrade outdated ports (sudo port upgrade outdated). I haven't had a need to test this yet, but my hope is that if anything failed to build, or if everything seemed to succeed but then some service on the server doesn't work right, I would be able to go back to the previous working versions of everything with "sudo port activate inactive".