I think the main problem with the unminimize script in jammy and later is that dpkg 1.21 changed the way it reports missing files: instead of reporting a checksum failure (..5......) it explicitly says "missing" since https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=963087 was implemented, breaking the unminimize logic entirely, as demonstrated by /usr/share/doc/libprocps8/NEWS.Debian.gz still being missing at the end of
$ docker run --rm -it ubuntu:jammy sh -c 'yes | unminimize; dpkg --verify libprocps8'
This affects all packages having anything besides their copyright and changelog under /usr/share/doc but having no man pages nor localization.
The above also explains why unminimize uses different logic for different files: the changelog and copyright files are always kept around, while manuals and localization files are excluded entirely.
The ugly but harmless errors from dpkg -S could be avoided by simply using the --no-run-if-empty option of xargs.
xargs should automatically take care of not exceeding the argument length limit of the system, so I assume the comment mentioning that is stale.
I think the main problem with the unminimize script in jammy and later is that dpkg 1.21 changed the way it reports missing files: instead of reporting a checksum failure (..5......) it explicitly says "missing" since https:/ /bugs.debian. org/cgi- bin/bugreport. cgi?bug= 963087 was implemented, breaking the unminimize logic entirely, as demonstrated by /usr/share/ doc/libprocps8/ NEWS.Debian. gz still being missing at the end of
$ docker run --rm -it ubuntu:jammy sh -c 'yes | unminimize; dpkg --verify libprocps8'
This affects all packages having anything besides their copyright and changelog under /usr/share/doc but having no man pages nor localization.
The above also explains why unminimize uses different logic for different files: the changelog and copyright files are always kept around, while manuals and localization files are excluded entirely.
The ugly but harmless errors from dpkg -S could be avoided by simply using the --no-run-if-empty option of xargs.
xargs should automatically take care of not exceeding the argument length limit of the system, so I assume the comment mentioning that is stale.