Skip to content

IPE data compression

Finley McIlwaine requested to merge wip/ipe-data-compression into master

This is a squashed version of the fixed IPE data compression patch. See !9893 (closed). The previous patch caused the nightly debian 10 bindist to fail to install in this ghcup CI job. This was due to the nightly debian 10 CI job being mistakenly changed to configure with --enable-ipe-data-compression. The resulting bindist then expected libzstd to be installed, which we obviously do not want.

The only change to the CI jobs present in this patch is a new debian 10 validate job which runs only when the IPE label is set. This patch also fixes incompatible pointer type warnings that were coming from the changes in IPE.c from the original patches.

This patch also requires that libzstd version 1.4.0 or greater is installed to enable IPE data compression. This is because the IPE data decompression logic uses ZSTD_findFrameCompressedSize which was only made stable in v1.4.0 of libzstd, meaning it is not available in earlier versions unless specifically configured to be available for static linking. The debian 10 image on CI currently uses libzstd-dev v1.3.8, so the function is not available and there are warnings about implicit declarations. The tests still passed somehow, but this should be fixed now that we require version 1.4.0 or greater.

I've created a corresponding MR in the ci-images repo that installs a compatible libzstd version from source on the x86_64-linux-deb10 image. This MR is marked as a draft until that MR is approved and DOCKER_REV can be updated.

Merge request reports