Bump version
Don't keep "disabled" substituters running

For instance, it's pointless to keep copy-from-other-stores running if
there are no other stores, or download-using-manifests if there are no
manifests.  This also speeds things up because we don't send queries
to those substituters.
Disable the copy-from-other-stores substituter

This substituter basically cannot work reliably since we switched to
SQLite, since SQLite databases may need write access to open them even
just for reading (and in WAL mode they always do).
Increase SQLite's auto-checkpoint interval

Common operations like instantiating a NixOS system config no longer
fitted in 8192 pages, leading to more fsyncs.  So increase this limit.
Don't substitute derivations that have preferLocalBuild set

In particular this means that "trivial" derivations such as writeText
are not substituted, reducing the number of GET requests to the binary
cache by about 200 on a typical NixOS configuration.
Don't set $preferLocalBuild and $requiredSystemFeatures in builders

With C++ std::map, doing a comparison like ‘map["foo"] == ...’ has the
side-effect of adding a mapping from "foo" to the empty string if
"foo" doesn't exist in the map.  So we ended up setting some
environment variables by accident.
copy-from-other-stores.pl: Report downloaded size as 0
copy-from-other-stores.pl: Respect $NIX_BIN_DIR
Add support for uncompressed NARs in binary caches

Issue NixOS/hydra#102.
Manual: auto-optimise-store is disabled by default
Leave `HAVE_HUP_NOTIFICATION' undefined on GNU/Hurd.
nix-build --run-env: Source $stdenv/setup in the interactive shell

This ensures that not just environment variables are set, but also
shell functions such as unpackPhase, configurePhase and so on.
nix-build --run-env: Always use Bash

Fixes #113.
Fixes #131.
build-remote.pl: Move "building ..." message to a better place
doc: typo
Add gzip support for channel unpacking
Garbage collector: Don't follow symlinks arbitrarily

Only indirect roots (symlinks to symlinks to the Nix store) are now
supported.
Fix syntax error in unpack-channel
Allow bind-mounting regular files into the chroot

mount(2) with MS_BIND allows mounting a regular file on top of a regular
file, so there's no reason to only bind directories. This allows finer
control over just which files are and aren't included in the chroot
without having to build symlink trees or the like.

Signed-off-by: Shea Levy <shea@shealevy.com>
Revert "build-remote.pl: Enforce timeouts locally"

This reverts commit 69b8f9980f39c14a59365a188b300a34d625a2cd.

The timeout should be enforced remotely.  Otherwise, if the garbage
collector is running either locally or remotely, if will block the
build or closure copying for some time.  If the garbage collector
takes too long, the build may time out, which is not what we want.
Also, on heavily loaded systems, copying large paths to and from the
remote machine can take a long time, also potentially resulting in a
timeout.