diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 9347578..0cde2ca 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -1,4 +1,4 @@ -name: Build Wownero LWS (Linux Static Fix) +name: Build Wownero LWS (Scorched Earth Fix) on: push: branches: [ master, main ] @@ -11,7 +11,7 @@ env: jobs: # ================================================================== - # JOB 1: LINUX NATIVE (x86_64) - Fixed librt linking + # JOB 1: LINUX NATIVE (x86_64) - librt.so Nuke Fix # ================================================================== linux-native: runs-on: ubuntu-latest @@ -23,6 +23,19 @@ jobs: 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: Force Static RT (Scorched Earth) + run: | + # 1. Find where the static lib actually lives + STATIC_RT=$(find /usr -name "librt.a" | head -n 1) + echo "Found librt.a at: $STATIC_RT" + echo "RT_PATH=$STATIC_RT" >> $GITHUB_ENV + + # 2. DELETE the dynamic .so versions so the linker HAS to choose static + # (Safe to do inside a disposable container build) + find /usr -name "librt.so*" -delete + echo "Deleted shared librt objects to force static linking." + - name: Checkout env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -66,7 +79,7 @@ jobs: mkdir build && cd build SDK_DIR="/opt/wownero-sdk" - # FIX: Explicitly point RT_LIBRARY to the static archive to prevent .so linking error + # Using the detected RT_PATH variable from the earlier step cmake .. -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ -DCMAKE_PREFIX_PATH="$SDK_DIR" \ @@ -92,7 +105,7 @@ jobs: -DZLIB_INCLUDE_DIR="$SDK_DIR/include" \ -DLIBEVENT_LIBRARY=$SDK_DIR/lib/libevent.a \ -DLIBEVENT_INCLUDE_DIR=$SDK_DIR/include \ - -DRT_LIBRARY=/usr/lib/x86_64-linux-gnu/librt.a \ + -DRT_LIBRARY=${{ env.RT_PATH }} \ -DUSE_READLINE=OFF \ -DCMAKE_EXE_LINKER_FLAGS="-static" @@ -174,6 +187,7 @@ jobs: set(CMAKE_SYSTEM_PROCESSOR ${{ matrix.proc }}) set(CMAKE_C_COMPILER ${{ matrix.target }}-gcc) set(CMAKE_CXX_COMPILER ${{ matrix.target }}-g++) + # Explicit CFLAGS set(CMAKE_C_FLAGS "-D_GNU_SOURCE -D_XOPEN_SOURCE=700" CACHE STRING "" FORCE) set(CMAKE_CXX_FLAGS "-D_GNU_SOURCE -D_XOPEN_SOURCE=700" CACHE STRING "" FORCE) @@ -282,6 +296,7 @@ jobs: find . -name "libhidapi*.a" -exec cp -n {} libhidapi.a \; || true find . -name "libiconv*.a" -exec cp -n {} libiconv.a \; || true + # FIX: Build dummy librt DIRECTLY inside the SDK folder so CMake finds it easily echo "" > dummy.c x86_64-w64-mingw32-gcc -c dummy.c -o dummy.o x86_64-w64-mingw32-ar rcs librt.a dummy.o @@ -358,7 +373,7 @@ jobs: path: release/*.zip # ================================================================== - # JOB 4: MACOS - Hardened paths + # JOB 4: MACOS # ================================================================== macos: runs-on: macos-latest @@ -406,7 +421,7 @@ jobs: mkdir build && cd build SDK_DIR="$(pwd)/../wownero-sdk" - # Added explicit library paths to avoid dynamic link errors + # Explicitly set ZSTD and ZLIB to ensure we don't accidentally link system dylibs cmake .. -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ -DBoost_USE_STATIC_RUNTIME=OFF \