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

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



Package: debian-policy
Version: 3.8.4.0
Severity: normal

I stumbled upon policy 7.4:
> 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. 

Looking at this sentence it comes mostly unchanged from the original packaging
manual (commit ff1bec10):
-         A <tt>Conflicts</tt> entry should almost never have an
-         `earlier than' version clause.  This would prevent
-         <prgn>dpkg</prgn> from upgrading or installing the package
-         which declared such a conflict until the upgrade or removal
-         of the conflicted-with package had been completed.  This
-         aspect of installation ordering is not handled by
-         <prgn>dselect</prgn>, so that the use <tt>Conflicts</tt> in
-         this way is likely to cause problems for `bulk run' upgrades
-         and installations.

I think using an earlier than clause is perfectly ok nowadays and it's possibly
the right thing to do when moving files around between packages. That dselect
limitation might have been the reason for this statement but I think it's entirely
outdated now.

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.

We need to:
1/ fix that statement IMO
2/ document clearly whether versioned Breaks+Replaces or versioned
   Conflicts+Replaces ought to be used when moving files around.

Cheers,
-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (150, 'experimental')
Architecture: i386 (x86_64)

Kernel: Linux 2.6.32-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

debian-policy depends on no packages.

debian-policy recommends no packages.

Versions of packages debian-policy suggests:
ii  doc-base                      0.9.5      utilities to manage online documen

-- no debconf information



Reply to: