Commit graph

89 commits

Author SHA1 Message Date
Theodore Ni dab839357e
Merge branch 'master' into staging-next
Had to merge https://github.com/NixOS/nixpkgs/pull/245957 and
https://github.com/NixOS/nixpkgs/pull/247245.
2023-08-20 12:01:22 -07:00
Adam Joseph cbc8aa437c treewide: use uncurried version of makeScopeWithSplicing 2023-08-14 02:51:10 +03:00
Simon Žlender 8e912feb29 codesign_allocate: reference cctools 2023-08-01 21:27:09 +02:00
Silvan Mosberger a0b8caf3bc
Revert "lib.customisation: uncurry makeScopeWithSplicing" 2023-07-28 23:04:09 +02:00
Artturin 3716ef19d8 lib.makeScopeWithSplicing: provide default for keep,extra
These are often unneeded by the user.
2023-07-28 17:41:01 +03:00
Adam Joseph cb13669b00 lib.customisation: uncurry makeScopeWithSplicing
Deeply-curried functions are pretty error-prone in untyped languages
like Nix.  This is a particularly bad case because
`top-level/splice.nix` *also* declares a makeScopeWithSplicing, but
it takes *two fewer arguments*.

Let's switch to attrset-passing form, to provide some minimal level
of sanity-checking.
2023-07-27 21:31:59 -07:00
github-actions[bot] da44aac0b1
Merge master into staging-next 2023-07-07 12:01:26 +00:00
Michael Hoang edef486898 darwin.linux-builder: rename from darwin.builder 2023-07-06 21:33:09 +10:00
Michael Hoang 34f6ce2fc2 darwin.builder: allow overriding configuration 2023-07-06 21:32:08 +10:00
Randy Eckenrode b2574122a9
cctools: make cctools-llvm the default on Darwin 2023-07-02 10:03:29 -04:00
Randy Eckenrode df7487ff17
cctools-llvm: init at 11.1.0-973.0.1
cctools-llvm is a replacement for cctools that replaces as much of cctools with equivalents from LLVM that it can reasonably do. This was motivated by wanting to reduce dependencies on cctools, which are updated infrequently by upstream.

To provide a motivating example, the version of `strip` included in cctools cannot properly strip the archives in compiler-rt in LLVM 15. Paths are left to bootstrap tools, resulting in failed requisites checks in the final stdenv build. Since `strip` needs replaced, the opportunity was taken to replace other provided they are functional replacements.

Note: This has to be done in cctools (or some equivalent) because some derivations (noteably LLVM) use the bintools of the stdenv directly instead of going through the wrapper.

The following tools from LLVM are not used in this derivation:

* LLD - not fully compatible with ld64 yet and potentially too big of a change;
* libtool - not a drop-in replacement yet because it does not support linker passthrough, which is needed by xcbuild;
* lipo - crashes when running the LLVM test suite;
* install_name_tool - fails when trying to build swift-corefoundation; and.
* randlib - not completely a drop-in replacement, so leaving it out for now.

If other incompatabilities are found, the tools can be reverted or made conditional. For example, cctools `strip` is preferred on older versions of LLVM (which lack the compiler-rt issue) or when cctools itself is a new enough version because `llvm-strip` on LLVM 11 produces files that older verions of `codesign_allocate` cannot process correctly.

One final caveat/note: Some tools are not duplicated or linked from cctools-port. The names of the tools and which ones were linked was determined based on what is provided upstream in Xcode and is installed on macOS system.
2023-06-06 19:05:22 -04:00
Connor Baker b2eb5c816f apple_sdk: remove cf-private alias 2023-05-01 21:59:03 -04:00
Weijia Wang 12b91012e5 darwin.darling: drop 2023-04-25 22:45:59 +03:00
github-actions[bot] c4fe2133de
Merge staging-next into staging 2023-02-15 06:01:44 +00:00
Felix Buehler bc3d5934d7 treewide: use lib.optionals 2023-02-14 19:11:59 +01:00
github-actions[bot] 29cdca7736
Merge staging-next into staging 2023-02-13 06:02:02 +00:00
Sandro 3e7bf1e547
Merge pull request #204493 from reckenrode/xcodes-update 2023-02-13 00:38:33 +01:00
Artturin 4e3dcf364e treewide: makeSetupHook deps -> propagatedBuildInputs 2023-02-07 21:02:00 +02:00
zowoq eceae845cd darwin.openwith: init at unstable-2022-10-28 2023-02-07 06:22:06 +10:00
Randy Eckenrode 2e2bd8b4f5
xcode: add missing versions 2023-01-28 17:51:18 -05:00
github-actions[bot] feb2240b37
Merge master into staging-next 2023-01-22 18:01:03 +00:00
Domen Kožar 9d57399b8e
Merge pull request #157628 from veprbl/pr/darwin_cctools_apple
darwin.cctools-apple: init at 973.0.1-609
2023-01-22 17:21:33 +00:00
Alyssa Ross 0ae87d514f treewide: add names to all setup hooks 2023-01-19 15:00:36 +00:00
Vladimír Čunát befc83905c
Merge #209423: gnat12: add for x86_64-darwin 2023-01-13 18:32:21 +01:00
Boey Maun Suang 82b88d2db6 bintoolsDualAs: Add package
For reasons explained in the commit contents, in order to build the
native gnat package for x86_64-darwin, the native gnatboot package for
x86_64-darwin must have access to both the Clang integrated assembler
and the cctools GNU assembler for that platform.  This commit creates a
package with both of those assemblers that x86_64-darwin gnatboot can
then be wrapped with.
2023-01-07 18:32:12 +11:00
Artturin 58fa78077c treewide: use splicing convenience functions 2022-12-25 14:05:03 +02:00
Gabriella Gonzalez 13bd3271d8
Link to documentation
… as suggested by @domenkozar

