Package: dpkg
Version: 1.13.24
Severity: important

When a newer version of a package replaces a directory with a symbolic
link, dpkg fails to do the replacement and instead leaves behind an
empty directory.  I've listed this bug as "important" because an
important common case: /usr/share/doc directories being replaced by
symbolic links.  (See bug 404631 for background.)

This is easy to reproduce.  One way to do it is to install
libtiff-tools_3.7.2-2 (the sarge version) and the update it to
libtiff-tools_3.8.2-6 (the etch version).  Another way is to follow
the steps from the attached minimal package.  In version 1.0,
/usr/share/minimal/dir is a directory.  In version 1.1, it is a
symbolic link.

cd dpkg-link-bug/1.0/minimal
debuild -b -us -uc
cd ../../1.1/minimal
debuild -b -us -uc
cd ../..
sudo dpkg -i 1.0/minimal_1.0_all.deb
# observe that /usr/share/minimal/dir is a directory
sudo dpkg -i 1.1/minimal_1.1_all.deb
# observe that /usr/share/minimal/dir is still a directory
sudo dpkg -P minimal
sudo dpkg -i 1.1/minimal_1.1_all.deb
# now observe that /usr/share/minimal/dir is a symbolic link.

dpkg-link-bug.tar.gz is attached.

-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-2-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages dpkg depends on:
ii  coreutils                    5.97-5.2    The GNU core utilities
ii  libc6                        2.3.6.ds1-8 GNU C Library: Shared libraries

dpkg recommends no packages.

-- no debconf information

Attachment: dpkg-link-bug.tar.gz
Description: Binary data

Reply via email to