Nikodem Rabuliński f894cce79b Always initialize curl in parent process on darwin
Because of an objc quirk[1], calling curl_global_init for the first time
after fork() will always result in a crash.
Up until now the solution has been to set
OBJC_DISABLE_INITIALIZE_FORK_SAFETY for every nix process to ignore
that error.
This is less than ideal because we were setting it in package.nix,
which meant that running nix tests locally would fail because
that variable was not set.
Instead of working around that error we address it at the core -
by calling curl_global_init inside initLibStore, which should mean
curl will already have been initialized by the time we try to do so in
a forked process.

[1] https://github.com/apple-oss-distributions/objc4/blob/01edf1705fbc3ff78a423cd21e03dfc21eb4d780/runtime/objc-initialize.mm#L614-L636

Change-Id: Icf26010a8be655127cc130efb9c77b603a6660d0
2024-05-07 20:43:17 +02:00
2024-04-28 02:56:19 -06:00
2024-04-08 19:50:24 -07:00
2024-05-05 16:11:01 -07:00
2024-04-08 13:00:00 -07:00
2024-03-29 22:57:40 -07:00
2024-03-27 23:54:04 -07:00
2024-04-08 13:00:00 -07:00
2024-05-06 18:56:40 +02:00
2024-03-29 22:57:40 -07:00
2024-03-29 20:26:38 -07:00
2017-06-05 22:57:28 +01:00
2024-05-05 20:39:54 +00:00
2024-03-07 19:57:39 -07:00
2024-03-27 21:04:00 -04:00
2024-03-29 22:57:40 -07:00
2024-04-08 13:00:00 -07:00
2024-04-08 13:00:00 -07:00
2024-04-08 15:29:23 -07:00
2024-04-08 15:40:12 -07:00
2024-03-18 18:28:08 -07:00
2024-05-05 19:47:56 +00:00
2022-01-24 13:28:21 +01:00
2024-04-08 13:00:00 -07:00

Lix

Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.

Read more about us at https://lix.systems.

Installation

On Linux and macOS the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install

For systems that already have Nix installed, such as NixOS systems, read our install page

Building And Developing

See our Hacking guide in our manual for instruction on how to to set up a development environment and build Lix from source.

Additional Resources

License

Lix is released under the LGPL v2.1.

S
Description
Working fork of Lix - carries the adaptive load-aware build-remote patch. Upstream: gerrit.lix.systems
Readme
92 MiB
Languages
C++ 74.9%
Python 11.7%
Nix 6.1%
Shell 3.6%
Meson 2%
Other 1.6%