Co-authored-by: Domen Kožar <domen@enlambda.com>
2022-12-20 10:03:48 -08:00
Gabriella Gonzalez edd1cbf5d4 darwin.builder: init
Fixes https://github.com/NixOS/nixpkgs/issues/108984

This originates from:

https://github.com/Gabriella439/macos-builder

… which in turn originates from:

https://github.com/YorikSar/nixos-vm-on-macos
2022-12-19 17:03:45 -08:00
Vladimír Čunát 9cfb24af2d
Merge #180327: qtbase: Fix build for aarch64-darwin
...into staging
2022-07-29 19:35:36 +02:00
Randy Eckenrode 9d2b95eef3
moltenvk: refactor to build without Xcode
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

- Use the 11.0 SDK instead of the 10.12 one on x86_64-darwin;
- Use `NIX_CFLAGS_COMPILE` and `NIX_LDFLAGS` to pass flags to the
  compiler instead of patching the Xcode project files; and
- Use xcbuild to build the project.
2022-07-21 17:03:53 -04:00
Zaripov Kamil 940b020fe7 qtbase: Fix build for aarch64-darwin 2022-07-20 22:44:46 +03:00
Randy Eckenrode d8f71776ff
apple_sdk_11_0: fix build on x86_64-darwin and expose as attribute 2022-07-06 19:41:17 -04:00
Randy Eckenrode f138abff3d
moltenvk: init at 1.1.7 2022-02-16 17:17:06 -05:00
Dmitry Kalinkin 64b7c29da1
darwin.cctools-apple: init at 973.0.1-609 2022-01-31 20:37:48 -05:00
Dmitry Kalinkin 831e799e47
darwin.usr-include: remove
Originally introduced in 8610a344 ('gcc: use special native system
headers for darwin') as a hack, not used anymore.
2022-01-15 04:16:21 -05:00
sternenseemann 283d622397 darwin.xattr: init at 61.60.1 2021-08-14 17:06:29 +02:00
Andrew Childs 48519562e3 darwin-packages: avoid exporting attributes that don't exist 2021-05-17 00:28:05 +09:00
Andrew Childs d2c9670339 darwin: add CoreFoundation to the build when explicitly required 2021-05-17 00:27:02 +09:00
Andrew Childs 7eb1e3695d darwin.signingUtils: init
Helper scripts for code signing on darwin.
2021-05-17 00:27:02 +09:00
Andrew Childs bfd9a7784e darwin.postLinkSignHook: init 2021-05-17 00:27:02 +09:00
Andrew Childs 4c890ce9aa darwin.sigtool: init 2021-05-17 00:27:02 +09:00
Andrew Childs 9fb8924389 darwin: integrate macOS 11 sdk 2021-05-17 00:27:01 +09:00
Andrew Childs b7abec31d4 rewrite-tbd: init 2021-05-17 00:27:01 +09:00
Andrew Childs 257cb1c8e8 print-reexports: rehome, tbd4 support, cross compilation 2021-05-17 00:27:01 +09:00
Andrew Childs bd4a45f5d4 cctools: drop suspicious dependency 2021-05-17 00:27:00 +09:00
John Ericson 37194a325d treewide: Try to make a few bootstrapping things more consistent
- Introduce `preLibcCrossHeaders` to bootstrap libgcc and compiler-rt
  the same way.

- Organize LLVM bintools as `bintools{-unwrapped,,NoLibc}` for
  consistency with GNU Binutils and Apple's cctools.

- Do Android changes for all `llvmPackages` for consistency.

- Improve the way the default GCC and LLVM versions are selected.
2021-05-12 00:14:56 +00:00
John Ericson 470640e7fe treewide: Do a number of no-op cleanups for cross and darwin
I am taking the non-invasive parts of #110914 to hopefully help out with #111988.

In particular:

 - Use `lib.makeScopeWithSplicing` to make the `darwin` package set have
   a proper `callPackage`.

 - Adjust Darwin `stdenv`'s overlays keeping things from the previous
   stage to not stick around too much.

 - Expose `binutilsNoLibc` / `darwin.binutilsNoLibc` to hopefully get us
   closer to a unified LLVM and GCC bootstrap.
2021-05-06 11:17:26 -04:00
Ivan Babrou a730703e6f
darwin.binutils: use clang for as on aarch64-darwin (#115167)
Without this change `as` on `aarch64-darwin` is defunct:

```
$ /nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/bin/as -v
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/bin/as: assembler (/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm64/as or /nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm64/as) for architecture arm64 not installed
Installed assemblers are:
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/ppc64/as for architecture ppc64
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/x86_64/as for architecture x86_64
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/ppc/as for architecture ppc
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/i386/as for architecture i386
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm/as for architecture arm
```

Apple defaults to Clang in all cases from what I see, but nixpkgs prefers `cctools`: #51881.
2021-03-17 00:27:34 -04:00
Monson Shao 5f1d105505
darwin: add impure-cmds
On darwin, there are some commands neither opensource nor able to build in nixpkgs.
We have no choice but to use those system-shipped impure ones.
2021-01-17 23:44:40 +08:00
Andrew Childs 3456ef6f30 darwin/apple-sdk: use darwin stubs 2020-11-12 00:23:09 +09:00