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 |
ar/tar LFS |
tar large meta |
ar members |
control.tar compressed |
data.tar compressed |
||||||||
end-/ |
_ |
extra |
no |
xz |
zst |
no |
xz |
zst |
bz2 |
lzma |
||||
ar + tar + compressor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Debian Archive |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ubuntu Archive |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Legend
- fallback: 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.
- tar large meta: tar entries with base-256 encoded fields to support very large (unlimited) UID, GID, device ID, size, or very large and negative timestamps.
- ar members end-/: 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 members extra: ar members appended at the end of the archive are ignored.
Reference implementation.
Information needed, unknown support status.
Supported.
Support not needed or not used.
Missing or broken support.
Partial support.
Partial support; lacks support in fallback code using ar.
Support depending on the tar implementation used, for example libtar does not support base256 encoded fields.
Optional or deprecated features unsupported.