From 13353ae36de247396c162e50ce41b70748a43a62 Mon Sep 17 00:00:00 2001 From: Jingchen Date: Mon, 21 Jul 2025 13:22:32 +0100 Subject: [PATCH 1/3] Fix macos runner (#5585) This change fixes the MacOS pipeline issue by limiting GitHub to choose the existing runners, ensuring the new experimental runners are excluded until they are ready. --- .github/workflows/macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 13c817087a..e9a4db3bed 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -40,7 +40,7 @@ jobs: - Ninja configuration: - Release - runs-on: [self-hosted, macOS] + runs-on: [self-hosted, macOS, mac-runner-m1] env: # The `build` action requires these variables. build_dir: .build From e95683a0fbdf102a92c104c4e4f407f599a96f3a Mon Sep 17 00:00:00 2001 From: Vito Tumas <5780819+Tapanito@users.noreply.github.com> Date: Mon, 21 Jul 2025 15:14:22 +0200 Subject: [PATCH 2/3] refactor: Change boost::shared_mutex to std::shared_mutex (#5576) This change reverts the usage of boost::shared_mutex back to std::shared_mutex. The change was originally introduced as a workaround for a bug in glibc 2.28 and older versions, which could cause threads using std::shared_mutex to stall. This issue primarily affected Ubuntu 18.04 and earlier distributions, which we no longer support. --- src/xrpld/app/misc/ValidatorList.h | 2 +- src/xrpld/overlay/detail/PeerImp.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/xrpld/app/misc/ValidatorList.h b/src/xrpld/app/misc/ValidatorList.h index 4cb32282db..1f5d728824 100644 --- a/src/xrpld/app/misc/ValidatorList.h +++ b/src/xrpld/app/misc/ValidatorList.h @@ -226,7 +226,7 @@ class ValidatorList TimeKeeper& timeKeeper_; boost::filesystem::path const dataPath_; beast::Journal const j_; - boost::shared_mutex mutable mutex_; + std::shared_mutex mutable mutex_; using lock_guard = std::lock_guard; using shared_lock = std::shared_lock; diff --git a/src/xrpld/overlay/detail/PeerImp.h b/src/xrpld/overlay/detail/PeerImp.h index ecd3fc7f63..d5f8e4d179 100644 --- a/src/xrpld/overlay/detail/PeerImp.h +++ b/src/xrpld/overlay/detail/PeerImp.h @@ -98,7 +98,7 @@ private: // Node public key of peer. PublicKey const publicKey_; std::string name_; - boost::shared_mutex mutable nameMutex_; + std::shared_mutex mutable nameMutex_; // The indices of the smallest and largest ledgers this peer has available // @@ -214,7 +214,7 @@ private: total_bytes() const; private: - boost::shared_mutex mutable mutex_; + std::shared_mutex mutable mutex_; boost::circular_buffer rollingAvg_{30, 0ull}; clock_type::time_point intervalStart_{clock_type::now()}; std::uint64_t totalBytes_{0}; From 03e46cd02617b3d7ce32c1a6820f91e2a04b961c Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Mon, 21 Jul 2025 15:03:53 +0100 Subject: [PATCH 3/3] Remove `include(default)` from libxrpl profile (#5587) Remove `include(default)` from `conan/profiles/libxrpl`. This means that we will now rely on compiler workarounds stored elsewhere e.g. in global.conf. --- .github/workflows/macos.yml | 4 +++- .github/workflows/nix.yml | 8 ++++++-- .github/workflows/windows.yml | 5 +++-- conan/profiles/libxrpl | 4 ---- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index e9a4db3bed..8acd90eeff 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -24,6 +24,8 @@ env: CONAN_GLOBAL_CONF: | core.download:parallel={{os.cpu_count()}} core.upload:parallel={{os.cpu_count()}} + core:default_build_profile=libxrpl + core:default_profile=libxrpl tools.build:jobs={{ (os.cpu_count() * 4/5) | int }} tools.build:verbosity=verbose tools.compilation:verbosity=verbose @@ -87,7 +89,7 @@ jobs: clang --version - name: configure Conan run : | - echo "${CONAN_GLOBAL_CONF}" > global.conf + echo "${CONAN_GLOBAL_CONF}" >> $(conan config home)/global.conf conan config install conan/profiles/ -tf $(conan config home)/profiles/ conan profile show - name: export custom recipes diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index 7543ade692..8218dcc276 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -25,6 +25,8 @@ env: CONAN_GLOBAL_CONF: | core.download:parallel={{ os.cpu_count() }} core.upload:parallel={{ os.cpu_count() }} + core:default_build_profile=libxrpl + core:default_profile=libxrpl tools.build:jobs={{ (os.cpu_count() * 4/5) | int }} tools.build:verbosity=verbose tools.compilation:verbosity=verbose @@ -91,7 +93,8 @@ jobs: env | sort - name: configure Conan run: | - echo "${CONAN_GLOBAL_CONF}" >> ${CONAN_HOME}/global.conf + echo "${CONAN_GLOBAL_CONF}" >> $(conan config home)/global.conf + conan config install conan/profiles/ -tf $(conan config home)/profiles/ conan profile show - name: archive profile # Create this archive before dependencies are added to the local cache. @@ -379,7 +382,8 @@ jobs: - name: configure Conan run: | - echo "${CONAN_GLOBAL_CONF}" >> ${CONAN_HOME}/global.conf + echo "${CONAN_GLOBAL_CONF}" >> $(conan config home)/global.conf + conan config install conan/profiles/ -tf $(conan config home)/profiles/ conan profile show - name: build dependencies run: | diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index ae0302f2a7..254850f26a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -27,6 +27,8 @@ env: CONAN_GLOBAL_CONF: | core.download:parallel={{os.cpu_count()}} core.upload:parallel={{os.cpu_count()}} + core:default_build_profile=libxrpl + core:default_profile=libxrpl tools.build:jobs=24 tools.build:verbosity=verbose tools.compilation:verbosity=verbose @@ -82,8 +84,7 @@ jobs: - name: configure Conan shell: bash run: | - echo "${CONAN_GLOBAL_CONF}" > global.conf - mv conan/profiles/libxrpl conan/profiles/default + echo "${CONAN_GLOBAL_CONF}" >> $(conan config home)/global.conf conan config install conan/profiles/ -tf $(conan config home)/profiles/ conan profile show - name: export custom recipes diff --git a/conan/profiles/libxrpl b/conan/profiles/libxrpl index 862244536b..b037b8c4a2 100644 --- a/conan/profiles/libxrpl +++ b/conan/profiles/libxrpl @@ -6,10 +6,6 @@ {% set compiler_version = detect_api.default_compiler_version(compiler, version) %} {% endif %} -{% if os == "Linux" %} -include(default) -{% endif %} - [settings] os={{ os }} arch={{ arch }}