about summary refs log tree commit diff
path: root/src/libutil
AgeCommit message (Collapse)AuthorFilesLines
2018-01-16 Add pure evaluation modeEelco Dolstra2-2/+10
In this mode, the following restrictions apply: * The builtins currentTime, currentSystem and storePath throw an error. * $NIX_PATH and -I are ignored. * fetchGit and fetchMercurial require a revision hash. * fetchurl and fetchTarball require a sha256 attribute. * No file system access is allowed outside of the paths returned by fetch{Git,Mercurial,url,Tarball}. Thus 'nix build -f ./foo.nix' is not allowed. Thus, the evaluation result is completely reproducible from the command line arguments. E.g. nix build --pure-eval '( let nix = fetchGit { url = https://github.com/NixOS/nixpkgs.git; rev = "9c927de4b179a6dd210dd88d34bda8af4b575680"; }; nixpkgs = fetchGit { url = https://github.com/NixOS/nixpkgs.git; ref = "release-17.09"; rev = "66b4de79e3841530e6d9c6baf98702aa1f7124e4"; }; in (import (nix + "/release.nix") { inherit nix nixpkgs; }).build.x86_64-linux )' The goal is to enable completely reproducible and traceable evaluation. For example, a NixOS configuration could be fully described by a single Git commit hash. 'nixos-rebuild' would do something like nix build --pure-eval '( (import (fetchGit { url = file:///my-nixos-config; rev = "..."; })).system ') where the Git repository /my-nixos-config would use further fetchGit calls or Git externals to fetch Nixpkgs and whatever other dependencies it has. Either way, the commit hash would uniquely identify the NixOS configuration and allow it to reproduced.
2017-12-30 use libbrotli directly when availableWill Dietz2-10/+165
* Look for both 'brotli' and 'bro' as external command, since upstream has renamed it in newer versions. If neither are found, current runtime behavior is preserved: try to find 'bro' on PATH. * Limit amount handed to BrotliEncoderCompressStream to ensure interrupts are processed in a timely manner. Testing shows negligible performance impact. (Other compression sinks don't seem to require this)
2017-12-11 logging.cc: add missing 'override'Will Dietz1-0/+1
2017-11-21 Propagate flags like --sandbox to the daemon properlyEelco Dolstra2-3/+9
2017-11-20 CleanupEelco Dolstra1-2/+2
2017-11-20 Merge pull request #1645 from twhitehead/stat-raceEelco Dolstra1-12/+11
Fix (highly unlikely) race condition in readLink
2017-11-01 fetchMercurial: Don't fetch hashes we already haveEelco Dolstra2-15/+43
2017-10-30 builtins.fetchgit: Support importing a working treeEelco Dolstra4-10/+7
For example, you can write src = fetchgit ./.; and if ./. refers to an unclean working tree, that tree will be copied to the Nix store. This removes the need for "cleanSource".
2017-10-30 Fix (highly unlikely) race condition in readLinkTyson Whitehead1-12/+11
Used to determine symlink size with stat and value with readlink. This could technically result in garbage if symlink changed between calls. Also gets around the broken stat implementation in our network filesystem (returns size + 1 giving a byte of garbage).
2017-10-25 Pass lists/attrsets to bash as (associative) arraysEelco Dolstra2-4/+12
2017-10-24 More progress indicator improvementsEelco Dolstra2-3/+4
Fixes #1599.
2017-10-24 Handle log messages from build-remoteEelco Dolstra2-0/+135
This makes the progress indicator show statuses like "connecting to 'root@machine'".
2017-10-24 nix: Respect -I, --arg, --argstrEelco Dolstra3-48/+44
Also, random cleanup to argument handling.
2017-10-23 Pass all settings to build-remoteEelco Dolstra1-1/+21
This ensures that command line flags such as --builders get passed correctly.
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-09-25 DohEelco Dolstra1-1/+1
2017-09-14 RemoteStore: Add option to drop old connections from the poolEelco Dolstra1-0/+10
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 Add "nix add-to-store" commandEelco Dolstra1-3/+4
2017-09-08 ThreadPool: On exception, interrupt the other worker threadsEelco Dolstra4-7/+14
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-06 nix build: Add --out-link and --no-link optionsEelco Dolstra1-0/+13
2017-08-31 Add an activity for binary cache queriesEelco Dolstra1-0/+1
2017-08-31 Fix mismatched tag warningEelco Dolstra1-1/+1
https://hydra.nixos.org/build/59649086
2017-08-29 nix run: Allow passing a command to executeEelco Dolstra2-1/+5
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 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 Dolstra2-4/+15
And print them (separately from the progress bar) given sufficient -v flags.
2017-08-28 Tunnel progress messages from the daemon to the clientEelco Dolstra1-1/+1
This makes the progress bar work for non-root users.
2017-08-28 SimplifyEelco Dolstra1-3/+2
2017-08-25 SimplifyEelco Dolstra1-4/+8
2017-08-25 Allow derivations to update the build phaseEelco Dolstra1-0/+1
So the progress bar can show [1/0/1 built, 0.0 MiB DL] building hello-2.10 (configuring): checking whether pread is declared without a macro... yes
2017-08-25 Allow activities to be nestedEelco Dolstra2-4/+16
In particular, this allows more relevant activities ("substituting X") to supersede inferior ones ("downloading X").
2017-08-25 Handle SIGWINCHEelco Dolstra2-0/+38
2017-08-25 TypoEelco Dolstra1-1/+1
2017-08-25 Restore activity metadataEelco Dolstra2-17/+22
This allows the progress bar to display "building perl-5.22.3" instead of "building /nix/store/<hash>-perl-5.22.3.drv".
2017-08-21 Disallow accidental copy constructionEelco Dolstra1-0/+2
2017-08-18 Remove unused decodeOctalEscapedAndy Wingo2-21/+0
Besides being unused, this function has a bug that it will incorrectly decode the path component Ubuntu\04016.04.2\040LTS\040amd64 as "Ubuntu.04.2 LTS amd64" instead of "Ubuntu 16.04.2 LTS amd64".
2017-08-16 nix verify: Restore the progress indicatorEelco Dolstra1-0/+3
2017-08-16 nix optimise-store: Show how much space has been freedEelco Dolstra1-5/+26
2017-08-16 nix optimise-store: AddEelco Dolstra1-0/+1
This replaces "nix-store --optimise". Main difference is that it has a progress indicator.
2017-08-16 Progress indicator: CleanupEelco Dolstra2-85/+35
2017-08-16 Progress indicator: More improvementsEelco Dolstra1-3/+2
2017-08-16 Progress indicator: Show number of active itemsEelco Dolstra4-12/+21
2017-08-16 Progress indicator: Unify "copying" and "substituting"Eelco Dolstra1-8/+3
They're the same thing after all. Example: $ nix build --store local?root=/tmp/nix nixpkgs.firefox-unwrapped [0/1 built, 49/98 copied, 16.3/92.8 MiB DL, 55.8/309.2 MiB copied] downloading 'https://cache.nixos.org/nar/0pl9li1jigcj2dany47hpmn0r3r48wc4nz48v5mqhh426lgz3bz6.nar.xz'
2017-08-16 Improve substitution progress indicatorEelco Dolstra1-4/+2
E.g. $ nix build --store local?root=/tmp/nix nixpkgs.firefox-unwrapped [0/1 built, 1/97/98 fetched, 65.8/92.8 MiB DL, 203.2/309.2 MiB copied] downloading 'https://cache.nixos.org/nar/1czm9fk0svacy4h6a3fzkpafi4f7a9gml36kk8cq1igaghbspg3k.nar.xz'
2017-08-16 nix copy: Improve progress indicatorEelco Dolstra2-2/+16
It now shows the amount of data copied: [8/1038 copied, 160.4/1590.9 MiB copied] copying path '...'
2017-08-16 nix copy: Revive progress barEelco Dolstra3-0/+28
2017-08-09 Use /proc/self/fd to efficiently close all FDs on LinuxEelco Dolstra2-4/+18
Issue #1506.
2017-08-03 Include missing <cstdlib> for abort()Brian McKenna1-0/+1
This is needed to get Nix compiled using Android NDK.
2017-07-31 Merge branch 'macOS' of https://github.com/davidak/nixEelco Dolstra1-1/+1
2017-07-30 Replace Unicode quotes in user-facing strings by ASCIIJörg Thalheim9-57/+57
Relevant RFC: NixOS/rfcs#4 $ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"