diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 2777fbcc9035..d725692f4054 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.3${suffix}"; suffix = "pre6631_e58a7144"; src = fetchFromGitHub { @@ -173,6 +186,8 @@ in rec { sha256 = "1hbjhnvjbh8bi8cjjgyrj4z1gw03ws12m2wi5azzj3rmhnh4c802"; }; fromGit = true; + + inherit storeDir stateDir confDir boehmgc; }); } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 58317b2fbd73..034c881e847b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22524,7 +22524,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; };