Merged
Conversation
Member
|
emilazy
approved these changes
Oct 23, 2025
Member
emilazy
left a comment
There was a problem hiding this comment.
Looks good to me! Thanks for following in my first‐SDK‐addition journey footsteps :)
A few comments, but I’d be happy to merge this as‐is.
This should compile with the Xcode 26 toolchain, and should run on all
versions of macOS. On 26+, it should print "/private/tmp", while on
earlier versions it should print ":(".
It should fail to build in nixpkgs
This should now build in nixpkgs, with the same behavior as when using the Xcode toolchain.
This should continue to behave the same on macOS 26+, but on earlier versions it should simply crash with missing symbol errors
9f03a50 to
e7e5418
Compare
emilazy
approved these changes
Oct 23, 2025
Member
emilazy
left a comment
There was a problem hiding this comment.
Thank you!
Your next task is to rewrite the entire stdenv bootstrap.
Contributor
|
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin release-25.05
git worktree add -d .worktree/backport-454747-to-release-25.05 origin/release-25.05
cd .worktree/backport-454747-to-release-25.05
git switch --create backport-454747-to-release-25.05
git cherry-pick -x 088c4adc0a13161783e524c6891eb68da02d3b3d 23c079624b7cfe8f5e2de96be272d6dba8b94f41 e2734c5d78e0a1b7efc0d4615cf312db29fe7623 fbc33babd6daeab7b227ce2c6215600d2e08e0a3 e7e541877fcce8e2cfedeec174d99525e657c81f |
This was referenced Nov 7, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It's October again, and you know what that means... a new macOS release! This year, building on the foundation of #346043 and following in the footsteps of #347862, we aim to introduce a new
apple-sdkversion, as part of what will hopefully continue to be a regular process.This PR adds the macOS 26.0 Tahoe SDK as
apple-sdk_26. I followed the steps that @emilazy thoroughly documented in #347862, so I won't go into too much detail, but I do have a few notes.The biggest challenge I faced was coming up with a test package. I've never had a reason to go looking for APIs introduced in a specific version before, so I wasn't sure where to start. I ended up searching for
__sqrtf16, which led me to the strategy of grepping inside/Library/Developer/CommandLineTools/SDKs/MacOSX26.sdk/usr/includeformacos(26. This worked, and I found many new APIs. I picked an API from the new Spatial framework and got down to business.Everything seemed to be working as expected: my test program compiled with the Xcode toolchain and ran on my Tahoe VM, but took the fallback path after failing the availability check on my Sequoia laptop. It failed to compile with the latest apple-sdk in nixpkgs (15), but when I added the 26.0 SDK it built fine, exhibiting the same behavior as my Xcode-toolchain-built binary. However, things got confusing when I added
(darwinMinVersionHook "26.0"): the resulting binary continued to work on my Tahoe VM but surprisingly also worked on my Sequoia laptop.This was surprising and unintuitive to me. It sounds like (based on conversations on Matrix with people who understand this better than I do) that this implies Spatial was a private framework on Sequoia that was nonetheless usable. I went back to my ripgrep results and picked an old reliable posix_spawn API, which behaved as I expected it to.
The other note I have is about the software update catalog URL. I used the same gist with a list of URLs, but I noticed that the prediction there assumed that upcoming versions would be macOS 16, macOS 17, etc., while we instead got macOS 26. I checked and both of the following URLs produced the same download:
Evidently this was done for backwards compatibility, but there is no guarantee that this will continue indefinitely (though admittedly, the presence of "10.16" instead of "11" supports the argument that it will). This was not an issue in practice, but is worth noting for the future, especially if this part of the process is automated. Fortunately, this was the only 16/26 related issue (if it can even be called that) that I faced while working on this PR.
I have no comments on the source releases; they were very straightforward once they were finally released by Apple.
Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.