From da82225a5dd5a90815db0b95f5379faa554c9e40 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Thu, 11 Dec 2025 23:14:27 +0000 Subject: [PATCH 01/29] removed stuff not needed in `ci.yml` --- .github/workflows/ci.yml | 97 ---------------------------------------- 1 file changed, 97 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a3e4a75..94d41a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -206,103 +206,6 @@ jobs: path: ./depends/built key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('depends/packages/*', '.github/workflows/ci.yml') }} - # # 🧩 Fix macOS LLVM 10.0.0 mirror (Ubuntu 18.04 build from GitHub) - # - name: Patch native_cctools.mk to LLVM 10.0.0 (GitHub, Ubuntu 18.04) - # if: matrix.name == 'x86_64-macos' - # shell: bash - # run: | - # set -euo pipefail - # CCTOOLS="depends/packages/native_cctools.mk" - - # # ✅ LLVM 10.0.0 toolchain info - # LLVM_VER="10.0.0" - # LLVM_FILE="clang+llvm-${LLVM_VER}-x86_64-linux-gnu-ubuntu-18.04.tar.xz" - # LLVM_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}" - # LLVM_SHA="b25f592a0c00686f03e3b7db68ca6dc87418f681f4ead4df4745a01d9be63843" - - # # ✅ Corrected cctools-port source (GitHub changed archive path!) - # CCTOOLS_VER="master" - # CCTOOLS_URL="https://github.com/tpoechtrager/cctools-port/archive/refs/heads" - # CCTOOLS_FILE="${CCTOOLS_VER}.tar.gz" - # CCTOOLS_SHA="579c46ce16a269f202de4f4118db00bfdef95e3aa251cc79d4726faef9f4dab2" - - # echo "🧹 Cleaning old LLVM/cctools artifacts..." - # rm -rf depends/work/download/native_cctools* depends/sources/clang*llvm-* || true - - # echo "⚙️ Patching native_cctools.mk..." - # # --- cctools source --- - # sed -i "s|^\$(package)_version=.*|\$(package)_version=${CCTOOLS_VER}|" "${CCTOOLS}" - # sed -i "s|^\$(package)_download_path=.*|\$(package)_download_path=${CCTOOLS_URL}|" "${CCTOOLS}" - # sed -i "s|^\$(package)_file_name=.*|\$(package)_file_name=${CCTOOLS_FILE}|" "${CCTOOLS}" - # sed -i "s|^\$(package)_sha256_hash=.*|\$(package)_sha256_hash=${CCTOOLS_SHA}|" "${CCTOOLS}" - - # # --- LLVM toolchain (hard-coded URL + filename to avoid 404) --- - # sed -i "s|^\$(package)_clang_version=.*|\$(package)_clang_version=${LLVM_VER}|" "${CCTOOLS}" - # sed -i "s|^\$(package)_clang_download_path=.*|\$(package)_clang_download_path=${LLVM_URL}|" "${CCTOOLS}" - # sed -i "s|^\$(package)_clang_download_file=.*|\$(package)_clang_download_file=${LLVM_FILE}|" "${CCTOOLS}" - # sed -i "s|^\$(package)_clang_file_name=.*|\$(package)_clang_file_name=${LLVM_FILE}|" "${CCTOOLS}" - # sed -i "s|^\$(package)_clang_sha256_hash=.*|\$(package)_clang_sha256_hash=${LLVM_SHA}|" "${CCTOOLS}" - - # echo "🔍 Confirming patched fields..." - # grep -E '^\$\(package\)_(version|download_path|file_name|sha256_hash|clang_download_path|clang_file_name|clang_sha256_hash)=' "${CCTOOLS}" || true - - # echo "📦 Installing LLVM ${LLVM_VER} toolchain..." - # apt-get update -y - # DEBIAN_FRONTEND=noninteractive apt-get install -y \ - # clang-10 llvm-10-dev libxml2-dev libedit-dev libncurses5 libtinfo5 \ - # libbz2-dev zlib1g-dev lld make patch autoconf automake libtool cmake gawk - - # update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 100 - # update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-10 100 - - # echo "✅ native_cctools.mk patched with correct GitHub refs/heads/master URL and verified LLVM 10.0.0." - - # - name: Patch dsymutil missing issue - # if: matrix.name == 'x86_64-macos' - # shell: bash - # run: | - # set -euo pipefail - # CCTOOLS_DIR="depends/packages/native_cctools.mk" - - # echo "⚙️ Disabling dsymutil check (not included in LLVM 10.0.0 Linux build)..." - # sed -i '/llvm-dsymutil/d' "$CCTOOLS_DIR" - - # # Patch staging rule to tolerate missing dsymutil - # find depends/work/build/x86_64-apple-darwin11/ -type f -name "Makefile" -print0 | \ - # xargs -0 sed -i '/llvm-dsymutil/d' || true - - # echo "✅ dsymutil references removed — build will continue without it." - - # - name: Fix macOS cross build dependencies - # if: matrix.name == 'x86_64-macos' - # run: | - # apt-get update - # DEBIAN_FRONTEND=noninteractive apt-get install -y \ - # clang llvm-dev libxml2-dev libssl-dev libbz2-dev libtinfo5 \ - # libncurses5 zlib1g-dev xz-utils cmake patch make bison flex - - # - name: Patch Boost toolset to prevent version clashes - # if: matrix.name == 'x86_64-macos' - # shell: bash - # run: | - # BOOST_MK="depends/packages/boost.mk" - # USERCFG="depends/sources/boost_1_64_0/tools/build/src/user-config.jam" - # mkdir -p "$(dirname $USERCFG)" - - # echo "🛠 Removing auto-detected darwin toolsets..." - # sed -i 's/toolset=darwin//g' "$BOOST_MK" || true - - # echo "🛠 Forcing Boost to use ONLY darwin-10.0.0..." - # sed -i 's#./b2 #./b2 toolset=darwin-10.0.0 #g' "$BOOST_MK" - - # echo "using darwin : 10.0.0 : x86_64-apple-darwin11-clang++ ;" >> "$USERCFG" - - # echo "🔍 Verifying Boost config override:" - # grep -n "darwin-10.0.0" "$BOOST_MK" || true - # grep -n "darwin" "$USERCFG" || true - - # echo "✅ Boost toolset pinned to darwin-10.0.0 (no conflicts)." - - name: Build depends run: make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} From d9acc02eda528fc9c7e9832dd341683b03f7804d Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Thu, 11 Dec 2025 23:14:57 +0000 Subject: [PATCH 02/29] native_cctools patch 1 --- depends/packages/native_cctools.mk | 54 +++++++++++++++++++----------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/depends/packages/native_cctools.mk b/depends/packages/native_cctools.mk index 44d238c..76788b2 100644 --- a/depends/packages/native_cctools.mk +++ b/depends/packages/native_cctools.mk @@ -1,45 +1,56 @@ package=native_cctools -$(package)_version=807d6fd1be5d2224872e381870c0a75387fe05e6 -$(package)_download_path=https://github.com/theuni/cctools-port/archive +$(package)_version=3764b223c011574971ee3ae09ce968ba5dc2f00f +$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive $(package)_file_name=$($(package)_version).tar.gz -$(package)_sha256_hash=a09c9ba4684670a0375e42d9d67e7f12c1f62581a27f28f7c825d6d7032ccc6a +$(package)_sha256_hash=3e35907bf376269a844df08e03cbb43e345c88125374f2228e03724b5f9a2a04 $(package)_build_subdir=cctools -$(package)_clang_version=3.7.1 -$(package)_clang_download_path=http://llvm.org/releases/$($(package)_clang_version) + +$(package)_clang_version=6.0.1 +$(package)_clang_download_path=https://releases.llvm.org/$($(package)_clang_version) $(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz $(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz -$(package)_clang_sha256_hash=99b28a6b48e793705228a390471991386daa33a9717cd9ca007fcdde69608fd9 +$(package)_clang_sha256_hash=fa5416553ca94a8c071a27134c094a5fb736fe1bd0ecc5ef2d9bc02754e1bef0 + +$(package)_libtapi_version=3efb201881e7a76a21e0554906cf306432539cef +$(package)_libtapi_download_path=https://github.com/tpoechtrager/apple-libtapi/archive +$(package)_libtapi_download_file=$($(package)_libtapi_version).tar.gz +$(package)_libtapi_file_name=$($(package)_libtapi_version).tar.gz +$(package)_libtapi_sha256_hash=380c1ca37cfa04a8699d0887a8d3ee1ad27f3d08baba78887c73b09485c0fbd3 + $(package)_extra_sources=$($(package)_clang_file_name) +$(package)_extra_sources += $($(package)_libtapi_file_name) define $(package)_fetch_cmds -$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \ -$(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) + $(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \ + $(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) && \ + $(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash)) endef define $(package)_extract_cmds mkdir -p $($(package)_extract_dir) && \ echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \ echo "$($(package)_clang_sha256_hash) $($(package)_source_dir)/$($(package)_clang_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \ + echo "$($(package)_libtapi_sha256_hash) $($(package)_source_dir)/$($(package)_libtapi_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \ $(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \ - mkdir -p toolchain/bin toolchain/lib/clang/3.5/include && \ - tar --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \ + mkdir -p toolchain/bin toolchain/lib/clang/$($(package)_clang_version)/include && \ + mkdir -p libtapi && \ + tar --no-same-owner --strip-components=1 -C libtapi -xf $($(package)_source_dir)/$($(package)_libtapi_file_name) && \ + tar --no-same-owner --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \ rm -f toolchain/lib/libc++abi.so* && \ - echo "#!/bin/sh" > toolchain/bin/$(host)-dsymutil && \ - echo "exit 0" >> toolchain/bin/$(host)-dsymutil && \ - chmod +x toolchain/bin/$(host)-dsymutil && \ - tar --strip-components=1 -xf $($(package)_source) + tar --no-same-owner --strip-components=1 -xf $($(package)_source) endef define $(package)_set_vars -$(package)_config_opts=--target=$(host) --disable-lto-support -$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib -$(package)_cc=$($(package)_extract_dir)/toolchain/bin/clang -$(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++ + $(package)_config_opts=--target=$(host) --disable-lto-support --with-libtapi=$($(package)_extract_dir) + $(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib + $(package)_cc=$($(package)_extract_dir)/toolchain/bin/clang + $(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++ endef define $(package)_preprocess_cmds - cd $($(package)_build_subdir); ./autogen.sh && \ - sed -i.old "/define HAVE_PTHREADS/d" ld64/src/ld/InputFiles.h + CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/build.sh && \ + CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/install.sh && \ + sed -i.old "/define HAVE_PTHREADS/d" $($(package)_build_subdir)/ld64/src/ld/InputFiles.h endef define $(package)_config_cmds @@ -52,6 +63,9 @@ endef define $(package)_stage_cmds $(MAKE) DESTDIR=$($(package)_staging_dir) install && \ + mkdir -p $($(package)_staging_prefix_dir)/lib/ && \ + cd $($(package)_extract_dir) && \ + cp lib/libtapi.so.6 $($(package)_staging_prefix_dir)/lib/ && \ cd $($(package)_extract_dir)/toolchain && \ mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include && \ mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \ From f673d4c6f6e6ef8b341b37fbcac49bccd03524a7 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Fri, 12 Dec 2025 00:03:29 +0000 Subject: [PATCH 03/29] natice_cctools patch 2 --- depends/packages/native_cctools.mk | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/depends/packages/native_cctools.mk b/depends/packages/native_cctools.mk index 76788b2..1b659cb 100644 --- a/depends/packages/native_cctools.mk +++ b/depends/packages/native_cctools.mk @@ -4,7 +4,6 @@ $(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive $(package)_file_name=$($(package)_version).tar.gz $(package)_sha256_hash=3e35907bf376269a844df08e03cbb43e345c88125374f2228e03724b5f9a2a04 $(package)_build_subdir=cctools - $(package)_clang_version=6.0.1 $(package)_clang_download_path=https://releases.llvm.org/$($(package)_clang_version) $(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz @@ -21,9 +20,9 @@ $(package)_extra_sources=$($(package)_clang_file_name) $(package)_extra_sources += $($(package)_libtapi_file_name) define $(package)_fetch_cmds - $(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \ - $(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) && \ - $(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash)) +$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \ +$(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) && \ +$(call fetch_file,$(package),$($(package)_libtapi_download_path),$($(package)_libtapi_download_file),$($(package)_libtapi_file_name),$($(package)_libtapi_sha256_hash)) endef define $(package)_extract_cmds @@ -76,4 +75,4 @@ define $(package)_stage_cmds cp bin/llvm-dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \ if `test -d include/c++/`; then cp -rf include/c++/ $($(package)_staging_prefix_dir)/include/; fi && \ if `test -d lib/c++/`; then cp -rf lib/c++/ $($(package)_staging_prefix_dir)/lib/; fi -endef +endef \ No newline at end of file From bd0f25b2591d8b64e3fcb69e870ea3bc4f52a349 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 15:50:47 +0000 Subject: [PATCH 04/29] boost patch 1 --- depends/packages/boost.mk | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk index d3d41cc..df41445 100644 --- a/depends/packages/boost.mk +++ b/depends/packages/boost.mk @@ -9,47 +9,23 @@ $(package)_config_opts_release=variant=release $(package)_config_opts_debug=variant=debug $(package)_config_opts=--layout=tagged --build-type=complete --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=shared - -# IMPORTANT: macOS now forced to GCC toolset -$(package)_config_opts_darwin=--toolset=gcc runtime-link=shared - +$(package)_config_opts_darwin=--toolset=darwin-4.2.1 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)_toolset_$(host_os)=gcc $(package)_archiver_$(host_os)=$($(package)_ar) - -# These stay defined but DO NOT get used anymore -$(package)_toolset_darwin=gcc -$(package)_archiver_darwin=$($(package)_ar) - -boost_toolset_darwin=$($(package)_toolset_darwin) -boost_archiver_darwin=$($(package)_archiver_darwin) - -$(package)_config_libraries=chrono,filesystem,program_options,system,thread - +$(package)_toolset_darwin=darwin +$(package)_archiver_darwin=$($(package)_libtool) +$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test $(package)_cxxflags=-std=c++11 -fvisibility=hidden $(package)_cxxflags_linux=-fPIC endef -# ================================================================== -# PREPROCESS: FORCE GCC TOOLSET FOR MACOS + EVERY OTHER HOST -# macOS cross compile will use gcc toolset with g++ invocation -# This avoids Boost's broken "darwin" toolset and missing libtool. -# ================================================================== define $(package)_preprocess_cmds - echo "using gcc : : $($(package)_cxx) \ - : \"$($(package)_cxxflags) $($(package)_cppflags)\" \ - \"$($(package)_ldflags)\" \ - \"$($(package)_ar)\" \ - \"$(host_RANLIB)\" \ - \"$(host_STRIP)\" \ - ;" > user-config.jam + echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : \"$($(package)_cxxflags) $($(package)_cppflags)\" \"$($(package)_ldflags)\" \"$(boost_archiver_$(host_os))\" \"$(host_STRIP)\" \"$(host_RANLIB)\" \"$(host_WINDRES)\" : ;" > user-config.jam endef define $(package)_config_cmds @@ -62,4 +38,4 @@ endef define $(package)_stage_cmds ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install -endef +endef \ No newline at end of file From 4541028798ddac9846751e5df20c1cc9ecadbcbb Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 19:34:25 +0000 Subject: [PATCH 05/29] boost patch 2 --- .github/workflows/ci.yml | 42 ++++++++++++++++++++++++------------- depends/packages/boost.mk | 44 ++++++++++++++++++++++++++++++++------- 2 files changed, 64 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 94d41a2..4c1a0c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -124,8 +124,8 @@ jobs: dep-opts: "" config-opts: "--with-gui=qt5 --disable-tests" goal: deploy - sdk: 10.8 - sdk-shasum: "709b84adde0fbd1c15de4c9dadb36b3b8c65f9bb7f8a7152f0cf33ab7c3f57af" + sdk: 10.11 + sdk-shasum: "bec9d089ebf2e2dd59b1a811a38ec78ebd5da18cbbcd6ab39d1e59f64ac5033f" runs-on: ubuntu-22.04 container: @@ -179,24 +179,36 @@ jobs: path: ./depends/sdk-sources key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('.github/workflows/ci.yml') }} + # - name: Install SDK + # if: ${{ matrix.sdk }} + # shell: bash + # env: + # SDK_URL: https://github.com/phracker/MacOSX-SDKs/releases/download/10.15 + # sdk-filename: MacOSX${{ matrix.sdk }}.sdk.tar.xz + # run: | + # set -euo pipefail + # mkdir -p ./depends/sdk-sources ./depends/SDKs + # echo "📦 Downloading macOS SDK ${{ matrix.sdk }} from phracker…" + # curl -L --fail \ + # "$SDK_URL/${{ env.sdk-filename }}" \ + # -o "depends/sdk-sources/${{ env.sdk-filename }}" + # echo "🔐 Verifying checksum…" + # echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c + # echo "📂 Extracting SDK…" + # tar -C depends/SDKs -xf "depends/sdk-sources/${{ env.sdk-filename }}" + # echo "✅ SDK installed: depends/SDKs/${{ env.sdk-filename }}" + - name: Install SDK if: ${{ matrix.sdk }} - shell: bash env: - SDK_URL: https://github.com/phracker/MacOSX-SDKs/releases/download/10.15 - sdk-filename: MacOSX${{ matrix.sdk }}.sdk.tar.xz + sdk-filename: MacOSX${{ matrix.sdk }}.sdk.tar.gz run: | - set -euo pipefail - mkdir -p ./depends/sdk-sources ./depends/SDKs - echo "📦 Downloading macOS SDK ${{ matrix.sdk }} from phracker…" - curl -L --fail \ - "$SDK_URL/${{ env.sdk-filename }}" \ - -o "depends/sdk-sources/${{ env.sdk-filename }}" - echo "🔐 Verifying checksum…" + mkdir -p ./depends/sdk-sources + mkdir -p ./depends/SDKs + echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c || \ + curl --location --fail $SDK_URL/${{ env.sdk-filename }} -o depends/sdk-sources/${{ env.sdk-filename }} &&\ echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c - echo "📂 Extracting SDK…" - tar -C depends/SDKs -xf "depends/sdk-sources/${{ env.sdk-filename }}" - echo "✅ SDK installed: depends/SDKs/${{ env.sdk-filename }}" + tar -C depends/SDKs -xf depends/sdk-sources/${{ env.sdk-filename }} - name: Dependency cache uses: actions/cache@v4 diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk index df41445..55933da 100644 --- a/depends/packages/boost.mk +++ b/depends/packages/boost.mk @@ -7,25 +7,55 @@ $(package)_sha256_hash=83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff02 define $(package)_set_vars $(package)_config_opts_release=variant=release $(package)_config_opts_debug=variant=debug + +# Common Boost build configuration $(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-config.jam $(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1 + +# Linux native build $(package)_config_opts_linux=threadapi=pthread runtime-link=shared -$(package)_config_opts_darwin=--toolset=darwin-4.2.1 runtime-link=shared + +# IMPORTANT: macOS must NOT use darwin toolset! +# Boost darwin toolset is incompatible with Linux cross-compile. +$(package)_config_opts_darwin=--toolset=gcc runtime-link=shared + +# Windows builds $(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 + +# 32-bit Linux $(package)_config_opts_i686_linux=address-model=32 architecture=x86 + +# Boost toolset assignments $(package)_toolset_$(host_os)=gcc $(package)_archiver_$(host_os)=$($(package)_ar) -$(package)_toolset_darwin=darwin -$(package)_archiver_darwin=$($(package)_libtool) + +# Mac fallback variables (not used but required to exist) +$(package)_toolset_darwin=gcc +$(package)_archiver_darwin=$($(package)_ar) + +boost_toolset_darwin=$($(package)_toolset_darwin) +boost_archiver_darwin=$($(package)_archiver_darwin) + $(package)_config_libraries=chrono,filesystem,program_options,system,thread,test + $(package)_cxxflags=-std=c++11 -fvisibility=hidden $(package)_cxxflags_linux=-fPIC endef +# ========================================================== +# PREPROCESS: Create Boost user-config.jam +# IMPORTANT: Always use 'gcc' toolset but inject Clang compiler +# ========================================================== define $(package)_preprocess_cmds - echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : \"$($(package)_cxxflags) $($(package)_cppflags)\" \"$($(package)_ldflags)\" \"$(boost_archiver_$(host_os))\" \"$(host_STRIP)\" \"$(host_RANLIB)\" \"$(host_WINDRES)\" : ;" > user-config.jam + echo "using gcc : : $($(package)_cxx) \ + : \"$($(package)_cxxflags) $($(package)_cppflags)\" \ + \"$($(package)_ldflags)\" \ + \"$($(package)_ar)\" \ + \"$(host_RANLIB)\" \ + \"$(host_STRIP)\" \ + ;" > user-config.jam endef define $(package)_config_cmds @@ -33,9 +63,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - ./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage + ./b2 -d2 -j$(JOBS) --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage endef define $(package)_stage_cmds - ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install -endef \ No newline at end of file + ./b2 -d0 -j$(JOBS) --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install +endef From 26130ed0e76cc797af8ca20679c5298c39ad9a07 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 19:47:55 +0000 Subject: [PATCH 06/29] boost patch 3 --- .github/workflows/ci.yml | 38 ++++++++++++++------------------------ depends/packages/boost.mk | 4 ++-- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c1a0c0..5259e02 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -179,35 +179,25 @@ jobs: path: ./depends/sdk-sources key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('.github/workflows/ci.yml') }} - # - name: Install SDK - # if: ${{ matrix.sdk }} - # shell: bash - # env: - # SDK_URL: https://github.com/phracker/MacOSX-SDKs/releases/download/10.15 - # sdk-filename: MacOSX${{ matrix.sdk }}.sdk.tar.xz - # run: | - # set -euo pipefail - # mkdir -p ./depends/sdk-sources ./depends/SDKs - # echo "📦 Downloading macOS SDK ${{ matrix.sdk }} from phracker…" - # curl -L --fail \ - # "$SDK_URL/${{ env.sdk-filename }}" \ - # -o "depends/sdk-sources/${{ env.sdk-filename }}" - # echo "🔐 Verifying checksum…" - # echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c - # echo "📂 Extracting SDK…" - # tar -C depends/SDKs -xf "depends/sdk-sources/${{ env.sdk-filename }}" - # echo "✅ SDK installed: depends/SDKs/${{ env.sdk-filename }}" - - name: Install SDK if: ${{ matrix.sdk }} env: sdk-filename: MacOSX${{ matrix.sdk }}.sdk.tar.gz run: | - mkdir -p ./depends/sdk-sources - mkdir -p ./depends/SDKs - echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c || \ - curl --location --fail $SDK_URL/${{ env.sdk-filename }} -o depends/sdk-sources/${{ env.sdk-filename }} &&\ - echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c + mkdir -p depends/sdk-sources + mkdir -p depends/SDKs + + cd depends/sdk-sources + + # First check: does NOT include path + echo "${{ matrix.sdk-shasum }} ${{ env.sdk-filename }}" | sha256sum -c || \ + curl --location --fail "$SDK_URL/${{ env.sdk-filename }}" -o "${{ env.sdk-filename }}" + + # Second check AFTER download + echo "${{ matrix.sdk-shasum }} ${{ env.sdk-filename }}" | sha256sum -c + + cd ../.. + tar -C depends/SDKs -xf depends/sdk-sources/${{ env.sdk-filename }} - name: Dependency cache diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk index 55933da..28e505c 100644 --- a/depends/packages/boost.mk +++ b/depends/packages/boost.mk @@ -63,9 +63,9 @@ define $(package)_config_cmds endef define $(package)_build_cmds - ./b2 -d2 -j$(JOBS) --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage + ./b2 -d2 -j2 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage endef define $(package)_stage_cmds - ./b2 -d0 -j$(JOBS) --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install + ./b2 -d0 -j2 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install endef From fa53d00b6c3e9ff3370e2d493494dcb688d21bd1 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 21:37:44 +0000 Subject: [PATCH 07/29] python to python3 test patch --- depends/packages/native_ds_store.mk | 4 ++-- depends/packages/native_mac_alias.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/depends/packages/native_ds_store.mk b/depends/packages/native_ds_store.mk index 116fa25..9c63537 100644 --- a/depends/packages/native_ds_store.mk +++ b/depends/packages/native_ds_store.mk @@ -7,10 +7,10 @@ $(package)_install_libdir=$(build_prefix)/lib/python/dist-packages $(package)_dependencies=native_biplist define $(package)_build_cmds - python setup.py build + python3 setup.py build endef define $(package)_stage_cmds mkdir -p $($(package)_install_libdir) && \ - python setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir) + python3 setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir) endef diff --git a/depends/packages/native_mac_alias.mk b/depends/packages/native_mac_alias.mk index 488ec8b..dc3c8b7 100644 --- a/depends/packages/native_mac_alias.mk +++ b/depends/packages/native_mac_alias.mk @@ -11,10 +11,10 @@ define $(package)_preprocess_cmds endef define $(package)_build_cmds - python setup.py build + python3 setup.py build endef define $(package)_stage_cmds mkdir -p $($(package)_install_libdir) && \ - python setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir) + python3 setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir) endef From 78f1dac24b688d33d6d003b89a9849e0e1c65d66 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 21:37:53 +0000 Subject: [PATCH 08/29] ci patch --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5259e02..70120e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,7 +130,7 @@ jobs: runs-on: ubuntu-22.04 container: image: ${{ matrix.container }} - options: ${{ matrix.container-options == '' && '-e 1ARCH=1ARCH' || matrix.container-options }} + options: ${{ matrix.container-options == '' && '-e 1ADVC=1ADVC' || matrix.container-options }} steps: - name: Configure container From ed24607fd9c26d2df77b7f68fc294eff1d63b7a8 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 21:38:28 +0000 Subject: [PATCH 09/29] openssl patch --- depends/packages/openssl.mk | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index aaaad22..fed64a7 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -1,8 +1,10 @@ package=openssl -$(package)_version=1.0.2t -$(package)_download_path=http://slackware.cs.utah.edu/pub/openssl-ftp/source/old/1.0.2/ -$(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc +$(package)_version=1.0.2 +$(package)_version_suffix=u +$(package)_download_path=https://www.openssl.org/source/old/$($(package)_version) +$(package)_file_name=$(package)-$($(package)_version)$($(package)_version_suffix).tar.gz +$(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16 +$(package)_patches=secure_getenv.patch define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" @@ -47,7 +49,6 @@ $(package)_config_opts_linux=-fPIC -Wa,--noexecstack $(package)_config_opts_x86_64_linux=linux-x86_64 $(package)_config_opts_i686_linux=linux-generic32 $(package)_config_opts_arm_linux=linux-generic32 -$(package)_config_opts_armv7l_linux=linux-generic32 $(package)_config_opts_aarch64_linux=linux-generic64 $(package)_config_opts_mipsel_linux=linux-generic32 $(package)_config_opts_mips_linux=linux-generic32 @@ -58,12 +59,14 @@ $(package)_config_opts_i686_mingw32=mingw endef define $(package)_preprocess_cmds + patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org endef define $(package)_config_cmds - ./Configure $($(package)_config_opts) && $(MAKE) depend + ./Configure $($(package)_config_opts) && \ + make depend endef define $(package)_build_cmds @@ -76,4 +79,4 @@ endef define $(package)_postprocess_cmds rm -rf share bin etc -endef +endef \ No newline at end of file From a5cad351c0db2ae6a5f464729654400b91843807 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 21:43:50 +0000 Subject: [PATCH 10/29] forgot the patch for openssl --- .gitignore | 1 - depends/patches/openssl/secure_getenv.patch | 37 +++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 depends/patches/openssl/secure_getenv.patch diff --git a/.gitignore b/.gitignore index 5b6d24c..8726b1f 100644 --- a/.gitignore +++ b/.gitignore @@ -61,7 +61,6 @@ src/qt/bitcoin-qt.includes *.pyc *.o *.o-* -*.patch *.a *.pb.cc *.pb.h diff --git a/depends/patches/openssl/secure_getenv.patch b/depends/patches/openssl/secure_getenv.patch new file mode 100644 index 0000000..40875b9 --- /dev/null +++ b/depends/patches/openssl/secure_getenv.patch @@ -0,0 +1,37 @@ +Solves export of glibc 2.17 secure_getenv because we support down to 2.11 + +Patches openssl 1.0.2's usage of secure_getenv from glibc 2.17 to instead +always use the fallback OPENSSL_issetugid(), which essentially does the +same thing on linux, with the only difference that the glibc version makes +decisions on startup, whereas the openssl version does the same check each +time the environment is read. + +glibc check: https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/enbl-secure.c;h=9e47526bd3e444e1a19a8ea9fd310b6f47c4db52;hb=HEAD +glibc implementation: https://sourceware.org/git/?p=glibc.git;a=blob;f=stdlib/secure-getenv.c;h=a394eebcf794c1279d66e5bcb71d4b15725e6e5a;hb=HEAD + +openssl check: https://github.com/openssl/openssl/blob/OpenSSL_1_0_2u/crypto/uid.c + +This patch can be removed when glibc 2.17 is the minimum version supported + +Author: Patrick Lodder + +diff -dur a/crypto/getenv.c b/crypto/getenv.c +--- a/crypto/getenv.c 2019-12-20 13:02:41.000000000 +0000 ++++ b/crypto/getenv.c 2021-09-20 03:02:04.125747397 +0000 +@@ -16,16 +16,7 @@ + + char *ossl_safe_getenv(const char *name) + { +-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +-# if __GLIBC_PREREQ(2, 17) +-# define SECURE_GETENV +- return secure_getenv(name); +-# endif +-#endif +- +-#ifndef SECURE_GETENV + if (OPENSSL_issetugid()) + return NULL; + return getenv(name); +-#endif + } \ No newline at end of file From 2353c766f859d97381b6f40195ec5a96c094cdd3 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 21:56:38 +0000 Subject: [PATCH 11/29] openssl patch 2 --- depends/patches/openssl/secure_getenv.patch | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/depends/patches/openssl/secure_getenv.patch b/depends/patches/openssl/secure_getenv.patch index 40875b9..74e25b0 100644 --- a/depends/patches/openssl/secure_getenv.patch +++ b/depends/patches/openssl/secure_getenv.patch @@ -1,20 +1,3 @@ -Solves export of glibc 2.17 secure_getenv because we support down to 2.11 - -Patches openssl 1.0.2's usage of secure_getenv from glibc 2.17 to instead -always use the fallback OPENSSL_issetugid(), which essentially does the -same thing on linux, with the only difference that the glibc version makes -decisions on startup, whereas the openssl version does the same check each -time the environment is read. - -glibc check: https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/enbl-secure.c;h=9e47526bd3e444e1a19a8ea9fd310b6f47c4db52;hb=HEAD -glibc implementation: https://sourceware.org/git/?p=glibc.git;a=blob;f=stdlib/secure-getenv.c;h=a394eebcf794c1279d66e5bcb71d4b15725e6e5a;hb=HEAD - -openssl check: https://github.com/openssl/openssl/blob/OpenSSL_1_0_2u/crypto/uid.c - -This patch can be removed when glibc 2.17 is the minimum version supported - -Author: Patrick Lodder - diff -dur a/crypto/getenv.c b/crypto/getenv.c --- a/crypto/getenv.c 2019-12-20 13:02:41.000000000 +0000 +++ b/crypto/getenv.c 2021-09-20 03:02:04.125747397 +0000 @@ -34,4 +17,4 @@ diff -dur a/crypto/getenv.c b/crypto/getenv.c return NULL; return getenv(name); -#endif - } \ No newline at end of file + } From bf80f1653a6398ca48e74ea85d8e0f247e63edea Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 22:20:04 +0000 Subject: [PATCH 12/29] openssl patch 3 --- depends/packages/openssl.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index fed64a7..ebab6ff 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -61,7 +61,8 @@ endef define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ - sed -i.old "s|engines apps test|engines|" Makefile.org + sed -i.old "s|engines apps test|engines|" Makefile.org && \ + sed -i.old 's/\bclang\b/cc/' util/domd endef define $(package)_config_cmds From ec7c294dd3ff51e30322a68ecbb83704d19597c3 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 23:01:32 +0000 Subject: [PATCH 13/29] openssl patch 4 --- depends/packages/openssl.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index ebab6ff..f5d7572 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -62,7 +62,7 @@ define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ - sed -i.old 's/\bclang\b/cc/' util/domd + sed -i.old 's/^CC=.*/CC=$($(package)_cc)/' Configure endef define $(package)_config_cmds From de2105a6619ed714ba4b5ff0afc8f6732b664988 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sat, 13 Dec 2025 23:27:47 +0000 Subject: [PATCH 14/29] openssl patch 5 --- depends/packages/openssl.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index f5d7572..66a486f 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -62,7 +62,7 @@ define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ - sed -i.old 's/^CC=.*/CC=$($(package)_cc)/' Configure + sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure endef define $(package)_config_cmds From c58efa42331344d16daa17e5e14255a42b5f6297 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 00:59:07 +0000 Subject: [PATCH 15/29] openssl patch 6 --- depends/packages/openssl.mk | 8 ++++++-- depends/patches/openssl/domd_cc.patch | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 depends/patches/openssl/domd_cc.patch diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 66a486f..6485d29 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -4,7 +4,10 @@ $(package)_version_suffix=u $(package)_download_path=https://www.openssl.org/source/old/$($(package)_version) $(package)_file_name=$(package)-$($(package)_version)$($(package)_version_suffix).tar.gz $(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16 -$(package)_patches=secure_getenv.patch + +# PATCHES (must use +=, not =) +$(package)_patches += secure_getenv.patch +$(package)_patches += domd_cc.patch define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" @@ -60,6 +63,7 @@ endef define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ + patch -p1 < $($(package)_patch_dir)/domd_cc.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure @@ -80,4 +84,4 @@ endef define $(package)_postprocess_cmds rm -rf share bin etc -endef \ No newline at end of file +endef diff --git a/depends/patches/openssl/domd_cc.patch b/depends/patches/openssl/domd_cc.patch new file mode 100644 index 0000000..f3d6909 --- /dev/null +++ b/depends/patches/openssl/domd_cc.patch @@ -0,0 +1,8 @@ +--- a/util/domd ++++ b/util/domd +@@ -31,7 +31,7 @@ + # We assume that perl is in your path. If you want to use a different + # perl then uncomment the following line and fix the path to perl + # +-CC=clang ++CC="${CC:-cc}" From adb54325b6c76fefb02f2b63e0a180e6f1016bab Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 16:26:00 +0000 Subject: [PATCH 16/29] openssl patch 7 --- depends/patches/openssl/domd_cc.patch | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/depends/patches/openssl/domd_cc.patch b/depends/patches/openssl/domd_cc.patch index f3d6909..8b242bf 100644 --- a/depends/patches/openssl/domd_cc.patch +++ b/depends/patches/openssl/domd_cc.patch @@ -1,8 +1,10 @@ --- a/util/domd +++ b/util/domd -@@ -31,7 +31,7 @@ - # We assume that perl is in your path. If you want to use a different - # perl then uncomment the following line and fix the path to perl - # --CC=clang -+CC="${CC:-cc}" +@@ -33,7 +33,7 @@ fi + + case "$MAKEDEPEND" in + *) +- cmd="clang -MM $@" ++ cmd="${CC:-cc} -MM $@" + ;; + esac From c660e5251751b4e8d3a440c01740354cdcc9ee99 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 19:38:15 +0000 Subject: [PATCH 17/29] openssl patch 8 --- .github/workflows/ci.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70120e6..a9fcee0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -208,8 +208,22 @@ jobs: path: ./depends/built key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('depends/packages/*', '.github/workflows/ci.yml') }} + # - name: Build depends + # run: make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} + - name: Build depends - run: make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} + run: | + set +e + make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} + STATUS=$? + + echo "==== Attempting to dump util/domd files found so far ====" + find depends/work -path "*/openssl*/util/domd" -exec sh -c ' + echo "---- {} ----" + sed -n "1,200p" "{}" + ' \; + + exit $STATUS - name: CCache uses: actions/cache@v4 From ce2b87508382600479ccbdd2f3597472b61ce216 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 19:55:17 +0000 Subject: [PATCH 18/29] openssl patch 9 --- depends/packages/openssl.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 6485d29..dc2ffac 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -7,7 +7,7 @@ $(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f8 # PATCHES (must use +=, not =) $(package)_patches += secure_getenv.patch -$(package)_patches += domd_cc.patch +# $(package)_patches += domd_cc.patch define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" @@ -63,9 +63,9 @@ endef define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ - patch -p1 < $($(package)_patch_dir)/domd_cc.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ + sed -i.old "s/\/$(package_cc)/g" Makefile.org && \ sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure endef From e2fde9f315152b52fc852b08dd8ec2dcbe70ee9f Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 20:08:26 +0000 Subject: [PATCH 19/29] openssl patch 10 --- depends/packages/openssl.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index dc2ffac..0f47051 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -65,8 +65,8 @@ define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ - sed -i.old "s/\/$(package_cc)/g" Makefile.org && \ - sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure + sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure && \ + sed -i.old 's/MAKEDEPEND=.*clang.*/MAKEDEPEND="$($(package)_cc) -MM"/' Configure endef define $(package)_config_cmds From 1afdfd5c174815b46f7c53d41715142cf3a1f5eb Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 20:29:59 +0000 Subject: [PATCH 20/29] openssl patch 11 --- depends/packages/openssl.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 0f47051..52f93d0 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -66,7 +66,7 @@ define $(package)_preprocess_cmds sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure && \ - sed -i.old 's/MAKEDEPEND=.*clang.*/MAKEDEPEND="$($(package)_cc) -MM"/' Configure + sed -i.old "s|MAKEDEPEND=.*|MAKEDEPEND=\"$($(package)_cc) -MM\"|" Configure endef define $(package)_config_cmds From 80eff873dfdcf70bd179f99ccd9ef0761125691b Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 21:28:55 +0000 Subject: [PATCH 21/29] openssl patch 12 --- depends/packages/openssl.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 52f93d0..41521ec 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -66,7 +66,7 @@ define $(package)_preprocess_cmds sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure && \ - sed -i.old "s|MAKEDEPEND=.*|MAKEDEPEND=\"$($(package)_cc) -MM\"|" Configure + sed -i.old "s|^MAKEDEPEND=.*|MAKEDEPEND=\"$($(package)_cc) -MMD -MF\"|" Configure endef define $(package)_config_cmds From 3dc0109ca302ec6d62f7f957a64a7bae8f8463cc Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 21:45:53 +0000 Subject: [PATCH 22/29] openssl patch 13 --- depends/packages/openssl.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 41521ec..ab703ff 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -66,7 +66,9 @@ define $(package)_preprocess_cmds sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org && \ sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure && \ - sed -i.old "s|^MAKEDEPEND=.*|MAKEDEPEND=\"$($(package)_cc) -MMD -MF\"|" Configure + \ + echo "Patching util/domd to replace hardcoded clang..." && \ + sed -i.old "s|\bclang\b|$($(package)_cc)|g" util/domd endef define $(package)_config_cmds From 52b02aed464cd8035cf3e3249589067afd8c5bbe Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 22:20:15 +0000 Subject: [PATCH 23/29] openssl patch 14 --- depends/packages/openssl.mk | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index ab703ff..2693318 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -5,9 +5,8 @@ $(package)_download_path=https://www.openssl.org/source/old/$($(package)_version $(package)_file_name=$(package)-$($(package)_version)$($(package)_version_suffix).tar.gz $(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16 -# PATCHES (must use +=, not =) +# PATCHES $(package)_patches += secure_getenv.patch -# $(package)_patches += domd_cc.patch define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" @@ -48,6 +47,7 @@ $(package)_config_opts+=no-whirlpool $(package)_config_opts+=no-zlib $(package)_config_opts+=no-zlib-dynamic $(package)_config_opts+=$($(package)_cflags) $($(package)_cppflags) + $(package)_config_opts_linux=-fPIC -Wa,--noexecstack $(package)_config_opts_x86_64_linux=linux-x86_64 $(package)_config_opts_i686_linux=linux-generic32 @@ -56,26 +56,37 @@ $(package)_config_opts_aarch64_linux=linux-generic64 $(package)_config_opts_mipsel_linux=linux-generic32 $(package)_config_opts_mips_linux=linux-generic32 $(package)_config_opts_powerpc_linux=linux-generic32 + $(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc $(package)_config_opts_x86_64_mingw32=mingw64 $(package)_config_opts_i686_mingw32=mingw endef + +# ====================== +# PREPROCESS +# ====================== define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ - sed -i.old "s|engines apps test|engines|" Makefile.org && \ - sed -i.old "s#^CC=.*#CC=$($(package)_cc)#" Configure && \ - \ - echo "Patching util/domd to replace hardcoded clang..." && \ - sed -i.old "s|\bclang\b|$($(package)_cc)|g" util/domd + sed -i.old "s|engines apps test|engines|" Makefile.org endef + +# ====================== +# CONFIGURE (REAL FIX HERE) +# ====================== define $(package)_config_cmds ./Configure $($(package)_config_opts) && \ + echo "Patching final util/domd to remove clang..." && \ + sed -i.bak 's/clang/cc/g' util/domd && \ make depend endef + +# ====================== +# BUILD/STAGE +# ====================== define $(package)_build_cmds $(MAKE) -j1 build_libs libcrypto.pc libssl.pc openssl.pc endef From d9d74c30b36621dcaba89a52e39649a44bf116ce Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 23:23:48 +0000 Subject: [PATCH 24/29] openssl patch 15 --- depends/packages/openssl.mk | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 2693318..e49d2c2 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -4,7 +4,6 @@ $(package)_version_suffix=u $(package)_download_path=https://www.openssl.org/source/old/$($(package)_version) $(package)_file_name=$(package)-$($(package)_version)$($(package)_version_suffix).tar.gz $(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16 - # PATCHES $(package)_patches += secure_getenv.patch @@ -47,7 +46,6 @@ $(package)_config_opts+=no-whirlpool $(package)_config_opts+=no-zlib $(package)_config_opts+=no-zlib-dynamic $(package)_config_opts+=$($(package)_cflags) $($(package)_cppflags) - $(package)_config_opts_linux=-fPIC -Wa,--noexecstack $(package)_config_opts_x86_64_linux=linux-x86_64 $(package)_config_opts_i686_linux=linux-generic32 @@ -56,37 +54,27 @@ $(package)_config_opts_aarch64_linux=linux-generic64 $(package)_config_opts_mipsel_linux=linux-generic32 $(package)_config_opts_mips_linux=linux-generic32 $(package)_config_opts_powerpc_linux=linux-generic32 - $(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc $(package)_config_opts_x86_64_mingw32=mingw64 $(package)_config_opts_i686_mingw32=mingw endef - -# ====================== -# PREPROCESS -# ====================== define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org endef - -# ====================== -# CONFIGURE (REAL FIX HERE) -# ====================== define $(package)_config_cmds ./Configure $($(package)_config_opts) && \ - echo "Patching final util/domd to remove clang..." && \ - sed -i.bak 's/clang/cc/g' util/domd && \ + echo "Patching util/domd to force GCC-based dependencies..." && \ + sed -i.bak \ + -e 's|MAKEDEPEND=.*|MAKEDEPEND="$$CC -MM"|' \ + -e 's|^\( *\)makedepend|\1$$CC -MM|' \ + util/domd && \ make depend endef - -# ====================== -# BUILD/STAGE -# ====================== define $(package)_build_cmds $(MAKE) -j1 build_libs libcrypto.pc libssl.pc openssl.pc endef From 8a2cfca6f34ecc19ee86e0f31fc6f75ceb15ec84 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Sun, 14 Dec 2025 23:36:27 +0000 Subject: [PATCH 25/29] downgrade to openssl 1.0.1k test 1 --- depends/packages/openssl.mk | 32 +++++++++---------- ...dd-OpenSSL-termios-fix-for-musl-libc.patch | 17 ++++++++++ depends/patches/openssl/domd_cc.patch | 10 ------ 3 files changed, 33 insertions(+), 26 deletions(-) create mode 100644 depends/patches/openssl/0001-Add-OpenSSL-termios-fix-for-musl-libc.patch delete mode 100644 depends/patches/openssl/domd_cc.patch diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index e49d2c2..df9f437 100644 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -1,11 +1,9 @@ package=openssl -$(package)_version=1.0.2 -$(package)_version_suffix=u -$(package)_download_path=https://www.openssl.org/source/old/$($(package)_version) -$(package)_file_name=$(package)-$($(package)_version)$($(package)_version_suffix).tar.gz -$(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16 -# PATCHES -$(package)_patches += secure_getenv.patch +$(package)_version=1.0.1k +$(package)_download_path=https://www.openssl.org/source +$(package)_file_name=$(package)-$($(package)_version).tar.gz +$(package)_sha256_hash=8f9faeaebad088e772f4ef5e38252d472be4d878c6b3a2718c10a4fcebe7a41c +$(package)_patches=0001-Add-OpenSSL-termios-fix-for-musl-libc.patch define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" @@ -50,29 +48,31 @@ $(package)_config_opts_linux=-fPIC -Wa,--noexecstack $(package)_config_opts_x86_64_linux=linux-x86_64 $(package)_config_opts_i686_linux=linux-generic32 $(package)_config_opts_arm_linux=linux-generic32 +$(package)_config_opts_armv7l_linux=linux-generic32 $(package)_config_opts_aarch64_linux=linux-generic64 $(package)_config_opts_mipsel_linux=linux-generic32 $(package)_config_opts_mips_linux=linux-generic32 $(package)_config_opts_powerpc_linux=linux-generic32 +$(package)_config_opts_riscv32_linux=linux-generic32 +$(package)_config_opts_riscv64_linux=linux-generic64 $(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc $(package)_config_opts_x86_64_mingw32=mingw64 $(package)_config_opts_i686_mingw32=mingw +$(package)_config_opts_android=-fPIC +$(package)_config_opts_aarch64_android=linux-generic64 +$(package)_config_opts_x86_64_android=linux-generic64 +$(package)_config_opts_armv7a_android=linux-generic32 +$(package)_config_opts_i686_android=linux-generic32 endef define $(package)_preprocess_cmds - patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \ + patch -p1 < $($(package)_patch_dir)/0001-Add-OpenSSL-termios-fix-for-musl-libc.patch && \ sed -i.old "/define DATE/d" util/mkbuildinf.pl && \ sed -i.old "s|engines apps test|engines|" Makefile.org endef define $(package)_config_cmds - ./Configure $($(package)_config_opts) && \ - echo "Patching util/domd to force GCC-based dependencies..." && \ - sed -i.bak \ - -e 's|MAKEDEPEND=.*|MAKEDEPEND="$$CC -MM"|' \ - -e 's|^\( *\)makedepend|\1$$CC -MM|' \ - util/domd && \ - make depend + ./Configure $($(package)_config_opts) endef define $(package)_build_cmds @@ -85,4 +85,4 @@ endef define $(package)_postprocess_cmds rm -rf share bin etc -endef +endef \ No newline at end of file diff --git a/depends/patches/openssl/0001-Add-OpenSSL-termios-fix-for-musl-libc.patch b/depends/patches/openssl/0001-Add-OpenSSL-termios-fix-for-musl-libc.patch new file mode 100644 index 0000000..cfb125e --- /dev/null +++ b/depends/patches/openssl/0001-Add-OpenSSL-termios-fix-for-musl-libc.patch @@ -0,0 +1,17 @@ +diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c +index a38c758..d99edc2 100644 +--- a/crypto/ui/ui_openssl.c ++++ b/crypto/ui/ui_openssl.c +@@ -190,9 +190,9 @@ + # undef SGTTY + #endif + +-#if defined(linux) && !defined(TERMIO) +-# undef TERMIOS +-# define TERMIO ++#if defined(linux) ++# define TERMIOS ++# undef TERMIO + # undef SGTTY + #endif + \ No newline at end of file diff --git a/depends/patches/openssl/domd_cc.patch b/depends/patches/openssl/domd_cc.patch deleted file mode 100644 index 8b242bf..0000000 --- a/depends/patches/openssl/domd_cc.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/util/domd -+++ b/util/domd -@@ -33,7 +33,7 @@ fi - - case "$MAKEDEPEND" in - *) -- cmd="clang -MM $@" -+ cmd="${CC:-cc} -MM $@" - ;; - esac From b280b52ad34e5461b705ebb6a7e0bae23b24dbcc Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Mon, 15 Dec 2025 00:29:01 +0000 Subject: [PATCH 26/29] ci mac build patch 1 --- .github/workflows/ci.yml | 43 ++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a9fcee0..5c1e6a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -208,22 +208,22 @@ jobs: path: ./depends/built key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('depends/packages/*', '.github/workflows/ci.yml') }} - # - name: Build depends - # run: make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} - - name: Build depends - run: | - set +e - make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} - STATUS=$? + run: make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} + + # - name: Build depends + # run: | + # set +e + # make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} + # STATUS=$? - echo "==== Attempting to dump util/domd files found so far ====" - find depends/work -path "*/openssl*/util/domd" -exec sh -c ' - echo "---- {} ----" - sed -n "1,200p" "{}" - ' \; + # echo "==== Attempting to dump util/domd files found so far ====" + # find depends/work -path "*/openssl*/util/domd" -exec sh -c ' + # echo "---- {} ----" + # sed -n "1,200p" "{}" + # ' \; - exit $STATUS + # exit $STATUS - name: CCache uses: actions/cache@v4 @@ -240,14 +240,23 @@ jobs: chmod +x autogen.sh chmod -R +x depends || true chmod +x share/genbuild.sh + SHORT_COMMIT=$(echo "$GIT_COMMIT_ID" | cut -c1-7) depends/${{ matrix.host }}/native/bin/ccache --max-size=$CCACHE_SIZE + ./autogen.sh chmod +x configure || true - ./configure --prefix=`pwd`/depends/${{ matrix.host }} ${{ matrix.config-opts }} --enable-reduce-exports \ - CFLAGS="-std=c++17 -DGIT_COMMIT_ID=\\\"$SHORT_COMMIT\\\"" \ - CXXFLAGS="-std=c++17 -DGIT_COMMIT_ID=\\\"$SHORT_COMMIT\\\"" || ( cat config.log && false) - make $MAKEJOBS ${{ matrix.goal }} CXXFLAGS="-std=c++17" || (echo "Build failure. Verbose build follows." && make ${{ matrix.goal }} CXXFLAGS="-std=c++17" V=1 ; false) + + ./configure --prefix=`pwd`/depends/${{ matrix.host }} \ + ${{ matrix.config-opts }} \ + --enable-reduce-exports \ + CFLAGS="-pipe -O2 -DGIT_COMMIT_ID=\\\"$SHORT_COMMIT\\\"" \ + CXXFLAGS="-std=c++17 -pipe -O2 -DGIT_COMMIT_ID=\\\"$SHORT_COMMIT\\\"" \ + || (cat config.log && false) + + make $MAKEJOBS ${{ matrix.goal }} \ + CXXFLAGS="-std=c++17" \ + || (echo "Build failure. Verbose build follows." && make ${{ matrix.goal }} CXXFLAGS="-std=c++17" V=1 ; false) - name: Run benchmark if: ${{ matrix.run-bench }} From a8dbcd7981aae63bae60f92e3f0eb5c78b7cffc8 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Mon, 15 Dec 2025 20:59:01 +0000 Subject: [PATCH 27/29] C++ compatibility patch allows compatibility from C++11 up to C++17 --- src/wallet/wallet.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index f47f76f..0ece77d 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -36,6 +36,28 @@ #include #include +#include +// ================================================================ +// C++17 compatibility: std::random_shuffle was removed. +// We provide a replacement that preserves the old behavior. +// ================================================================ +template +static void RandomShuffleCompat(RandomIt first, RandomIt last) +{ +#if __cplusplus >= 201703L + // Manual shuffle using GetRandInt() + if (first == last) return; + auto n = last - first; + for (decltype(n) i = n - 1; i > 0; --i) { + std::swap(first[i], first[GetRandInt(i + 1)]); + } +#else + // Old compilers still have std::random_shuffle + std::random_shuffle(first, last, GetRandInt); +#endif +} + + std::vector vpwallets; /** Transaction fee set by the user */ CFeeRate payTxFee(DEFAULT_TRANSACTION_FEE); @@ -2392,7 +2414,7 @@ bool CWallet::SelectCoinsMinConf(const CAmount& nTargetValue, const int nConfMin std::vector vValue; CAmount nTotalLower = 0; - random_shuffle(vCoins.begin(), vCoins.end(), GetRandInt); + RandomShuffleCompat(vCoins.begin(), vCoins.end()); for (const COutput &output : vCoins) { From a4450585cb7bb400dc1c70b25eea73b2a7676414 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Mon, 15 Dec 2025 22:07:38 +0000 Subject: [PATCH 28/29] security-check.py update --- contrib/devtools/security-check.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/contrib/devtools/security-check.py b/contrib/devtools/security-check.py index 92c18fa..04d4e05 100644 --- a/contrib/devtools/security-check.py +++ b/contrib/devtools/security-check.py @@ -177,13 +177,29 @@ def check_PE_NX(executable): ] } -def identify_executable(executable): +def identify_executable(filename): with open(filename, 'rb') as f: magic = f.read(4) + + # Windows PE if magic.startswith(b'MZ'): return 'PE' - elif magic.startswith(b'\x7fELF'): + + # Linux ELF + if magic.startswith(b'\x7fELF'): return 'ELF' + + # macOS Mach-O (32/64-bit, swapped and unswapped) + MACHO_MAGICS = [ + b'\xfe\xed\xfa\xce', # 32-bit Mach-O + b'\xce\xfa\xed\xfe', # 32-bit reverse byte order + b'\xfe\xed\xfa\xcf', # 64-bit Mach-O + b'\xcf\xfa\xed\xfe', # 64-bit reverse byte order + ] + + if magic in MACHO_MAGICS: + return 'MACHO' # <- added type + return None if __name__ == '__main__': @@ -196,6 +212,11 @@ def identify_executable(executable): retval = 1 continue + # Skip Mach-O (macOS) + if etype == 'MACHO': + print('%s: skipping macOS Mach-O binary (no checks available)' % filename) + continue + failed = [] warning = [] for (name, func) in CHECKS[etype]: From 434609e8a9ed2fec1314090df2d875ae76874be8 Mon Sep 17 00:00:00 2001 From: CryptoLover705 <50221455+CryptoLover705@users.noreply.github.com> Date: Mon, 15 Dec 2025 23:52:25 +0100 Subject: [PATCH 29/29] update version number --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 6fc6346..f12895e 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 5) define(_CLIENT_VERSION_MINOR, 0) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 2) +define(_CLIENT_VERSION_BUILD, 3) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2025) define(_COPYRIGHT_HOLDERS,[The %s developers])