Package: libowfat-dietlibc-dev
Version: 0.28-3
Severity: serious
User: trei...@debian.org
Usertags: edos-file-overwrite

Architecture: amd64
Distribution: squeeze->wheezy (partial) upgrade

Hi,

automatic installation tests of packages that share a file and at the
same time do not conflict by their package dependency relationships has
detected the following problem:

  Selecting previously deselected package dietlibc-dev.
  (Reading database ... 6286 files and directories currently installed.)
  Unpacking dietlibc-dev (from .../dietlibc-dev_0.32-5.1_amd64.deb) ...
  Selecting previously deselected package libowfat-dev.
  Unpacking libowfat-dev (from .../libowfat-dev_0.28-2_amd64.deb) ...
  Setting up dietlibc-dev (0.32-5.1) ...
  Setting up libowfat-dev (0.28-2) ...

  Selecting previously deselected package libowfat-dietlibc-dev.
  (Reading database ... 6978 files and directories currently installed.)
  Unpacking libowfat-dietlibc-dev (from 
.../libowfat-dietlibc-dev_0.28-5_amd64.deb) ...
  dpkg: error processing 
/var/cache/apt/archives/libowfat-dietlibc-dev_0.28-5_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/diet/lib/libowfat.a', which is also in package 
libowfat-dev 0.28-2


This is a serious bug as it makes installation/upgrade fail, and
violates sections 7.6.1 and 10.1 of the policy.

As this problem can be demonstrated during partial upgrades from squeeze
to wheezy (but not within squeeze or wheezy itself), this indicates a
missing or insufficiently versioned Replaces+Breaks relationship.
But since this particular upgrade ordering is not forbidden by any
dependency relationship, it is possible that apt (or $PACKAGE_MANAGER)
will use this erroneus path on squeeze->wheezy upgrades.

Here is a list of files that are known to be shared by both packages
(according to the Contents files for squeeze and wheezy on amd64, which
may be slightly out of sync):

        usr/include/diet/CAS.h
        usr/include/diet/array.h
        usr/include/diet/buffer.h
        usr/include/diet/byte.h
        usr/include/diet/case.h
        usr/include/diet/cdb.h
        usr/include/diet/cdb_make.h
        usr/include/diet/dns.h
        usr/include/diet/errmsg.h
        usr/include/diet/errmsg_int.h
        usr/include/diet/fmt.h
        usr/include/diet/havealloca.h
        usr/include/diet/havebsdsf.h
        usr/include/diet/havedevpoll.h
        usr/include/diet/haveepoll.h
        usr/include/diet/haveinline.h
        usr/include/diet/haveip6.h
        usr/include/diet/havekqueue.h
        usr/include/diet/haven2i.h
        usr/include/diet/havescope.h
        usr/include/diet/havesendfile.h
        usr/include/diet/havesigio.h
        usr/include/diet/havesl.h
        usr/include/diet/iarray.h
        usr/include/diet/io.h
        usr/include/diet/io_internal.h
        usr/include/diet/iob.h
        usr/include/diet/iob_internal.h
        usr/include/diet/iopause.h
        usr/include/diet/ip4.h
        usr/include/diet/ip6.h
        usr/include/diet/likely.h
        usr/include/diet/mmap.h
        usr/include/diet/ndelay.h
        usr/include/diet/open.h
        usr/include/diet/openreadclose.h
        usr/include/diet/rangecheck.h
        usr/include/diet/readclose.h
        usr/include/diet/safemult.h
        usr/include/diet/scan.h
        usr/include/diet/select.h
        usr/include/diet/socket.h
        usr/include/diet/str.h
        usr/include/diet/stralloc.h
        usr/include/diet/tai.h
        usr/include/diet/taia.h
        usr/include/diet/textcode.h
        usr/include/diet/uint16.h
        usr/include/diet/uint32.h
        usr/include/diet/uint64.h
        usr/include/diet/va_narg.h
        usr/include/diet/windoze.h
        usr/lib/diet/lib/libowfat.a

The dietlibc parts were moved to a separate package recently:

  libowfat (0.28-3) unstable; urgency=low 
   * Build two flavors of libowfat, one linked against glibc, the other
     against dietlibc. (Closes: #461150)


The following relationships are currently defined:

  Package:   libowfat-dietlibc-dev
  Conflicts: libdjbdns1-dev
  Breaks:    n/a
  Replaces:  n/a

The following relationships should be added for a clean takeover of
these files
(http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces):

  Package:  libowfat-dietlibc-dev
  Breaks:   libowfat-dev (<< 0.28-3)
  Replaces: libowfat-dev (<< 0.28-3)


Cheers,

Andreas

PS: for more information about the detection of file overwrite errors
of this kind see http://edos.debian.net/file-overwrites/.

Attachment: libowfat-dev=0.28-2_libowfat-dietlibc-dev=0.28-5.log.gz
Description: GNU Zip compressed data

Reply via email to