From eef07a600378d60b7d7c3ee9a440491eaf08f6d9 Mon Sep 17 00:00:00 2001 From: such-gitea Date: Tue, 3 Feb 2026 15:06:57 -0500 Subject: [PATCH] Update .gitea/workflows/build.yaml --- .gitea/workflows/build.yaml | 98 ++++++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index b13bd5e..5bb4a5a 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -1,4 +1,4 @@ -name: Build Wownero LWS (Systematic Repair) +name: Build Wownero LWS (Systematic Fix) on: push: branches: [ master, main ] @@ -7,7 +7,6 @@ on: env: NODE_TLS_REJECT_UNAUTHORIZED: '0' - # Pointing to your verified "God Build" of Core CORE_TAG: 'v0.11.4.1' jobs: @@ -22,10 +21,8 @@ jobs: steps: - name: Fix DNS run: echo "192.168.88.230 git.such.software" >> /etc/hosts - - name: Install Static System Libs run: apt-get update && apt-get install -y libc6-dev - - name: Checkout env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -53,13 +50,45 @@ jobs: - name: Normalize SDK (Targeted Fix) run: | cd /opt/wownero-sdk/lib - # Brute force copy to ensure the exact filenames CMake expects exist - find . -name "libzstd*.a" -exec cp -v {} libzstd.a \; || true - find . -name "libz*.a" -exec cp -v {} libz.a \; || true - find . -name "libhidapi*.a" -exec cp -v {} libhidapi.a \; || true + 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 - # Debug: Prove they exist - ls -l libzstd.a libz.a + echo "=== SDK CONTENTS AFTER FIX ===" + ls -1 - name: Install Modern CMake run: | @@ -141,7 +170,6 @@ jobs: rm -rf * git config --global --add safe.directory '*' git config --global url."http://oauth2:${GITHUB_TOKEN}@git.such.software:3000/Builds/RandomWOW.git".insteadOf "https://codeberg.org/wownero/RandomWOW" - git config --global url."http://oauth2:${GITHUB_TOKEN}@git.such.software:3000/Builds/wownero.git".insteadOf "https://codeberg.org/wownero/wownero.git" git clone http://oauth2:$GITHUB_TOKEN@git.such.software:3000/${{ github.repository }}.git . git submodule update --init --recursive @@ -161,9 +189,21 @@ jobs: - name: Normalize SDK run: | cd /opt/wownero-sdk/lib - find . -name "libhidapi*.a" -exec cp -v {} libhidapi.a \; || true - find . -name "libzstd*.a" -exec cp -v {} libzstd.a \; || true - find . -name "libz*.a" -exec cp -v {} libz.a \; || true + # 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 - name: Install Modern CMake run: | @@ -270,7 +310,7 @@ jobs: HEADER="external/monero/contrib/epee/include/storages/portable_storage_val_converters.h" sed -i '1i #include \n#ifdef _WIN32\nchar* strptime(const char* s, const char* f, struct tm* tm) { return 0; }\n#endif' $HEADER - # FIX ZMQ ASYNC FOR WINDOWS (CRITICAL FIX) + # FIX ZMQ ASYNC FOR WINDOWS # 1. Replace type 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 @@ -285,10 +325,22 @@ jobs: - name: Normalize SDK run: | cd /opt/wownero-sdk/lib - find . -name "libzstd*.a" -exec cp {} libzstd.a \; || true - find . -name "libz*.a" -exec cp {} libz.a \; || true - find . -name "libhidapi*.a" -exec cp {} libhidapi.a \; || true - find . -name "libiconv*.a" -exec cp {} libiconv.a \; || true + 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 echo "" > dummy.c x86_64-w64-mingw32-gcc -c dummy.c -o dummy.o @@ -345,10 +397,8 @@ 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 \ @@ -400,7 +450,7 @@ jobs: run: | perl -pi -e 's/handler_loop\s+final/handler_loop/g' src/rest_server.cpp perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt - # Nuke locale requirement for Mac + # Nuke locale requirement for Mac, since we removed it from Core builds perl -pi -e 's/locale//g' external/monero/CMakeLists.txt - name: Install CMake @@ -418,7 +468,7 @@ jobs: mkdir build && cd build SDK_DIR="$(pwd)/../wownero-sdk" - # CRITICAL: Boost_USE_STATIC_RUNTIME=OFF for Mac (using system runtime) + # CRITICAL: We set Boost_USE_STATIC_RUNTIME=OFF because our Mac artifacts use shared runtime cmake .. -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ -DBoost_USE_STATIC_RUNTIME=OFF \