* Otto Kekäläinen <o...@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%2F

This 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

Reply via email to