From 118ef67e0743b3b61baab8737e152f31d48b3ddc Mon Sep 17 00:00:00 2001 From: DavHau Date: Thu, 22 Apr 2021 11:06:03 +0700 Subject: [PATCH 1/3] nixFlakes: enable flakes --- pkgs/tools/package-management/nix/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index ac61a64180d..46f11322484 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -227,6 +227,13 @@ in rec { inherit storeDir stateDir confDir boehmgc; }); - nixFlakes = nixUnstable; + nixFlakes = callPackage ({ makeWrapper, runCommand, ... }: + runCommand "nix-flakes" { buildInputs = [ makeWrapper ]; } '' + mkdir -p $out/bin + for bin in ${nixUnstable}/bin/*; do + makeWrapper $bin $out/bin/$(basename $bin) \ + --suffix NIX_CONFIG "\n" "experimental-features = nix-command flakes" + done; + '') {}; } From f94876e77b7de2bfd0960cd53fedf7bac7d998d1 Mon Sep 17 00:00:00 2001 From: DavHau Date: Thu, 22 Apr 2021 12:31:41 +0700 Subject: [PATCH 2/3] nixFlakes: enable flakes,nix-command via patch --- pkgs/tools/package-management/nix/default.nix | 11 +++-------- .../package-management/nix/enable-flakes.patch | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 pkgs/tools/package-management/nix/enable-flakes.patch diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 46f11322484..fa088e04fe5 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -227,13 +227,8 @@ in rec { inherit storeDir stateDir confDir boehmgc; }); - nixFlakes = callPackage ({ makeWrapper, runCommand, ... }: - runCommand "nix-flakes" { buildInputs = [ makeWrapper ]; } '' - mkdir -p $out/bin - for bin in ${nixUnstable}/bin/*; do - makeWrapper $bin $out/bin/$(basename $bin) \ - --suffix NIX_CONFIG "\n" "experimental-features = nix-command flakes" - done; - '') {}; + nixFlakes = nixUnstable.overrideAttrs (prev: { + patches = (prev.patches or []) ++ [ ./enable-flakes.patch ]; + }); } diff --git a/pkgs/tools/package-management/nix/enable-flakes.patch b/pkgs/tools/package-management/nix/enable-flakes.patch new file mode 100644 index 00000000000..998067449b7 --- /dev/null +++ b/pkgs/tools/package-management/nix/enable-flakes.patch @@ -0,0 +1,14 @@ +diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh +index 3e4ead76c..81d407236 100644 +--- a/src/libstore/globals.hh ++++ b/src/libstore/globals.hh +@@ -923,7 +923,8 @@ public: + value. + )"}; + +- Setting experimentalFeatures{this, {}, "experimental-features", ++ Setting experimentalFeatures{ ++ this, {"flakes", "nix-command"}, "experimental-features", + "Experimental Nix features to enable."}; + + bool isExperimentalFeatureEnabled(const std::string & name); From 88658813192ae0348aa307d592ac2d52398ba669 Mon Sep 17 00:00:00 2001 From: DavHau Date: Tue, 4 May 2021 18:15:27 +0700 Subject: [PATCH 3/3] nixExperimental: init --- pkgs/tools/package-management/nix/default.nix | 4 ++++ .../nix/enable-all-experimental.patch | 14 ++++++++++++++ pkgs/top-level/all-packages.nix | 3 ++- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 pkgs/tools/package-management/nix/enable-all-experimental.patch diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index fa088e04fe5..a8dd048be02 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -227,6 +227,10 @@ in rec { inherit storeDir stateDir confDir boehmgc; }); + nixExperimental = nixUnstable.overrideAttrs (prev: { + patches = (prev.patches or []) ++ [ ./enable-all-experimental.patch ]; + }); + nixFlakes = nixUnstable.overrideAttrs (prev: { patches = (prev.patches or []) ++ [ ./enable-flakes.patch ]; }); diff --git a/pkgs/tools/package-management/nix/enable-all-experimental.patch b/pkgs/tools/package-management/nix/enable-all-experimental.patch new file mode 100644 index 00000000000..1712b7295a5 --- /dev/null +++ b/pkgs/tools/package-management/nix/enable-all-experimental.patch @@ -0,0 +1,14 @@ +diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc +index d3b27d7be..e7d002e1d 100644 +--- a/src/libstore/globals.cc ++++ b/src/libstore/globals.cc +@@ -172,8 +172,7 @@ MissingExperimentalFeature::MissingExperimentalFeature(std::string feature) + + void Settings::requireExperimentalFeature(const std::string & name) + { +- if (!isExperimentalFeatureEnabled(name)) +- throw MissingExperimentalFeature(name); ++ return; + } + + bool Settings::isWSL1() diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 04effbffbd3..6437e2414fa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30099,7 +30099,8 @@ in nix nixStable nixUnstable - nixFlakes; + nixFlakes + nixExperimental; nixStatic = pkgsStatic.nix;