From bfc72142e0b05ce103988baf4d8cff602c132a4d Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sun, 10 Mar 2019 13:30:54 -0400 Subject: [PATCH] nix*: Make .override work Currently, .override is only on a temporary attrset that is thrown away, now it is also on the nix derivations we use. --- pkgs/tools/package-management/nix/default.nix | 39 +++++++++++++------ pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 76d11a03fc4..37c7cfa8f3b 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -1,20 +1,29 @@ -{ lib, stdenv, fetchurl, fetchFromGitHub, fetchpatch, perl, curl, bzip2, sqlite, openssl ? null, xz -, pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost, editline -, autoreconfHook, autoconf-archive, bison, flex, libxml2, libxslt, docbook5, docbook_xsl_ns -, busybox-sandbox-shell +{ lib, fetchurl, fetchFromGitHub, callPackage , storeDir ? "/nix/store" , stateDir ? "/nix/var" , confDir ? "/etc" -, withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp -, withAWS ? stdenv.isLinux || stdenv.isDarwin, aws-sdk-cpp +, boehmgc }: let - sh = busybox-sandbox-shell; +common = + { lib, stdenv, fetchurl, fetchpatch, perl, curl, bzip2, sqlite, openssl ? null, xz + , pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost, editline + , autoreconfHook, autoconf-archive, bison, flex, libxml2, libxslt, docbook5, docbook_xsl_ns + , busybox-sandbox-shell + , storeDir + , stateDir + , confDir + , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp + , withAWS ? stdenv.isLinux || stdenv.isDarwin, aws-sdk-cpp - common = { name, suffix ? "", src, includesPerl ? false, fromGit ? false }: - let nix = stdenv.mkDerivation rec { + , name, suffix ? "", src, includesPerl ? false, fromGit ? false + + }: + let + sh = busybox-sandbox-shell; + nix = stdenv.mkDerivation rec { inherit name src; version = lib.getVersion name; @@ -144,7 +153,7 @@ in rec { nix = nixStable; - nix1 = common rec { + nix1 = callPackage common rec { name = "nix-1.11.16"; src = fetchurl { url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz"; @@ -153,17 +162,21 @@ in rec { # Nix1 has the perl bindings by default, so no need to build the manually. includesPerl = true; + + inherit storeDir stateDir confDir boehmgc; }; - nixStable = common rec { + nixStable = callPackage common rec { name = "nix-2.2"; src = fetchurl { url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz"; sha256 = "63238d00d290b8a93925891fc9164439d3941e2ccc569bf7f7ca32f53c3ec0c7"; }; + + inherit storeDir stateDir confDir boehmgc; }; - nixUnstable = lib.lowPrio (common rec { + nixUnstable = lib.lowPrio (callPackage common rec { name = "nix-2.2${suffix}"; suffix = "pre6600_85488a93"; src = fetchFromGitHub { @@ -173,6 +186,8 @@ in rec { sha256 = "1n5dp7p2lzpnj7f834d25k020v16gnnsm56jz46y87v2x7b69ccm"; }; fromGit = true; + + inherit storeDir stateDir confDir boehmgc; }); } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1bbbbdcea03..422cb99479a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22425,7 +22425,7 @@ in mynewt-newt = callPackage ../tools/package-management/mynewt-newt { }; - inherit (callPackages ../tools/package-management/nix { + inherit (callPackage ../tools/package-management/nix { storeDir = config.nix.storeDir or "/nix/store"; stateDir = config.nix.stateDir or "/nix/var"; boehmgc = boehmgc.override { enableLargeConfig = true; };