This list (probably non-exhaustive) tries to track software that handles .deb files directly, and their level of support for the deb format.
Some of these should ideally be switched to use one of the existing libraries or modules that implement deb support, so that whenever there's a change in the format we don't need to hunt and modify a ton of packages. Others handle .deb files directly only as a fallback whenever dpkg-deb is not available, which makes them somewhat more resilient to format changes.
The current support is much better than it used to be, but there is still much software to fix, and part of the blame goes to dpkg for not providing better interfaces for others to use, hopefully that will be remedied soon. Here's a list of interfaces to start with, that might help:
- dpkg-deb --ctrl-tarfile option (since dpkg 1.17.14).
- dpkg-deb --fsys-tarfile option.
Support table
Sorted somewhat by position on the stack and/or order of importance. Missing support information includes: R/W, tar formats, validation.
Software |
fallback raw |
ar/tar LFS |
ar member slash |
ar _ members |
ar extra members |
control.tar |
control.tar.xz |
data.tar |
data.tar.xz |
data.tar.bz2 |
data.tar.lzma |
ar + tar + compressor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Debian Archive |
|
|
|
|
|
|
|
|
|
|
|
Ubuntu Archive |
|
|
|
|
|
|
|
|
|
|
|
Legend
- fallback raw: Fallback to direct raw archive access only if dpkg-deb is missing.
- ar/tar LFS: ar members or tar file entries larger than 4 GiB.
- ar member slash: ar member names with trailing slash, as produced by GNU ar.
- ar _ members: ar members prefixed with _ before control.tar or data.tar members are ignored if unknown.
- ar extra members: ar members appended at the end of the archive are ignored.
Reference implementation.
Information needed, unknown support status.
Supported.
Missing or broken support.
Partial support.
Partial support; lacks support in fallback code using ar.
Optional or deprecated features unsupported.
Implemented but will emit an autoreject tag until dak is ready (1)