From f22bc1ff0c311253d14d4f54241e63b7d768a18c Mon Sep 17 00:00:00 2001 From: Felipe Chagas Date: Mon, 6 Jul 2026 16:56:24 -0300 Subject: [PATCH] fix(ci): rebuild vendored OpenSSL for aarch64 in build-linux-arm64 The 4.7.0 release failed: build-linux-arm64's `make build-linux` links the vendored deps/openssl/linux, which is a precompiled x86_64 OpenSSL, so on arm64 the final link fails ("libssl.a ... file in wrong format", EM: 62). That failed job blocked the package/release jobs, so 4.7.0 was never published to Artifactory. Rebuild OpenSSL 1.1.1q for linux-aarch64 into deps/openssl/linux (install perl in the builder for OpenSSL's Configure) before `make build-linux`. Verified end-to-end in the same ubuntu:20.04 arm64 builder image: produces an aarch64 libpitaya-linux.so with 0 errors. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/build-and-release.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml index cfd7c8ba..778c8b3a 100644 --- a/.github/workflows/build-and-release.yaml +++ b/.github/workflows/build-and-release.yaml @@ -175,7 +175,21 @@ jobs: run: docker build -t builder . - name: Build linux arm64 lib from version supported in Dockerfile - run: docker run --rm --workdir /project --env MSBUILD --env CONTENTS_DIR --env UNITY_PATH -v ${PWD}:/project builder:latest /bin/bash -c "make build-linux" + # The vendored deps/openssl/linux is a precompiled x86_64 OpenSSL, so on + # arm64 the final link fails ("libssl.a ... file in wrong format"). Rebuild + # OpenSSL 1.1.1q for linux-aarch64 into deps/openssl/linux before building. + run: | + docker run --rm --workdir /project --env MSBUILD --env CONTENTS_DIR --env UNITY_PATH -v ${PWD}:/project builder:latest /bin/bash -c ' + set -e + apt-get update && apt-get install -y perl + tar xzf deps/openssl-1.1.1q.tar.gz -C /tmp + cd /tmp/openssl-1.1.1q + ./Configure linux-aarch64 --prefix=/project/deps/openssl/linux + make -j"$(nproc)" + make install_sw + cd /project + make build-linux + ' - name: Upload binary artifact uses: actions/upload-artifact@v4