From 5667020f602a62668ada00757a52f059b950667c Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Sun, 28 Jun 2020 13:57:46 +0800 Subject: [PATCH] add hydra RESTRICTDIST patch --- hydra-restrictdist.patch | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 hydra-restrictdist.patch diff --git a/hydra-restrictdist.patch b/hydra-restrictdist.patch new file mode 100644 index 0000000..a346f10 --- /dev/null +++ b/hydra-restrictdist.patch @@ -0,0 +1,32 @@ +diff --git src/lib/Hydra/Controller/Root.pm src/lib/Hydra/Controller/Root.pm +index a9b0d558..71869ba0 100644 +--- a/src/lib/Hydra/Controller/Root.pm ++++ b/src/lib/Hydra/Controller/Root.pm +@@ -19,6 +19,11 @@ use Net::Prometheus; + # Put this controller at top-level. + __PACKAGE__->config->{namespace} = ''; + ++sub isRedistRestricted { ++ my ($path) = @_; ++ ++ return index($path, "-RESTRICTDIST-") >= 0; ++} + + sub noLoginNeeded { + my ($c) = @_; +@@ -319,6 +324,7 @@ sub nar :Local :Args(1) { + $path = $Nix::Config::storeDir . "/$path"; + + gone($c, "Path " . $path . " is no longer available.") unless isValidPath($path); ++ notFound($c, "Redistribution restricted") if isRedistRestricted($path); + + $c->stash->{current_view} = 'NixNAR'; + $c->stash->{storePath} = $path; +@@ -368,6 +374,7 @@ sub narinfo :LocalRegex('^([a-z0-9]+).narinfo$') :Args(0) { + setCacheHeaders($c, 60 * 60); + return; + } ++ notFound($c, "Redistribution restricted") if isRedistRestricted($path); + + $c->stash->{storePath} = $path; + $c->forward('Hydra::View::NARInfo');