From 46e6812e5c0c0448586dbbfecc9d750eca18704c Mon Sep 17 00:00:00 2001 From: such-gitea Date: Thu, 5 Feb 2026 13:24:35 -0500 Subject: [PATCH] Update .gitea/workflows/build.yaml --- .gitea/workflows/build.yaml | 80 +++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 88a0cf0f1..a1f58da78 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -1,4 +1,4 @@ -name: Build Wownero Core (Python Fix) +name: Build Wownero Core (External Zlib/Zstd) on: push: branches: [ master, main ] @@ -52,78 +52,72 @@ jobs: tar -xf cmake.tar.gz echo "$(pwd)/cmake-3.28.1-linux-x86_64/bin" >> $GITHUB_PATH - # ----------------------------------------------------- - # PYTHON INJECTION: Guarantees Correct Tabs in Makefiles - # ----------------------------------------------------- - - name: Inject Makefiles (Python Safe Mode) + - name: Patch Boost Only (Avoid Corrupting Depends) run: | - python3 -c " - import os + # 1. Ensure we are starting clean + cd contrib/depends + git checkout packages/packages.mk packages/boost.mk funcs.mk - # 1. Update packages.mk safely - with open('contrib/depends/packages/packages.mk', 'w') as f: - f.write('packages := libiconv boost openssl expat libusb hidapi protobuf sodium zeromq unbound\n') - - # 2. Write boost.mk with explicit tabs - boost_content = r'''package=boost + # 2. Update Boost to 1.90 (Minimal Safe Injection) + # We use a temp file to avoid sed quoting hell + cat <<'EOF' > packages/boost.mk + package=boost $(package)_version=1.90.0 $(package)_download_path=https://archives.boost.io/release/$($(package)_version)/source/ $(package)_file_name=$(package)_$(subst .,_,$($(package)_version)).tar.bz2 $(package)_sha256_hash=49551aff3b22cbc5c5a9ed3dbc92f0e23ea50a0f7325b0d198b705e8ee3fc305 $(package)_dependencies=libiconv define $(package)_set_vars - \t$(package)_config_opts_release=variant=release - \t$(package)_config_opts_debug=variant=debug - \t$(package)_config_opts+=--layout=system --user-config=user-config.jam - \t$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1 - \t$(package)_config_opts_linux=threadapi=pthread runtime-link=static - \t$(package)_config_opts_darwin=target-os=darwin runtime-link=shared - \t$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static - \t$(package)_config_opts_x86_64_mingw32=address-model=64 - \t$(package)_config_opts_i686_mingw32=address-model=32 - \t$(package)_config_opts_i686_linux=address-model=32 architecture=x86 - \t$(package)_config_opts_x86_64_darwin=address-model=64 - \t$(package)_config_opts_aarch64_darwin=address-model=64 architecture=arm binary-format=mach-o abi=aapcs - \t$(package)_toolset_$(host_os)=gcc - \t$(package)_archiver_$(host_os)=$($(package)_ar) - \t$(package)_toolset_darwin=darwin - \t$(package)_archiver_darwin=$($(package)_libtool) - \t$(package)_config_libraries=atomic,chrono,date_time,filesystem,program_options,regex,serialization,system,thread,locale,context,coroutine - \t$(package)_cxxflags=-std=c++17 -fPIC + $(package)_config_opts_release=variant=release + $(package)_config_opts_debug=variant=debug + $(package)_config_opts+=--layout=system --user-config=user-config.jam + $(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1 + $(package)_config_opts_linux=threadapi=pthread runtime-link=static + $(package)_config_opts_darwin=target-os=darwin runtime-link=shared + $(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static + $(package)_config_opts_x86_64_mingw32=address-model=64 + $(package)_config_opts_i686_mingw32=address-model=32 + $(package)_config_opts_i686_linux=address-model=32 architecture=x86 + $(package)_config_opts_x86_64_darwin=address-model=64 + $(package)_config_opts_aarch64_darwin=address-model=64 architecture=arm binary-format=mach-o abi=aapcs + $(package)_toolset_$(host_os)=gcc + $(package)_archiver_$(host_os)=$($(package)_ar) + $(package)_toolset_darwin=darwin + $(package)_archiver_darwin=$($(package)_libtool) + $(package)_config_libraries=atomic,chrono,date_time,filesystem,program_options,regex,serialization,system,thread,locale,context,coroutine + $(package)_cxxflags=-std=c++17 -fPIC endef define $(package)_preprocess_cmds - \techo \"using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : \\\"$($(package)_cxxflags) $($(package)_cppflags)\\\" \\\"$($(package)_ldflags)\\\" \\\"$(boost_archiver_$(host_os))\\\" \\\"$($(package)_arflags)\\\" \\\"$(host_STRIP)\\\" \\\"$(host_RANLIB)\\\" \\\"$(host_WINDRES)\\\" : ;\" > user-config.jam + echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : \"$($(package)_cxxflags) $($(package)_cppflags)\" \"$($(package)_ldflags)\" \"$(boost_archiver_$(host_os))\" \"$($(package)_arflags)\" \"$(host_STRIP)\" \"$(host_RANLIB)\" \"$(host_WINDRES)\" : ;" > user-config.jam endef define $(package)_config_cmds - \t./bootstrap.sh --without-icu --with-libraries=$(boost_config_libraries) + ./bootstrap.sh --without-icu --with-libraries=$(boost_config_libraries) endef define $(package)_build_cmds - \t./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage + ./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage endef define $(package)_stage_cmds - \t./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install + ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install endef - ''' - with open('contrib/depends/packages/boost.mk', 'w') as f: - f.write(boost_content) - " + EOF + # Fix tabs + sed -i 's/^ /\t/' packages/boost.mk - name: Build Standard Dependencies run: | cd contrib/depends + # This generates the toolchain.cmake and builds Boost/OpenSSL/etc. make HOST=${{ matrix.target }} -j$(nproc) # ----------------------------------------------------- - # Manual Static Lib Build (Using Generated Toolchain) + # NEW: Manually Build Zlib/Zstd using the Generated Toolchain + # This bypasses the broken depends makefiles entirely. # ----------------------------------------------------- - name: Build Static Zlib & Zstd (Manual CMake) run: | DEPENDS_DIR="$(pwd)/contrib/depends/${{ matrix.target }}" TOOLCHAIN="$DEPENDS_DIR/share/toolchain.cmake" - # Fix for Linux Native builds where toolchain might imply /usr/lib search - # We force it to use ONLY our depends dir - mkdir -p temp_libs cd temp_libs