Re: [PATCH] tests/docker: use stable URLs for zlib tarballs

Philippe Mathieu-Daudé <[email protected]> Tue, 4 Aug 2026 13:11:00 +0200
Newsgroups gmane.comp.emulators.qemu
Message-ID <[email protected]>
On 3/8/26 20:07, Stefan Hajnoczi wrote:
> The tarballs at https://zlib.net/zlib-X.Y.Z.tar.xz become unavailable
> when a new release is made. This breaks the emsdk-wasm64-cross.docker
> file that fetches the tarball and builds zlib from source.
> 
> There is actually an archive available with a stable URL. Use that
> instead. This does require switching from xz to gzip since xz tarballs
> are not available in the archive.
> 
> The upshot is that the emsdk-wasm64-cross Docker image build will
> continue working into the future without causing CI breakage when the
> zlib project makes a new release.
> 
> Reported-by: Michael Tokarev <[email protected]>
> Suggested-by: Daniel P. Berrangé <[email protected]>
> Reviewed-by: Daniel P. Berrangé <[email protected]>
> Signed-off-by: Stefan Hajnoczi <[email protected]>
> ---
> v2:
> - Fix "bzip2 to gzip since bzip2" typo. It should have been xz instead
>    of bzip2. [danpb]
> 
>   tests/docker/dockerfiles/emsdk-wasm64-cross.docker | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/docker/dockerfiles/emsdk-wasm64-cross.docker b/tests/docker/dockerfiles/emsdk-wasm64-cross.docker
> index c04a741b0e5..4f26ce7a269 100644
> --- a/tests/docker/dockerfiles/emsdk-wasm64-cross.docker
> +++ b/tests/docker/dockerfiles/emsdk-wasm64-cross.docker
> @@ -56,8 +56,8 @@ EOF
>   FROM build-base AS zlib-dev
>   ARG ZLIB_VERSION

Even safer would be to have a ZLIB_SHA and assert it is correct.

Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>

>   RUN mkdir -p /zlib
> -RUN curl -Ls https://zlib.net/zlib-$ZLIB_VERSION.tar.xz | \
> -    tar xJC /zlib --strip-components=1
> +RUN curl -Ls https://zlib.net/fossils/zlib-$ZLIB_VERSION.tar.gz | \
> +    tar xzC /zlib --strip-components=1
>   WORKDIR /zlib
>   RUN emconfigure ./configure --prefix=$TARGET --static
>   RUN emmake make install -j$(nproc)