Hi! On Thu, 2014-08-21 at 11:18:46 +0200, Andreas Cadhalpun wrote: > Package: dpkg > Version: 1.17.13 > Severity: serious > Justification: makes packages uninstallable/unremovable > Affects: autoconf-archive
> the changelog for 1.17.13 contains: > * Fix dpkg-maintscript-helper symlink_to_dir to assure absolute > pathnames arguments. > > The problem is that now the following happens, if one tries to install > autoconf-archive: > > # dpkg -i autoconf-archive_20140228-1_all.deb > Selecting previously unselected package autoconf-archive. > (Reading database ... 11973 files and directories currently installed.) > Preparing to unpack autoconf-archive_20140228-1_all.deb ... > dpkg-maintscript-helper: error: original symlink target is not an absolute > path > dpkg: error processing archive autoconf-archive_20140228-1_all.deb > (--install): > subprocess new pre-installation script returned error exit status 1 > dpkg-maintscript-helper: error: original symlink target is not an absolute > path > dpkg: error while cleaning up: > subprocess new post-removal script returned error exit status 1 > Errors were encountered while processing: > autoconf-archive_20140228-1_all.deb > > It can't even be removed with normal means: > > # dpkg --purge autoconf-archive > dpkg: error processing package autoconf-archive (--purge): > package is in a very bad inconsistent state; you should > reinstall it before attempting a removal > Errors were encountered while processing: > autoconf-archive When a package contains a broken maintainer script, the way to allow again its removal is to reinstall a fixed version, as hinted in the error message, which in this case would need to be created and uploaded, but all the same. > One has to force the removal: > > # dpkg --purge --force-remove-reinstreq autoconf-archive > dpkg: warning: overriding problem because --force enabled: > dpkg: warning: package is in a very bad inconsistent state; you should > reinstall it before attempting a removal > (Reading database ... 11973 files and directories currently installed.) > Removing autoconf-archive (20140228-1) ... > > I'm not sure why dpkg-maintscript-helper was changed to fail when a > non-absolute symlink was used, but this change should not make it into > testing, unless all packages doing so have been fixed. This and any other such package (although we did a quick check over codesearch.d.o, but I guess missed this one due to the line breaks) were broken already, and not performing the symlink to dir switch anyway because the code is checking if the parameter matches the canonicalized form («readlink -f»), which it will not. This can make dpkg lose track, remove or overwrite unintended file, as they might end up installed in a (real) path that does not match with the one listed in the package metadata. I think that for this reason dpkg needs to make those break explicitly, and that having such version in testing is more valuable than trying to avoid those packages to explicitly break, instead of allowing the possibly silent breakage. I'm thus probably just going to either close or reassign this bug report to the affected package(s). Thanks, Guillem -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org