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

Sebastian Ramacher sramacher at debian.org
Mon Feb 15 21:56:56 UTC 2016


On 2016-02-15 04:18:02, Andreas Beckmann wrote:
> On 2016-02-14 11:35, Sebastian Ramacher wrote:
> > On 2016-02-13 18:12:27, Andreas Beckmann wrote:
> >> 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.
> 
> 
> OK, let's rerun with some more debugging enabled (DPKG_DEBUG=1 and sed on dpkg-maintscript-helper to have rm -v and mv -v)
> 
>   Preparing to unpack .../libvlccore-dev_2.2.2-3_amd64.deb ...
>   DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in preinst of libvlccore-dev
>   DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/doc/libvlccore-dev -> /usr/share/doc/libvlccore8 PACKAGE=libvlccore-dev:amd64 LASTVERSION=2.2.2-1~ ACTION=upgrade PARAM=2.2.1-1~deb8u1
>   DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in preinst of libvlccore-dev
>   DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/bug/libvlccore-dev -> /usr/share/doc/libvlccore8 PACKAGE=libvlccore-dev:amd64 LASTVERSION=2.2.2-2~ ACTION=upgrade PARAM=2.2.1-1~deb8u1
>   Unpacking libvlccore-dev (2.2.2-3) over (2.2.1-1~deb8u1) ...
>   Preparing to unpack .../libvlccore8_2.2.2-3_amd64.deb ...
>   DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in preinst of libvlccore8
>   DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/doc/libvlccore8 -> /usr/share/doc/vlc-data PACKAGE=libvlccore8:amd64 LASTVERSION=2.2.2-1~ ACTION=upgrade PARAM=2.2.1-1~deb8u1
>   '/usr/share/doc/libvlccore8' -> '/usr/share/doc/libvlccore8.dpkg-backup'
>   Unpacking libvlccore8 (2.2.2-3) over (2.2.1-1~deb8u1) ...
> 
>   Setting up libvlccore8 (2.2.2-3) ...
>   DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in postinst of libvlccore8
>   DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/doc/libvlccore8 -> /usr/share/doc/vlc-data PACKAGE=libvlccore8:amd64 LASTVERSION=2.2.2-1~ ACTION=configure PARAM=2.2.1-1~deb8u1
>   removed '/usr/share/doc/libvlccore8.dpkg-backup'
> 
>   Setting up libvlccore-dev (2.2.2-3) ...
>   DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in postinst of libvlccore-dev
>   DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/doc/libvlccore-dev -> /usr/share/doc/libvlccore8 PACKAGE=libvlccore-dev:amd64 LASTVERSION=2.2.2-1~ ACTION=configure PARAM=2.2.1-1~deb8u1
>   DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in postinst of libvlccore-dev
>   DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/bug/libvlccore-dev -> /usr/share/doc/libvlccore8 PACKAGE=libvlccore-dev:amd64 LASTVERSION=2.2.2-2~ ACTION=configure PARAM=2.2.1-1~deb8u1
> 
> 
> Looks like we have to deal with chained symlinks here:
>   /usr/share/doc/libvlccore-dev -> libvlccore8 -> vlc-data
> 
> This should work with dpkg-maintscript-helper if you use relative
> instead of absolute symlinks. "relative" means the output of
>   readlink $SYMLINK
> Absolute means the output from
>   readlink -f $SYMLINK
> must match, which cannot work while switching chained symlinks
> to directories.
> 
> Don't forget to bump the version.
> 
> So for libvlccore-dev.maintscript I'd suggest this (untested):
> 
>     symlink_to_dir /usr/share/doc/libvlccore-dev libvlccore8 2.2.2-4~
>     symlink_to_dir /usr/share/bug/libvlccore-dev libvlccore8 2.2.2-4~
> 
> Relative symlinks require dpkg 1.17.14, but you already have this
> in Pre-Depends (probably generated by debhelper).

Thanks for the analysis and for filling a bug report against dpkg-dev and asking
for clarification. This will be fixed with the next upload.

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/20160215/bac01103/attachment.sig>


More information about the pkg-multimedia-maintainers mailing list