about summary refs log tree commit diff
path: root/src/build-remote
AgeCommit message (Collapse)AuthorFilesLines
2019-03-06 canBuildLocally: check for featuresvolth1-3/+10
It could happen that the local builder match the system but lacks some features. Now it results a failure. The fix gracefully excludes the local builder from the set of available builders for derivation which requires the feature, so the derivation is built on remote builders only (as though it has incompatible system, like ```aarch64-linux``` when local is x86)
2018-10-26 Merge all nix-* binaries into nixEelco Dolstra2-18/+10
These are all symlinks to 'nix' now, reducing the installed size by about ~1.7 MiB.
2018-04-23 Merge branch 'aarch64-armv7' of git://github.com/lheckemann/nixShea Levy1-1/+3
Support extra compatible architectures (#1916)
2018-04-21 Fix library ordering in MakefilesAndrew Dunham1-1/+1
The existing ordering linked `libutil` before `libstore`, which causes link failures when building statically. This is due to `libstore` using functions from `libutil`, and the fact that symbol resolution works "forward" - i.e. if you pass `-lfoo -lbar -lbaz`, any symbols that `libbar` uses from `libbaz` will be resolved, but symbols from `libfoo` will not since it comes first in the command line. All this to say: this commit reorders the libraries which fixes the link errors.
2018-03-20 Hack to get SSH error messages from build-remoteEelco Dolstra1-2/+6
E.g. cannot build on 'ssh://mac1': cannot connect to 'mac1': bash: nix-store: command not found cannot build on 'ssh://mac2': cannot connect to 'mac2': Host key verification failed. cannot build on 'ssh://mac3': cannot connect to 'mac3': Received disconnect from 213... port 6001:2: Too many authentication failures Authentication failed.
2018-03-16 build-remote: take extra-platforms into accountLinus Heckemann1-1/+3
2018-03-13 build-remote: Don't substitute the build resultEelco Dolstra1-1/+1
2018-02-13 Merge branch 'plugins' of https://github.com/shlevy/nixEelco Dolstra1-0/+2
2018-02-12 Fix hang in build-remoteEelco Dolstra1-1/+1
2018-02-08 Add plugins to make Nix more extensible.Shea Levy1-0/+2
All plugins in plugin-files will be dlopened, allowing them to statically construct instances of the various Register* types Nix supports.
2018-01-09 nix.conf: builders-use-substitutesRenzo Carbonara1-2/+4
Fixes #937
2017-11-25 build-remote: Fix missing log outputaszlig1-1/+1
The storeUri variable in the build-remote hook is declared very much to the start of the main function and a bunch of lines later, the same variable gets checked via hasPrefix() but it gets assigned *after* that check when the most suitable machine for the build was choosen. So I guess this was just a typo in d16fd2497374671c92cb877f9570d65783a7 and what we really want is to either checkd the prefix *after* assigning storeUri or use bestMachine->storeUri directly. I choose the latter, because the former could introduce even more regressions if the try block where the variable gets assigned terminates early. Nevertheless, the reason why the log output didn't work is because hasPrefix() checked for "ssh://" in front of storeUri, but if the storeUri isn't set correctly (or at all), we don't get the log file descriptor set up properly, leading to no log output. I've adjusted the remote-builds test to include a regression test for this, so that we can make sure we get a build output when using remote builds. In addition to that I've tested this with two of my build farms and the build logs are emitted correctly again. Signed-off-by: aszlig <aszlig@nix.build>
2017-10-24 Allow shorter syntax for chroot storesEelco Dolstra1-3/+7
You can now say '--store /tmp/nix' instead of '--store local?root=/tmp/nix'.
2017-10-24 More progress indicator improvementsEelco Dolstra1-4/+9
Fixes #1599.
2017-10-24 Progress indicator: Show on what machine we're buildingEelco Dolstra1-1/+1
E.g. $ nix build nixpkgs.hello --builders 'root@wendy' [1/0/1 built] building hello-2.10 on ssh://root@wendy: checking for minix/config.h... no
2017-10-24 build-remote: Work properly on a chrooted storeEelco Dolstra1-1/+1
2017-10-24 Handle log messages from build-remoteEelco Dolstra1-10/+18
This makes the progress indicator show statuses like "connecting to 'root@machine'".
2017-10-23 Pass all settings to build-remoteEelco Dolstra1-28/+31
This ensures that command line flags such as --builders get passed correctly.
2017-10-23 build-remote: Put current load under the store state directoryEelco Dolstra1-2/+3
Fixes the error error: opening lock file '/nix/var/nix/current-load/main-lock': Permission denied when using a chroot store.
2017-07-31 Merge branch 'macOS' of https://github.com/davidak/nixEelco Dolstra1-1/+1
2017-07-30 Replace Unicode quotes in user-facing strings by ASCIIJörg Thalheim1-6/+6
Relevant RFC: NixOS/rfcs#4 $ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"
2017-07-30 replace "OS X" with "macOS"davidak1-1/+1
2017-07-03 Replace a few bool flags with enumsEelco Dolstra1-2/+2
Functions like copyClosure() had 3 bool arguments, which creates a severe risk of mixing up arguments. Also, implement copyClosure() using copyPaths().
2017-05-08 build-remote: Check remote build statusEelco Dolstra1-1/+4
2017-05-02 build-remote: Fix fallback to other machines when connecting failsEelco Dolstra1-0/+1
Opening an SSHStore or LegacySSHStore does not actually establish a connection, so the try/catch block here did nothing. Added a Store::connect() method to test whether a connection can be established.
2017-05-02 Add an option for specifying remote buildersEelco Dolstra2-10/+3
This is useful for one-off situations where you want to specify a builder on the command line instead of having to mess with nix.machines. E.g. $ nix-build -A hello --argstr system x86_64-darwin \ --option builders 'root@macstadium1 x86_64-darwin' will perform the specified build on "macstadium1". It also removes the need for a separate nix.machines file since you can specify builders in nix.conf directly. (In fact nix.machines is yet another hack that predates the general nix.conf configuration file, IIRC.) Note: this option is supported by the daemon for trusted users. The fact that this allows trusted users to specify paths to SSH keys to which they don't normally have access is maybe a bit too much trust...
2017-05-02 Factor out machines.conf parsingEelco Dolstra1-87/+8
This allows hydra-queue-runner to use it.
2017-05-02 build-hook: If there are no machines defined, quit permanentlyEelco Dolstra1-0/+5
2017-05-02 build-remote: Ugly hackery to get build logs to workEelco Dolstra1-1/+1
The build hook mechanism expects build log output to go to file descriptor 4, so do that.
2017-05-01 build-remote: Don't require signaturesEelco Dolstra1-2/+2
This restores the old behaviour.
2017-05-01 Support arbitrary store URIs in nix.machinesEelco Dolstra1-33/+44
For backwards compatibility, if the URI is just a hostname, ssh:// (i.e. LegacySSHStore) is prepended automatically. Also, all fields except the URI are now optional. For example, this is a valid nix.machines file: local?root=/tmp/nix This is useful for testing the remote build machinery since you don't have to mess around with ssh.
2017-05-01 Remove $NIX_BUILD_HOOK and $NIX_CURRENT_LOADEelco Dolstra1-1/+3
This is to simplify remote build configuration. These environment variables predate nix.conf. The build hook now has a sensible default (namely build-remote). The current load is kept in the Nix state directory now.
2017-05-01 build-remote: Don't copy the .drv closureEelco Dolstra1-2/+5
Since build-remote uses buildDerivation() now, we don't need to copy the .drv file anymore. This greatly reduces the set of input paths copied to the remote side (e.g. from 392 to 51 store paths for GNU hello on x86_64-darwin).
2017-05-01 Pass verbosity level to build hookEelco Dolstra1-3/+6
2017-03-16 ssh:// -> ssh-ng://, legacy-ssh:// -> ssh://Eelco Dolstra1-1/+1
2017-03-16 copyPaths(): Use queryValidPaths() to reduce SSH latencyEelco Dolstra1-6/+10
2017-03-03 build-remote: Don't use a SSH masterEelco Dolstra1-1/+3
This is unnecessary because we make only one connection.
2017-03-03 build-remote: Fix passing SSH keyEelco Dolstra1-1/+1
2017-03-03 build-remote: Misc cleanupEelco Dolstra1-48/+41
2017-02-07 Merge branch 'nix-copy-closure-c++' of https://github.com/shlevy/nixEelco Dolstra2-2/+1
2017-01-26 openLockFile: Return an AutoCloseFDEelco Dolstra1-2/+2
2017-01-24 Hopefully fix build on older GCCEelco Dolstra1-3/+5
http://hydra.nixos.org/build/46805140
2017-01-24 Fix typoEelco Dolstra1-1/+1
2017-01-24 build-remote: Use futimes instead of futimens on APPLEShea Levy1-0/+7
2017-01-20 nix-copy-closure: Implement in C++.Shea Levy2-2/+1
Tests fail currently because the database is not given proper hashes in the VM
2017-01-10 build-remote: Don't use C++ streams to read the conf fileShea Levy1-29/+29
2017-01-10 build-remote: Use std::set for feature setsShea Levy1-18/+14
2016-11-10 build-remote: replace strtoull with stoull to take advantage of C++ error ↵Shea Levy1-2/+2
handling
2016-11-10 build-remote: Implement in C++Shea Levy2-0/+291