From fe7bd8810723d55f1fdbd813e487528e7c0fe420 Mon Sep 17 00:00:00 2001 From: such-gitea Date: Sat, 24 Jan 2026 16:11:33 -0500 Subject: [PATCH] Update .gitea/workflows/build.yaml --- .gitea/workflows/build.yaml | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 093e2a3..549258f 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -31,20 +31,28 @@ jobs: git clone http://oauth2:$GITHUB_TOKEN@git.such.software:3000/${{ github.repository }}.git . git submodule update --init --recursive - - name: Patch Source + - name: Patch Source (Code + Werror) run: | + # 1. Remove 'final' keyword (Boost 1.90 fix) perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp + # 2. Disable ICU checks (Windows fix) perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt + # 3. Disable -Werror (Treat warnings as warnings, not failures) + perl -pi -e 's/-Werror//g' CMakeLists.txt + perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-x86_64-linux-gnu.tar.gz" - # FIX: Create directory before extracting mkdir -p /opt/wownero-sdk tar -xf sdk.tar.gz -C /opt/wownero-sdk + - name: Debug SDK Content + run: ls -R /opt/wownero-sdk/lib + - name: Fix Libraries run: | + # Alias hidapi if [ -f /opt/wownero-sdk/lib/libhidapi-libusb.a ] && [ ! -f /opt/wownero-sdk/lib/libhidapi.a ]; then cp /opt/wownero-sdk/lib/libhidapi-libusb.a /opt/wownero-sdk/lib/libhidapi.a fi @@ -111,10 +119,8 @@ jobs: include: - target: aarch64-linux-gnu proc: aarch64 - sysroot: /usr/aarch64-linux-gnu - target: riscv64-linux-gnu proc: riscv64 - sysroot: /usr/riscv64-linux-gnu steps: - name: Fix DNS run: echo "192.168.88.230 git.such.software" >> /etc/hosts @@ -132,11 +138,13 @@ jobs: run: | perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt + # IMPORTANT: Remove -Werror for cross builds too + perl -pi -e 's/-Werror//g' CMakeLists.txt + perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-${{ matrix.target }}.tar.gz" - # FIX: Create directory mkdir -p /opt/wownero-sdk tar -xf sdk.tar.gz -C /opt/wownero-sdk @@ -154,16 +162,16 @@ jobs: - name: Generate Toolchain run: | + # CROSS TOOLCHAIN - NO SYSROOT (Let compiler find libc) cat < cross.cmake set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR ${{ matrix.proc }}) set(CMAKE_C_COMPILER ${{ matrix.target }}-gcc) set(CMAKE_CXX_COMPILER ${{ matrix.target }}-g++) - set(CMAKE_SYSROOT ${{ matrix.sysroot }}) - # Look in SDK AND Sysroot. NEVER Host. - set(CMAKE_FIND_ROOT_PATH /opt/wownero-sdk ${{ matrix.sysroot }}) + set(CMAKE_FIND_ROOT_PATH /opt/wownero-sdk) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + # BOTH = Look in SDK first, then System (fixes missing libc/librt) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) @@ -174,6 +182,7 @@ jobs: mkdir build && cd build SDK_DIR="/opt/wownero-sdk" + # Explicitly provide ZLIB/ZSTD to prevent it picking up system versions cmake .. -DCMAKE_TOOLCHAIN_FILE=../cross.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ @@ -239,11 +248,12 @@ jobs: run: | perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt + perl -pi -e 's/-Werror//g' CMakeLists.txt + perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-x86_64-w64-mingw32.tar.gz" - # FIX: Create directory mkdir -p /opt/wownero-sdk tar -xf sdk.tar.gz -C /opt/wownero-sdk @@ -252,7 +262,7 @@ jobs: if [ -f /opt/wownero-sdk/lib/libhidapi-libusb.a ] && [ ! -f /opt/wownero-sdk/lib/libhidapi.a ]; then cp /opt/wownero-sdk/lib/libhidapi-libusb.a /opt/wownero-sdk/lib/libhidapi.a fi - # Dummy librt for Windows to satisfy cmake checks + # Dummy librt for Windows echo "" > dummy.c x86_64-w64-mingw32-gcc -c dummy.c -o dummy.o x86_64-w64-mingw32-ar rcs /opt/wownero-sdk/lib/librt.a dummy.o @@ -286,6 +296,7 @@ jobs: mkdir build && cd build SDK_DIR="/opt/wownero-sdk" + # Windows needs explicit ICONV cmake .. -DCMAKE_TOOLCHAIN_FILE=../cross.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ @@ -309,6 +320,8 @@ jobs: -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 \ -DRT_LIBRARY=$SDK_DIR/lib/librt.a \ -DUSE_READLINE=OFF \ -DCMAKE_EXE_LINKER_FLAGS="-static -Wl,--allow-multiple-definition" @@ -359,6 +372,8 @@ jobs: run: | perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt + perl -pi -e 's/-Werror//g' CMakeLists.txt + perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt - name: Install CMake run: brew install cmake @@ -366,7 +381,6 @@ jobs: - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-${{ matrix.target }}.tar.gz" - if [ $(stat -f%z sdk.tar.gz) -lt 1000000 ]; then exit 1; fi mkdir -p wownero-sdk tar -xf sdk.tar.gz -C wownero-sdk