about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2016-02-04 StoreAPI -> StoreEelco Dolstra24-51/+51
Calling a class an API is a bit redundant...
2016-02-04 Eliminate the "store" global variableEelco Dolstra36-450/+503
Also, move a few free-standing functions into StoreAPI and Derivation. Also, introduce a non-nullable smart pointer, ref<T>, which is just a wrapper around std::shared_ptr ensuring that the pointer is never null. (For reference-counted values, this is better than passing a "T&", because the latter doesn't maintain the refcount. Usually, the caller will have a shared_ptr keeping the value alive, but that's not always the case, e.g., when passing a reference to a std::thread via std::bind.)
2016-02-01 Remove tests/lexer.shEelco Dolstra3-4/+1
"tests/lang.sh" can handle this.
2016-01-31 Add build mode to compute fixed-output derivation hashesEelco Dolstra3-7/+34
For example, $ nix-build --hash -A nix-repl.src will build the fixed-output derivation nix-repl.src (a fetchFromGitHub call), but instead of *verifying* the hash given in the Nix expression, it prints out the resulting hash, and then moves the result to its content-addressed location in the Nix store. E.g build produced path ‘/nix/store/504a4k6zi69dq0yjc0bm12pa65bccxam-nix-repl-8a2f5f0607540ffe56b56d52db544373e1efb980-src’ with sha256 hash ‘0cjablz01i0g9smnavhf86imwx1f9mnh5flax75i615ml71gsr88’ The goal of this is to make all nix-prefetch-* scripts unnecessary: we can just let Nix run the real thing (i.e., the corresponding fetch* derivation). Another example: $ nix-build --hash -E 'with import <nixpkgs> {}; fetchgit { url = "https://github.com/NixOS/nix.git"; sha256 = "ffffffffffffffffffffffffffffffffffffffffffffffffffff"; }' ... git revision is 9e7c1a4bbdbe6129dd9dc385776612c307d3d1bb ... build produced path ‘/nix/store/gmsnh9i7x4mb7pyd2ns7n3c9l90jfsi1-nix’ with sha256 hash ‘1188xb621diw89n25rifqg9lxnzpz7nj5bfh4i1y3dnis0dmc0zp’ (Having to specify a fake sha256 hash is a bit annoying...)
2016-01-31 Use the daemon when we don't have write access to the Nix databaseEelco Dolstra7-13/+57
2016-01-28 UntabifyEelco Dolstra1-16/+16
2016-01-28 UntabifyEelco Dolstra1-63/+63
2016-01-28 printMissing(): Propagate store argumentEelco Dolstra3-5/+5
2016-01-28 Add .dir-locals.el for EmacsEelco Dolstra1-0/+16
2016-01-27 Define HashType's size to allow it to be forward-declaredEelco Dolstra1-1/+1
2016-01-27 TriviaEelco Dolstra1-1/+2
2016-01-27 Make hashLength32() a method of HashEelco Dolstra2-12/+15
2016-01-20 string2Int: Barf on negative numbers for unsigned typesEelco Dolstra1-1/+3
2016-01-20 Fix broken call to shellwordsBrian McKenna1-1/+1
nix-shell shebangs were broken by 9018deab
2016-01-20 Revert "Revert "next try for "don't abort when given unmatched '}' with ↵Eelco Dolstra4-8/+23
'start-condition stack underflow'. This fixes #751""" This reverts commit b669d3d2e83d3c50238751b57cff3ed0ca39bc8a.
2016-01-20 BumpEelco Dolstra1-1/+1
2016-01-20 Fix evalEelco Dolstra1-2/+1
2016-01-20 Revert "next try for "don't abort when given unmatched '}' with ↵Eelco Dolstra4-23/+8
'start-condition stack underflow'. This fixes #751"" This reverts commit ed23c8568e10d15196bb4ff2b79fc14191d28109. Let's merge this *after* the 1.11.1 release.
2016-01-19 Merge branch 'lexer-regression-fix' of git://github.com/fkz/nixShea Levy4-8/+23
2016-01-19 next try for "don't abort when given unmatched '}' with 'start-condition ↵Fabian Schmitthenner4-8/+23
stack underflow'. This fixes #751" This reverts commit 8120b6fb8a4924f8ae717bba9bbda4a2f89e2141 and fixes the regression introduced in 8d22b26448a091c76ab972c0b0603daac5e255e4.
2016-01-19 Add tests for Nixpkgs/NixOS evaluationEelco Dolstra1-0/+24
2016-01-19 Do a 1.11.1 brown paper bag releaseEelco Dolstra1-1/+1
2016-01-19 Revert "don't abort when given unmatched '}' with 'start-condition stack ↵Eelco Dolstra1-17/+7
underflow'. This fixes #751" This reverts commit 8d22b26448a091c76ab972c0b0603daac5e255e4. It breaks Nixpkgs: $ nix-env -qa error: syntax error, unexpected IND_STR, expecting '}', at /home/eelco/Dev/nixpkgs-stable/pkgs/top-level/python-packages.nix:7605:8
2016-01-19 Bump versionEelco Dolstra1-1/+1
2016-01-19 GrmblEelco Dolstra1-1/+1
2016-01-18 Update release notesEelco Dolstra1-2/+38
2016-01-18 Document --checkEelco Dolstra1-0/+27
2016-01-18 <nix/buildenv.nix>: Don't substituteEelco Dolstra1-1/+4
This should get rid of a certificate warning from "nix-env -i" early in the install script.
2016-01-18 doc/manual/command-ref/nix-collect-garbage.xml: document --max-freed optionPeter Simons1-0/+1
Mention the --max-freed option in the nix-collect-garbage man page. Related to https://github.com/NixOS/nix/issues/609.
2016-01-17 Merge branch 'lexer' of git://github.com/fkz/nixShea Levy1-7/+17
2016-01-12 don't abort when given unmatched '}' with 'start-condition stack underflow'. ↵Fabian Schmitthenner1-7/+17
This fixes #751
2016-01-12 --option build-repeat: Keep the differing output if -K is givenEelco Dolstra1-7/+38
Similar to 00903fa79961d7eb0fadeb9ed2d7cda7821dc293. Regardless of -K, we now also print which output differs.
2016-01-12 Canonicalize gids to 0Eelco Dolstra1-2/+2
Previously files in the Nix store were owned by root or by nixbld, depending on whether they were created by a substituter or by a builder. This doesn't matter much, but causes spurious diffoscope differences. So use root everywhere.
2016-01-12 --check: Keep the differing output if -K is givenEelco Dolstra1-2/+12
This makes it easier to investigate the non-determinism, e.g. $ nix-build pkgs/stdenv/linux -A stage1.pkgs.zlib --check -K error: derivation ‘/nix/store/l54i8wlw22656i4pk05c52ngv9rpl39q-zlib-1.2.8.drv’ may not be deterministic: output ‘/nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8’ differs from ‘/nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8-check’ $ diffoscope /nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8 /nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8-check ... ├── lib/libz.a │ ├── metadata │ │ @@ -1,15 +1,15 @@ │ │ -rw-r--r-- 30001/30000 3096 Jan 12 15:20 2016 adler32.o ... │ │ +rw-r--r-- 30001/30000 3096 Jan 12 15:28 2016 adler32.o ...
2016-01-12 --check: Fix "failed to produce output path"Eelco Dolstra1-1/+1
This occured when sandbox building is disabled, at least one output exists, and at least one other output does not.
2016-01-12 --check: Fix assertion failure when some outputs are missingEelco Dolstra1-1/+1
E.g. $ nix-build pkgs/stdenv/linux/ -A stage1.pkgs.perl --check nix-store: src/libstore/build.cc:1323: void nix::DerivationGoal::tryToBuild(): Assertion `buildMode != bmCheck || validPaths.size() == drv->outputs.size()' failed. when perl.out exists but perl.man doesn't. The fix is to only check the outputs that exist. Note that "nix-build -A stage1.pkgs.all --check" will still give a (proper) error in this case.
2016-01-12 Revert "Do not override environment CFLAGS and CXXFLAGS"Eelco Dolstra1-0/+2
This reverts commit 80ebd60e7ca3c48a19b94ddaeebb23182b703178. The reason why we cleared CFLAGS/CXXFLAGS was because otherwise we get a default value of -O2, which interferes with the defaults set in the Makefile. (E.g. "make OPTIMIZE=0" should not pass -O2.)
2016-01-08 Temporarily do Darwin builds from a different Nixpkgs branchEelco Dolstra1-2/+4
2016-01-07 Revert accidental disable of doInstallCheckEelco Dolstra1-1/+1
2016-01-07 Fix "Bad address" executing build hookEelco Dolstra2-6/+10
This was observed in the deb_debian7x86_64 build: http://hydra.nixos.org/build/29973215 Calling c_str() on a temporary should be fine because the temporary shouldn't be destroyed until after the execl() call, but who knows...
2016-01-07 Fix some signedness warningsEelco Dolstra2-2/+2
2016-01-07 Fix bad use of croak()Eelco Dolstra1-22/+22
Detected by -Werror=format-security. http://hydra.nixos.org/build/29973207
2016-01-07 Fix repair testEelco Dolstra1-0/+12
http://hydra.nixos.org/build/30001635
2016-01-06 nix-store --repair-path: Rebuild if there is no substituterEelco Dolstra1-2/+12
2016-01-06 Fix --repair failure on multiple-output derivationsEelco Dolstra1-1/+3
If repair found a corrupted/missing path that depended on a multiple-output derivation, and some of the outputs of the latter were not present, it failed with a message like error: path ‘/nix/store/cnfn9d5fjys1y93cz9shld2xwaibd7nn-bash-4.3-p42-doc’ is not valid
2016-01-06 TypoEelco Dolstra1-1/+1
2016-01-05 Verify TLS certificate before downloading binariesPhilip Potter2-3/+2
The --insecure flag to curl tells curl not to bother checking if the TLS certificate presented by the server actually matches the hostname requested, and actually is issued by a trusted CA chain. This almost entirely negates any benefit from using TLS in the first place. This removes the --insecure flag to ensure we actually have a secure connection to the intended hostname before downloading binaries. Manually tested locally within a dev-shell; was able to download binaries from https://cache.nixos.org without issue. [Note: --insecure was only used for fetching NARs, whose integrity is verified by Nix anyway using the hash from the .narinfo. But if we can fetch the .narinfo without --insecure, we can also fetch the .nar, so there is not much point to using --insecure. --Eelco]
2016-01-05 Better error messageFabian Schmitthenner1-1/+1
Also show types when nix cannot compare values of different types. This is also more consistent since types are already shown when comparing values of the same not comparable type.
2016-01-05 propagate NIX_BUILD_SHELL also in pure builds document NIX_BUILD_SHELL in ↵Fabian Schmitthenner2-1/+17
the nix-shell command documentation
2016-01-05 Do not override environment CFLAGS and CXXFLAGSIlya Novoselov1-2/+0
Looks like 5a05cf4063fc6ea666f3e24c60bd2e9e5526ef4e removed usage of environment CFLAGS and CXXFLAGS by mistake. That change broke building of nix on fedora core 23.