about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2019-08-28 Merge pull request #2745 from samueldr/install/detect-systemd-separatelyEelco Dolstra1-3/+7
install-multi-user: Detect and fail lack of systemd separately
2019-08-28 Merge pull request #3054 from matthewbauer/nix-dir-macosEelco Dolstra1-1/+1
Allow empty /nix directory in multi-user installer
2019-08-27 Update the libboost hackEelco Dolstra1-1/+6
This cuts about 46 MiB from the closure.
2019-08-27 Compress binary tarballs using xzEelco Dolstra2-7/+6
Fixes https://github.com/NixOS/nix/issues/240. Apparently 'tar -xf' can decompress xz files on macOS nowadays.
2019-08-27 Merge branch 'master' of github.com:NixOS/nixEelco Dolstra1-8/+95
2019-08-27 Update release notesEelco Dolstra1-0/+5
2019-08-27 Merge branch 'test-sandboxing' of https://github.com/matthewbauer/nixEelco Dolstra3-4/+31
2019-08-27 Merge pull request #3056 from grahamc/operatorsEelco Dolstra1-8/+95
operators: document exact precedence, split up similar operators
2019-08-27 Hopefully fix post-hook test on macOSEelco Dolstra1-1/+1
https://hydra.nixos.org/build/99262744
2019-08-27 Add 2.3 release notesEelco Dolstra1-2/+68
2019-08-27 docs: operators: Make OR and AND capitalizedGraham Christensen1-2/+2
2019-08-27 Merge pull request #3064 from pszubiak/systemd-unit-service-fixEelco Dolstra1-0/+3
nix-daemon.service: add install section.
2019-08-27 nix-daemon.service: add install section.Piotr Szubiakowski1-0/+3
Signed-off-by: Piotr Szubiakowski <pszubiak@eso.org>
2019-08-24 Merge pull request #2946 from vmandela/proxyGraham Christensen2-0/+52
installer: handle network proxy in systemd multi-user install
2019-08-24 docs: document the installer's use of proxy env varsGraham Christensen1-0/+18
2019-08-24 installer: handle network proxy in systemd installVenkateswara Rao Mandela1-0/+34
If a network proxy configuration is detected, setup an override systemd unit file for nix-daemon service with the non-empty proxy variables. Proxy detection is performed by looking for http/https/ftp proxy and no proxy variables in user environment
2019-08-23 Reset tmpDirInSandbox for unsandboxedMatthew Bauer1-0/+1
2019-08-23 operators: document exact precedenc, split up similar operatorsGraham Christensen1-8/+95
2019-08-22 Allow empty /nix directory in multi-user installerMatthew Bauer1-1/+1
With macOS catalina, we can no longer modify the root system volume (#2925). macOS provides a system configuration file in synthetic.conf(5) to create empty root directories. This can be used to mount /nix to a separate volume. As a result, this directory will need to already exist prior to installation. Instead, check for /nix/store and /nix/var for a live Nix installation.
2019-08-16 Merge pull request #3041 from zimbatm/nix-store-error-13Eelco Dolstra2-2/+40
Fix for `unknown serve command 13`
2019-08-16 nix-store: fix out of sync protocolzimbatm1-2/+10
If a NAR is already in the store, addToStore doesn't read the source which makes the protocol go out of sync. This happens for example when two client try to nix-copy-closure the same derivation at the same time.
2019-08-16 libutil: add SizedSourcezimbatm1-0/+30
Introduce the SizeSource which allows to bound how much data is being read from a source. It also contains a drainAll() function to discard the rest of the source, useful to keep the nix protocol in sync.
2019-08-15 Merge pull request #2945 from danidiaz/doc001Eelco Dolstra1-9/+31
Expanded documentation for .nix-defexpr
2019-08-15 Merge pull request #2782 from grahamc/flamesEelco Dolstra7-3/+189
Track function start and end
2019-08-15 Expanded documentation for .nix-defexprDaniel Diaz1-9/+31
2019-08-14 Track function start and ends for flame graphsGraham Christensen7-3/+189
With this patch, and this file I called `log.py`: #!/usr/bin/env nix-shell #!nix-shell -i python3 -p python3 --pure import sys from pprint import pprint stack = [] timestack = [] for line in open(sys.argv[1]): components = line.strip().split(" ", 2) if components[0] != "function-trace": continue direction = components[1] components = components[2].rsplit(" ", 2) loc = components[0] _at = components[1] time = int(components[2]) if direction == "entered": stack.append(loc) timestack.append(time) elif direction == "exited": dur = time - timestack.pop() vst = ";".join(stack) print(f"{vst} {dur}") stack.pop() and: nix-instantiate --trace-function-calls -vvvv ../nixpkgs/pkgs/top-level/release.nix -A unstable > log.matthewbauer 2>&1 ./log.py ./log.matthewbauer > log.matthewbauer.folded flamegraph.pl --title matthewbauer-post-pr log.matthewbauer.folded > log.matthewbauer.folded.svg I can make flame graphs like: http://gsc.io/log.matthewbauer.folded.svg --- Includes test cases around function call failures and tryEval. Uses RAII so the finish is always called at the end of the function.
2019-08-08 Merge pull request #3031 from grahamc/low-speed-limitEelco Dolstra3-3/+12
conf: stalled-download-timeout: make tunable
2019-08-08 conf: stalled-download-timeout: make tunableGraham Christensen3-3/+12
Make curl's low speed limit configurable via stalled-download-timeout. Before, this limit was five minutes without receiving a single byte. This is much too long as if the remote end may not have even acknowledged the HTTP request.
2019-08-08 tests/post-hook.sh: Don't put result link in cwdEelco Dolstra1-1/+1
2019-08-08 Rename file for consistencyEelco Dolstra2-1/+1
2019-08-07 Merge pull request #3030 from dtzWill/fix/missing-include-ocloexecEelco Dolstra1-0/+1
pathlocks: add include to fcntl.h for O_CLOEXEC
2019-08-07 fixup: docs for post-build-hookGraham Christensen1-1/+1
2019-08-07 Merge pull request #2995 from tweag/post-build-hookEelco Dolstra13-4/+337
Add a post build hook
2019-08-07 pathlocks: add include to fcntl.h for O_CLOEXECWill Dietz1-0/+1
2019-08-06 post-build-hook: docs fixupGraham Christensen2-3/+7
2019-08-02 nix-store --verify: Don't repair while holding the GC lockEelco Dolstra1-5/+4
2019-08-02 SimplifyEelco Dolstra1-18/+14
With BSD locks we don't have to guard against reading our own temproots.
2019-08-02 Use BSD instead of POSIX file locksEelco Dolstra5-108/+46
POSIX file locks are essentially incompatible with multithreading. BSD locks have much saner semantics. We need this now that there can be multiple concurrent LocalStore::buildPaths() invocations.
2019-08-02 Add a test for auto-GCEelco Dolstra4-3/+72
This currently fails because we're using POSIX file locks. So when the garbage collector opens and closes its own temproots file, it causes the lock to be released and then deleted by another GC instance.
2019-08-02 Add a post-build-hookregnat13-4/+333
Passing `--post-build-hook /foo/bar` to a nix-* command will cause `/foo/bar` to be executed after each build with the following environment variables set: DRV_PATH=/nix/store/drv-that-has-been-built.drv OUT_PATHS=/nix/store/...build /nix/store/...build-bin /nix/store/...build-dev This can be useful in particular to upload all the builded artifacts to the cache (including the ones that don't appear in the runtime closure of the final derivation or are built because of IFD). This new feature prints the stderr/stdout output to the `nix-build` and `nix build` client, and the output is printed in a Nix 2 compatible format: [nix]$ ./inst/bin/nix-build ./test.nix these derivations will be built: /nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv building '/nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv'... hello! bye! running post-build-hook '/home/grahamc/projects/github.com/NixOS/nix/post-hook.sh'... post-build-hook: + sleep 1 post-build-hook: + echo 'Signing paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: Signing paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: + sleep 1 post-build-hook: + echo 'Uploading paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: Uploading paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: + sleep 1 post-build-hook: + printf 'very important stuff' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation [nix-shell:~/projects/github.com/NixOS/nix]$ ./inst/bin/nix build -L -f ./test.nix my-example-derivation> hello! my-example-derivation> bye! my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + echo 'Signing paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> Signing paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + echo 'Uploading paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> Uploading paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + printf 'very important stuff' [1 built, 0.0 MiB DL] Co-authored-by: Graham Christensen <graham@grahamc.com> Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2019-08-02 Tweak min-free/max-free descriptionsEelco Dolstra1-5/+9
2019-07-30 Don’t rely on EPERMMatthew Bauer1-2/+2
startProcess does not appear to send the exit code to the helper correctly. Not sure why this is, but it is probably safe to just fallback on all sandbox errors.
2019-07-30 Merge pull request #3009 from codedownio/add-pname-and-version-to-jsonEelco Dolstra1-4/+11
Add pname and version to nix-env -q --json
2019-07-30 Merge pull request #3013 from basvandijk/disable-lsof-for-darwin-testsEelco Dolstra2-10/+16
Disable findRuntimeRoots on darwin when running tests because lsof is slow
2019-07-30 Merge pull request #3012 from basvandijk/fix-pathExistsEelco Dolstra2-3/+12
Allow builtins.pathExists to check the existence of /nix/store paths
2019-07-30 Disable findRuntimeRoots on darwin when running tests because lsof is slowBas van Dijk2-10/+16
See: https://github.com/NixOS/nix/issues/3011
2019-07-30 Allow builtins.pathExists to check the existence of /nix/store pathsBas van Dijk2-3/+12
This makes it consitent with builtins.readDir.
2019-07-27 Add pname and version to nix-env -q --jsonTom McLaughlin1-4/+11
2019-07-25 Use sandbox fallback when cloning fails in builderMatthew Bauer2-1/+14
When sandbox-fallback = true (the default), the Nix builder will fall back to disabled sandbox mode when the kernel doesn’t allow users to set it up. This prevents hard errors from occuring in tricky places, especially the initial installer. To restore the previous behavior, users can set: sandbox-fallback = false in their /etc/nix/nix.conf configuration.
2019-07-25 Disable CLONE_NEWUSER when it’s unavailableMatthew Bauer2-3/+16
Some kernels disable "unpriveleged user namespaces". This is unfortunate, but we can still use mount namespaces. Anyway, since each builder has its own nixbld user, we already have most of the benefits of user namespaces.