* Otto Kekäläinen <otto@debian.org> [250306 19:57]:
> Salsa CI has had for many years the job 'missing-breaks' that > complements piuparts by checking that the files a package introduce > don't clash with files shipped by any other package in the > distribution without having proper Breaks/Replaces in the > `debian/control` file. This job works well, being quick to run and has > had zero false positives in our experience.
^^^^ https://binarycontrol.debian.net/?q=dpkg-divert&path=unstable%2FThis doesn't give a huge list of packages using diversions, but very high profile packages are in there. I wonder what your testing strategy was :-)
In salsa CI now I see: $ check_for_missing_breaks_replaces.py -o ${WORKING_DIR}/missing_breaks.xml --changes-file ${WORKING_DIR}/*.changes [ERROR] Missing Breaks/Replaces found [ERROR] runit-init conflicts with init-system-helpers files: {'/usr/share/man/man8/invoke-rc.d.8.gz', '/usr/sbin/service', '/usr/sbin/invoke-rc.d', '/usr/share/man/man8/service.8.gz'} Uploading artifacts for failed job this looks like false positive, file are in fact diverted. Does the test check for for diversions?No, it does not. This is now tracked at https://salsa.debian.org/salsa-ci-team/pipeline/-/issues/418 The challenge is that most of the debian/ contents is declarative, such as the file lists in debian-*.install files, while the diversions are procedural code inside maintainer scripts and challenging to automatically analyze.
Yup. dumat has a lot of code to deal with diversions. But overall it seems totally doable/reusable.
live-tools also seems to divert files from initramfs-tools, which is how I found out about this mail thread.
Best, Chris