ITADN

Flaky CI Failure: openssl-sys build script fails on macOS 26 runner for musl cross-compilation targets

#3575Closedgithub-actions[bot] 创建于 2026-04-28
flaky
## Flaky CI Failure: openssl-sys build script fails on macOS 26 runner for musl cross-compilation targets **Workflow:** Cache all Nix Outputs **Failed run:** https://github.com/xmtp/libxmtp/actions/runs/25076737710 **Commit:** dec1eab31f29b50c1b8e115387e173022c71f92d **Failed jobs:** build (warp-macos-26-arm64-12x) ### Summary The `Build all flake outputs` step failed on the macOS 26 ARM runner (`warp-macos-26-arm64-12x`) because the `openssl-sys v0.9.114` build script exited with status 1 when cross-compiling for both `x86_64-unknown-linux-musl` and `aarch64-unknown-linux-musl` targets. The failure occurs in OpenSSL's `util/mkinstallvars.pl` install script, which reports an uninitialized `LIBDIR` variable. Both musl targets failed identically, cascading to fail `mls-validation-service` and `bindings-node-js-napi-*-linux-musl` derivations, which ultimately caused the top-level `devour-output.json.drv` to fail with 9 dependent failures. (On the Linux runner, there was an unrelated transient `No space left on device` failure that killed the Android target builds — that is an independent infrastructure issue.) ### Error Details ``` build (warp-macos-26-arm64-12x) Build all flake outputs cargo-package-deps-x86_64-unknown-linux-musl> error: failed to run custom build command for `openssl-sys v0.9.114` Caused by: process didn't exit successfully: `.../build/openssl-sys-c921086b11814554/build-script-main` (exit status: 1) --- stderr DEBUG: all keys: APPLINKDIR, BINDIR, CMAKECONFIGDIR, COMMENT, ENGINESDIR, INCLUDEDIR, LDLIBS, LIBDIR, MODULESDIR, PKGCONFIGDIR, PREFIX, VERSION, libdir Use of uninitialized value in concatenation (.) or string at util/mkinstallvars.pl line 55. DEBUG: LIBDIR = , libdir = => Use of uninitialized value in concatenation (.) or string at util/mkinstallvars.pl line 57. LIBDIR = No value given for CMAKECONFIGDIR No value given for PKGCONFIGDIR No value given for libdir Use of uninitialized value in concatenation (.) or string at util/mkinstallvars.pl line 72. ... Use of uninitialized value in join or string at util/mkinstallvars.pl line 157. error: Cannot build '/nix/store/lhakfyf8nx1002k3r2cci0i6r9rsw12b-cargo-package-deps-aarch64-unknown-linux-musl-1.10.0.drv'. error: Cannot build '/nix/store/isvvy88ln7l38nrkp03c6z6xr3nzk4hg-cargo-package-deps-x86_64-unknown-linux-musl-1.10.0.drv'. error: Build failed due to failed dependency ... error: Cannot build '/nix/store/y4wmj748zza5jjykafq37b5ap11lh7hl-devour-output.json.drv'. error: Build failed due to failed dependency Error: `nix build` failed; exit code: Some(1) ``` The cc invocations during the OpenSSL build use `-arch arm64 --target=arm64-apple-macosx -mmacosx-version-min=11.0` (host compilation for the build script runner). The install-phase Perl script then fails with uninitialized `LIBDIR`. ### Analysis The failure is specific to the `warp-macos-26-arm64-12x` runner (macOS 26 / Tahoe) and affects both musl cross-compilation targets (`x86_64` and `aarch64`) identically. This is not a code regression in libxmtp itself — it is a build environment issue in which the `openssl-sys` crate's source-compiled OpenSSL fails its install-phase Perl script (`mkinstallvars.pl`) on macOS 26. Root cause hypothesis: macOS 26 may ship a newer version of Perl that changes the behavior of uninitialized variable handling in `mkinstallvars.pl`, or the macOS 26 SDK changes something in the cross-compilation environment that causes OpenSSL's `LIBDIR` to be empty during the install step. The `openssl-sys` crate compiles OpenSSL from source when system headers are not present for the cross-compilation target. This is a **build/infrastructure failure** at the intersection of the macOS 26 runner environment and the Nix cross-compilation setup for musl targets. --- *Reported by [Flaky Failure Watcher](https://github.com/xmtp/libxmtp/blob/main/.github/workflows/flaky-failure-watcher.yml)*
关闭于 2026-05-01 7 条评论