-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
darwin.apple_sdk.frameworks: cleanup, add missing frameworks, fix dependency structure #118906
Conversation
/rebase staging |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly alphabetically sorting nits.
@@ -0,0 +1,33 @@ | |||
# Some frameworks have recursive dependencies - e.g. CoreData depends on |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure anymore how I solved this but I think I used CoreFoundation instead of Foundation which is also not a good solution.
23def15
to
1669222
Compare
Applied a liberal dose of |
You can always just do the same changes locally. Its not that important that you apply the suggestions. |
@ofborg build darwin.apple_sdk.frameworks |
GameCenter relies on GameCenterFoundation and GameCenterUI, which finally gives the push needed to start checking and fixing the TBD reexports for TBD-only frameworks.
pyobjc is effectively a bunch of Python bindings to a whole heap of the frameworks in the Apple SDK - as such, we need to be able to declare dependencies on a consistent set of frameworks as exposed by a particular macOS SDK version. Since the current SDK version fetched here is 10.12, this commit exports all the frameworks that pyobjc expects for macOS 10.12.
These frameworks tend to themselves include other framework headers; in general most software expects to see all of them at once, since they're all part of the macOS SDK. This commit adds the dependencies required to resolve all of the top-level framework headers (which appears to be a decent heuristic for those which are intended to be included). It also introduces a second-layer mechanism by which the frameworks are checked to ensure that all dependencies are correctly listed, as well as to bring in dependencies which would not otherwise be possible due to circular dependencies.
1669222
to
0a729b1
Compare
ping @NixOS/darwin-maintainers |
Gentle bump. (Rooting for progress on this so I can fix the iterm2 python package, which needs pyobjc.) |
Motivation for this change
As part of packaging pyobjc in #102306 and #118851, @SuperSandro2000 and I both discovered that a variety of the frameworks from macOS 10.12 are either missing, or not packaged in a way that lends it to use (because the headers refer to other frameworks, which aren't actually listed properly as dependencies).
This PR:
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)