fix workflow to fetch libsecp256k1.so
Some checks failed
Go / build-and-release (push) Has been cancelled
Some checks failed
Go / build-and-release (push) Has been cancelled
This commit is contained in:
@@ -33,10 +33,11 @@ if [[ ! -x "$BENCHMARK_BIN" ]]; then
|
||||
echo "Building benchmark binary (pure Go + purego)..."
|
||||
cd "$REPO_ROOT/cmd/benchmark"
|
||||
CGO_ENABLED=0 go build -o "$BENCHMARK_BIN" .
|
||||
# Copy libsecp256k1.so if available (runtime optional)
|
||||
if [[ -f "$REPO_ROOT/pkg/crypto/p8k/libsecp256k1.so" ]]; then
|
||||
cp "$REPO_ROOT/pkg/crypto/p8k/libsecp256k1.so" "$(dirname "$BENCHMARK_BIN")/"
|
||||
fi
|
||||
# Download libsecp256k1.so from nostr repository (runtime optional)
|
||||
wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so \
|
||||
-O "$(dirname "$BENCHMARK_BIN")/libsecp256k1.so" 2>/dev/null || \
|
||||
echo "Warning: Failed to download libsecp256k1.so (optional for performance)"
|
||||
chmod +x "$(dirname "$BENCHMARK_BIN")/libsecp256k1.so" 2>/dev/null || true
|
||||
cd "$REPO_ROOT"
|
||||
fi
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ NC='\033[0m' # No Color
|
||||
# Configuration
|
||||
VERSION=$(cat pkg/version/version)
|
||||
OUTPUT_DIR="$REPO_ROOT/build"
|
||||
LIB_SOURCE="$REPO_ROOT/pkg/crypto/p8k"
|
||||
NOSTR_REPO_BASE_URL="https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k"
|
||||
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}ORLY Multi-Platform Build Script${NC}"
|
||||
@@ -53,30 +53,38 @@ build_platform() {
|
||||
|
||||
echo -e "${GREEN}✓ Built: ${output_name}${NC}"
|
||||
|
||||
# Copy appropriate runtime library
|
||||
# Download appropriate runtime library from nostr repository
|
||||
case "$goos" in
|
||||
linux)
|
||||
if [ -f "${LIB_SOURCE}/libsecp256k1.so" ]; then
|
||||
cp "${LIB_SOURCE}/libsecp256k1.so" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
|
||||
echo -e "${GREEN} ✓ Copied libsecp256k1.so (runtime optional)${NC}"
|
||||
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.so" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"; then
|
||||
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
|
||||
echo -e "${GREEN} ✓ Downloaded libsecp256k1.so (runtime optional)${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.so (runtime optional)${NC}"
|
||||
fi
|
||||
;;
|
||||
darwin)
|
||||
if [ -f "${LIB_SOURCE}/libsecp256k1.dylib" ]; then
|
||||
cp "${LIB_SOURCE}/libsecp256k1.dylib" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dylib"
|
||||
echo -e "${GREEN} ✓ Copied libsecp256k1.dylib (runtime optional)${NC}"
|
||||
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.dylib" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dylib"; then
|
||||
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dylib"
|
||||
echo -e "${GREEN} ✓ Downloaded libsecp256k1.dylib (runtime optional)${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.dylib (runtime optional)${NC}"
|
||||
fi
|
||||
;;
|
||||
windows)
|
||||
if [ -f "${LIB_SOURCE}/libsecp256k1.dll" ]; then
|
||||
cp "${LIB_SOURCE}/libsecp256k1.dll" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dll"
|
||||
echo -e "${GREEN} ✓ Copied libsecp256k1.dll (runtime optional)${NC}"
|
||||
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.dll" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dll"; then
|
||||
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dll"
|
||||
echo -e "${GREEN} ✓ Downloaded libsecp256k1.dll (runtime optional)${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.dll (runtime optional)${NC}"
|
||||
fi
|
||||
;;
|
||||
android)
|
||||
if [ -f "${LIB_SOURCE}/libsecp256k1.so" ]; then
|
||||
cp "${LIB_SOURCE}/libsecp256k1.so" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
|
||||
echo -e "${GREEN} ✓ Copied libsecp256k1.so (runtime optional)${NC}"
|
||||
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.so" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"; then
|
||||
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
|
||||
echo -e "${GREEN} ✓ Downloaded libsecp256k1.so (runtime optional)${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.so (runtime optional)${NC}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -197,10 +197,13 @@ build_application() {
|
||||
log_info "Building binary in current directory (pure Go + purego)..."
|
||||
CGO_ENABLED=0 go build -o "$BINARY_NAME"
|
||||
|
||||
# Copy libsecp256k1.so next to the binary (optional, for runtime performance)
|
||||
if [[ -f "pkg/crypto/p8k/libsecp256k1.so" ]]; then
|
||||
cp pkg/crypto/p8k/libsecp256k1.so .
|
||||
log_info "Copied libsecp256k1.so next to binary (runtime optional)"
|
||||
# Download libsecp256k1.so from nostr repository (optional, for runtime performance)
|
||||
log_info "Downloading libsecp256k1.so from nostr repository..."
|
||||
if wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so -O libsecp256k1.so; then
|
||||
chmod +x libsecp256k1.so
|
||||
log_success "Downloaded libsecp256k1.so successfully (runtime optional)"
|
||||
else
|
||||
log_warning "Failed to download libsecp256k1.so - relay will still work but may have slower crypto"
|
||||
fi
|
||||
|
||||
if [[ -f "./$BINARY_NAME" ]]; then
|
||||
|
||||
@@ -2,7 +2,16 @@
|
||||
# Pure Go build with purego - no CGO needed
|
||||
# libsecp256k1 is loaded dynamically at runtime if available
|
||||
export CGO_ENABLED=0
|
||||
if [ -f "pkg/crypto/p8k/libsecp256k1.so" ]; then
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)/pkg/crypto/p8k"
|
||||
|
||||
# Download libsecp256k1.so from nostr repository if not present
|
||||
if [ ! -f "libsecp256k1.so" ]; then
|
||||
wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so -O libsecp256k1.so 2>/dev/null || true
|
||||
chmod +x libsecp256k1.so 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Set LD_LIBRARY_PATH if library is available
|
||||
if [ -f "libsecp256k1.so" ]; then
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)"
|
||||
fi
|
||||
|
||||
go test -v ./... -bench=. -run=xxx -benchmem
|
||||
@@ -2,8 +2,19 @@
|
||||
# Pure Go build with purego - no CGO needed
|
||||
# libsecp256k1 is loaded dynamically at runtime if available
|
||||
export CGO_ENABLED=0
|
||||
if [ -f "pkg/crypto/p8k/libsecp256k1.so" ]; then
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)/pkg/crypto/p8k"
|
||||
|
||||
# Download libsecp256k1.so from nostr repository if not present
|
||||
if [ ! -f "libsecp256k1.so" ]; then
|
||||
echo "Downloading libsecp256k1.so from nostr repository..."
|
||||
wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so -O libsecp256k1.so || {
|
||||
echo "Warning: Failed to download libsecp256k1.so - tests may fail"
|
||||
}
|
||||
chmod +x libsecp256k1.so 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Set LD_LIBRARY_PATH to include current directory
|
||||
if [ -f "libsecp256k1.so" ]; then
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)"
|
||||
fi
|
||||
|
||||
go mod tidy
|
||||
|
||||
Reference in New Issue
Block a user