Bug#700790: gtkmm-documentation: unhandled symlink to directory conversion: /usr/share/doc/PACKAGE

Michael Biebl biebl at debian.org
Sun Feb 17 16:06:25 UTC 2013


On 17.02.2013 15:26, Andreas Beckmann wrote:
> Package: gtkmm-documentation
> Version: 3.4.0-1
> Severity: serious
> User: debian-qa at lists.debian.org
> 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:
> 
>   squeeze -> wheezy
> 
> 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:
> http://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
> http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#s-unpackphase
> 
> For switching from a symlink to a directory, the *preinst* script
> should do something like this:
> 
>         DOCDIR=/usr/share/doc/@@PACKAGE@@
> 
>         if [ -L $DOCDIR ]; then
>                 rm $DOCDIR
>         fi
> 
> 
>>From the attached log (usually somewhere in the middle...):
> 
> 0m55.2s INFO: dirname part contains a symlink:
>   /usr/share/doc/gtkmm-3.0/tutorial (gtkmm-documentation) != /usr/share/doc/libgtkmm-3.0-doc/tutorial (?)
> 
> Hmm, looks like gtkmm-documentation installs something in the documentation
> directory of another package, but that has changed to a symlink inbetween ...

This symlink didn't exist in squeeze, so I'm unsure which directory was
converted to a symlink
At least /usr/share/doc/gtkmm-3.0/tutorial never existed as an actual
directory afaics, or can you be move specific from which versions of
which packages you upgraded.

Cheers,
Michael



-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 900 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20130217/918ae9bd/attachment.pgp>


More information about the pkg-gnome-maintainers mailing list