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
Obsoleted-by: would be useful in some cases #1768
Comments
I'm not sure what problem this solves. It sounds like the actual problem is that you want |
+1 Different sonames can be packaged in packages with different names |
No. That is not the problem. The problem is that in order to support both RHEL 8.4 and RHEL 8.3, while building on RHEL 8.4 (because one should not build one's software on unsupported older releases of the distro) I have to supply a backport of a newer version of a library for RHEL 8.3 installations due to that library breaking it's ABI on RHEL 8.4. But the package that that library backport is in needs to be cleanly replaced by the distro's package when that node is upgraded to RHEL 8.4. So to be clear, my package foo-1.0 requires hwloc-2.x on RHEL 8.4. But RHEL 8.3 doesn't supply hwloc-2.x but rather hwloc-1.x (notice the SO major version is not appended to the name like, say, SUSE does). So along with foo-1.0, I need to supply hwloc2-2.x that gets installed with my foo-1.0 when being installed on a RHEL 8.3 system. Since RHEL 8.4 supplies hwloc-2.x, only foo-1.0 gets installed on it. Now when a RHEL 8.3 system that my foo-1.0 and hwloc2-2.x is installed on is upgraded to RHEL 8.4, my supplied hwloc2 should be upgraded to the distro supplied hwloc-2.x. My being able to build hwloc2 with an Obsoleted-by: hwloc > 1 would achieve this.
And this is the problem. I am not the distro vendor. I am a third-party software supplier. I cannot influence how the distro packages and can only influence how I package but am missing the tools (Obsoleted-by: hwloc > 1) needed to seemlessly integrate with the distro. I am also not going to get the distro vendor to support that older release by supplying a backport for it, so I have to do that myself. But I need to be able to do it in such a manner that it integrates with the distro seemlessly. IMHO, RPM needs to not only support the distro vendor but needs to provide the tools necessary for third-parties (i.e. non-distros) to integrate into the distro. |
No. It doesn't matter. Your package doesn't even depend on
This is the wrong attitude to solve this problem. As an ISV myself, I have had decent engagements with Red Hat on matters like this in the past. If you don't talk to them about it, they'll never even know that it's a problem.
RPM upstream is distro-agnostic, we provide all the tools, it's up to the distro to offer them or use them. |
Looks like the conclusion in 2021 was that |
An actual real world use case:
hwloc-1.x
hwloc-2.x
They are ABI incompatible. EL 8.4 also has
compat-hwloc1
which is ABI compatible withhwloc-1.x
, allowing software developed on EL 8.3 to work on 8.4.But this also means that any software developer that needs to satisfy both EL 8.3[1] and EL8.4 users needs to continue to build his software on EL 8.3 until he no longer needs to satisfy EL 8.3 users.
What would be more desirable would be to build one's software on the latest release, 8.4 in this case and with it supply a compat-hwloc2 that has an
Obsoleted-by: hwloc >= 2
. Users on 8.3 can install one's software along withcompat-hwloc2
on their 8.3 systems and be able to use software that was actually built with hwloc-2.x on an 8.4 system.What the
Obsoleted-by: hwloc >= 2
would be for is to have RPM removecompat-hwloc2
if/when the node is finally upgraded to 8.4 andhwloc-2.x
is installed.Thoughts?
[1] I don't need to be told that 8.3 is no longer supported, can have security risks, etc. I know that. That doesn't stop other people from still using it, perhaps while they wait for corporate IT departments to quality 8.4, etc.
The text was updated successfully, but these errors were encountered: