[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#578854: debian-policy: Wording about Conflicts needs to be clarified

On Fri, Apr 23, 2010 at 05:09:36PM +0200, Goswin von Brederlow wrote:
> >> Up to now, I always used "Conflicts" for explicit file conflicts and used
> >> Breaks for other subtle breakages (interface/API change). So when moving files
> >> from one package to the other I used "Conflicts: previous (<< last-version)"
> >> and "Replaces: previous (<< last-version)" on the package where the files are.

> > "Conflicts" is always right for file conflicts, and in that case should also
> > *always* be accompanied by Replaces.  The biggest problem, which the Policy
> > wording tries to address, is the use of "bare" Conflicts, for things that
> > aren't file conflicts:  in that case, a versioned conflicts is almost always
> > wrong because what you really mean to express is a versioned Breaks.  And
> > it's *that* usage of versioned Conflicts which causes the most problem for
> > the package manager.

> How about this? In 7.3 replace

>   If the breaking package also overwrites some files from the older
>   package, it should use Replaces (not Conflicts) to ensure this goes
>   smoothly.

> with

>   If the breaking package also overwrites some files from the older
>   package, it must use a "less than" versioned Conflicts (not Breaks) to
>   ensure both upgrades and downgrades go smoothly.

I'm not sure I have an informed opinion about this section, yet.  And
there's a separate bug report about this paragraph, which I think we should
use to track this questino separately.

> And in 7.4 replace

>   A Conflicts entry should almost never have an "earlier than" version
>   clause.  This would prevent dpkg from upgrading or installing the
>   package which declared such a conflict until the upgrade or removal of
>   the conflicted-with package had been completed. Instead, Breaks may be
>   used.

> with

>   A Conflicts entry should only have an "earlier than" version clause if
>   it coincides with a Replaces clause of the same package and version. A
>   Conflicts with an "earlier than" version clause without Replaces
>   clause is almost always better done as Breaks.

I think the middle sentence explaining the rationale should be retained. 
Aside from that, I think your wording is an improvement.

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: Digital signature

Reply to: