diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index ac28601..416fd9f 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -1,4 +1,4 @@ -name: Build Wownero LWS (Windows Admin Rescue) +name: Build Wownero LWS (Mac Non-Recursive) on: push: branches: [ master, main ] @@ -11,7 +11,7 @@ env: jobs: # ================================================================== - # JOB 1: LINUX NATIVE (x86_64) - UNTOUCHED (GREEN) + # JOB 1: LINUX NATIVE (x86_64) - WORKING # ================================================================== linux-native: runs-on: ubuntu-latest @@ -104,7 +104,7 @@ jobs: path: release/*.tar.gz # ================================================================== - # JOB 2: LINUX CROSS (ARM64 / RISCV64) - UNTOUCHED (GREEN) + # JOB 2: LINUX CROSS (ARM64 / RISCV64) - WORKING # ================================================================== linux-cross: runs-on: ubuntu-latest @@ -240,126 +240,14 @@ jobs: path: release/*.tar.gz # ================================================================== - # JOB 3: WINDOWS - ADMIN RESCUE (Header Patch) + # JOB 3: WINDOWS - COMMENTED OUT # ================================================================== - windows: - runs-on: ubuntu-latest - container: - image: wownero-builder-base:latest - options: --user root - steps: - - name: Fix DNS - run: echo "192.168.88.230 git.such.software" >> /etc/hosts - - name: Manual Checkout - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - rm -rf * - git init - 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 remote add origin http://oauth2:${GITHUB_TOKEN}@git.such.software:3000/${{ github.repository }}.git - git fetch origin ${{ github.sha }} - git checkout ${{ github.sha }} - git submodule update --init --recursive - - name: Patch Source - 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 - perl -pi -e 's/find_library\(ICONV/# find_library(ICONV/g' external/monero/CMakeLists.txt - perl -pi -e 's/-Werror//g' CMakeLists.txt - perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt - sed -i '1i #include \n#ifdef _WIN32\nchar* strptime(const char* s, const char* f, struct tm* tm) { return 0; }\n#endif' external/monero/contrib/epee/include/storages/portable_storage_val_converters.h - - # 1. HEADER PATCH: Inject dummy 'adescriptor' so code compiles - sed -i '1i #ifdef _WIN32\nstruct dummy_sock { void async_wait(int, int) {} void cancel() {} void cancel(int) {} };\nnamespace boost { namespace asio { namespace posix { typedef dummy_sock stream_descriptor; } } }\n#endif' src/net/zmq_async.h - - # 2. SOURCE PATCH: Comment out incompatible calls in zmq_async.cpp - sed -i 's/.*async_wait.*//g' src/net/zmq_async.h - - - 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" - mkdir -p /opt/wownero-sdk - tar -xf sdk.tar.gz -C /opt/wownero-sdk - - name: Normalize SDK - run: | - cd /opt/wownero-sdk/lib - find . -name "libzstd*.a" -exec cp -n {} libzstd.a \; || true - find . -name "libz*.a" ! -name "*zmq*" -exec cp -n {} libz.a \; || true - find . -name "libhidapi*.a" -exec cp -n {} libhidapi.a \; || true - find . -name "libiconv*.a" -exec cp -n {} libiconv.a \; || true - echo "" > dummy.c - x86_64-w64-mingw32-gcc -c dummy.c -o dummy.o - x86_64-w64-mingw32-ar rcs librt.a dummy.o - - name: Install Modern CMake - run: | - curl -L -o cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.28.1/cmake-3.28.1-linux-x86_64.tar.gz - tar -xf cmake.tar.gz - echo "$(pwd)/cmake-3.28.1-linux-x86_64/bin" >> $GITHUB_PATH - - name: Generate Toolchain - run: | - cat < cross.cmake - set(CMAKE_SYSTEM_NAME Windows) - set(CMAKE_SYSTEM_PROCESSOR x86_64) - set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) - set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) - set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) - set(CMAKE_C_FLAGS "-D_WIN32 -DWIN32 -D_WIN32_WINNT=0x0601" CACHE STRING "" FORCE) - set(CMAKE_CXX_FLAGS "-D_WIN32 -DWIN32 -D_WIN32_WINNT=0x0601" CACHE STRING "" FORCE) - set(CMAKE_FIND_ROOT_PATH /opt/wownero-sdk) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) - EOF - - name: Build - run: | - mkdir build && cd build - SDK_DIR="/opt/wownero-sdk" - cmake .. -DCMAKE_TOOLCHAIN_FILE=../cross.cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_STATIC=ON \ - -DCMAKE_PREFIX_PATH="$SDK_DIR" \ - -DBOOST_ROOT="$SDK_DIR" \ - -DBoost_NO_SYSTEM_PATHS=ON \ - -DBoost_NO_BOOST_CMAKE=ON \ - -DBoost_USE_STATIC_RUNTIME=ON \ - -DOPENSSL_ROOT_DIR="$SDK_DIR" \ - -DOPENSSL_USE_STATIC_LIBS=TRUE \ - -DUNBOUND_INCLUDE_DIR="$SDK_DIR/include" \ - -DUNBOUND_LIBRARY="$SDK_DIR/lib/libunbound.a" \ - -DZMQ_INCLUDE_DIR="$SDK_DIR/include" \ - -DZMQ_LIBRARY="$SDK_DIR/lib/libzmq.a" \ - -DSodium_INCLUDE_DIR="$SDK_DIR/include" \ - -DSodium_LIBRARY_RELEASE="$SDK_DIR/lib/libsodium.a" \ - -DLIBUSB_INCLUDE_DIR="$SDK_DIR/include" \ - -DLIBUSB_LIBRARY="$SDK_DIR/lib/libusb-1.0.a" \ - -DHIDAPI_INCLUDE_DIR="$SDK_DIR/include" \ - -DHIDAPI_LIBRARY="$SDK_DIR/lib/libhidapi.a" \ - -DZSTD_LIBRARY="$SDK_DIR/lib/libzstd.a" \ - -DZSTD_INCLUDE_DIR="$SDK_DIR/include" \ - -DICONV_LIBRARY="$SDK_DIR/lib/libiconv.a" \ - -DICONV_INCLUDE_DIR="$SDK_DIR/include" \ - -DICONV_LIBRARIES="$SDK_DIR/lib/libiconv.a" \ - -DRT_LIBRARY=$SDK_DIR/lib/librt.a \ - -DUSE_READLINE=OFF \ - -DCMAKE_EXE_LINKER_FLAGS="-static -Wl,--allow-multiple-definition -L$SDK_DIR/lib" - make -j$(nproc) - - name: Package - run: | - mkdir release - zip -j release/wownero-lws-x86_64-w64-mingw32.zip build/src/wownero-lws-daemon.exe build/src/wownero-lws-admin.exe - - name: Upload - uses: actions/upload-artifact@v3 - with: - name: wownero-lws-x86_64-w64-mingw32 - path: release/*.zip + # windows: + # runs-on: ubuntu-latest + # ... # ================================================================== - # JOB 4: MACOS - UNTOUCHED (Manual Checkout) + # JOB 4: MACOS - NON-RECURSIVE CLONE # ================================================================== macos: runs-on: macos-latest @@ -376,7 +264,7 @@ jobs: arch: arm64 platform: macos-arm64 steps: - - name: Manual Checkout + - name: Manual Checkout (Non-Recursive) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | @@ -387,7 +275,11 @@ jobs: git remote add origin http://oauth2:${GITHUB_TOKEN}@git.such.software:3000/${{ github.repository }}.git git fetch origin ${{ github.sha }} git checkout ${{ github.sha }} - git submodule update --init --recursive + + # FIX: Only update the main submodule (Wownero Core), not its children (MiniUPnP, etc) + # This avoids connecting to GitHub.com + git submodule update --init + - name: Patch Source run: | perl -pi -e 's/handler_loop\s+final/handler_loop/g' src/rest_server.cpp @@ -435,4 +327,4 @@ jobs: run: | mkdir release zip -j release/wownero-lws-${{ matrix.platform }}.zip build/src/wownero-lws-daemon build/src/wownero-lws-admin - # Upload disabled to avoid network crash. \ No newline at end of file + # Upload disabled. \ No newline at end of file