On Wed, 2017-12-06 at 15:47 +0100, Michael Schroeder wrote:
Hi Packagers,
I was asked to clarify if/when "Conflicts: otherproviders(...)" has to be used. The answer is that it should not be used at all anymore. Upstream rpm allows self-conflicts since the year 2011 (commit b9f5062c227f4a8feff83c0ee1cde2929da7cd3e), it is included in SLES-12 (rpm-4.11.2) but not SLES-11 (rpm-4.4.2.3).
So if you're not targeting SLES-11 it's safe to use a real self-conflict instead of that ugly otherproviders() workaround. The advantage is that rpm will also understand it and not just zypper/libzypp.
In this case I'd ask for rpmlint to stop complaining about self obsoletes please. And does it cover this construct: FOO.spec: Name: FOO Provides: BAZ Conflicts: BAZ BAR.spec Name: BAR Provides: BAZ Conflicts: BAZ to ensure that only either FOO OR BAR are installable? The conflicts also hits 'non package name, but also regular provides' ? That's good to know and gives a bit less to type already again... I can save my keyboard to survive a couple days longer :) cheers Dominique