about summary refs log tree commit diff
path: root/src/libstore/legacy-ssh-store.cc
AgeCommit message (Collapse)AuthorFilesLines
2019-09-03 Add some noexceptsEelco Dolstra1-1/+1
This is to assert that callback functions should never throw (since the context in which they're called may not be able to handle the exception).
2019-01-18 unsupported(): Show the name of the unsupported operationEelco Dolstra1-33/+4
2018-09-02 Store: expose the protocol version used by a storeDaiderd Jordan1-0/+6
2018-08-30 fix `error: unknown serve command 9`Michael Bishop1-1/+1
2018-08-06 DohEelco Dolstra1-1/+1
2018-08-03 Make adding paths via nix-store --serve run in constant memoryEelco Dolstra1-14/+45
It adds a new operation, cmdAddToStoreNar, that does the same thing as the corresponding nix-daemon operation, i.e. call addToStore(). This replaces cmdImportPaths, which has the major issue that it sends the NAR first and the store path second, thus requiring us to store the incoming NAR either in memory or on disk until we decide what to do with it. For example, this reduces the memory usage of $ nix copy --to 'ssh://localhost?remote-store=/tmp/nix' /nix/store/95cwv4q54dc6giaqv6q6p4r02ia2km35-blender-2.79 from 267 MiB to 12 MiB. Probably fixes #1988.
2018-08-03 LegacySSHStore: Add remote-store optionEelco Dolstra1-1/+4
This is primarily useful for testing, e.g. $ nix copy --to 'ssh://localhost?remote-store=/tmp/nix' ...
2018-05-30 Simplify the callback mechanismEelco Dolstra1-6/+5
2018-03-21 Make 'nix copy --to ssh://...' run in constant memoryEelco Dolstra1-2/+2
2018-03-21 Make 'nix copy --from ssh://...' run in constant memoryEelco Dolstra1-6/+1
For instance, this reduced the memory consumption of $ nix copy --from ssh://localhost --to ~/my-nix /nix/store/1n7x0yv8vq6zi90hfmian84vdhd04bgp-blender-2.79a from 632 MiB to 16 MiB.
2018-03-21 LegacySSHStore: Allow overriding the path to nix-storeEelco Dolstra1-1/+2
2017-09-08 LegacySSHStore: Include signatures etc.Eelco Dolstra1-0/+7
2017-08-16 nix copy: Revive progress barEelco Dolstra1-1/+0
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-03 Replace a few bool flags with enumsEelco Dolstra1-4/+5
Functions like copyClosure() had 3 bool arguments, which creates a severe risk of mixing up arguments. Also, implement copyClosure() using copyPaths().
2017-05-02 build-remote: Fix fallback to other machines when connecting failsEelco Dolstra1-0/+5
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 build-remote: Ugly hackery to get build logs to workEelco Dolstra1-1/+5
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-3/+0
This restores the old behaviour.
2017-05-01 Implement LegacySSHStore::buildDerivation()Eelco Dolstra1-5/+32
This makes LegacySSHStore usable by build-remote and hydra-queue-runner.
2017-05-01 Add a dummy Store::buildPaths() methodEelco Dolstra1-9/+0
This default implementation of buildPaths() does nothing if all requested paths are already valid, and throws an "unsupported operation" error otherwise. This fixes a regression introduced by c30330df6f67c81986dfb124631bc756c8e58c0d in binary cache and legacy SSH stores.
2017-04-13 Add a Config class to simplify adding configuration settingsEelco Dolstra1-3/+7
The typical use is to inherit Config and add Setting<T> members: class MyClass : private Config { Setting<int> foo{this, 123, "foo", "the number of foos to use"}; Setting<std::string> bar{this, "blabla", "bar", "the name of the bar"}; MyClass() : Config(readConfigFile("/etc/my-app.conf")) { std::cout << foo << "\n"; // will print 123 unless overriden } }; Currently, this is used by Store and its subclasses for store parameters. You now get a warning if you specify a non-existant store parameter in a store URI.
2017-03-16 ssh:// -> ssh-ng://, legacy-ssh:// -> ssh://Eelco Dolstra1-1/+1
2017-03-16 copyPaths(): Use queryValidPaths() to reduce SSH latencyEelco Dolstra1-0/+13
2017-03-16 LegacySSHStore: Provide a faster implementation of computeFSClosure()Eelco Dolstra1-0/+22
This avoids the latency of the standard implementation, which can make a huge difference (e.g. 16.5s -> 0.5s on a NixOS system closure).
2017-03-16 Fix nix-copy-closure --toEelco Dolstra1-1/+1
2017-03-03 Improve SSH handlingEelco Dolstra1-45/+15
* Unify SSH code in SSHStore and LegacySSHStore. * Fix a race starting the SSH master. We now wait synchronously for the SSH master to finish starting. This prevents the SSH clients from starting their own connections. * Don't use a master if max-connections == 1. * Add a "max-connections" store parameter. * Add a "compress" store parameter.
2017-03-01 RemoteStore::addToStore(): Send NAR rather than string containing NAREelco Dolstra1-2/+2
This allows the NAR to be streamed in the future (though we're not doing that yet).
2017-02-21 Fix building without S3 supportEelco Dolstra1-1/+1
http://hydra.nixos.org/build/49031196/nixlog/2/raw
2017-02-07 Add a LegacySSHStore that uses nix-store --serveEelco Dolstra1-0/+247
This is useful for nix-copy-closure.