Commit Graph

12 Commits

Author SHA1 Message Date
Emily
8072991b1d
apple-sdk: propagate the libutil library (#353873) 2024-11-07 01:05:45 +00:00
Emily
877e3454bb apple-sdk: propagate the darwin.libutil library
The SDK provides this without headers and apparently some things
try to link to it. This should help increase compatibility with the
native toolchain.
2024-11-06 00:52:57 +00:00
Randy Eckenrode
e166c9bb94
apple-sdk: only rewrite old SDK paths
Rewriting SDK paths is only needed when a text-based stub is an umbrella
framework that does not include the contents of the stubs for the
libraries re-exported by the framework. This is only the case for older
SDKs. Once macOS introduced the dyld cache (and removed system dylibs)
in 11.0, all umbrella frameworks in the SDK include the contents of
their re-exported stubs.

While rewriting newer SDKs is mostly harmless, it breaks Zig, which
tries to interpret the paths relative to the SDKROOT.
2024-11-03 08:53:29 -05:00
Emily
4bab86f588 apple-sdk_15: init at 15.0 2024-10-11 07:19:38 +01:00
Emily
29e87ecdd4 apple-sdk: fix JSON handling in lock-sdk-deps.sh
This was omitting the SDK version from the structure, probably due
to refactors in response to my own reviews on the SDK rework PR. Oops!
2024-10-11 07:19:38 +01:00
Randy Eckenrode
8fae28553a
apple-sdk_14: init at 14.4 2024-10-10 16:22:58 -04:00
Randy Eckenrode
4283b8f00a
apple-sdk_13: init at 13.3 2024-10-10 16:22:58 -04:00
Randy Eckenrode
689e8980bc
apple-sdk_12: init at 12.3 2024-10-10 16:22:58 -04:00
Randy Eckenrode
d10c85b19b
apple-sdk_10_15: init at 10.15.6 2024-10-10 16:22:58 -04:00
Randy Eckenrode
a447cba849
apple-sdk_10_14: init at 10.14.6 2024-10-10 16:22:58 -04:00
Randy Eckenrode
3fb982d0e2
apple-sdk_10_13: init at 10.13.2 2024-10-10 16:22:58 -04:00
Randy Eckenrode
556790248f
apple-sdk: init at 10.12.2 and 11.3
This is a new packaging of the Darwin SDK. Instead of splitting
libraries and frameworks into separate packages, it provides a single
package for the whole SDK.

# Features

- Vendored files are removed from the SDK. There are 50+ different
  packages that are vendored by upstream (depending on the version);
- Components that are built in nixpkgs (either from upstream or from the
  source releases) are also removed. If they need to be included by
  default, they are propagated;
- A single SDK pattern is used to package all SDKs, and scripts are
  provided to aid updating the SDK version and its source release
  versions. This makes adding new SDKs much easier;
- SDK overrides are handled by adding the SDK version you require. If
  multiple SDKs are present, only the newest is used. It is possible to
  have different SDKs for each of build, host, and target platforms;
- Private headers are no longer provided by default unless you use the
  SDK’s `privateFrameworksHook` to add them. It does the right thing
  when multiple SDKs are in your inputs;
- Source releases for the SDK version are available via a passthru
  `sourceRelease` function. This is mostly useful for getting private
  headers for building source releases in the darwin attrset; and
- The same versions of propagated components are used on both platforms
  (e.g., the same libresult, libiconv, etc).

See `pkgs/by-name/ap/apple-sdk/README.md` for details on how the SDK
derivation is structured and how to update it.
2024-10-10 16:22:58 -04:00