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...@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 ?