Draft: Fallback to dpkg-deb on deb decompression failures
Whenever new compression algorithms are accepted in deb packages (e.g., #892664),python-debian will need to implement handlers for those. This may lead to temporary breakage for some use cases.
Moreover, the new compression algorithm may not be supported in python standard libraries, therefore, not being supported by tarfile, which is currently used to decompress the DebParts.
This patch introduces a decompression fallback in DebFile, which will try to use dpkg-deb (when available) to decompress the parts in the ar archive that would fail to decompress with tarfile. This should prevent some (but not all) debian-python use cases from breaking whenever new compression algorithms (not supported by tarfile) are introduced into dpkg.
Note that this MR was motivated by the introduction of the zstd compression format in Ubuntu, which led to breakage in some of the python-debian features. If interested, you can check [1] for further reference and the downstream discussion that led to the proposed implementation.