mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-09 22:45:08 +00:00
4844b997d4
While building nix on Darwin, I encountered an error in the `installCheckPhase`:
```
nix> building '/private/tmp/nix-build-nix-2.17.1.drv-1/nix-test/tests/fetchurl/store/mkc9z3arar02wi5jii655cjhdinx4npy-fetchurl.sh.drv'...
nix> waiting for children
nix> building of '/private/tmp/nix-build-nix-2.17.1.drv-1/nix-test/tests/fetchurl/store/mkc9z3arar02wi5jii655cjhdinx4npy-fetchurl.sh.drv^out' from .drv file: read 377 bytes
nix> objc[70707]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
nix> objc[70707]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.
nix> waiting for children
```
I noticed that #278802 should have addressed this problem, but it didn't.
The solution for me was to replace `yes` with `YES`.
As it turns out, most of the references to `OBJC_DISABLE_INITIALIZE_FORK_SAFETY` use `YES` instead of `yes`.
https://airflow.apache.org/blog/airflow-1.10.10/#running-airflow-on-macos
http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html
The objective C code that parses the environment variable is defined in
the function `environ_init` in [here](
|
||
---|---|---|
.. | ||
patches | ||
common.nix | ||
default.nix | ||
nix-perl.nix |