diff --git a/src/lib/Hydra/Controller/Build.pm b/src/lib/Hydra/Controller/Build.pm index fda80880..fcd85dce 100644 --- a/src/lib/Hydra/Controller/Build.pm +++ b/src/lib/Hydra/Controller/Build.pm @@ -265,7 +265,7 @@ sub nix : Chained('build') PathPart('nix') CaptureArgs(0) { notFound($c, "Path " . $build->outpath . " is no longer available.") unless isValidPath($build->outpath); - $c->stash->{storePaths} = [$build->outpath]; + $c->stash->{storePaths} = [$build->drvpath]; my $pkgName = $build->nixname . "-" . $build->system; $c->stash->{nixPkgs} = {"${pkgName}.nixpkg" => {build => $build, name => $pkgName}}; diff --git a/src/lib/Hydra/Helper/CatalystUtils.pm b/src/lib/Hydra/Helper/CatalystUtils.pm index 5217c4a4..d4cf3f83 100644 --- a/src/lib/Hydra/Helper/CatalystUtils.pm +++ b/src/lib/Hydra/Helper/CatalystUtils.pm @@ -70,7 +70,13 @@ sub getChannelData { my @storePaths = (); foreach my $build (@builds2) { next unless isValidPath($build->outpath); - push @storePaths, $build->outpath; + if (isValidPath($build->drvpath)) { + # Adding `drvpath' implies adding `outpath' because of the + # `--include-outputs' flag passed to `nix-store'. + push @storePaths, $build->drvpath; + } else { + push @storePaths, $build->outpath; + } my $pkgName = $build->nixname . "-" . $build->system . "-" . $build->id; $c->stash->{nixPkgs}->{"${pkgName}.nixpkg"} = {build => $build, name => $pkgName}; }; diff --git a/src/lib/Hydra/View/NixManifest.pm b/src/lib/Hydra/View/NixManifest.pm index 2a147f65..315982d1 100644 --- a/src/lib/Hydra/View/NixManifest.pm +++ b/src/lib/Hydra/View/NixManifest.pm @@ -12,7 +12,7 @@ sub process { $c->response->content_type('text/x-nix-manifest'); - my @paths = split '\n', `nix-store --query --requisites @storePaths`; + my @paths = split '\n', `nix-store --query --requisites --include-outputs @storePaths`; die "cannot query dependencies of path(s) @storePaths: $?" if $? != 0; my $manifest =