Replies: 7 comments 11 replies
-
One way, I think, is to introduce a special distro-wide obsoleter package. Example from Fedora: https://src.fedoraproject.org/rpms/fedora-obsolete-packages. This assumes that the maintainers of the retired packages update this obsoleter package manually, though. |
Beta Was this translation helpful? Give feedback.
-
A package installed on the system has its dependencies satisfied, by definition. The only way to change its dependencies is to run an rpm transaction. Such a transaction will fail if it can't satisfy the dependencies of an already installed package.
Assuming "not available" as in "not available in the repositories", this question is then irrelevant to rpm as it doesn't deal with repositories and so can't know that. If "not available" in the current rpm transaction, then that transaction will simply fail due to |
Beta Was this translation helpful? Give feedback.
-
I think your question therefore belongs to the DNF layer. In fact, |
Beta Was this translation helpful? Give feedback.
-
What rpm could help with is to e.g. optionally remove a package whose dependencies can't be satisfied in a given transaction. Basically, an analogy to |
Beta Was this translation helpful? Give feedback.
-
What the fedora-obsolete-packages can do is to remove such package immediately. But that is not strictly needed. It is needed only when the ABI is broken. I would like to have something like:
or:
Something like "soft obsolete", which would keep the package around as long as it is not objectively broken, no matter what is in repository (because repository is not the thing for RPM). |
Beta Was this translation helpful? Give feedback.
-
I've said it before and I will repeated it here. Dnf should gain an option to allow erasing packages iff they are no longer available in the repos. Dnf system upgarde should default to this option (at least for Fedora-provided repos). That way, we can stop manually tracking each retired package in artificial fedora-obsoletes-packages and we would not have to invent a way to "soft obsolete" packages. They would be automatically erased when they are removed from the distro AND no longer installable due to missing deps. |
Beta Was this translation helpful? Give feedback.
-
We agree that at some point, it is good idea to forcefully remove some package from a system. We know how to remove the package from the system, when it is removed from repository using e.g. fedora-obsolete-packages. The method could certainly be improved, but it works. But the assertion was: "So since Fedora wants to preserve installed packages on system upgrade, even if they are not available in the new release, straight obsoleting is not the correct action. And if a package needs to be obsoleted is not necessarily known at orphaning or retirement time." I see two options to help with this situation.
In any case, the purpose of this discussion is to focus on (1), i.e. is there something what RPM could do to help remove broken packages at the right moment? Because it is simply not surprise that e.g. |
Beta Was this translation helpful? Give feedback.
-
Lets have some package installed on a system, which is already removed from the repository. This package might work just fine as long as their dependencies are satisfied. But after the dependencies change, the package needs to be removed. Is there a way to obsolete package under such condition?
The specific example could be this:
As long as the
libruby.so.3.2()(64bit)
is available, the rubygem-byebug-11.1.3-5.fc39.x86_64 package works fine. But is there a way to remove it from a system once thelibruby.so.3.2()(64bit)
is not available anymore?This ticket is the background for my question.
Beta Was this translation helpful? Give feedback.
All reactions