1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-17 16:02:43 +01:00
nix/src/libstore
Nikodem Rabuliński 8105307f0f 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] 01edf1705f/runtime/objc-initialize.mm (L614-L636)

(cherry-picked and adapted from c7d97802e4)
2024-09-18 14:29:26 +02:00
..
build "unsigned" -> size_t 2024-09-02 17:28:55 +02:00
builtins tweak unpack channel built-in, std::filesystem::path for tarball 2024-09-11 12:29:49 -04:00
linux Build nix-store with Meson 2024-06-14 10:25:14 -04:00
unix Fix making the build directory kept by keep-failed readable 2024-09-11 00:23:14 +03:00
windows Build nix-store with Meson 2024-06-14 10:25:14 -04:00
.version Build nix-store with Meson 2024-06-14 10:25:14 -04:00
binary-cache-store.cc Rename Recursive -> NixArchive 2024-06-24 10:24:06 -04:00
binary-cache-store.hh Use SourcePath in more places 2024-05-06 19:05:42 +02:00
build-result.cc Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
build-result.hh Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
build-utils-meson Rename file to avoid reserved name 2024-07-02 09:26:22 -04:00
builtins.hh builtin:{unpack-channel,buildenv}: Get output path from the derivation 2024-02-12 16:34:59 +01:00
ca-specific-schema.sql Build the local store on Windows 2024-05-10 13:05:23 -04:00
common-protocol-impl.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
common-protocol.cc Merge pull request #6236 from obsidiansystems/store-dir-config 2023-12-01 15:38:14 +01:00
common-protocol.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
common-ssh-store-config.cc Ensure we can construct remote store configs in isolation 2024-07-15 17:32:49 -04:00
common-ssh-store-config.hh Ensure we can construct remote store configs in isolation 2024-07-15 17:32:49 -04:00
content-address.cc Cleanup ContentAddressMethod to match docs 2024-06-24 10:24:06 -04:00
content-address.hh Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
daemon.cc Add FIXME 2024-08-21 21:08:26 +02:00
daemon.hh Factor out commonality between WorkerProto::Basic{Client,Server}Connection 2024-07-18 16:10:48 +02:00
derivations.cc concatStrings: Give compiler access to definition for inlining 2024-07-14 12:20:45 +02:00
derivations.hh Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
derived-path-map.cc Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
derived-path-map.hh Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
derived-path.cc Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
derived-path.hh Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
downstream-placeholder.cc Renamed HashFormat::Base32 to HashFormat::Nix32 2023-12-06 23:43:42 +01:00
downstream-placeholder.hh Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
dummy-store.cc Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
dummy-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
export-import.cc ParseSink -> FileSystemObjectSink 2024-01-22 18:01:18 -05:00
filetransfer.cc feat: better warning for common SSL errors 2024-08-19 11:01:56 -04:00
filetransfer.hh Add 'download-buffer-size' setting 2024-07-24 20:10:45 +02:00
gc-store.hh Solve unused header warnings reported by clangd 2024-07-12 15:37:54 +02:00
gc.cc More support for std::filepath in libnixutil 2024-08-26 17:23:56 -04:00
globals.cc Always initialize curl in parent process on darwin 2024-09-18 14:29:26 +02:00
globals.hh Fix link anchor 2024-09-02 23:25:44 +02:00
http-binary-cache-store.cc Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
http-binary-cache-store.hh Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
http-binary-cache-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
indirect-root-store.cc inline the usage of nix::renameFile 2024-05-12 18:40:16 +05:30
indirect-root-store.hh Enable the unix:// store on Windows 2024-04-18 16:58:32 -04:00
keys.cc Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
keys.hh Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
legacy-ssh-store.cc Ensure we can construct remote store configs in isolation 2024-07-15 17:32:49 -04:00
legacy-ssh-store.hh Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
legacy-ssh-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
length-prefixed-protocol-helper.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
local-binary-cache-store.cc Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
local-binary-cache-store.hh Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
local-binary-cache-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
local-fs-store.cc Refactor unix domain socket store config (#11109) 2024-07-17 23:32:27 -04:00
local-fs-store.hh Refactor unix domain socket store config (#11109) 2024-07-17 23:32:27 -04:00
local-overlay-store.cc More support for std::filepath in libnixutil 2024-08-26 17:23:56 -04:00
local-overlay-store.hh Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
local-overlay-store.md Fix few duplicate word occurrences (#11381) 2024-08-28 07:01:56 +00:00
local-store.cc Merge pull request #11348 from DeterminateSystems/remove-makeMutable 2024-08-23 11:08:28 +02:00
local-store.hh Remove dead makeMutable() function 2024-08-21 16:45:46 +02:00
local-store.md Build the local store on Windows 2024-05-10 13:05:23 -04:00
local.mk Move NIX_BIN_DIR and all logic using it to the Nix executable itself 2024-08-12 12:29:17 -04:00
log-store.cc Move the getBuildLog implementation to its own implementation file 2023-01-13 11:05:44 +01:00
log-store.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
machines.cc Remove 100s of CPU time (10%) from build times (1465s -> 1302s) 2024-05-31 13:00:09 +02:00
machines.hh Solve unused header warnings reported by clangd 2024-07-12 15:37:54 +02:00
make-content-addressed.cc Rename Recursive -> NixArchive 2024-06-24 10:24:06 -04:00
make-content-addressed.hh makeContentAddressed: Add single path helper 2023-06-30 18:22:47 +02:00
meson.build Meson misc things 2024-08-27 10:19:55 -04:00
meson.options Meson misc things 2024-08-27 10:19:55 -04:00
misc.cc dropEmptyInitThenConcatStringsSep -> concatStringSep: diag 2024-07-13 03:06:24 +02:00
mounted-ssh-store.md MountedSSHStore: stores on shared filesystems 2023-11-21 13:34:01 -05:00
names.cc Use std::strong_ordering for version comparison 2024-07-30 18:13:05 -07:00
names.hh Use std::strong_ordering for version comparison 2024-07-30 18:13:05 -07:00
nar-accessor.cc nar-accessor.cc: Silence unused variable warning 2024-07-12 15:38:17 +02:00
nar-accessor.hh Fix consts and casts 2023-11-08 17:29:55 +01:00
nar-info-disk-cache.cc Use envvars NIX_CACHE_HOME, NIX_CONFIG_HOME, NIX_DATA_HOME, NIX_STATE_HOME if defined (#11351) 2024-09-11 10:36:46 +00:00
nar-info-disk-cache.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
nar-info.cc dropEmptyInitThenConcatStringsSep -> concatStringSep: shortRefs are not empty 2024-07-13 03:06:24 +02:00
nar-info.hh Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
nix-store.pc.in Create and install a nix-util.pc 2024-06-03 14:14:40 -04:00
optimise-store.cc Rename Recursive -> NixArchive 2024-06-24 10:24:06 -04:00
outputs-spec.cc dropEmptyInitThenConcatStringsSep -> concatStringSep: output name empty not feasible 2024-07-13 03:06:24 +02:00
outputs-spec.hh Remove comparator.hh and switch to <=> in a bunch of places 2024-07-12 14:54:18 -04:00
package.nix dependencies: Centralize aws-sdk-cpp and sync with Nixpkgs 2024-07-27 02:16:05 +02:00
parsed-derivations.cc Decouple within-build (structured attrs) and unstable CLI path info JSON 2024-06-03 08:21:22 -04:00
parsed-derivations.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
path-info.cc dropEmptyInitThenConcatStringsSep -> concatStringSep: store paths are not empty 2024-07-13 03:06:24 +02:00
path-info.hh dropEmptyInitThenConcatStringsSep -> concatStringSep: shortRefs are not empty 2024-07-13 03:06:24 +02:00
path-references.cc HashType: Rename to HashAlgorithm 2023-12-06 23:43:42 +01:00
path-references.hh Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
path-regex.hh Disallow store path names that are . or .. (plus opt. -) 2024-01-31 18:35:19 +01:00
path-with-outputs.cc dropEmptyInitThenConcatStringsSep -> concatStringSep: output name empty not feasible 2024-07-13 03:06:24 +02:00
path-with-outputs.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
path.cc Improve error messages for invalid derivation names 2024-06-25 19:41:29 +02:00
path.hh Improve error messages for invalid derivation names 2024-06-25 19:41:29 +02:00
pathlocks.cc Create no-op Window pathlocks implementation 2024-04-17 11:48:14 -04:00
pathlocks.hh Pathlocks Implementation for Windows (#10586) 2024-04-22 15:08:10 +00:00
posix-fs-canonicalise.cc Guard uses of lutimes, for portability 2024-06-24 17:35:34 -04:00
posix-fs-canonicalise.hh Build the local store on Windows 2024-05-10 13:05:23 -04:00
profiles.cc add call to checkInterrupt in a bunch of places 2024-06-04 19:35:40 +05:30
profiles.hh Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
realisation.cc Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
realisation.hh Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
remote-fs-accessor.cc Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
remote-fs-accessor.hh Merge FSAccessor into SourceAccessor 2023-11-01 17:09:28 +01:00
remote-store-connection.hh withFramedSink(): Don't use a thread to monitor the other side 2024-08-19 18:15:15 +02:00
remote-store.cc withFramedSink(): Don't use a thread to monitor the other side 2024-08-19 18:15:15 +02:00
remote-store.hh Rename Recursive -> NixArchive 2024-06-24 10:24:06 -04:00
s3-binary-cache-store.cc Fix the S3 store 2024-08-01 16:51:57 +02:00
s3-binary-cache-store.hh Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
s3-binary-cache-store.md Merge how-to section on S3 buckets into S3 store docs (#7972) 2023-10-23 13:22:33 -04:00
s3.hh Fix some warnings 2024-07-25 00:02:43 -04:00
schema.sql Build the local store on Windows 2024-05-10 13:05:23 -04:00
serve-protocol-connection.cc Factor our connection code for worker proto like serve proto 2024-05-27 00:43:46 -04:00
serve-protocol-connection.hh Factor our connection code for worker proto like serve proto 2024-05-27 00:43:46 -04:00
serve-protocol-impl.hh Solve unused header warnings reported by clangd 2024-07-12 15:37:54 +02:00
serve-protocol.cc Create ServeProto::BuildOptions and a serializer for it 2023-12-09 11:35:13 -05:00
serve-protocol.hh Factor our ServeProto::BasicServerConnection::handshake 2024-01-22 12:43:11 -05:00
sqlite.cc Make SQLite busy back-off logic portable 2024-04-04 12:43:33 -04:00
sqlite.hh Rename hintfmt to HintFmt 2024-02-08 11:58:25 -08:00
ssh-store.cc Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
ssh-store.hh Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
ssh-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
ssh.cc Fix SSH invocation when local SHELL misbehaves 2024-08-16 15:53:30 +02:00
ssh.hh Create CommonSSHStoreConfig::createSSHMaster 2024-05-27 16:12:53 -04:00
store-api.cc Use envvars NIX_CACHE_HOME, NIX_CONFIG_HOME, NIX_DATA_HOME, NIX_STATE_HOME if defined (#11351) 2024-09-11 10:36:46 +00:00
store-api.hh Store: Use SharedSync for state 2024-07-26 16:14:03 +02:00
store-cast.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
store-dir-config.hh Improve error messages for invalid derivation names 2024-06-25 19:41:29 +02:00
store-reference.cc Add StoreReference::render 2024-05-22 09:20:15 -04:00
store-reference.hh Remove unused operator<=>'s that darwin can't generate 2024-07-12 17:37:27 +02:00
uds-remote-store.cc Refactor unix domain socket store config (#11109) 2024-07-17 23:32:27 -04:00
uds-remote-store.hh Move uriSchemes to *StoreConfig 2024-07-17 23:48:19 -04:00
uds-remote-store.md Enable the unix:// store on Windows 2024-04-18 16:58:32 -04:00
worker-protocol-connection.cc withFramedSink(): Don't use a thread to monitor the other side 2024-08-19 18:15:15 +02:00
worker-protocol-connection.hh withFramedSink(): Don't use a thread to monitor the other side 2024-08-19 18:15:15 +02:00
worker-protocol-impl.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
worker-protocol.cc Merge pull request #10782 from obsidiansystems/both-connections 2024-06-03 15:10:38 +02:00
worker-protocol.hh WorkerProto: Support fine-grained protocol feature negotiation 2024-07-24 16:23:37 +02:00