about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2017-10-17 BinaryCacheStore: Support local caching of NARsEelco Dolstra4-5/+25
This speeds up commands like "nix cat-store". For example: $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nar-cache /nix/store/i60yncmq6w9dyv37zd2k454g0fkl3arl-systemd-234/etc/udev/udev.conf real 0m4.336s $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nar-cache /nix/store/i60yncmq6w9dyv37zd2k454g0fkl3arl-systemd-234/etc/udev/udev.conf real 0m0.045s The primary motivation is to allow hydra-server to serve files from S3 binary caches. Previously Hydra had a hack to do "nix-store -r <path>", but that fetches the entire closure so is prohibitively expensive. There is no garbage collection of the NAR cache yet. Also, the entire NAR is read when accessing a single member file. We could generate the NAR listing to provide random access. Note: the NAR cache is indexed by the store path hash, not the content hash, so NAR caches should not be shared between binary caches, unless you're sure that all your builds are binary-reproducible.
2017-10-17 Remove BinaryCacheStoreAccessorEelco Dolstra2-61/+4
Probably as a result of a bad merge in 4b8f1b0ec066a5b994747b1afd050f5f62d857f6, we had both a BinaryCacheStoreAccessor and a RemoteFSAccessor. BinaryCacheStore::getFSAccessor() returned the latter, but BinaryCacheStore::addToStore() checked for the former. This probably caused hydra-queue-runner to download paths that it just uploaded.
2017-10-17 fetchgit: Remove incomplete/unneeded ref check.Shea Levy1-5/+0
This check fails for tags and branches, and is made redundant by the checks git itself will do when fetching the repo.
2017-10-16 Merge branch 'nix-profile-daemon'Shea Levy2-0/+55
2017-10-16 Merge pull request #1601 from shlevy/fetchgit-no-uri-checkEelco Dolstra1-4/+1
fetchgit: Remove incomplete/unneeded isURI check.
2017-10-16 Pull nix-profile-daemon from 1.11Shea Levy2-0/+55
2017-10-16 fetchgit: Remove incomplete/unneeded isURI check.Shea Levy1-4/+1
This check spuriously fails for e.g. git@github.com:NixOS/nixpkgs.git, and even for ssh://git@github.com/NixOS/nixpkgs.git, and is made redundant by the checks git itself will do when fetching the repo. We instead pass a -- before passing the URI to git to avoid injection.
2017-10-12 Add option to disable the seccomp filterEelco Dolstra2-0/+8
I needed this to test ACL/xattr removal in canonicalisePathMetaData(). Might also be useful if you need to build old Nixpkgs that doesn't have the required patches to remove setuid/setgid creation.
2017-10-12 Merge pull request #1571 from teto/improve_priority_msgEelco Dolstra1-3/+4
Improve error message for conflicting priorities
2017-10-12 Merge pull request #1591 from shlevy/darwin-installer-no-sudo-iEelco Dolstra1-3/+3
darwin installer: Fix on systems where sudo -i is disabled.
2017-10-12 Merge pull request #1586 from acowley/patch-2Eelco Dolstra1-1/+1
install-darwin-multi-user: relax assumption check
2017-10-12 Merge pull request #1580 from copumpkin/retry-after-timeoutEelco Dolstra2-20/+41
Retry in all error cases but a few
2017-10-12 Merge pull request #1595 from peti/masterEelco Dolstra1-8/+8
docker: ensure that the installation works for users other than 'root'
2017-10-09 Fix a hang in ThreadPoolEelco Dolstra2-33/+57
The worker threads could exit prematurely if they finished processing all items while the main thread was still adding items. In particular, this caused hanging nix-store --serve processes in the build farm. Also, process items from the main thread.
2017-10-09 WhitespaceEelco Dolstra1-2/+2
2017-10-09 Merge pull request #1594 from dtzWill/fix/busybox-builtinsEelco Dolstra1-2/+2
release-common: Fix busybox builtins (busybox >= 1.27)
2017-10-07 docker: ensure that the installation works for users other than 'root', tooPeter Simons1-8/+8
The path /root/.nix-profile is a sym-link to /nix/var/nix/profiles/default. The latter path, however, works for everyone while the former path works only for root, so we prefer the public path whenever possible.
2017-10-07 release-common: Fix busybox builtins (busybox >= 1.27)Will Dietz1-2/+2
See https://github.com/NixOS/nixpkgs/pull/28261
2017-10-06 Merge pull request #1593 from Mic92/bashismEelco Dolstra2-5/+4
fixing bashisms in test code
2017-10-06 fixing bashisms in test codeJörg Thalheim2-5/+4
This fixed the build on ubuntu/debian, where dash is the sh.
2017-10-05 darwin installer: Fix on systems where sudo -i is disabled.Shea Levy1-3/+3
2017-10-03 Merge branch 'elegant-tests' of https://github.com/copumpkin/nixEelco Dolstra1-6/+24
2017-10-03 Merge pull request #1587 from copumpkin/fix-testsEelco Dolstra3-4/+4
Fix tests
2017-10-03 More elegant test outputDan Peebles1-6/+24
I got sick of trying to find the failures in the sea of debug output, so we now: - Hide test output unless it fails - Sprinkle in some simple color - Pad results for a more tabular look If Nix is getting a more friendly user interface, we might as well get a friendlier developer interface, right? :)
2017-10-02 Fix testsDan Peebles3-4/+4
`nix copy` no longer accepts a `--recursive` argument
2017-10-02 Reverse retry logic to retry in all but a few casesDan Peebles2-20/+41
It was getting too much like whac-a-mole listing all the retriable error conditions, so we now retry by default and list the cases where retrying is almost certainly hopeless.
2017-10-02 install-darwin-multi-user: relax assumption checkAnthony Cowley1-1/+1
The installer will error out if a user's shell configuration includes any mention of ~nix-profile~, even if this is in a comment. This change is designed to do the bare minimum to ignore lines beginning with a `#`.
2017-09-28 nix run: Restore signalsEelco Dolstra1-0/+2
Otherwise Ctrl-C doesn't work.
2017-09-27 nix copy: make recursive by defaultEelco Dolstra3-3/+16
2017-09-27 Tweak messageEelco Dolstra1-1/+1
2017-09-27 nix build: Fix realising a store pathEelco Dolstra1-1/+3
2017-09-25 nix why-depends: Write to stdoutEelco Dolstra1-3/+3
2017-09-25 Add "nix show-derivation"Eelco Dolstra3-0/+147
This debug command prints a store derivation in JSON format. For example: $ nix show-derivation nixpkgs.hello { "/nix/store/ayjwpwwiyy04nh9z71rsdgd3q7bra7ch-hello-2.10.drv": { "outputs": { "out": { "path": "/nix/store/w5w4v29ql0qwqhczkdxs94ix2lh7ibgs-hello-2.10" } }, "inputSrcs": [ "/nix/store/9krlzvny65gdc8s7kpb6lkx8cd02c25b-default-builder.sh" ], "inputDrvs": { "/nix/store/13839aqdf6x4k3b785rw5f2l7857l6y3-bash-4.4-p12.drv": [ "out" ], "/nix/store/vgdx7fdc7d4iirmnwj2py1nrvr5qwzj7-hello-2.10.tar.gz.drv": [ "out" ], "/nix/store/x3kkd0vsqfflbvwf1055l9mr39bg0ms0-stdenv.drv": [ "out" ] }, "platform": "x86_64-linux", "builder": "/nix/store/qp5fw57d38bd1n07ss4zxh88zg67c3vg-bash-4.4-p12/bin/bash", "args": [ "-e", "/nix/store/9krlzvny65gdc8s7kpb6lkx8cd02c25b-default-builder.sh" ], "env": { "buildInputs": "", "builder": "/nix/store/qp5fw57d38bd1n07ss4zxh88zg67c3vg-bash-4.4-p12/bin/bash", "configureFlags": "", "doCheck": "1", "name": "hello-2.10", "nativeBuildInputs": "", "out": "/nix/store/w5w4v29ql0qwqhczkdxs94ix2lh7ibgs-hello-2.10", "propagatedBuildInputs": "", "propagatedNativeBuildInputs": "", "src": "/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz", "stdenv": "/nix/store/6zngq1rdh0ans9qyckqimqibgnlvlfrm-stdenv", "system": "x86_64-linux" } } } This removes the need for pp-aterm.
2017-09-25 DohEelco Dolstra1-1/+1
2017-09-21 Improve error message for conflicting prioritiesMatthieu Coudron1-3/+4
I find the error message 'nix-env --set-flag priority NUMBER PKGNAME' not as helpful as it could be : - doesn't share the current priorities - doesn't say that the command must be run on the already installed PKGNAME (which is confusing the first time) - the doc needs careful reading: "If there are multiple derivations matching a name in args that have the same name (e.g., gcc-3.3.6 and gcc-4.1.1), then the derivation with the highest priority is used." if one stops reading there, he is screwed. Salvation comes with reading "A derivation can define a priority by declaring the meta.priority attribute. This attribute should be a number, with a higher value denoting a lower priority. The default priority is 0." To sum it up, lower number wins. I tried to convey this idea in the message too.
2017-09-18 nix-shell: Ignore readFile() errorsEelco Dolstra1-5/+5
Fixes #1563.
2017-09-18 Don't remove Content-Encoding in fetchurl / nix-prefetch-urlEelco Dolstra4-2/+7
Fixes #1568.
2017-09-18 Update release notesEelco Dolstra1-0/+10
2017-09-14 Remove Debian 8 and Ubuntu 14.10Eelco Dolstra1-6/+4
These have a GCC (4.9) that is too old. https://hydra.nixos.org/eval/1391740
2017-09-14 RemoteStore: Add option to drop old connections from the poolEelco Dolstra3-1/+31
This is a hack to make hydra-queue-runner free its temproots periodically, thereby ensuring that garbage collection of the corresponding paths is not blocked until the queue runner is restarted. It would be better if temproots could be released earlier than at process exit. I started working on a RAII object returned by functions like addToStore() that releases temproots. However, this would be a pretty massive change so I gave up on it for now.
2017-09-14 Show the pid of temporary rootsEelco Dolstra2-11/+16
2017-09-14 nix-store -q --roots / --gc --print-roots: Print temporary / in-memory rootsEelco Dolstra2-22/+41
For example, $ nix-store -q --roots /nix/store/7phd2sav7068nivgvmj2vpm3v47fd27l-patchelf-0.8pre845_0315148 {temp:1} denotes that the path is only being kept alive by a temporary root (i.e. /nix/var/nix/temproots/). Similarly, $ nix-store --gc --print-roots ... {memory:9} -> /nix/store/094gpjn9f15ip17wzxhma4r51nvsj17p-curl-7.53.1 shows that curl is being used by some process.
2017-09-14 Add "nix add-to-store" commandEelco Dolstra4-4/+67
2017-09-14 nix why-depends: Fix showing self-referencesEelco Dolstra1-8/+16
2017-09-11 Merge pull request #1562 from peti/masterEelco Dolstra1-8/+11
docker: update to Nix 1.11.14
2017-09-11 nix why-depends: Add option to show all edges causing a dependencyEelco Dolstra1-34/+156
For example, without --all: $ nix why-depends nixpkgs.nixUnstable nixpkgs.libssh2 /nix/store/s9n5gvj2l49b4n19nz6xl832654nf7n7-nix-1.12pre5511_c94f3d55 └───lib/libnixstore.so: …/lib:/nix/store/w9ykqpl5v0r3vfwsgn408jqhs72cx96x-curl-7.55.0/lib… => /nix/store/w9ykqpl5v0r3vfwsgn408jqhs72cx96x-curl-7.55.0 └───lib/libcurl.la: …ib -L/nix/store/4mbayl1y5hpjbjzkx8ndyhkv98kqw1wi-libssh2-1.8.0/l… => /nix/store/4mbayl1y5hpjbjzkx8ndyhkv98kqw1wi-libssh2-1.8.0 but with --all: $ nix why-depends -a nixpkgs.nixUnstable nixpkgs.libssh2 /nix/store/s9n5gvj2l49b4n19nz6xl832654nf7n7-nix-1.12pre5511_c94f3d55 ├───lib/libnixstore.so: …/lib:/nix/store/w9ykqpl5v0r3vfwsgn408jqhs72cx96x-curl-7.55.0/lib… │ => /nix/store/w9ykqpl5v0r3vfwsgn408jqhs72cx96x-curl-7.55.0 │ └───lib/libcurl.la: …ib -L/nix/store/4mbayl1y5hpjbjzkx8ndyhkv98kqw1wi-libssh2-1.8.0/l… │ lib/libcurl.so.4.4.0: …/lib:/nix/store/4mbayl1y5hpjbjzkx8ndyhkv98kqw1wi-libssh2-1.8.0/l… │ => /nix/store/4mbayl1y5hpjbjzkx8ndyhkv98kqw1wi-libssh2-1.8.0 └───lib/libnixstore.so: …/lib:/nix/store/bx2i9vi76lps6w9rr73fxf6my31s4dg5-aws-sdk-cpp-1.0… => /nix/store/bx2i9vi76lps6w9rr73fxf6my31s4dg5-aws-sdk-cpp-1.0.153 └───lib/libaws-cpp-sdk-core.so: …e.so./nix/store/w9ykqpl5v0r3vfwsgn408jqhs72cx96x-curl-7.55.0/lib… lib/libaws-cpp-sdk-s3.so: …/lib:/nix/store/w9ykqpl5v0r3vfwsgn408jqhs72cx96x-curl-7.55.0/lib… => /nix/store/w9ykqpl5v0r3vfwsgn408jqhs72cx96x-curl-7.55.0
2017-09-11 docker: update to Nix 1.11.14Peter Simons1-8/+11
- Use the latest Nix version 1.11.14. - Attempts to download the Nix installation tarball from http://nixos.org redirect to https these days, which wget doesn't support unless OpenSSL is available. - Use addgroup and adduser commands to create the Nix build users. - Link the Nix profile script into /etc/profile.d, where it's run automatically. - Dropped installation of bash and tar. Neither tool is essential for running Nix. Use the command "docker build -t nix . && docker run -it --rm nix sh -" to build and run the Nix docker container.
2017-09-10 Add command "nix why-depends"Eelco Dolstra1-0/+133
This command shows why a package has another package in its runtime closure. For example, to see why VLC has libdrm.dev in its closure: $ nix why-depends nixpkgs.vlc nixpkgs.libdrm.dev /nix/store/g901z9pcj0n5yy5n6ykxk3qm4ina1d6z-vlc-2.2.5.1: lib/libvlccore.so.8.0.0: …nfig:/nix/store/405lmx6jl8lp0ad1vrr6j498chrqhz8g-libdrm-2.4.75-d… /nix/store/s3nm7kd8hlcg0facn2q1ff2n7wrwdi2l-mesa-noglu-17.0.7-dev: nix-support/propagated-native-build-inputs: …-dev /nix/store/405lmx6jl8lp0ad1vrr6j498chrqhz8g-libdrm-2.4.75-d… Thus, VLC's lib/libvlccore.so.8.0.0 as well as mesa-noglu's nix-support/propagated-native-build-inputs cause the dependency.
2017-09-10 TypoEelco Dolstra1-1/+1
2017-09-10 nix build: Only download the requested derivation outputsEelco Dolstra5-18/+52
Also some refactoring.