Nix/src/libstore
Alyssa Ross 4f80464645
Apply OS checks to host platform, not build
Previously, the build system used uname(1) output when it wanted to
check the operating system it was being built for, which meant that it
didn't take into-account cross-compilation when the build and host
operating systems were different.

To fix this, instead of consulting uname output, we consult the host
triple, specifically the third "kernel" part.

For "kernel"s with stable ABIs, like Linux or Cygwin, we can use a
simple ifeq to test whether we're compiling for that system, but for
other platforms, like Darwin, FreeBSD, or Solaris, we have to use a
more complicated check to take into account the version numbers at the
end of the "kernel"s.  I couldn't find a way to just strip these
version numbers in GNU Make without shelling out, which would be even
more ugly IMO.  Because these checks differ between kernels, and the
patsubst ones are quite fiddly, I've added variables for each host OS
we might want to check to make them easier to reuse.
2021-06-23 15:00:36 +00:00
..
build Make the Nar hash non modulo 2021-05-25 10:58:43 +02:00
builtins Improve error formatting 2021-01-21 11:02:09 +01:00
binary-cache-store.cc Remove useless parents 2021-05-10 17:36:49 +02:00
binary-cache-store.hh Fix the double-slash in the realisations path 2021-05-04 10:35:34 +02:00
builtins.hh buildenv: Eliminate global variables, other cleanup 2020-03-24 14:06:47 +01:00
ca-specific-schema.sql Add some logic for signing realisations 2021-03-15 16:34:49 +01:00
content-address.cc Style fixes 2020-09-22 11:40:19 +02:00
content-address.hh Add ContentAddressMethod and parse/render it 2020-09-17 20:21:04 +02:00
crypto.cc Make sodium a required dependency 2021-01-06 17:56:53 +01:00
crypto.hh crypto.cc: API cleanup and add generate() / to_string() methods 2021-01-06 17:04:46 +01:00
daemon.cc Bump version number for DerivedPath changes 2021-05-03 01:12:23 +02:00
daemon.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
derivations.cc Move StorePathWithOutputs into its own header/file 2021-04-05 08:31:37 -04:00
derivations.hh Remove unimplemented hashAlgoOpt 2021-03-17 11:27:11 +01:00
derived-path.cc Merge pull request #4818 from NixOS/ca/cli-use-builtpaths 2021-05-17 16:15:40 +02:00
derived-path.hh Enfore the use of properly built paths in libcmd 2021-05-17 08:45:08 +02:00
dummy-store.cc Expose schedule entrypoints to all stores 2020-12-23 22:42:06 +00:00
export-import.cc nix::worker_proto -> worker_proto 2020-09-30 00:41:18 +00:00
filetransfer.cc unified macro style for ENABLE_S3 2021-04-23 07:30:05 +01:00
filetransfer.hh Add 'nix store prefetch-{file,tarball}' 2021-01-07 21:51:46 +01:00
fs-accessor.hh Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
gc.cc Handle amount of disk space saved by hard linking being negative 2020-10-12 16:06:38 +00:00
globals.cc Fix some typos 2021-03-26 16:14:38 +01:00
globals.hh doc: mention Priority for substituters 2021-05-12 13:27:05 +02:00
http-binary-cache-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
legacy-ssh-store.cc Rename Buildable 2021-04-05 09:52:25 -04:00
local-binary-cache-store.cc Fix the double-slash in the realisations path 2021-05-04 10:35:34 +02:00
local-fs-store.cc Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
local-fs-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
local-store.cc Check the CA hash when importing stuff in the local store 2021-06-01 15:09:24 +02:00
local-store.hh Check the CA hash when importing stuff in the local store 2021-06-01 15:09:24 +02:00
local.mk Apply OS checks to host platform, not build 2021-06-23 15:00:36 +00:00
lock.cc Trim lock.cc 2020-10-11 16:44:19 +00:00
lock.hh Trim lock.hh 2020-10-11 16:44:07 +00:00
machines.cc distributed builds: load remote builder host key from the machines file 2021-02-25 09:17:34 -05:00
machines.hh Make system-features a store setting 2020-08-12 18:13:00 +00:00
misc.cc Extract a generic computeClosure function 2021-05-19 11:44:58 +02:00
names.cc string2Int(): Return std::optional 2021-01-08 12:22:21 +01:00
names.hh Don't include <regex> in header files 2020-09-21 18:22:45 +02:00
nar-accessor.cc Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
nar-accessor.hh NarAccessor: Run in constant memory 2020-07-13 17:30:42 +02:00
nar-info-disk-cache.cc Simplify the realisations disk cache 2021-05-10 17:47:14 +02:00
nar-info-disk-cache.hh Add a realisations disk cache 2021-05-06 17:38:20 +02:00
nar-info.cc string2Int(): Return std::optional 2021-01-08 12:22:21 +01:00
nar-info.hh Minimize the usage of Hash::dummy 2020-08-06 18:31:48 +00:00
nix-store.pc.in pkg-config files: Use c++17 2019-03-14 14:11:12 +01:00
optimise-store.cc Improve error formatting 2021-01-21 11:02:09 +01:00
parsed-derivations.cc Don't let 'preferLocalBuild' override 'max-jobs=0' 2021-01-12 01:28:00 +01:00
parsed-derivations.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
path-info.hh LocalStore: Get rid of recursive_mutex 2020-11-03 14:45:24 +01:00
path-with-outputs.cc Rename Buildable 2021-04-05 09:52:25 -04:00
path-with-outputs.hh buildable.{cc,hh} -> derived-path.{cc,hh} 2021-04-05 10:33:28 -04:00
path.cc Move StorePathWithOutputs into its own header/file 2021-04-05 08:31:37 -04:00
path.hh Move StorePathWithOutputs into its own header/file 2021-04-05 08:31:37 -04:00
pathlocks.cc convert some printError calls to logError 2020-05-03 08:01:25 -06:00
pathlocks.hh Use BSD instead of POSIX file locks 2019-08-02 18:39:16 +02:00
profiles.cc string2Int(): Return std::optional 2021-01-08 12:22:21 +01:00
profiles.hh createGeneration(): Take a StorePath 2020-09-03 11:06:56 +02:00
realisation.cc Add some logic for signing realisations 2021-03-15 16:34:49 +01:00
realisation.hh Add some logic for signing realisations 2021-03-15 16:34:49 +01:00
references.cc scanForReferences: Remove misleading comment 2020-12-28 17:21:19 +01:00
references.hh Sink: Use std::string_view 2020-12-02 14:17:27 +01:00
remote-fs-accessor.cc Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
remote-fs-accessor.hh Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
remote-store.cc Bump version number for DerivedPath changes 2021-05-03 01:12:23 +02:00
remote-store.hh Rename Buildable 2021-04-05 09:52:25 -04:00
s3-binary-cache-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
s3-binary-cache-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
s3.hh DataTransfer -> FileTransfer 2020-04-08 22:26:57 +02:00
sandbox-defaults.sb sandbox: allow SystemVersionCompat.plist on Darwin 2021-05-17 01:24:31 +01:00
sandbox-minimal.sb Always use the Darwin sandbox 2017-06-06 18:44:49 +02:00
sandbox-network.sb OS X sandbox: Improve builtin sandbox profile 2017-05-31 17:25:51 +02:00
schema.sql Mark content-addressed paths in the Nix database and in .narinfo 2016-08-10 18:05:35 +02:00
serve-protocol.hh Clean up serialization for BuildResult 2021-03-22 14:57:41 +00:00
sqlite.cc Improve error formatting 2021-01-21 11:02:09 +01:00
sqlite.hh Merge remote-tracking branch 'origin/master' into flakes 2020-06-17 10:26:52 +02:00
ssh-store.cc distributed builds: load remote builder host key from the machines file 2021-02-25 09:17:34 -05:00
ssh.cc restoreSignals() + restoreAffinity() -> restoreProcessContext() 2021-04-07 13:10:02 +02:00
ssh.hh distributed builds: load remote builder host key from the machines file 2021-02-25 09:17:34 -05:00
store-api.cc Rename Buildable 2021-04-05 09:52:25 -04:00
store-api.hh buildable.{cc,hh} -> derived-path.{cc,hh} 2021-04-05 10:33:28 -04:00
uds-remote-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
uds-remote-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
worker-protocol.hh Bump version number for DerivedPath changes 2021-05-03 01:12:23 +02:00