[opensuse-packaging] Obsoleting even though not strictly compatible?
Hi, Recently I got a bug report [1] and I'm not sure if and what I should do about it. Background is that we have llvm (including subpackages) in multiple versions in the distributions, because major releases come out about twice a year and we're not in a situation where all dependencies work (or claim to work) with the same major version. So there is for example llvm7, llvm8, llvm9, llvm10. Additionally we have a metapackage llvm that just requires the newest versioned package, in this case llvm10, and doesn't contain any files itself. Now some of the subpackages can coexist, but others cannot, most notably the -devel packages. So if you happen to have llvm-devel installed (which currently requires llvm10-devel), you will soon get a conflict on zypper dup: the new llvm-devel = 11.0.0 will require llvm11-devel, but that conflicts with the existing llvm10-devel. Now there is nothing I can do about the conflict, but I could make llvm-devel = 11.0.0 obsolete llvm10-devel (and older versions), which would supposedly let me update without conflicts (haven't tested it yet because OBS is letting me wait). The idea behind putting the Obsoletes on the metapackage instead of the versioned package is that users can either install a versioned package llvmX-devel that stays with them or llvm-devel which allows them to have whatever the current version is. However, rpmlint complains:
<package>: W: obsolete-not-provided <obsoleted-package> If a package is obsoleted by a compatible replacement, the obsoleted package should also be provided in order to not cause unnecessary dependency breakage. If the obsoleting package is not a compatible replacement for the old one, leave out the Provides.
Indeed I don't intend to add a Provides, because the packages are in general not fully compatible. Can I ignore rpmlint here or is this a bad idea for some reason that I'm overlooking? Best regards, Aaron [1] https://bugzilla.opensuse.org/show_bug.cgi?id=1175983 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tuesday 2020-10-20 23:53, Aaron Puchert wrote:
Recently I got a bug report [1] and I'm not sure if and what I should do about it. Background is that we have llvm (including subpackages) in multiple versions in the distributions, because major releases come out about twice a year and we're not in a situation where all dependencies work (or claim to work) with the same major version.
So there is for example llvm7, llvm8, llvm9, llvm10. Additionally we have a metapackage llvm that just requires the newest versioned package, in this case llvm10, and doesn't contain any files itself. Now some of the subpackages can coexist, but others cannot, most notably the -devel packages. So if you happen to have llvm-devel installed (which currently requires llvm10-devel), you will soon get a conflict on zypper dup: the new llvm-devel = 11.0.0 will require llvm11-devel, but that conflicts with the existing llvm10-devel.
Unless you model llvm like gcc where libstdc++6-devel-gcc10 can coexist with libstdc++6-devel-gcc11, the conflict-on-dup is desirable because you wouldn't want to force an autoresolution on the user in this matter. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (2)
-
Aaron Puchert
-
Jan Engelhardt