about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
2015-11-09 optimizePath(): Detect some .links corruptionEelco Dolstra1-2/+9
If automatic store optimisation is enabled, and a hard-linked file in the store gets corrupted, then the corresponding .links entry will also be corrupted. In that case, trying to repair with --repair or --repair-path won't work, because the new "good" file will be replaced by a hard link to the corrupted file. We can catch most of these cases by doing a sanity-check on the file sizes.
2015-11-03 fix syntax errorJude Taylor1-1/+1
2015-11-03 darwin: allow reading system locale and zoneinfoJude Taylor1-2/+6
2015-10-31 allow reading ICU dataJude Taylor1-1/+2
2015-10-30 add special devices to sandbox-defaultsJude Taylor1-1/+4
2015-10-30 <nix/fetchurl.nix>: Support xz-compressed NARsEelco Dolstra1-0/+3
2015-10-30 <nix/fetchurl.nix>: Support downloading and unpacking NARsEelco Dolstra1-3/+14
This removes the need to have multiple downloads in the stdenv bootstrap process (like a separate busybox binary for Linux, or curl/mkdir/sh/bzip2 for Darwin). Now all those files can be combined into a single NAR.
2015-10-29 int2String() -> std::to_string()Eelco Dolstra2-3/+3
2015-10-21 use nixDataDir instead of appending /share to PREFIXJude Taylor1-1/+1
2015-10-21 clarifying commentJude Taylor1-1/+5
2015-10-21 move preBuildHook defaulting to globals.ccJude Taylor2-7/+5
2015-10-21 restore old DEFAULT_ALLOWED_IMPURE_PREFIXESJude Taylor1-1/+1
2015-10-21 Add resolve-system-dependencies.plJude Taylor2-1/+8
2015-10-21 remove usr paths from allowed inputsJude Taylor1-2/+0
2015-10-21 allow access to SystemVersion for python buildersJude Taylor1-0/+1
2015-10-21 fix line reading in preBuildHookJude Taylor1-1/+1
2015-10-21 remove sandbox defaults into a new fileJude Taylor3-65/+62
2015-10-21 restore allowed impure prefixesJude Taylor1-1/+1
2015-10-21 remove an unneeded default impure-depJude Taylor1-1/+0
2015-10-21 make sandbox builds more permissiveJude Taylor1-2/+2
2015-10-21 add a few more permissionsJude Taylor1-3/+45
2015-10-21 Allow builtin fetchurl regardless of the derivation's system attributeEelco Dolstra1-12/+13
2015-10-21 Show progress indicator for builtin fetchurlEelco Dolstra3-4/+7
2015-10-21 Disable TLS verification for builtin fetchurlEelco Dolstra3-11/+31
This makes it consistent with the Nixpkgs fetchurl and makes it work in chroots. We don't need verification because the hash of the result is checked anyway.
2015-10-21 Fix segfault in builtin fetchurlEelco Dolstra1-3/+7
The stack allocated for the builder was way too small (32 KB). This is sufficient for normal derivations, because they just do some setup and then exec() the actual builder. But for the fetchurl builtin derivation it's not enough. Also, allocating the stack on the caller's stack was fishy business.
2015-10-08 Allow building ARMv6 stuff on ARMv7Tuomas Tynkkynen1-0/+1
This allows building a Raspberry Pi image on modern, faster boards.
2015-10-08 Revert to CURLOPT_PROGRESSFUNCTIONEelco Dolstra1-5/+5
CURLOPT_XFERINFOFUNCTION isn't widely supported yet. http://hydra.nixos.org/build/26679495
2015-10-07 Show progress during downloadsEelco Dolstra1-7/+47
2015-10-06 nix-store --serve: Implement log size limitEelco Dolstra2-2/+4
2015-09-18 Shut up clang warningsEelco Dolstra3-62/+63
2015-09-03 Implement buildDerivation() via the daemonEelco Dolstra2-2/+11
2015-09-02 Filter build-chroot-dirs entries that conflict with derivation outputsEelco Dolstra1-4/+4
Fixes https://github.com/NixOS/nixpkgs/issues/9504. Note that this means we may have a non-functional /bin/sh in the chroot while rebuilding Bash or one of its dependencies. Ideally those packages don't rely on /bin/sh though.
2015-09-02 Remove unused variableEelco Dolstra1-5/+0
2015-08-24 Prevent .chroot from being GC'ed when using LocalStore::buildDerivation()Eelco Dolstra1-0/+4
Fixes #616.
2015-08-21 nix-collect-garbage: Revive --max-freedEelco Dolstra2-15/+4
Fixes #609.
2015-08-19 Remove unneeded HAVE_UNSHARE.Manolis Ragkousis1-1/+1
* src/libstore/build.cc (CHROOT_ENABLED): Remove HAVE_UNSHARE.
2015-08-04 Don't include <iostream> before config.hEelco Dolstra1-2/+2
This breaks the build on 32-bit systems. http://hydra.nixos.org/build/24373658
2015-08-03 Handle debug messages from runChild()Eelco Dolstra1-10/+16
Turns out that "nix-build -vvv" with chroots enabled has been broken for some time, because some debug message got interpreted as an error.
2015-07-26 Remove unnecessary parenthesesEelco Dolstra1-2/+2
2015-07-23 Fix fetchurl of executable fileEelco Dolstra1-1/+1
Pointed out by @cstrahan, thanks!
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 Dolstra6-4/+317
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 More cleanupEelco Dolstra3-115/+68
2015-07-17 OCD: foreach -> C++11 ranged forEelco Dolstra11-335/+331
2015-07-17 Allow remote builds without sending the derivation closureEelco Dolstra8-143/+300
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-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.