diff --git a/pkgs/tools/package-management/nix-serve/default.nix b/pkgs/tools/package-management/nix-serve/default.nix index d87d388cd2e86..934f492c9454f 100644 --- a/pkgs/tools/package-management/nix-serve/default.nix +++ b/pkgs/tools/package-management/nix-serve/default.nix @@ -6,11 +6,12 @@ , perl , makeWrapper , nixosTests +, fetchpatch }: let - rev = "e4675e38ab54942e351c7686e40fabec822120b9"; - sha256 = "1wm24p6pkxl1d7hrvf4ph6mwzawvqi22c60z9xzndn5xfyr4v0yr"; + rev = "77ffa33d83d2c7c6551c5e420e938e92d72fec24"; + sha256 = "sha256-MJRdVO2pt7wjOu5Hk0eVeNbk5bK5+Uo/Gh9XfO4OlMY="; in stdenv.mkDerivation { @@ -23,6 +24,14 @@ stdenv.mkDerivation { inherit rev sha256; }; + patches = [ + # Part of https://github.com/edolstra/nix-serve/pull/61 + (fetchpatch { + url = "https://github.com/edolstra/nix-serve/commit/9e434fff4486afeb3cc3f631f6dc56492b204704.patch"; + sha256 = "sha256-TxQ6q6UApTKsYIMdr/RyrkKSA3k47stV63bTbxchNTU="; + }) + ]; + nativeBuildInputs = [ makeWrapper ]; dontBuild = true; diff --git a/pkgs/tools/package-management/nix-serve/nix-command.patch b/pkgs/tools/package-management/nix-serve/nix-command.patch new file mode 100644 index 0000000000000..5bf8eaac87117 --- /dev/null +++ b/pkgs/tools/package-management/nix-serve/nix-command.patch @@ -0,0 +1,40 @@ +From 9e434fff4486afeb3cc3f631f6dc56492b204704 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= +Date: Wed, 31 Jul 2024 23:53:31 +0200 +Subject: [PATCH] add extra-experimental-features for nix-command + +fixes https://github.com/NixOS/nixpkgs/pull/331230 +--- + nix-serve.psgi | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/nix-serve.psgi b/nix-serve.psgi +index 928fa3b..65a8680 100644 +--- a/nix-serve.psgi ++++ b/nix-serve.psgi +@@ -64,7 +64,7 @@ my $app = sub { + return [404, ['Content-Type' => 'text/plain'], ["Incorrect NAR hash. Maybe the path has been recreated.\n"]] + unless $narHash eq "sha256:$expectedNarHash"; + my $fh = new IO::Handle; +- open $fh, "-|", "nix", "dump-path", "--", $storePath; ++ open $fh, "-|", "nix", "--extra-experimental-features", "nix-command", "dump-path", "--", $storePath; + return [200, ['Content-Type' => 'text/plain', 'Content-Length' => $narSize], $fh]; + } + +@@ -75,14 +75,14 @@ my $app = sub { + return [404, ['Content-Type' => 'text/plain'], ["No such path.\n"]] unless $storePath; + my ($deriver, $narHash, $time, $narSize, $refs) = $store->queryPathInfo($storePath, 1) or die; + my $fh = new IO::Handle; +- open $fh, "-|", "nix", "dump-path", "--", $storePath; ++ open $fh, "-|", "nix", "--extra-experimental-features", "nix-command", "dump-path", "--", $storePath; + return [200, ['Content-Type' => 'text/plain', 'Content-Length' => $narSize], $fh]; + } + + elsif ($path =~ /^\/log\/([0-9a-z]+-[0-9a-zA-Z\+\-\.\_\?\=]+)/) { + my $storePath = "$Nix::Config::storeDir/$1"; + my $fh = new IO::Handle; +- open $fh, "-|", "nix", "log", $storePath; ++ open $fh, "-|", "nix", "--extra-experimental-features", "nix-command", "log", $storePath; + return [200, ['Content-Type' => 'text/plain' ], $fh]; + } + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d5d3b291e597b..c874ee7429e3d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -38002,9 +38002,7 @@ with pkgs; nixpkgs-review = callPackage ../tools/package-management/nixpkgs-review { }; - nix-serve = callPackage ../tools/package-management/nix-serve { - nix = nixVersions.nix_2_18; - }; + nix-serve = callPackage ../tools/package-management/nix-serve { }; nix-serve-ng = haskell.lib.compose.justStaticExecutables haskellPackages.nix-serve-ng;