about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
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.
2017-09-08 LegacySSHStore: Include signatures etc.Eelco Dolstra3-1/+10
2017-09-08 nix copy: Add --substitute flagEelco Dolstra1-1/+9
2017-09-08 ThreadPool: On exception, interrupt the other worker threadsEelco Dolstra4-7/+14
2017-09-08 copyStorePath(): Fill in missing narHash regardless of checkSigsEelco Dolstra1-5/+1
I don't remember what the reasoning was here, but security is provided by the signatures, not by whether the hash is provided by the other store.
2017-09-08 nix copy: Don't open the --from store twiceEelco Dolstra1-1/+1
2017-09-08 ThreadPool: Improve exception handlingEelco Dolstra2-24/+53
In particular, process() won't return as long as there are active items. This prevents work item lambdas from referring to stack frames that no longer exist.
2017-09-08 nix copy: Add examplesEelco Dolstra1-1/+9
2017-09-08 Communicate the structured log FD to buildersEelco Dolstra1-1/+6
Since we may use a dedicated file descriptor in the future, this allows us to change it. So builders can do if [[ -n $NIX_LOG_FD ]]; then echo "@nix { message... }" >&$NIX_LOG_FD fi
2017-09-07 nix search: Add examplesEelco Dolstra1-0/+18
2017-09-07 nix eval: Add examplesEelco Dolstra1-0/+18
2017-09-07 nix log: Add examplesEelco Dolstra1-1/+19
2017-09-07 nix build: Add examplesEelco Dolstra1-0/+14
2017-09-07 nix run: Add some examplesEelco Dolstra1-0/+18
2017-09-06 nix build: Add --out-link and --no-link optionsEelco Dolstra4-10/+37
2017-09-06 nix build: Create result symlinksEelco Dolstra4-42/+105
2017-09-06 Fix abort when the GC thread gets an exceptionEelco Dolstra1-13/+21
2017-09-05 Add automatic garbage collectionEelco Dolstra6-1/+127
Nix can now automatically run the garbage collector during builds or while adding paths to the store. The option "min-free = <bytes>" specifies that Nix should run the garbage collector whenever free space in the Nix store drops below <bytes>. It will then delete garbage until "max-free" bytes are available. Garbage collection during builds is asynchronous; running builds are not paused and new builds are not blocked. However, there also is a synchronous GC run prior to the first build/substitution. Currently, no old GC roots are deleted (as in "nix-collect-garbage -d").
2017-09-05 GC: Don't delete own temproots fileEelco Dolstra3-34/+34
Since file locks are per-process rather than per-file-descriptor, the garbage collector would always acquire a lock on its own temproots file and conclude that it's stale.
2017-09-01 Abort curl downloads if there is no progress for 5 minutesEelco Dolstra1-1/+6
Maybe this will fix the curl hangs on macOS. (We could also use CURLOPT_TIMEOUT but that seems more of a sledgehammer.)
2017-09-01 Fix verbosity level for nix build --dry-runEelco Dolstra4-16/+16
2017-09-01 Merge pull request #1545 from trofi/glibc-2.26Eelco Dolstra1-2/+2
src/libmain/stack.cc: fix 'ucontext' usage on glibc-2.26
2017-08-31 src/libmain/stack.cc: fix 'ucontext' usage on glibc-2.26Sergei Trofimovich1-2/+2
Build fails as: $ make CXX src/libmain/stack.o src/libmain/stack.cc: In function 'void nix::sigsegvHandler(int, siginfo_t*, void*)': src/libmain/stack.cc:21:21: error: 'ucontext' was not declared in this scope sp = (char *) ((ucontext *) ctx)->uc_mcontext.gregs[REG_RSP]; ^~~~~~~~ src/libmain/stack.cc:21:21: note: suggested alternative: 'ucontext_t' sp = (char *) ((ucontext *) ctx)->uc_mcontext.gregs[REG_RSP]; ^~~~~~~~ ucontext_t It's caused by upstream rename: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=251287734e89a52da3db682a8241eb6bccc050c9 which basically changes typedef struct ucontext {} ucontext_t; to typedef struct ucontext_t {} ucontext_t; The change uses ucontext_t. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2017-08-31 Call queryMissing() prior to buildingEelco Dolstra2-0/+14
Without this, substitute info is fetched sequentially, which is superslow. In the old UI (e.g. nix-build), we call printMissing(), which calls queryMissing(), thereby preheating the binary cache cache. But the new UI doesn't do that.
2017-08-31 Add an activity for binary cache queriesEelco Dolstra4-4/+19
2017-08-31 Rename a few configuration optionsEelco Dolstra16-104/+113
In particular, drop the "build-" and "gc-" prefixes which are pointless. So now you can say nix build --no-sandbox instead of nix build --no-build-use-sandbox
2017-08-31 More macOS build fixesEelco Dolstra1-1/+3
2017-08-31 Fix build failure on non-LinuxEelco Dolstra1-1/+1
https://hydra.nixos.org/build/59649086
2017-08-31 Fix mismatched tag warningEelco Dolstra1-1/+1
https://hydra.nixos.org/build/59649086
2017-08-29 nix edit / log: Operate on a single InstallableEelco Dolstra6-89/+100
2017-08-29 nix search: Warn about cached resultsEelco Dolstra1-0/+2
2017-08-29 nix run: Flush the progress bar before starting the commandEelco Dolstra5-19/+28
2017-08-29 nix run: Add some flags for clearing/keeping the environmentEelco Dolstra1-0/+49
This is useful for testing commands in isolation. For example, $ nix run nixpkgs.geeqie -i -k DISPLAY -k XAUTHORITY -c geeqie runs geeqie in an empty environment, except for $DISPLAY and $XAUTHORITY.
2017-08-29 nix run: Allow passing a command to executeEelco Dolstra3-3/+19
E.g. nix run nixpkgs.hello -c hello --greeting Hallo Note that unlike "nix-shell --command", no quoting of arguments is necessary. "-c" (short for "--command") cannot be combined with "--" because they both consume all remaining arguments. But since installables shouldn't start with a dash, this is unlikely to cause problems.
2017-08-29 nix run: Fix chroot executionEelco Dolstra2-60/+110
Running "nix run" with a diverted store, e.g. $ nix run --store local?root=/tmp/nix nixpkgs.hello stopped working when Nix became multithreaded, because unshare(CLONE_NEWUSER) doesn't work in multithreaded processes. The obvious solution is to terminate all other threads first, but 1) there is no way to terminate Boehm GC marker threads; and 2) it appears that the kernel has a race where unshare(CLONE_NEWUSER) will still fail for some indeterminate amount of time after joining other threads. So instead, "nix run" will now exec() a single-threaded helper ("nix __run_in_chroot") that performs the actual unshare()/chroot()/exec().
2017-08-29 Hide commands that don't have a descriptionEelco Dolstra1-2/+5
These are assumed to be internal.
2017-08-29 readLink(): Handle symlinks in /procEelco Dolstra1-4/+5
Symlinks like /proc/self/exe report a stat() size of 0, so use a buffer of at least PATH_MAX instead.
2017-08-28 Give activities a verbosity level againEelco Dolstra10-19/+41
And print them (separately from the progress bar) given sufficient -v flags.
2017-08-28 Don't send progress messages to older clientsEelco Dolstra2-12/+19
2017-08-28 Tunnel progress messages from the daemon to the clientEelco Dolstra4-30/+124
This makes the progress bar work for non-root users.
2017-08-28 SimplifyEelco Dolstra2-18/+14
2017-08-28 Make TunnelLogger thread-safeEelco Dolstra1-109/+129
Now that we use threads in lots of places, it's possible for TunnelLogger::log() to be called asynchronously from other threads than the main loop. So we need to ensure that STDERR_NEXT messages don't clobber other messages.