Comment 0 for bug 1926437

Revision history for this message
Julian Andres Klode (juliank) wrote :

[Impact]
APT in xenial needs to learn about zstd support to enable Launchpad to work with zstd packages.

python-apt in all releases needs to be adjusted to pass the compressor names instead of programs to ExtractTar, as otherwise, if /usr/bin/zstd does not exist, it will pass "false" as the compressor, and then ExtractTar fails (same for other compressors).

[Test plan]
The apt regression tests cover the compression methods extensively, including even stored compressed lists in /var/lib/apt and fetching Packages files compressed with such methods, for all compression methods.

The final test is to make apt_inst.DebFile("glibc-doc-reference_2.33-0ubuntu2~zstd1_all.deb").control.extractall() from 1923845 work in python3-apt.

[Where problems could occur]

APT:

The changes to APT are adding the zstd compression backend to FileFd and then linking it into the configuration. The former is adding new code, triggered only on zstd files, and should not be able to cause regressions.

The latter is a bunch of small lines here and there, and it caused issues during backporting in the test suite because it expected compressors in a specific order. However, chances are that nothing else has as stringent requirements as the test suite, so I don't believe that is a problem for existing users.

Bugs can of course be in the code dealing with zstd, and that might open you up to security vulnerabilities in the zstd code if you pass APT zstd compressed files.

A regression can be if clients used apt-helper cat-file to cat a zstd-compressed file ending in .zst - they'll now get uncompressed content, rather than compressed.

python-apt:

The change just replaces Binary with Name, aligning the code with APT itself, so it's so trivial, we don't expect regressions.