Recently I got a bug report  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
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?
To unsubscribe, e-mail: opensuse-packaging+unsubscribe(a)opensuse.org
To contact the owner, e-mail: opensuse-packaging+owner(a)opensuse.org