[Pkg-javascript-devel] Bug#985288: Bug#985288: chai: unhandled symlink to directory conversion: /usr/share/doc/PACKAGE

Yadd yadd at debian.org
Mon Mar 15 12:49:44 GMT 2021


Le 15/03/2021 à 13:30, Andreas Beckmann a écrit :
> Package: chai
> Version: 4.2.0+ds+~4.2.14-3
> 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:
> 
>   buster -> bullseye
> 
> 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#copyright-information
> 
> 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#details-of-unpack-phase-of-installation-or-upgrade
> 
> 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.
> See dpkg-maintscript-helper(1) and dh_installdeb(1) for details.
> 
> 
> From the attached log (scroll to the bottom...):
> 
> 0m40.7s ERROR: FAIL: silently overwrites files via directory symlinks:
>   /usr/share/doc/chai/History.md.gz (chai) != /usr/share/doc/libjs-chai/History.md.gz (libjs-chai)
>     /usr/share/doc/chai -> libjs-chai
>   /usr/share/doc/chai/changelog.Debian.gz (chai) != /usr/share/doc/libjs-chai/changelog.Debian.gz (libjs-chai)
>     /usr/share/doc/chai -> libjs-chai
>   /usr/share/doc/chai/changelog.gz (chai) != /usr/share/doc/libjs-chai/changelog.gz (libjs-chai)
>     /usr/share/doc/chai -> libjs-chai
>   /usr/share/doc/chai/copyright (chai) != /usr/share/doc/libjs-chai/copyright (libjs-chai)
>     /usr/share/doc/chai -> libjs-chai

Hi,

there is already a maintscript for this:

  $ cat debian/chai.maintscript
  dir_to_symlink /usr/share/doc/chai libjs-chai 4.2.0+ds-2~

What is wrong here ?



More information about the Pkg-javascript-devel mailing list