retitle 592610 Clarify when Conflicts + Replaces et al are appropriate
quit

Hi Goswin,

In 2010, Goswin von Brederlow wrote:

> in May there was a discussion about the right use of Breaks or
> Conflicts as part of Bug#582423, e.g.
>   http://lists.debian.org/debian-ctte/2010/05/msg00012.html

Policy ยง7.6.2 sayeth:

| Second, Replaces allows the packaging system to resolve which package
| should be removed when there is a conflict (see Conflicting binary
| packages - Conflicts, Section 7.4).

One reading of this would be that in the presence of Conflicts,
Replaces represents a partial ordering of packages, indicating which
should be removed in case of conflict.  Seems useful enough.  One
consequence of this definition is that when A conflicts with and
replaces B, B should not conflict with and replace A in turn, since
the symmetric relationships would give no guidance in how to resolve
the conflict.

Then it continues:

| In this situation, the package declared as being replaced can be a
| virtual package, so for example, all mail transport agents (MTAs)
| would have the following fields in their control files:
|
|      Provides: mail-transport-agent
|      Conflicts: mail-transport-agent
|      Replaces: mail-transport-agent
|
| ensuring that only one MTA can be unpacked at any one time.

Here policy is recommending the same symmetrical C+R relationship it
had just seemed to imply defeats the purpose of C+R.

Responding to this confusing passage, Ian Jackson wrote[1]:

| If two packages Replaces/Conflicts/Provides the same virtual
| package you can't just "dpkg -i" to swap between them.  This is
| demonstrated in Eugene's message on the 9th of May, and the test
| case mentioned by Raphael does it.
[...]
| So which of spec or implementation is correct ?  I think the
| implementation is correct and the spec is wrong.

The thread also contains some guidance about particular use cases,
but first I guess we should resolve this question.  Should packages
A and B be allowed to ever both conflict with and replace each other?

I wouldn't mind a policy "should" forbidding mutual C+R on the grounds
that they are confusing, even though they are a widespread practice.

Thanks for filing this.  I think it got forgotten.

Hope that helps,
Jonathan

[1] https://lists.debian.org/debian-ctte/2010/05/msg00010.html


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to