[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-freedink] Bug#860114: freedink-engine-dbg: unhandled symlink to dir
From: |
beuc |
Subject: |
[Bug-freedink] Bug#860114: freedink-engine-dbg: unhandled symlink to directory conversion: /usr/share/doc/PACKAGE |
Date: |
Tue, 11 Apr 2017 18:56:24 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
Hi,
I don't understand, I used symlink_to_dir and tested it locally
without issue.
What is wrong?
Cheers!
Sylvain
On Tue, Apr 11, 2017 at 05:17:21PM +0200, Andreas Beckmann wrote:
> Package: freedink-engine-dbg
> Version: 108.4+dfsg-2
> Severity: serious
> User: address@hidden
> Usertags: piuparts
>
> Hi,
>
> an upgrade test with piuparts revealed that your package installs files
> over existing symlinks and possibly overwrites files owned by other
> packages. This usually means an old version of the package shipped a
> symlink but that was later replaced by a real (and non-empty)
> directory. This kind of overwriting another package's files cannot be
> detected by dpkg.
>
> This was observed on the following upgrade paths:
>
> stretch -> sid
>
> For /usr/share/doc/PACKAGE this may not be problematic as long as both
> packages are installed, ship byte-for-byte identical files and are
> upgraded in lockstep. But once one of the involved packages gets
> removed, the other one will lose its documentation files, too,
> including the copyright file, which is a violation of Policy 12.5:
> https://www.debian.org/doc/debian-policy/ch-docs.html#s-copyrightfile
>
> For other overwritten locations anything interesting may happen.
>
> Note that dpkg intentionally does not replace directories with symlinks
> and vice versa, you need the maintainer scripts to do this.
> See in particular the end of point 4 in
> https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#s-unpackphase
>
> It is recommended to use the dpkg-maintscript-helper commands
> 'dir_to_symlink' and 'symlink_to_dir' (available since dpkg 1.17.14)
> to perform the conversion, ideally using d/$PACKAGE.maintscript.
> Do not forget to add 'Pre-Depends: ${misc:Pre-Depends}' in d/control.
> See dpkg-maintscript-helper(1) and dh_installdeb(1) for details.
>
>
> >From the attached log (usually somewhere in the middle...):
>
> 0m35.7s ERROR: FAIL: silently overwrites files via directory symlinks:
> /usr/share/doc/freedink-engine-dbg/changelog.Debian.gz
> (freedink-engine-dbg) != /usr/share/doc/freedink-engine/changelog.Debian.gz
> (freedink-engine)
> /usr/share/doc/freedink-engine-dbg -> freedink-engine
> /usr/share/doc/freedink-engine-dbg/changelog.gz (freedink-engine-dbg) !=
> /usr/share/doc/freedink-engine/changelog.gz (freedink-engine)
> /usr/share/doc/freedink-engine-dbg -> freedink-engine
> /usr/share/doc/freedink-engine-dbg/copyright (freedink-engine-dbg) !=
> /usr/share/doc/freedink-engine/copyright (freedink-engine)
> /usr/share/doc/freedink-engine-dbg -> freedink-engine
>
>
> cheers,
>
> Andreas