Skip to content
Snippets Groups Projects
  1. Feb 04, 2016
    • Eelco Dolstra's avatar
      Eliminate the "store" global variable · c10c6144
      Eelco Dolstra authored
      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.)
      c10c6144
  2. Feb 01, 2016
  3. Jan 31, 2016
    • Eelco Dolstra's avatar
      Add build mode to compute fixed-output derivation hashes · d367b8e7
      Eelco Dolstra authored
      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-8a2f5f06-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 9e7c1a4b
        ...
        build produced path ‘/nix/store/gmsnh9i7x4mb7pyd2ns7n3c9l90jfsi1-nix’ with sha256 hash ‘1188xb621diw89n25rifqg9lxnzpz7nj5bfh4i1y3dnis0dmc0zp’
      
      (Having to specify a fake sha256 hash is a bit annoying...)
      d367b8e7
    • Eelco Dolstra's avatar
  4. Jan 28, 2016
  5. Jan 27, 2016
  6. Jan 20, 2016
  7. Jan 19, 2016
  8. Jan 18, 2016
  9. Jan 17, 2016
  10. Jan 12, 2016
    • Fabian Schmitthenner's avatar
    • Eelco Dolstra's avatar
      --option build-repeat: Keep the differing output if -K is given · 786046cf
      Eelco Dolstra authored
      Similar to 00903fa7. Regardless of -K,
      we now also print which output differs.
      786046cf
    • Eelco Dolstra's avatar
      Canonicalize gids to 0 · 8906eda2
      Eelco Dolstra authored
      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.
      8906eda2
    • Eelco Dolstra's avatar
      --check: Keep the differing output if -K is given · 00903fa7
      Eelco Dolstra authored
      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
        ...
      00903fa7
    • Eelco Dolstra's avatar
      --check: Fix "failed to produce output path" · 0cad1f80
      Eelco Dolstra authored
      This occured when sandbox building is disabled, at least one output
      exists, and at least one other output does not.
      0cad1f80
    • Eelco Dolstra's avatar
      --check: Fix assertion failure when some outputs are missing · 1c57ab8b
      Eelco Dolstra authored
      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.
      1c57ab8b
    • Eelco Dolstra's avatar
      Revert "Do not override environment CFLAGS and CXXFLAGS" · ef7c2d8b
      Eelco Dolstra authored
      This reverts commit 80ebd60e. 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.)
      ef7c2d8b
  11. Jan 08, 2016
  12. Jan 07, 2016
Loading