[opensuse-factory] Please do not use otherproviders() anymore
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. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
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
On Wed, Dec 06, 2017 at 03:58:00PM +0100, Dominique Leuenberger / DimStar wrote:
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' ?
Sure, that's what convinced upstream that it should be allowed. Conflicts always match against Provides. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (2)
-
Dominique Leuenberger / DimStar
-
Michael Schroeder