Merge bitcoin/bitcoin#33489: build: Drop support for EOL macOS 13

1aaaaa078b fuzz: Drop unused workaround after Apple-Clang bump (MarcoFalke)
fadad7a494 Drop support for EOL macOS 13 (MarcoFalke)

Pull request description:

  Now that macOS 13 is EOL (https://en.wikipedia.org/wiki/MacOS_Ventura), it seems odd to still support it.

  (macOS Ventura 13.7.8 received its final security update on 20 Aug 2025: https://support.apple.com/en-us/100100)

  This patch will only be released in version 31.x, another 6 months out from now.

  So:

  * Update the depends build and release note template to drop EOL macOS 13.
  * As a result, update the earliest Xcode to version 16 in CI.
  * Also, bump the macOS CI runner to version 15, to avoid issues when version 14 will be at its EOL in about 1 year.

  This also allows to drop a small workaround in the fuzz tests and unlocks libcpp hardening (https://github.com/bitcoin/bitcoin/pull/33462)

ACKs for top commit:
  stickies-v:
    re-ACK 1aaaaa078b
  l0rinc:
    code review ACK 1aaaaa078b
  hodlinator:
    re-ACK 1aaaaa078b
  hebasto:
    ACK 1aaaaa078b.

Tree-SHA512: 6d247a8432ef8ea8c6ff2a221472b278f8344346b172980299507f9898bb9e8e16480c128b1f4ca692bcbcc393da2b2fd6895ac5f118bc09e0f30f910529d20c
This commit is contained in:
merge-script 2025-10-06 12:48:00 -04:00
commit 919e6d01e9
No known key found for this signature in database
GPG Key ID: BA03F4DBE0C63FB4
6 changed files with 10 additions and 10 deletions

View File

@ -105,7 +105,7 @@ jobs:
name: ${{ matrix.job-name }} name: ${{ matrix.job-name }}
# Use any image to support the xcode-select below, but hardcode version to avoid silent upgrades (and breaks). # Use any image to support the xcode-select below, but hardcode version to avoid silent upgrades (and breaks).
# See: https://github.com/actions/runner-images#available-images. # See: https://github.com/actions/runner-images#available-images.
runs-on: macos-14 runs-on: macos-15
# When a contributor maintains a fork of the repo, any pull request they make # When a contributor maintains a fork of the repo, any pull request they make
# to their own fork, or to the main repository, will trigger two CI runs: # to their own fork, or to the main repository, will trigger two CI runs:
@ -123,10 +123,10 @@ jobs:
include: include:
- job-type: standard - job-type: standard
file-env: './ci/test/00_setup_env_mac_native.sh' file-env: './ci/test/00_setup_env_mac_native.sh'
job-name: 'macOS 14 native, arm64, no depends, sqlite only, gui' job-name: 'macOS native, no depends, sqlite only, gui'
- job-type: fuzz - job-type: fuzz
file-env: './ci/test/00_setup_env_mac_native_fuzz.sh' file-env: './ci/test/00_setup_env_mac_native_fuzz.sh'
job-name: 'macOS 14 native, arm64, fuzz' job-name: 'macOS native, fuzz'
env: env:
DANGER_RUN_CI_ON_HOST: 1 DANGER_RUN_CI_ON_HOST: 1
@ -145,8 +145,8 @@ jobs:
# Use the earliest Xcode supported by the version of macOS denoted in # Use the earliest Xcode supported by the version of macOS denoted in
# doc/release-notes-empty-template.md and providing at least the # doc/release-notes-empty-template.md and providing at least the
# minimum clang version denoted in doc/dependencies.md. # minimum clang version denoted in doc/dependencies.md.
# See: https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes # See: https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes
sudo xcode-select --switch /Applications/Xcode_15.0.app sudo xcode-select --switch /Applications/Xcode_16.0.app
clang --version clang --version
- name: Install Homebrew packages - name: Install Homebrew packages

View File

@ -248,7 +248,7 @@ def check_MACHO_libraries(binary) -> bool:
return ok return ok
def check_MACHO_min_os(binary) -> bool: def check_MACHO_min_os(binary) -> bool:
if binary.build_version.minos == [13,0,0]: if binary.build_version.minos == [14,0,0]:
return True return True
return False return False

View File

@ -1,4 +1,4 @@
OSX_MIN_VERSION=13.0 OSX_MIN_VERSION=14.0
OSX_SDK_VERSION=14.0 OSX_SDK_VERSION=14.0
XCODE_VERSION=15.0 XCODE_VERSION=15.0
XCODE_BUILD_ID=15A240d XCODE_BUILD_ID=15A240d

View File

@ -36,7 +36,7 @@ Compatibility
============== ==============
Bitcoin Core is supported and tested on operating systems using the Bitcoin Core is supported and tested on operating systems using the
Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin Linux Kernel 3.17+, macOS 14+, and Windows 10+. Bitcoin
Core should also work on most other Unix-like systems but is not as Core should also work on most other Unix-like systems but is not as
frequently tested on them. It is not recommended to use Bitcoin Core on frequently tested on them. It is not recommended to use Bitcoin Core on
unsupported systems. unsupported systems.

View File

@ -3,7 +3,7 @@
<plist version="0.9"> <plist version="0.9">
<dict> <dict>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>13</string> <string>14</string>
<key>LSArchitecturePriority</key> <key>LSArchitecturePriority</key>
<array> <array>

View File

@ -75,7 +75,7 @@ auto& FuzzTargets()
void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target, FuzzTargetOptions opts) void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target, FuzzTargetOptions opts)
{ {
const auto [it, ins]{FuzzTargets().try_emplace(name, FuzzTarget /* temporary can be dropped after Apple-Clang-16 ? */ {std::move(target), std::move(opts)})}; const auto [it, ins]{FuzzTargets().try_emplace(name, std::move(target), std::move(opts))};
Assert(ins); Assert(ins);
} }