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

Bug#578852: debian-policy: prohibit usage of Breaks for file conflicts



"Eugene V. Lyubimkin" <jackyf@debian.org> writes:

> Package: debian-policy
> Version: 3.8.4.0
> Severity: normal
>
>>From Debian policy, paragraph 7.3:
>
> -8<-
> If the breaking package also overwrites some files from the older
> package, it should use Replaces (not Conflicts) to ensure this goes
> smoothly.
> ->8-
>
> This phrase does not fits well with the 7.4 paragraph:
>
> -8<-
> When one binary package declares a conflict with another using a
> Conflicts field, dpkg will refuse to allow them to be installed on the
> system at the same time. 
> ->8-
>
> Package with file conflicts should use Conflicts, not Breaks if they

And nowhere does it say that. This bug is about making policy say that.

> overwrite some files in another package, because they are not allowed to
> be unpacked at the same time, contrary to the Breaks case whey they are
> not allowed to be configured at the same time. Otherwise it will be able
> to lead to file overwrites in case of downgrading the "breaking"
> package.

You mean the "broken" package. The being broken and not the one doing
the breaking.

But that is a bug in dpkg. Dpkg does not check all reverse dependencies
when a package is installed. The "doing the breaking" package still
Replaces the "broken" package and there should therefore be no overwrite
conflict. It should also be impossible to configure the "broken" package
but you can also do that.

The bad effect that isn't a bug is files getting lost.

> Also, generally, this phrase makes impossible for high-level package
> manager to know if two packages, one of which breaks another, have
> conflicting files or no, which has impact of generating sequence of dpkg
> calls when dependencies is so tight that high-level package manager
> should break some dependencies temporarily. Plus, I don't see the
> rationale why Breaks+Replaces should be used instead of
> Conflicts+Replaces - with that setup upgrade also goes smoothly.

No. They can trivially see if two packages have conflicting files. There
is a Replaces entry in the package.

The rational for using breaks instead of conflicts is that it imposes a
much weaker condition on the sequencing of packages and avoids
temporarily removing (essential) packages. Something that happened in
apt and is extremly anoying, since you have to type in that long
sentence, and dangerous. It just isn't sufficient in combination with
Replaces.

MfG
        Goswin



Reply to: