{
 "number": 36592,
 "repo": "bitcoin/bitcoin",
 "url": "https://github.com/bitcoin/bitcoin/pull/36592",
 "title": "build: Bump macOS SDK version to 15.0",
 "author": "hebasto",
 "author_association": "MEMBER",
 "created_at": "2026-10-21T18:27:33Z",
 "updated_at": "2026-10-27T16:44:39Z",
 "description_hash": "72adc18c9e6499ad",
 "age_days": 11,
 "draft": false,
 "labels": [
  "macOS",
  "Build system"
 ],
 "milestone": null,
 "base": "master",
 "head_sha": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
 "head_ref": "261021-macos-sdk",
 "head_repo": "hebasto/bitcoin",
 "head_history": [],
 "additions": 2,
 "deletions": 2,
 "changed_files": 2,
 "commit_count": 1,
 "size_bucket": "S",
 "mergeable_state": "clean",
 "bot": {
  "drahtbot": {
   "present": true,
   "reviews": {
    "ack": [
     {
      "login": "maflcko",
      "url": "https://github.com/bitcoin/bitcoin/pull/36592#issuecomment-6447860547"
     }
    ]
   },
   "conflicts": []
  }
 },
 "acks_parsed": {},
 "acks_tally": {
  "ack": 0,
  "stale_ack": 0,
  "concept_ack": 0,
  "approach_ack": 0,
  "nack": 0,
  "concept_nack": 0,
  "approach_nack": 0
 },
 "reviews": {
  "approved": 0,
  "changes_requested": 0,
  "distinct_reviewers": [
   "fanquake",
   "maflcko"
  ]
 },
 "signals": {
  "needs_rebase": false,
  "ci_failed": false,
  "mergeable_state": "clean",
  "last_author_activity": "2026-10-27T16:35:02Z",
  "last_reviewer_activity": "2026-10-27T16:44:34Z",
  "last_reviewer": "maflcko",
  "author_silent_days": 5,
  "waiting_on_author_days": 5,
  "days_since_update": 5
 },
 "refs": {
  "mentioned": [
   36593
  ],
  "depends_on": [],
  "fixes": [],
  "linked_issues": [],
  "references": [
   {
    "number": 36593,
    "type": "pull",
    "state": "open",
    "merged": false,
    "merged_at": null,
    "title": "depends: Update Qt to 6.12.0"
   }
  ],
  "conflicts": []
 },
 "stack": {
  "shares_commits_with": [
   36593
  ],
  "based_on": [],
  "base_for": [
   36593
  ]
 },
 "review_paths": [
  "depends/hosts/darwin.mk"
 ],
 "body": "Qt 6.12, which supports deployment targets up to macOS 26, requires the macOS 15 SDK or higher.\n\nSee https://doc.qt.io/qt-6.12/macos.html.\n\nThis is a prerequisite for the upcoming update of Qt in depends from 6.8 LTS to 6.12 LTS.\n\nMy partial Guix build:\n```console\n$ uname -m && find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum\nx86_64\n727bcc7343afc599cadad3891a6aaa73883594a5feea6695b81056eaf1881914  guix-build-eaa8d1f5a5fc/output/arm64-apple-darwin/SHA256SUMS.part\ncea76395e4761c9cc6c1e7fc0eae52abd3bb024caeed62a3461a9cf0de2f4b08  guix-build-eaa8d1f5a5fc/output/arm64-apple-darwin/bitcoin-eaa8d1f5a5fc-arm64-apple-darwin-codesigning.tar.gz\n8886c05cca9f518441284be4cb415d275b7d118e8150e441d053e3fc61d27807  guix-build-eaa8d1f5a5fc/output/arm64-apple-darwin/bitcoin-eaa8d1f5a5fc-arm64-apple-darwin-unsigned.tar.gz\n7c6c4423e6272a821fd6adefaac6dd4a1e09f7f85ecf9efa6bd7e97c0ddc79bc  guix-build-eaa8d1f5a5fc/output/arm64-apple-darwin/bitcoin-eaa8d1f5a5fc-arm64-apple-darwin-unsigned.zip\na74db20b1a8acd1a570a733d02ea7e3aa28ac8902462e9be9fac10e0f84e4ca1  guix-build-eaa8d1f5a5fc/output/dist-archive/bitcoin-eaa8d1f5a5fc.tar.gz\nf708d94dc0343a5057d3b8791242acd67dbb1f481b2da7fc778aa981e9fc2e42  guix-build-eaa8d1f5a5fc/output/x86_64-apple-darwin/SHA256SUMS.part\n98ddcc471b967208e491c06f697e94d09005631da463e085ee88e281c035180e  guix-build-eaa8d1f5a5fc/output/x86_64-apple-darwin/bitcoin-eaa8d1f5a5fc-x86_64-apple-darwin-codesigning.tar.gz\n7aeb9b6f84679f11d22ffe1faf4b0aa386c09f641a6d742f70ef727466b24d0f  guix-build-eaa8d1f5a5fc/output/x86_64-apple-darwin/bitcoin-eaa8d1f5a5fc-x86_64-apple-darwin-unsigned.tar.gz\nde23e46dbe3c0886fd689b16ab345120907445212ffb6fcb41ccca8cfc8d628e  guix-build-eaa8d1f5a5fc/output/x86_64-apple-darwin/bitcoin-eaa8d1f5a5fc-x86_64-apple-darwin-unsigned.zip\n```",
 "commits": [
  {
   "sha": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "date": "2026-10-21T17:49:26Z",
   "message": "build: Bump macOS SDK version to 15.0\n\nQt 6.12 requires macOS 15 SDK or higher.\nSee https://doc.qt.io/qt-6.12/macos.html.\n\nThe minimum supported macOS version stays at 14.0."
  }
 ],
 "timeline": [
  {
   "t": "2026-10-21T18:39:41Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "depends/hosts/darwin.mk",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "in_reply_to": null,
   "text": "[quoted text omitted]\n\nThis page also claims that a deployment target of 14.4 or later is required, but you're not changing that here. Will our release binaries just crash on the older versions?",
   "id": "rc:4340570727",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#discussion_r4340570727",
   "hash": "8ea92ac6b7023d10",
   "edited": "2026-10-21T18:41:09Z"
  },
  {
   "t": "2026-10-21T18:41:09Z",
   "kind": "review",
   "who": "fanquake",
   "assoc": "MEMBER",
   "state": "COMMENTED",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "text": "[quoted text omitted]\n\nWhat is the actual requirement for the `15.x` SDK?",
   "id": "r:5604504005",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#pullrequestreview-5604504005",
   "hash": "d9dc34775201ff6d",
   "edited": null
  },
  {
   "t": "2026-10-21T19:09:26Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nIt's hard to say from the [commit](https://github.com/qt/qtbase/commit/21d71d1a991a2009e93ed7302b3ec3ce21d3c87f) message. But the configuration fails with the current `OSX_SDK_VERSION=14.0`.",
   "id": "c:6324287971",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#issuecomment-6324287971",
   "hash": "3dc6db21fe5c6dc8",
   "edited": null
  },
  {
   "t": "2026-10-21T19:21:34Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "depends/hosts/darwin.mk",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "in_reply_to": 4340570727,
   "text": "[quoted text omitted]\n\nYes, both changes are prerequisites for updating Qt to 6.12. However, I thought it would be better to consider them separately, as we might skip no longer supported 14.4 altogether and bump the minimum version straight to 15.0.",
   "id": "rc:4340989472",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#discussion_r4340989472",
   "hash": "04f82ee666369b08",
   "edited": "2026-10-21T19:21:35Z"
  },
  {
   "t": "2026-10-21T19:25:15Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "depends/hosts/darwin.mk",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "in_reply_to": 4340570727,
   "text": "[quoted text omitted]\n\nI don't see the other change in #36593?",
   "id": "rc:4341023717",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#discussion_r4341023717",
   "hash": "f8cf818a338b2c10",
   "edited": "2026-10-21T19:25:55Z"
  },
  {
   "t": "2026-10-22T07:35:29Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "depends/hosts/darwin.mk",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "in_reply_to": null,
   "text": "Can you explain what this value means for non-Apple people? According to https://developer.apple.com/documentation/xcode-release-notes/xcode-26_1-release-notes?changes=l_4,l_4,l_4,l_4&utm_source=openai#Overview, Xcode 26.1.1 includes [...] SDKs for [...] 26.1, so this value should be 26.1 and neither 14 nor 15?\n\nI think this is also what Ralph LLM asks:\n\nThe pinned sysroot comes from Xcode 26.1.1/17B100 and contains the macOS 26.1 SDK, but the linker receives 15.0 as the SDK version and the Guix symbol checker requires that value. Builds using this sysroot therefore report SDK 15.0 in their Mach-O metadata despite using the macOS 26.1 SDK. Could the linker metadata and checker use the actual SDK version while keeping OSX_MIN_VERSION=14.0? If Qt needs a separate SDK floor, keep that separate rather than using one value for both. ([developer.apple.com](https://developer.apple.com/documentation/xcode-release-notes/xcode-26_1-release-notes?changes=l_4%2Cl_4%2Cl_4%2Cl_4&utm_source=openai))\n\nBasically, I wonder why is this not 26.1 now. Going further, this line could also be removed on the next archive bump and the actual version could simply be extracted from `SDKSettings.json`'s version field?",
   "id": "rc:4345684762",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#discussion_r4345684762",
   "hash": "f50eccf521af3af8",
   "edited": null
  },
  {
   "t": "2026-10-27T16:02:22Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "depends/hosts/darwin.mk",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "in_reply_to": 4345684762,
   "text": "[quoted text omitted]\n\nThe linker stamps the SDK version into the binary. At runtime, Apple\u2019s frameworks read it to decide which generation of behaviour the binary opts into, independently of the headers actually used and of the minimum supported macOS version.\n\nChoosing 26.1 means the binary opts into every behaviour change Apple has gated up to macOS 26.1, so on any OS that has them, the latest ones are used.\n\nChoosing 15.0 means the binary opts into changes gated up to macOS 15.0 and keeps the legacy behaviour for anything gated later.\n\nThis choice affects the look-and-feel of the GUI. Consider the following side-by-side comparison of `OSX_SDK_VERSION=14.0` and `OSX_SDK_VERSION=26.1` on macOS 27.2:",
   "id": "rc:4391033521",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#discussion_r4391033521",
   "hash": "4725475afc6d9636",
   "edited": null
  },
  {
   "t": "2026-10-27T16:16:15Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "depends/hosts/darwin.mk",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "in_reply_to": 4345684762,
   "text": "Thanks for clarifying!\n\nThough, I still wonder why this is not 26.1 now (i.e. the latest SDK), so that any OS can use the latest features, if it has them. Is there some requirement that GUI looks the same for any macOS version? Or is this some hack in the assumption that gating the features will avoid having an exploding test matrix?\n\nPersonally, I think it is fine to  let the GUI look different (possibly \"modern\" on later macOS versions). Also I think it is fine to use other SDK features on later macOS versions. If there was a bug in any of them, we'd have to fix them anyway for self-compilation and if there is a macOS bug a feature gate is no guarantee that the bug won't happen?\n\nJust curious. Any value here seems fine, given your reply.",
   "id": "rc:4391196910",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#discussion_r4391196910",
   "hash": "16188e5e3f1520f1",
   "edited": null
  },
  {
   "t": "2026-10-27T16:35:02Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "depends/hosts/darwin.mk",
   "commit": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "in_reply_to": 4345684762,
   "text": "[quoted text omitted]\n\nThat would require us to test the release binaries on every supported macOS version, with each one running a different generation of framework behaviour.\n\n[quoted text omitted]\nNo, there is not, as far as I'm aware.\n\n[quoted text omitted]\nYes, that is my thinking.\n\n[quoted text omitted]\nTo use the latest SDK, it's needed to build with Homebrew\u2019s packages.",
   "id": "rc:4391405706",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#discussion_r4391405706",
   "hash": "93fe12489c8dc821",
   "edited": null
  },
  {
   "t": "2026-10-27T16:44:34Z",
   "kind": "comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "text": "lgtm ACK eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
   "id": "c:6447860547",
   "url": "https://github.com/bitcoin/bitcoin/pull/36592#issuecomment-6447860547",
   "hash": "54156fba8b88cabe",
   "edited": null
  }
 ],
 "labels_log": [
  {
   "t": "2026-10-21T18:27:34Z",
   "action": "labeled",
   "label": "macOS",
   "who": "hebasto"
  },
  {
   "t": "2026-10-21T18:27:35Z",
   "action": "labeled",
   "label": "Build system",
   "who": "hebasto"
  }
 ],
 "state_log": [],
 "text_chars": 5957,
 "text_tokens_estimate": 1489,
 "changed_paths": [
  "contrib/guix/symbol-check.py",
  "depends/hosts/darwin.mk"
 ],
 "files": [
  {
   "path": "contrib/guix/symbol-check.py",
   "add": 1,
   "del": 1
  },
  {
   "path": "depends/hosts/darwin.mk",
   "add": 1,
   "del": 1
  }
 ],
 "test_lines": 2,
 "git": {
  "head": "eaa8d1f5a5fcfeefcb3ff432aeb969e8f8f14a7d",
  "head_matches_backup": true,
  "base": "7efbdb6437a840217127bd7dea0b963c67613860",
  "patch_id": "775dd46f37c17262",
  "commits": [
   {
    "sha": "eaa8d1f5a5",
    "subject": "build: Bump macOS SDK version to 15.0",
    "files": 2,
    "add": 2,
    "del": 2
   }
  ],
  "patch_truncated": false
 },
 "patch_id": "775dd46f37c17262",
 "input_hash": "0ade7334a0d5dcdf",
 "extracted_at": "2026-11-02T01:09:49+00:00"
}