This is an automated email from the ASF dual-hosted git repository.
hgruszecki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new a48878712 fix(ci): fix hwloc build for musl targets in release
workflow (#2486)
a48878712 is described below
commit a48878712abeed2a1727abc44cc52f63a10d0e91
Author: Hubert Gruszecki <[email protected]>
AuthorDate: Mon Dec 15 12:05:29 2025 +0100
fix(ci): fix hwloc build for musl targets in release workflow (#2486)
- Add PKG_CONFIG_ALLOW_CROSS and PKG_CONFIG_ALL_STATIC
vars for musl builds (matches pre-merge action configuration)
- Fix Dockerfile syntax error
- Add libhwloc15 runtime dependency to Dockerfile
---
.github/workflows/_build_rust_artifacts.yml | 7 +++++++
Cargo.lock | 14 +++++++-------
DEPENDENCIES.md | 6 +++---
Dockerfile | 3 ++-
core/server/src/configs/validators.rs | 6 +++---
5 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/.github/workflows/_build_rust_artifacts.yml
b/.github/workflows/_build_rust_artifacts.yml
index b131c25da..f5b3c5006 100644
--- a/.github/workflows/_build_rust_artifacts.yml
+++ b/.github/workflows/_build_rust_artifacts.yml
@@ -119,6 +119,13 @@ jobs:
bin_flags+=(--bin "$name")
done
+ # musl builds: allow pkg-config to work in cross-compilation mode
+ # (needed for hwlocality-sys vendored build)
+ if [[ "${{ matrix.libc }}" == "musl" ]]; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_ALL_STATIC=1
+ fi
+
# aarch64 musl: disable GCC outline atomics to avoid undefined
__aarch64_ldadd4_sync
# references when linking dbus-sys (required by keyring crate)
if [[ "${{ matrix.target }}" == "aarch64-unknown-linux-musl" ]]; then
diff --git a/Cargo.lock b/Cargo.lock
index 351efd920..65920a8ad 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1494,9 +1494,9 @@ dependencies = [
[[package]]
name = "camino"
-version = "1.2.1"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609"
+checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
dependencies = [
"serde_core",
]
@@ -1762,9 +1762,9 @@ dependencies = [
[[package]]
name = "compio-buf"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0aa3ebe7f9830a33aa801a223411c8dc011c3271cd5beed56284c86d227bc32e"
+checksum = "5ebb4036bf394915196c09362e4fd5581ee8bf0f3302ab598bff9d646aea2061"
dependencies = [
"arrayvec",
"bytes",
@@ -4094,7 +4094,7 @@ checksum =
"f50d4312588681f6d07e6009728bf5c777e1f674d43a3ad91d15f6795a0db965"
dependencies = [
"arrayvec",
"bitflags 2.10.0",
- "derive_more 2.1.0",
+ "derive_more",
"errno",
"hwlocality-sys",
"libc",
@@ -4105,9 +4105,9 @@ dependencies = [
[[package]]
name = "hwlocality-sys"
-version = "0.6.1"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98f0a5f1ab804ba087ef715ce5cd4feaab6222a2ef6b3e9d5ae1536e90393728"
+checksum = "6d55ff554bde432473a6d17dc219a2d7fedc1be12d1e150418526f666dc9d096"
dependencies = [
"autotools",
"cmake",
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md
index 1ba074063..e967141dd 100644
--- a/DEPENDENCIES.md
+++ b/DEPENDENCIES.md
@@ -125,7 +125,7 @@ byteorder: 1.5.0, "MIT OR Unlicense",
bytes: 1.11.0, "MIT",
bytestring: 1.5.0, "Apache-2.0 OR MIT",
bzip2: 0.6.1, "Apache-2.0 OR MIT",
-camino: 1.2.1, "Apache-2.0 OR MIT",
+camino: 1.2.2, "Apache-2.0 OR MIT",
cargo-platform: 0.1.9, "Apache-2.0 OR MIT",
cargo-platform: 0.3.2, "Apache-2.0 OR MIT",
cargo_metadata: 0.19.2, "MIT",
@@ -151,7 +151,7 @@ colored: 3.0.0, "MPL-2.0",
combine: 4.6.7, "MIT",
comfy-table: 7.2.1, "MIT",
compio: 0.17.0, "MIT",
-compio-buf: 0.7.1, "MIT",
+compio-buf: 0.7.2, "MIT",
compio-driver: 0.10.0, "MIT",
compio-fs: 0.10.0, "MIT",
compio-io: 0.8.4, "MIT",
@@ -369,7 +369,7 @@ httpdate: 1.0.3, "Apache-2.0 OR MIT",
human-repr: 1.1.0, "MIT",
humantime: 2.3.0, "Apache-2.0 OR MIT",
hwlocality: 1.0.0-alpha.11, "MIT",
-hwlocality-sys: 0.6.1, "MIT",
+hwlocality-sys: 0.6.4, "MIT",
hyper: 1.8.1, "MIT",
hyper-named-pipe: 0.1.0, "Apache-2.0",
hyper-rustls: 0.27.7, "Apache-2.0 OR ISC OR MIT",
diff --git a/Dockerfile b/Dockerfile
index f4ad3304b..d70decfb4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -25,7 +25,7 @@ RUN apt-get update && apt-get install -y \
pkg-config \
libssl-dev \
libhwloc-dev \
- libudev-dev
+ libudev-dev \
&& rm -rf /var/lib/apt/lists/*
COPY . .
RUN cargo build --bin iggy --release
@@ -35,6 +35,7 @@ FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y \
ca-certificates \
liblzma5 \
+ libhwloc15 \
&& rm -rf /var/lib/apt/lists/*
COPY ./core/configs ./configs
COPY --from=builder /build/target/release/iggy .
diff --git a/core/server/src/configs/validators.rs
b/core/server/src/configs/validators.rs
index 77e792023..657b62d54 100644
--- a/core/server/src/configs/validators.rs
+++ b/core/server/src/configs/validators.rs
@@ -325,12 +325,12 @@ impl Validatable<ConfigurationError> for ShardingConfig {
CpuAllocation::NumaAware(numa_config) => match
NumaTopology::detect() {
// TODO: dry the validation, already validate it from the
shard allocation
Ok(topology) => numa_config.validate(&topology).map_err(|e| {
- eprintln!("Invalid NUMA configuration: {}", e);
+ error!("Invalid NUMA configuration: {}", e);
ConfigurationError::InvalidConfigurationValue
}),
Err(e) => {
- eprintln!("Failed to detect NUMA topology: {}", e);
- eprintln!("NUMA allocation requested but system doesn't
support it");
+ error!("Failed to detect NUMA topology: {}", e);
+ error!("NUMA allocation requested but system doesn't
support it");
Err(ConfigurationError::InvalidConfigurationValue)
}
},