From 6d3c2334aa84258eaee409eb7e545eb67121a4a5 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Thu, 24 Jul 2025 15:41:50 +0200 Subject: [PATCH] rec and dnsdist: properly set up env vars env.append() appends to an existing value Should fix the error in #15896, but the reported location of cargo still might be wrong. Signed-off-by: Otto Moerbeek --- .../rust/build_dnsdist_rust_library | 2 ++ .../dnsdist-rust-lib/rust/meson.build | 15 ++++++++------- .../rec-rust-lib/rust/build_recrust | 2 ++ pdns/recursordist/rec-rust-lib/rust/meson.build | 17 +++++++++-------- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/pdns/dnsdistdist/dnsdist-rust-lib/rust/build_dnsdist_rust_library b/pdns/dnsdistdist/dnsdist-rust-lib/rust/build_dnsdist_rust_library index 6b6f4d1ffe..dee4f4df2c 100644 --- a/pdns/dnsdistdist/dnsdist-rust-lib/rust/build_dnsdist_rust_library +++ b/pdns/dnsdistdist/dnsdist-rust-lib/rust/build_dnsdist_rust_library @@ -1,5 +1,7 @@ #!/bin/sh -e +export CARGO="${CARGO:-$_defaultCARGO}" + #echo "PWD=$PWD" #echo "srcdir=$srcdir" #echo "builddir=$builddir" diff --git a/pdns/dnsdistdist/dnsdist-rust-lib/rust/meson.build b/pdns/dnsdistdist/dnsdist-rust-lib/rust/meson.build index 2559ef2b49..f60ec02321 100644 --- a/pdns/dnsdistdist/dnsdist-rust-lib/rust/meson.build +++ b/pdns/dnsdistdist/dnsdist-rust-lib/rust/meson.build @@ -4,13 +4,14 @@ infile = 'Cargo.toml' outfile = 'libdnsdist_rust.a' env = environment() -env.append('CARGO', cargo.full_path()) -env.append('SYSCONFDIR', conf.get('SYSCONFDIR')) -env.append('builddir', '.') -env.append('generatedheadersdir', meson.current_build_dir() + '/..') -env.append('srcdir', meson.current_source_dir()) -env.append('RUST_TARGET', '') -env.append('RUSTC_TARGET_ARCH', '') +env.set('_defaultCARGO', cargo.full_path()) +env.set('SYSCONFDIR', conf.get('SYSCONFDIR')) +env.set('builddir', '.') +env.set('generatedheadersdir', meson.current_build_dir() + '/..') +env.set('srcdir', meson.current_source_dir()) +# The two calls below set the env var to an empty string if it does not exist already and leave it alone otherwise +env.append('RUST_TARGET', '', separator: '') +env.append('RUSTC_TARGET_ARCH', '', separator: '') lib_dnsdist_rust = custom_target('libdnsdist_rust.a', output: [outfile, 'cxx.h'], diff --git a/pdns/recursordist/rec-rust-lib/rust/build_recrust b/pdns/recursordist/rec-rust-lib/rust/build_recrust index 965bb559ab..294f5ce711 100755 --- a/pdns/recursordist/rec-rust-lib/rust/build_recrust +++ b/pdns/recursordist/rec-rust-lib/rust/build_recrust @@ -1,5 +1,7 @@ #!/bin/sh -e +export CARGO="${CARGO:-$_defaultCARGO}" + #echo "PWD=$PWD" #echo "srcdir=$srcdir" #echo "builddir=$builddir" diff --git a/pdns/recursordist/rec-rust-lib/rust/meson.build b/pdns/recursordist/rec-rust-lib/rust/meson.build index f58afa86c5..0ca0c80a2e 100644 --- a/pdns/recursordist/rec-rust-lib/rust/meson.build +++ b/pdns/recursordist/rec-rust-lib/rust/meson.build @@ -6,14 +6,15 @@ outfile = 'librecrust.a' env = environment() -env.append('CARGO', cargo.full_path()) -env.append('SYSCONFDIR', conf.get('SYSCONFDIR').strip('"')) -env.append('NODCACHEDIRNOD', conf.get('NODCACHEDIRNOD').strip('"')) -env.append('NODCACHEDIRUDR', conf.get('NODCACHEDIRUDR').strip('"')) -env.append('builddir', '.') -env.append('srcdir', meson.current_source_dir()) -env.append('RUST_TARGET', '') -env.append('RUSTC_TARGET_ARCH', '') +env.set('_defaultCARGO', cargo.full_path()) +env.set('SYSCONFDIR', conf.get('SYSCONFDIR').strip('"')) +env.set('NODCACHEDIRNOD', conf.get('NODCACHEDIRNOD').strip('"')) +env.set('NODCACHEDIRUDR', conf.get('NODCACHEDIRUDR').strip('"')) +env.set('builddir', '.') +env.set('srcdir', meson.current_source_dir()) +# The two calls below set the env var to the empty string if it does not exist already and leave it alone otherwise +env.append('RUST_TARGET', '', separator: '') +env.append('RUSTC_TARGET_ARCH', '', separator: '') lib_recrust = custom_target('librecrust.a', output: [outfile, 'cxx.h', 'lib.rs.h', 'misc.rs.h', 'web.rs.h'], -- 2.47.2