about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2015-07-23 Add foldl' primopEelco Dolstra1-0/+24
2015-07-23 --version: Print some config infoEelco Dolstra3-2/+28
Such as whether Nix is built with signed binary cache support, and the location of the configuration file.
2015-07-21 Fix Darwin buildEelco Dolstra1-1/+4
Turns out getgrouplist() is not POSIX. http://hydra.nixos.org/build/23881243
2015-07-20 Make <nix/fetchurl.nix> a builtin builderEelco Dolstra7-5/+60
This ensures that 1) the derivation doesn't change when Nix changes; 2) the derivation closure doesn't contain Nix and its dependencies; 3) we don't have to rely on ugly chroot hacks.
2015-07-20 Provide more detailed info about build status to hydra-queue-runnerEelco Dolstra2-47/+75
In particular, hydra-queue-runner can now distinguish between remote build / substitution / already-valid. For instance, if a path already existed on the remote side, we don't want to store a log file.
2015-07-20 nix-copy-closure: Add -v flagEelco Dolstra1-1/+3
And make exportPath() less spammy by default.
2015-07-20 Support systemd log severity prefixesEelco Dolstra3-1/+18
This is mostly useful for hydra-queue-runner.
2015-07-20 More cleanupEelco Dolstra9-296/+184
2015-07-17 OCD: foreach -> C++11 ranged forEelco Dolstra30-874/+849
2015-07-17 Allow remote builds without sending the derivation closureEelco Dolstra12-154/+372
Previously, to build a derivation remotely, we had to copy the entire closure of the .drv file to the remote machine, even though we only need the top-level derivation. This is very wasteful: the closure can contain thousands of store paths, and in some Hydra use cases, include source paths that are very large (e.g. Git/Mercurial checkouts). So now there is a new operation, StoreAPI::buildDerivation(), that performs a build from an in-memory representation of a derivation (BasicDerivation) rather than from a on-disk .drv file. The only files that need to be in the Nix store are the sources of the derivation (drv.inputSrcs), and the needed output paths of the dependencies (as described by drv.inputDrvs). "nix-store --serve" exposes this interface. Note that this is a privileged operation, because you can construct a derivation that builds any store path whatsoever. Fixing this will require changing the hashing scheme (i.e., the output paths should be computed from the other fields in BasicDerivation, allowing them to be verified without access to other derivations). However, this would be quite nice because it would allow .drv-free building (e.g. "nix-env -i" wouldn't have to write any .drv files to disk). Fixes #173.
2015-07-17 Make printValue() interruptibleEelco Dolstra1-0/+2
Fixes #572.
2015-07-17 nix-collect-garbage: Handle ENOENTEelco Dolstra1-1/+6
Don't barf trying to read a link that just got deleted. Fixes #575.
2015-07-03 Fix the parsing of "$"'s in strings.Guillaume Maudoux1-6/+5
2015-07-03 Fix the hack that resets the scanner state.Guillaume Maudoux2-42/+19
2015-07-02 TypoEelco Dolstra1-1/+1
2015-07-01 Preserve supplementary groups of build usersLudovic Courtès1-2/+18
The following patch is an attempt to address this bug (see <http://bugs.gnu.org/18994>) by preserving the supplementary groups of build users in the build environment. In practice, I would expect that supplementary groups would contain only one or two groups: the build users group, and possibly the “kvm” group. [Changed &at(0) to data() and removed tabs - Eelco]
2015-06-30 GC: Handle ENOSPC creating/moving to the trash directoryEelco Dolstra1-8/+23
Issue #564.
2015-06-22 Use posix_fallocate to create /nix/var/nix/db/reservedEelco Dolstra1-1/+11
2015-06-22 Make /nix/var/nix/db/reserved biggerEelco Dolstra1-1/+1
Issue #564.
2015-06-17 Support URLs in $NIX_PATHEelco Dolstra3-1/+32
This didn't work (despite claims in the manual), because the colon in "http://" was parsed as a element separator. So handle "://" specially.
2015-06-10 Export outputPaths functionEelco Dolstra3-11/+12
This is useful for the new hydra-queue-runner.
2015-06-09 Use std::vector::data()Eelco Dolstra3-12/+8
2015-06-04 Allow substitutes for builds that have preferLocalBuild setEelco Dolstra3-10/+18
Not substituting builds with "preferLocalBuild = true" was a bad idea, because it didn't take the cost of dependencies into account. For instance, if we can't substitute a fetchgit call, then we have to download/build git and all its dependencies. Partially reverts 5558652709f27e8a887580b77b93c705659d7a4b and adds a new derivation attribute "allowSubstitutes" to specify whether a derivation may be substituted.
2015-06-04 Chown files created for passAsFileEelco Dolstra1-2/+7
Nixpkgs' writeTextAsFile does this: mv "$textPath" "$n" Since $textPath was owned by root, if $textPath is on the same filesystem as $n, $n will be owned as root. As a result, the build result was rejected as having suspicious ownership. http://hydra.nixos.org/build/22836807
2015-06-02 Don't let unprivileged users repair pathsEelco Dolstra1-7/+9
2015-06-02 Use StoreAPI::verifyStore()Eelco Dolstra1-1/+1
2015-06-02 Add a ‘verifyStore’ RPCLudovic Courtès5-1/+27
Hello! The patch below adds a ‘verifyStore’ RPC with the same signature as the current LocalStore::verifyStore method. Thanks, Ludo’. >From aef46c03ca77eb6344f4892672eb6d9d06432041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org> Date: Mon, 1 Jun 2015 23:17:10 +0200 Subject: [PATCH] Add a 'verifyStore' remote procedure call.
2015-06-01 Add tarball testsEelco Dolstra1-1/+1
2015-06-01 Document tarball downloadingEelco Dolstra1-0/+1
2015-06-01 Fix fetchurl/fetchTarballEelco Dolstra1-1/+2
2015-06-01 readFile: Check against nul bytesEelco Dolstra1-1/+4
2015-05-22 Fix import-from-derivation in restricted eval modeEelco Dolstra1-0/+7
This relaxes restricted mode to allow access to anything in the store. In the future, it would be better to allow access to only paths that have been constructed in the current evaluation (so a hard-coded /nix/store/blabla in a Nix expression would still be rejected). However, note that reading /nix/store itself is still rejected, so you can't use this so get access to things you don't know about.
2015-05-22 Remove dead codeEelco Dolstra1-18/+0
2015-05-21 nix-collect-garbage: Don't call nix-envEelco Dolstra4-69/+110
Also, make sure --delete-older-than doesn't delete the current generation.
2015-05-21 Move profiles.{cc,hh} to libstoreEelco Dolstra2-0/+0
2015-05-21 nix-collect-garbage: Call collectGarbage() internallyEelco Dolstra4-24/+41
2015-05-21 nix-collect-garbage: Don't barf on unreadable directoriesEelco Dolstra1-5/+7
And don't try to delete generations from unwritable directories.
2015-05-21 nix-collect-garbage: Remove redundant call to getFileTypeEelco Dolstra1-1/+1
2015-05-21 Merge branch 'submit/sparse-generation-symlinks' of ↵Eelco Dolstra1-1/+19
https://github.com/ctheune/nix
2015-05-20 Mis-read Eelko's request to not make this an option: now, let's not makeChristian Theune5-18/+13
it an option. :)
2015-05-19 Implement alternative to lazy generations:Christian Theune5-17/+25
* only the last generation can be lazy * depend on the '--lazy-generation' flag to be set
2015-05-19 Don't install nix-worker symlinkEelco Dolstra1-2/+0
It has been obsolete since Nix 1.2. Closes #417.
2015-05-18 Enable lazy/sparse allocation of generation symlinks: avoid creatingChristian Theune1-1/+16
new generations if a generation already exists. Alternatively or additionally I propose a mode where only the *last* generation will be sparse.
2015-05-13 Fix "error: deriver of path ‘’ is not known"Eelco Dolstra1-6/+5
2015-05-13 cygwin: looks like stdout/stdin are reserved wordsRok Garbas1-10/+10
2015-05-13 cygwin: explicitly include required c headersRok Garbas2-0/+2
2015-05-12 Don't try to map /bin/sh to a store path on non-LinuxShea Levy1-0/+2
2015-05-06 nix-collect-garbage: Do not pass an empty argument. Closes #530Luca Bruno1-1/+5
2015-05-06 nix-env/nix-instantiate/nix-build: Support URIsEelco Dolstra5-14/+19
For instance, you can install Firefox from a specific Nixpkgs revision like this: $ nix-env -f https://github.com/NixOS/nixpkgs/archive/63def04891a0abc328b1b0b3a78ec02c58f48583.tar.gz -iA firefox Or build a package from the latest nixpkgs-unstable channel: $ nix-build https://nixos.org/channels/nixpkgs-unstable/nixexprs.tar.xz -A hello
2015-05-06 nix-collect-garbage: Fix deleting old generationsWilliam A. Kennington III1-1/+1
The call to nix-env expects a string which represents how old the derivations are or just "old" which means any generations other than the current one in use. Currently nix-collect-garbage passes an empty string to nix-env when using the -d option. This patch corrects the call to nix-env such that it follows the old behavior.