diff --git a/.gitea/workflows/go.yml b/.gitea/workflows/go.yml index ee57ad8..caa9b8b 100644 --- a/.gitea/workflows/go.yml +++ b/.gitea/workflows/go.yml @@ -39,8 +39,8 @@ jobs: - name: Install dependencies run: | set -e - echo "Installing build dependencies..." - sudo apt-get update && sudo apt-get install -y jq autoconf automake libtool gcc-aarch64-linux-gnu + echo "Installing jq..." + sudo apt-get update && sudo apt-get install -y jq - name: Set up Go run: | @@ -105,30 +105,6 @@ jobs: # Note: libsecp256k1.so is loaded at runtime via purego, not needed for tests CGO_ENABLED=0 go test -v $(go list ./... | grep -v '/cmd/benchmark/external/' | xargs -n1 sh -c 'ls $0/*_test.go 1>/dev/null 2>&1 && echo $0' | grep .) || echo "Some tests failed, continuing..." - - name: Build libsecp256k1 - run: | - set -e - echo "Building libsecp256k1 with schnorr/musig2 support..." - cd /tmp - git clone --depth 1 https://github.com/bitcoin-core/secp256k1.git - cd secp256k1 - ./autogen.sh - - # Build for AMD64 - echo "Building for AMD64..." - ./configure --enable-module-schnorrsig --enable-module-extrakeys - make clean && make -j$(nproc) - cp .libs/libsecp256k1.so.2.2.3 /tmp/libsecp256k1-amd64.so - - # Build for ARM64 (cross-compile) - echo "Building for ARM64..." - ./configure --enable-module-schnorrsig --enable-module-extrakeys \ - --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc - make clean && make -j$(nproc) - cp .libs/libsecp256k1.so.2.2.3 /tmp/libsecp256k1-arm64.so - - ls -la /tmp/libsecp256k1-*.so - - name: Build Release Binaries run: | set -e @@ -173,10 +149,14 @@ jobs: go build -ldflags "-s -w" -o "release-binaries/${name}-${VERSION}-linux-arm64" "${path}" done - # Copy libsecp256k1.so (built with schnorr/musig2 support) - cp /tmp/libsecp256k1-amd64.so release-binaries/libsecp256k1-linux-amd64.so - cp /tmp/libsecp256k1-arm64.so release-binaries/libsecp256k1-linux-arm64.so - chmod +x release-binaries/libsecp256k1-linux-*.so + # Copy libsecp256k1.so from nostr module (has schnorr/musig2) + NOSTR_MOD=$(go list -m -f '{{.Dir}}' git.mleku.dev/mleku/nostr) + if [ -f "${NOSTR_MOD}/crypto/p8k/libsecp256k1.so" ]; then + cp "${NOSTR_MOD}/crypto/p8k/libsecp256k1.so" release-binaries/libsecp256k1-linux-amd64.so + chmod +x release-binaries/libsecp256k1-linux-amd64.so + echo "Copied libsecp256k1.so for AMD64" + fi + # Note: ARM64 users need to build libsecp256k1 from source # Create checksums cd release-binaries @@ -239,7 +219,7 @@ jobs: * orly-launcher - Process supervisor with admin UI * orly-sync-negentropy - Negentropy sync service * orly-certs - DNS-01 wildcard certificate manager - * libsecp256k1 - Custom build with schnorr/musig2 support + * libsecp256k1 - AMD64 only, with schnorr/musig2 support ### Architectures * Linux AMD64 (x86_64)