Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nix
base: 49bcb1803508
Choose a base ref
...
head repository: NixOS/nix
compare: c2b0d8749f7e
Choose a head ref
  • 11 commits
  • 17 files changed
  • 1 contributor

Commits on Jan 26, 2017

  1. Move exportReferencesGraph into a separate method

    startBuilder() is getting rather obese.
    edolstra committed Jan 26, 2017
    Configuration menu
    Copy the full SHA
    4425a5c View commit details
    Browse the repository at this point in the history
  2. On HTTP errors, also show the curl error

    This is a hopefully temporary measure to diagnose the intermittent
    "HTTP error 200" failures.
    edolstra committed Jan 26, 2017
    Configuration menu
    Copy the full SHA
    e8c43ab View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a529c74 View commit details
    Browse the repository at this point in the history
  4. UserLock: Make more RAII-ish

    edolstra committed Jan 26, 2017
    Configuration menu
    Copy the full SHA
    c0f2f4e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a55f589 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    951357e View commit details
    Browse the repository at this point in the history
  7. Fix interrupt handling

    edolstra committed Jan 26, 2017
    Configuration menu
    Copy the full SHA
    83ae650 View commit details
    Browse the repository at this point in the history
  8. Fix assertion failure when a path is locked

    Fixes:
    
      nix-store: src/libstore/build.cc:3649: void nix::Worker::run(const Goals&): Assertion `!awake.empty()' failed.
    edolstra committed Jan 26, 2017
    Configuration menu
    Copy the full SHA
    b1f0015 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    54801ed View commit details
    Browse the repository at this point in the history
  10. Add support for passing structured data to builders

    Previously, all derivation attributes had to be coerced into strings
    so that they could be passed via the environment. This is lossy
    (e.g. lists get flattened, necessitating configureFlags
    vs. configureFlagsArray, of which the latter cannot be specified as an
    attribute), doesn't support attribute sets at all, and has size
    limitations (necessitating hacks like passAsFile).
    
    This patch adds a new mode for passing attributes to builders, namely
    encoded as a JSON file ".attrs.json" in the current directory of the
    builder. This mode is activated via the special attribute
    
      __structuredAttrs = true;
    
    (The idea is that one day we can set this in stdenv.mkDerivation.)
    
    For example,
    
      stdenv.mkDerivation {
        __structuredAttrs = true;
        name = "foo";
        buildInputs = [ pkgs.hello pkgs.cowsay ];
        doCheck = true;
        hardening.format = false;
      }
    
    results in a ".attrs.json" file containing (sans the indentation):
    
      {
        "buildInputs": [],
        "builder": "/nix/store/ygl61ycpr2vjqrx775l1r2mw1g2rb754-bash-4.3-p48/bin/bash",
        "configureFlags": [
          "--with-foo",
          "--with-bar=1 2"
        ],
        "doCheck": true,
        "hardening": {
          "format": false
        },
        "name": "foo",
        "nativeBuildInputs": [
          "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10",
          "/nix/store/4jnvjin0r6wp6cv1hdm5jbkx3vinlcvk-cowsay-3.03"
        ],
        "propagatedBuildInputs": [],
        "propagatedNativeBuildInputs": [],
        "stdenv": "/nix/store/f3hw3p8armnzy6xhd4h8s7anfjrs15n2-stdenv",
        "system": "x86_64-linux"
      }
    
    "passAsFile" is ignored in this mode because it's not needed - large
    strings are included directly in the JSON representation.
    
    It is up to the builder to do something with the JSON
    representation. For example, in bash-based builders, lists/attrsets of
    string values could be mapped to bash (associative) arrays.
    edolstra committed Jan 26, 2017
    2 Configuration menu
    Copy the full SHA
    6de33a9 View commit details
    Browse the repository at this point in the history
  11. exportReferencesGraph: Export more complete info in JSON format

    This writes info about every path in the closure in the same format as
    ‘nix path-info --json’. Thus it also includes NAR hashes and sizes.
    
    Example:
    
      [
        {
          "path": "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10",
          "narHash": "sha256:0ckdc4z20kkmpqdilx0wl6cricxv90lh85xpv2qljppcmz6vzcxl",
          "narSize": 197648,
          "references": [
            "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10",
            "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24"
          ],
          "closureSize": 20939776
        },
        {
          "path": "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24",
          "narHash": "sha256:1nfn3m3p98y1c0kd0brp80dn9n5mycwgrk183j17rajya0h7gax3",
          "narSize": 20742128,
          "references": [
            "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24"
          ],
          "closureSize": 20742128
        }
      ]
    
    Fixes #1134.
    edolstra committed Jan 26, 2017
    5 Configuration menu
    Copy the full SHA
    c2b0d87 View commit details
    Browse the repository at this point in the history