zstd is only supported for binary packages, not source packages: is this intentional?

John Scott <[email protected]> Wed, 08 Jul 2026 17:32:21 +0000
Newsgroups gmane.linux.debian.devel.dpkg.general
Message-ID <[email protected]>
--=-ufJfJN1pGL66eGJsJlBl
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,
I noticed an inconsistency that feels weird to me. Support for zstd was add=
ed to dpkg-deb for binary packages at https://git.dpkg.org/cgit/dpkg/dpkg.g=
it/diff/src/deb/main.c?id=3D2c2f7066bd8c3209762762fa6905fa567b08ca5a
You'll note there that the names of the supported compression algorithms is=
 baked into the parsing logic and help text for -Z (--compression), but thi=
s seems like duplication of code. At https://git.dpkg.org/cgit/dpkg/dpkg.gi=
t/tree/lib/dpkg/compress.c#n1345 is an array of all compression algorithms =
known to dpkg with metainformation like the user-presentable names, so it w=
ould seem this could be used for the command-line option and help text code=
.

Other commands didn't have support for zstd added, and because they don't u=
se that central roster of compression methods, they've been allowed to fall=
 out of sync. In particular dpkg-buildpackage says for -Z "Passed unchanged=
 to dpkg-source. See its manual page." and dpkg-source does not have the zs=
td support, as it wasn't added when the support for dpkg-deb was; dpkg-sour=
ce -Zzstd simply fails saying the algorithm is unknown.

The disparity is a little weird. Shouldn't zstd be allowed for source packa=
ges if dpkg is already carrying the same support for binary packages anyway=
?

Thanks,
John

--=-ufJfJN1pGL66eGJsJlBl
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----

iPsEABYKAKMWIQSiPzylvTnZ6xisfzWz9N0oYfTNugUCak6JnXIYaHR0cHM6Ly9q
b2huc2NvdHQubWUvLndlbGwta25vd24vbmkvc2hhLTI1Ni9zWUF3OTN6QUVrRkIy
RDREM1hOemRSeHEyMFBjNnByZGdtbEVWeXo0QUZRP2N0PWFwcGxpY2F0aW9uJTJG
cGdwLWtleXMSHGpzY290dEBwb3N0ZW8ubmV0AAoJELP03Shh9M26fIYA/0B9rusR
tfkeQ+2PRXFI/D7Mg3/EMZtD2hIzDhPkVX3LAP4tHHY0w1p6ygsqu6m7KQMNeWSH
UCMHNW+CXwt6eNe4AQ==
=0TiO
-----END PGP SIGNATURE-----

--=-ufJfJN1pGL66eGJsJlBl--