Bug#814646: vlc: unhandled symlink to directory conversion: /usr/share/doc/PACKAGE, /usr/share/bug/PACKAGE

Sebastian Ramacher sramacher at debian.org
Sun Feb 14 10:35:29 UTC 2016


Control: tags -1 + moreinfo

On 2016-02-13 18:12:27, Andreas Beckmann wrote:
> Source: vlc
> Version: 2.2.2-3
> Severity: serious
> User: debian-qa at lists.debian.org
> Usertags: piuparts
> Control: affects -1 + libvlccore-dev vlc-plugin-fluidsynth vlc-plugin-jack vlc-plugin-notify vlc-plugin-samba vlc-plugin-sdl vlc-plugin-svg vlc-plugin-zvbi libvlc5 kde-runtime kde-runtime-dbg
> 
> 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:
> 
>   jessie -> sid
>   jessie -> stretch
> 
> 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...):
> 
> 1m58.5s ERROR: FAIL: silently overwrites files via directory symlinks:
>   /usr/share/bug/libvlccore-dev/control (libvlccore-dev) != /usr/share/bug/libvlccore8/control (libvlccore8)
>     /usr/share/bug/libvlccore-dev -> libvlccore8
>   /usr/share/bug/libvlccore-dev/presubj (libvlccore-dev) != /usr/share/bug/libvlccore8/presubj (libvlccore8)
>     /usr/share/bug/libvlccore-dev -> libvlccore8
>   /usr/share/doc/libvlccore-dev/NEWS.Debian.gz (libvlccore-dev) != /usr/share/doc/libvlccore8/NEWS.Debian.gz (libvlccore8)
>     /usr/share/doc/libvlccore-dev -> libvlccore8
>   /usr/share/doc/libvlccore-dev/changelog.Debian.amd64.gz (libvlccore-dev) != /usr/share/doc/libvlccore8/changelog.Debian.amd64.gz (libvlccore8)
>     /usr/share/doc/libvlccore-dev -> libvlccore8
>   /usr/share/doc/libvlccore-dev/changelog.Debian.gz (libvlccore-dev) != /usr/share/doc/libvlccore8/changelog.Debian.gz (libvlccore8)
>     /usr/share/doc/libvlccore-dev -> libvlccore8
>   /usr/share/doc/libvlccore-dev/changelog.gz (libvlccore-dev) != /usr/share/doc/libvlccore8/changelog.gz (libvlccore8)
>     /usr/share/doc/libvlccore-dev -> libvlccore8
>   /usr/share/doc/libvlccore-dev/copyright (libvlccore-dev) != /usr/share/doc/libvlccore8/copyright (libvlccore8)
>     /usr/share/doc/libvlccore-dev -> libvlccore8

debian/libvlccore-dev.maintscript already has

symlink_to_dir /usr/share/doc/libvlccore-dev /usr/share/doc/libvlccore8 2.2.2-1~

So what went wrong here?

The /usr/share/bug/libvlccore-dev part is fixed in git.

> 
> 3m6.6s ERROR: FAIL: silently overwrites files via directory symlinks:
>   /usr/share/bug/vlc-plugin-fluidsynth/control (vlc-plugin-fluidsynth) != /usr/share/bug/vlc-nox/control (vlc-nox)
>     /usr/share/bug/vlc-plugin-fluidsynth -> vlc-nox
>   /usr/share/bug/vlc-plugin-fluidsynth/presubj (vlc-plugin-fluidsynth) != /usr/share/bug/vlc-nox/presubj (vlc-nox)
>     /usr/share/bug/vlc-plugin-fluidsynth -> vlc-nox

vlc-plugin-fluidsynth and all other plugins  already have

symlink_to_dir /usr/share/bug/vlc-plugin-fluidsynth /usr/share/bug/vlc-nox 2.2.2-3~

> (similarily for all the other vlc-plugin-* packages)
> 
> 2m9.5s ERROR: FAIL: silently overwrites files via directory symlinks:
>   /usr/share/doc/libvlc5/NEWS.Debian.gz (libvlc5) != /usr/share/doc/libvlccore8/NEWS.Debian.gz (libvlccore8)
>     /usr/share/doc/libvlc5 -> libvlccore8
>   /usr/share/doc/libvlc5/changelog.Debian.gz (libvlc5) != /usr/share/doc/libvlccore8/changelog.Debian.gz (libvlccore8)
>     /usr/share/doc/libvlc5 -> libvlccore8
>   /usr/share/doc/libvlc5/changelog.gz (libvlc5) != /usr/share/doc/libvlccore8/changelog.gz (libvlccore8)
>     /usr/share/doc/libvlc5 -> libvlccore8
>   /usr/share/doc/libvlc5/copyright (libvlc5) != /usr/share/doc/libvlccore8/copyright (libvlccore8)
>     /usr/share/doc/libvlc5 -> libvlccore8

debian/libvlc5.maintscript already has

symlink_to_dir /usr/share/doc/libvlc5 /usr/share/doc/libvlccore8 2.2.2-3~

Cheers
-- 
Sebastian Ramacher
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20160214/7972ffaa/attachment.sig>


More information about the pkg-multimedia-maintainers mailing list