diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 6c582d5..aa081ca 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -115,20 +115,21 @@ jobs: git submodule update --init --recursive # --- 1. CLEANUP --- - - name: Clean Environment + - name: Nuke Old Boost Cache run: | - # Remove build artifacts to prevent caching issues + echo "Nuking cache..." rm -rf external/monero/contrib/depends/work/build/x86_64-w64-mingw32/boost rm -rf external/monero/contrib/depends/built/x86_64-w64-mingw32/boost rm -rf external/monero/contrib/depends/work/download/boost* - # Remove the staging area - rm -rf external/monero/contrib/depends/work/stage/x86_64-w64-mingw32/boost + # Delete the patch directory to clear any "directory-as-file" errors + rm -rf external/monero/contrib/depends/packages/boost - # --- 2. UPGRADE BOOST TO 1.80 (VANILLA) --- - - name: Configure Boost 1.80.0 + # --- 2. UPGRADE BOOST (The "Zero-Byte Patch" Fix) --- + - name: Upgrade Boost Version to 1.80.0 run: | - echo "Configuring Vanilla Boost 1.80.0..." + echo "Forcing depends to use Boost 1.80.0..." BOOST_MK="external/monero/contrib/depends/packages/boost.mk" + BOOST_PATCH_DIR="external/monero/contrib/depends/packages/boost" # 1. Update Version and Hash sed -i 's/1_69_0/1_80_0/g' $BOOST_MK @@ -138,25 +139,22 @@ jobs: # 2. Add Context/Coroutine libraries sed -i 's/chrono,/chrono,context,coroutine,/g' $BOOST_MK - # 3. DISABLE ALL PATCHES (The Real Fix) - # We forcefully override the variables at the end of the file. - # This tells Make: "There are ZERO patches for this package." - echo "" >> $BOOST_MK - echo "package_patches=" >> $BOOST_MK - echo "$(package)_patches=" >> $BOOST_MK - echo "boost_patches=" >> $BOOST_MK - - # 4. REMOVE PATCH FILES (Scorched Earth) - # We delete the entire directory containing the old patch files. - # This guarantees that even if Make tries to run a patch, it can't find the old ones. - rm -rf external/monero/contrib/depends/packages/boost + # 3. MOCK ALL PATCHES + # We recreate the patch directory + mkdir -p $BOOST_PATCH_DIR - # We recreate the empty directory just to keep Make happy if it checks for existence. - mkdir -p external/monero/contrib/depends/packages/boost + # We grep the Makefile for ANY file ending in .patch and overwrite it with 0 bytes. + # This satisfies the build system ("File exists") but does nothing ("Empty content"). + grep -o '[a-zA-Z0-9._-]*\.patch' $BOOST_MK | sort | uniq | while read -r patch_file; do + echo "Zeroing out patch: $patch_file" + echo -n "" > "$BOOST_PATCH_DIR/$patch_file" + done + + # Safety net: Explicitly create this one in case grep missed it + echo -n "" > "$BOOST_PATCH_DIR/fix_aroptions.patch" - # Debug: Verify - echo "--- Tail of boost.mk ---" - tail -n 5 $BOOST_MK + # Debug: Show the empty files + ls -la $BOOST_PATCH_DIR # --- 3. BUILD DEPENDENCIES --- - name: Build Windows Dependencies