Update .gitea/workflows/build.yaml
Some checks failed
Build Wownero LWS (Debug & Force) / linux-native (push) Failing after 2m10s
Build Wownero LWS (Debug & Force) / linux-cross (aarch64, /usr/aarch64-linux-gnu, aarch64-linux-gnu) (push) Failing after 3m28s
Build Wownero LWS (Debug & Force) / linux-cross (riscv64, /usr/riscv64-linux-gnu, riscv64-linux-gnu) (push) Failing after 3m18s
Build Wownero LWS (Debug & Force) / windows (push) Failing after 4m3s
Build Wownero LWS (Debug & Force) / macos (arm64, macos-arm64, aarch64-apple-darwin11) (push) Has been cancelled
Build Wownero LWS (Debug & Force) / macos (x86_64, macos-x64, x86_64-apple-darwin11) (push) Has been cancelled

This commit is contained in:
2026-02-03 19:20:24 -05:00
parent eef07a6003
commit 24a121910c

View File

@@ -1,4 +1,4 @@
name: Build Wownero LWS (Systematic Fix)
name: Build Wownero LWS (Debug & Force)
on:
push:
branches: [ master, main ]
@@ -47,48 +47,27 @@ jobs:
mkdir -p /opt/wownero-sdk
tar -xf sdk.tar.gz -C /opt/wownero-sdk
- name: Normalize SDK (Targeted Fix)
- name: Debug SDK Layout
run: |
echo "Listing SDK contents to find libzstd..."
find /opt/wownero-sdk -name "*zstd*"
find /opt/wownero-sdk -name "*libz*"
- name: Normalize SDK (Force Mode)
run: |
cd /opt/wownero-sdk/lib
echo "=== SDK CONTENTS BEFORE FIX ==="
ls -1
# 1. FIX ZLIB (Prevent ZeroMQ Overwrite!)
# Only copy if libz.a is missing. NEVER copy libzmq* to libz.a
if [ ! -f libz.a ]; then
echo "libz.a missing. Searching for safe candidate..."
# Find file starting with libz, ending in .a, NOT containing 'mq' or 'std'
CANDIDATE=$(find . -maxdepth 1 -name "libz*.a" ! -name "*zmq*" ! -name "*zstd*" | head -n 1)
if [ -n "$CANDIDATE" ]; then
cp -v "$CANDIDATE" libz.a
else
echo "WARNING: libz.a not found!"
fi
else
echo "libz.a exists. Skipping copy."
fi
# 2. FIX ZSTD
if [ ! -f libzstd.a ]; then
echo "libzstd.a missing. Searching..."
CANDIDATE=$(find . -maxdepth 1 -name "libzstd*.a" | head -n 1)
if [ -n "$CANDIDATE" ]; then
cp -v "$CANDIDATE" libzstd.a
else
echo "WARNING: libzstd.a not found! Check SDK contents."
fi
fi
# 3. FIX HIDAPI
if [ ! -f libhidapi.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libhidapi*.a" | head -n 1)
if [ -n "$CANDIDATE" ]; then
cp -v "$CANDIDATE" libhidapi.a
fi
fi
# Force copy whatever zstd static lib we have to libzstd.a
# This handles 'libzstd.a', 'libzstd_static.a', etc.
cp $(find . -name "libzstd*.a" | head -n 1) libzstd.a || echo "ZSTD COPY FAILED"
echo "=== SDK CONTENTS AFTER FIX ==="
ls -1
# Force copy libz (avoiding libzmq)
cp $(find . -name "libz.a" -o -name "libz_static.a" | head -n 1) libz.a || echo "ZLIB COPY FAILED"
# Force copy hidapi
cp $(find . -name "libhidapi*.a" | head -n 1) libhidapi.a || echo "HIDAPI COPY FAILED"
echo "State of /opt/wownero-sdk/lib:"
ls -l *.a
- name: Install Modern CMake
run: |
@@ -189,21 +168,9 @@ jobs:
- name: Normalize SDK
run: |
cd /opt/wownero-sdk/lib
# Safe Zlib copy
if [ ! -f libz.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libz*.a" ! -name "*zmq*" ! -name "*zstd*" | head -n 1)
if [ -n "$CANDIDATE" ]; then cp -v "$CANDIDATE" libz.a; fi
fi
# Safe Zstd copy
if [ ! -f libzstd.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libzstd*.a" | head -n 1)
if [ -n "$CANDIDATE" ]; then cp -v "$CANDIDATE" libzstd.a; fi
fi
# Safe HIDAPI copy
if [ ! -f libhidapi.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libhidapi*.a" | head -n 1)
if [ -n "$CANDIDATE" ]; then cp -v "$CANDIDATE" libhidapi.a; fi
fi
cp $(find . -name "libzstd*.a" | head -n 1) libzstd.a || true
cp $(find . -name "libz.a" -o -name "libz_static.a" | head -n 1) libz.a || true
cp $(find . -name "libhidapi*.a" | head -n 1) libhidapi.a || true
- name: Install Modern CMake
run: |
@@ -310,11 +277,11 @@ jobs:
HEADER="external/monero/contrib/epee/include/storages/portable_storage_val_converters.h"
sed -i '1i #include <ctime>\n#ifdef _WIN32\nchar* strptime(const char* s, const char* f, struct tm* tm) { return 0; }\n#endif' $HEADER
# FIX ZMQ ASYNC FOR WINDOWS
# 1. Replace type
# FORCE FIX ZMQ ASYNC FOR WINDOWS
# We inject the header properly this time.
# Note: We must use a separate sed command for the include to ensure it's on a new line at the top.
sed -i '1s/^/#include <boost\/asio\/windows\/stream_handle.hpp>\n/' src/net/zmq_async.h
sed -i 's/boost::asio::posix::stream_descriptor/boost::asio::windows::stream_handle/g' src/net/zmq_async.h
# 2. Inject missing header so the type is defined
sed -i '1i #ifdef _WIN32\n#include <boost/asio/windows/stream_handle.hpp>\n#endif' src/net/zmq_async.h
- name: Download SDK
run: |
@@ -325,22 +292,10 @@ jobs:
- name: Normalize SDK
run: |
cd /opt/wownero-sdk/lib
if [ ! -f libzstd.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libzstd*.a" | head -n 1)
if [ -n "$CANDIDATE" ]; then cp -v "$CANDIDATE" libzstd.a; fi
fi
if [ ! -f libz.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libz*.a" ! -name "*zmq*" ! -name "*zstd*" | head -n 1)
if [ -n "$CANDIDATE" ]; then cp -v "$CANDIDATE" libz.a; fi
fi
if [ ! -f libhidapi.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libhidapi*.a" | head -n 1)
if [ -n "$CANDIDATE" ]; then cp -v "$CANDIDATE" libhidapi.a; fi
fi
if [ ! -f libiconv.a ]; then
CANDIDATE=$(find . -maxdepth 1 -name "libiconv*.a" | head -n 1)
if [ -n "$CANDIDATE" ]; then cp -v "$CANDIDATE" libiconv.a; fi
fi
cp $(find . -name "libzstd*.a" | head -n 1) libzstd.a || true
cp $(find . -name "libz*.a" -o -name "libz_static.a" | head -n 1) libz.a || true
cp $(find . -name "libhidapi*.a" | head -n 1) libhidapi.a || true
cp $(find . -name "libiconv*.a" | head -n 1) libiconv.a || true
echo "" > dummy.c
x86_64-w64-mingw32-gcc -c dummy.c -o dummy.o
@@ -397,8 +352,10 @@ jobs:
-DHIDAPI_LIBRARY="$SDK_DIR/lib/libhidapi.a" \
-DZSTD_LIBRARY="$SDK_DIR/lib/libzstd.a" \
-DZSTD_INCLUDE_DIR="$SDK_DIR/include" \
-DLIBEVENT_LIBRARY=$SDK_DIR/lib/libevent.a \
-DLIBEVENT_INCLUDE_DIR=$SDK_DIR/include \
-DICONV_LIBRARY="$SDK_DIR/lib/libiconv.a" \
-DICONV_INCLUDE_DIR="$SDK_DIR/include" \
-DICONV_INCLUDE_DIR=$SDK_DIR/include \
-DICONV_LIBRARIES="$SDK_DIR/lib/libiconv.a" \
-DRT_LIBRARY=$SDK_DIR/lib/librt.a \
-DUSE_READLINE=OFF \