A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
Maximilian Bosch 3a63fc6cd5
Allow substituting paths when building remotely using ssh-ng://
Until now, it was not possible to substitute missing paths from e.g.
`https://cache.nixos.org` on a remote server when building on it using
the new `ssh-ng` protocol.

This is because every store implementation except legacy `ssh://`
ignores the substitution flag passed to `Store::queryValidPaths` while
the `legacy-ssh-store` substitutes the remote store using
`cmdQueryValidPaths` when the remote store is opened with `nix-store
--serve`.

This patch slightly modifies the daemon protocol to allow passing an
integer value suggesting whether to substitute missing paths during
`wopQueryValidPaths`. To implement this on the daemon-side, the
substitution logic from `nix-store --serve` has been moved into a
protected method named `Store::substitutePaths` which gets currently
called from `LocalStore::queryValidPaths` and `Store::queryValidPaths`
if `maybeSubstitute` is `true`.

Fixes #2770
2020-11-05 20:12:37 +01:00
.github Update .github/workflows/test.yml 2020-09-28 21:08:24 +03:00
config
contrib
corepkgs
doc/manual docs: consistent console prompt (#4213) 2020-11-02 16:32:05 +01:00
m4
maintainers
misc Add some missing clean-files 2020-10-18 20:32:59 +02:00
mk Make a better -lz hack 2020-10-15 20:13:01 +00:00
nix-rust rust: small patches 2020-10-08 13:40:47 +02:00
perl
scripts Merge pull request #3996 from abathur/macos_big_sur_fixes 2020-10-20 12:18:23 +02:00
src Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00
tests nix-copy-closure: verify it works with drvs 2020-11-02 15:50:14 -05:00
.dir-locals.el
.editorconfig
.gitignore Update .gitignore 2020-10-18 20:32:46 +02:00
.version Revert "Bump version to 3.0" 2020-10-26 11:30:18 +01:00
bootstrap.sh
configure.ac Make a better -lz hack 2020-10-15 20:13:01 +00:00
COPYING
default.nix
flake.lock flake.lock: Update 2020-10-18 21:20:35 +02:00
flake.nix Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00
local.mk mk/precompiled-headers.mk: Remove special handling for clang 2020-10-06 13:27:09 +02:00
Makefile Disable FORTIFY_SOURCE when compiling without optims 2020-09-22 10:04:25 +02:00
Makefile.config.in
precompiled-headers.h
README.md Fix a typo (#4073) 2020-09-26 11:33:04 +00:00
shell.nix

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

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 -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

See our Hacking guide in our manual for instruction on how to build nix from source with nix-build or how to get a development environment.

Additional Resources

License

Nix is released under the LGPL v2.1.