-
Notifications
You must be signed in to change notification settings - Fork 281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pkg upgrade + reverse dep package deletion due to dep change + solver error #1457
Comments
|
I have more info on this, this is what happens: One package in the transition is actually a "downgrade", which is ignored when trying to resolve the conflict. Since it isn't considered for upgrade in the resolver pass, the former library gets a higher priority than the latter library, causing pkg to deinstall all reverse dependencies that it cannot upgrade cleanly due to the downgrade ignore. |
|
should have been fixed since |
|
@bapt are downgrades handled nowadays if necessary? that was the largest issue as far as I remember, also on pkg-ugrade -f where the remote has a downgrade. I know, not exactly FreeBSD scope but the behaviour used to be relatively inconsistent. |
|
ah sorry I mis read the original one, no downgrades are still not considered, tbh I don't really know how to handle such case, and I can see no precedence in other package manager. |
|
ok, we don't have the offending combo anymore (OpenSSL vs. LibreSSL) -- if this pops back up I may write a more detailed analysis. |
Hi,
We've seen this in OPNsense a couple of times and I think I have the means to reproduce this with
a repo setup for further analysis. For now, let me explain what happens.
A library dependency changes, which forces a package reinstall for all top packages. In our case it's about OpenSSL/LibreSSL, and the top package deinstalled is not a direct dependency of said SSL library.
During upgrade pkg deinstalls the offending reverse dependencies, then goes into a solver run and decides not to upgrade due to an error and exits.
Unfortunately, this leaves a broken system with packages having been deinstalled instead of just not doing anything for the upgrade run.
My question is this: why does pkg remove reverse dependencies before it runs the resolver to figure out it can't upgrade? Can this be fixed, or is there an implementation detail I'm missing?
Thanks,
Franco
The text was updated successfully, but these errors were encountered: