From: Remi Gacogne Date: Thu, 25 Sep 2025 13:14:40 +0000 (+0200) Subject: dnsdist: Fix release builds by updating the locked Rust lib version X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F16324%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Fix release builds by updating the locked Rust lib version Since we are now dynamically setting the version of our internal Rust library when generating the release tarball, `cargo` needs to update the `Cargo.lock` file to reflect the new version, which is not possible if we are passing `--locked`: ``` error: the lock file /pdns/dnsdist-2.1.0-alpha0.870.master.gc64b979bc/dnsdist-rust-lib/rust/Cargo.lock needs to be updated but --locked was passed to prevent this If you want to try to generate the lock file without accessing the network, remove the --locked flag and use --offline instead. ``` This commit fixes that also updating the `Cargo.lock` file when generating the release tarball so that `cargo` no longer needs to update the `Cargo.lock`. Signed-off-by: Remi Gacogne (cherry picked from commit b99706f376d7ec0a21214e0ec31182f324082560) --- diff --git a/builder-support/dockerfiles/Dockerfile.dnsdist b/builder-support/dockerfiles/Dockerfile.dnsdist index 0c39b90afb..1cd47e2780 100644 --- a/builder-support/dockerfiles/Dockerfile.dnsdist +++ b/builder-support/dockerfiles/Dockerfile.dnsdist @@ -2,7 +2,8 @@ FROM alpine:3.21 AS dnsdist ARG BUILDER_CACHE_BUSTER= RUN apk add --no-cache gcc g++ make tar autoconf automake protobuf-dev lua-dev \ - libtool file boost-dev ragel python3 py3-yaml git libedit-dev bash meson + libtool file boost-dev ragel python3 py3-yaml git libedit-dev \ + bash meson cargo COPY . /dnsdist/ WORKDIR /dnsdist/ diff --git a/pdns/dnsdistdist/meson-dist-script.sh b/pdns/dnsdistdist/meson-dist-script.sh index d0d385c2be..2c405d6c4e 100755 --- a/pdns/dnsdistdist/meson-dist-script.sh +++ b/pdns/dnsdistdist/meson-dist-script.sh @@ -46,6 +46,16 @@ meson compile rust-lib-sources cp -vp dnsdist-rust-lib/*.cc dnsdist-rust-lib/*.hh "$MESON_PROJECT_DIST_ROOT"/dnsdist-rust-lib/ cp -vp "$MESON_SOURCE_ROOT"/dnsdist-rust-lib/rust/src/lib.rs "$MESON_PROJECT_DIST_ROOT"/dnsdist-rust-lib/rust/src/ +echo Updating the version of the Rust library to ${BUILDER_VERSION} +"$MESON_SOURCE_ROOT"/../../builder-support/helpers/update-rust-library-version.py "$MESON_PROJECT_DIST_ROOT"/dnsdist-rust-lib/rust/Cargo.toml dnsdist-rust ${BUILDER_VERSION} +# Update the version of the Rust library in Cargo.lock as well, +# This needs to be done AFTER the sources of the Rust library have been generated +# Unfortunately we cannot use --offline because for some reason cargo-update wants +# to check all dependencies even though we are telling it exactly what to update +cd "$MESON_PROJECT_DIST_ROOT"/dnsdist-rust-lib/rust/ +cargo update --verbose --precise ${BUILDER_VERSION} dnsdist-rust +cd "$MESON_PROJECT_BUILD_ROOT" + # Generate man pages meson compile man-pages cp -vp *.1 "$MESON_PROJECT_DIST_ROOT"