build-dotnet: make passthru.packages a derivation

This commit is contained in:
David McFarland 2022-09-30 16:02:32 -03:00
parent 06e4d89943
commit 507eff880d
3 changed files with 12 additions and 13 deletions

View File

@ -112,10 +112,7 @@ let
# this contains all the nuget packages that are implicitly referenced by the dotnet # this contains all the nuget packages that are implicitly referenced by the dotnet
# build system. having them as separate deps allows us to avoid having to regenerate # build system. having them as separate deps allows us to avoid having to regenerate
# a packages dependencies when the dotnet-sdk version changes # a packages dependencies when the dotnet-sdk version changes
sdkDeps = mkNugetDeps { sdkDeps = dotnet-sdk.packages;
name = "dotnet-sdk-${dotnet-sdk.version}-deps";
nugetDeps = dotnet-sdk.passthru.packages;
};
sdkSource = mkNugetSource { sdkSource = mkNugetSource {
name = "dotnet-sdk-${dotnet-sdk.version}-source"; name = "dotnet-sdk-${dotnet-sdk.version}-source";

View File

@ -24,6 +24,7 @@ assert if type == "sdk" then packages != null else true;
, testers , testers
, runCommand , runCommand
, writeShellScript , writeShellScript
, mkNugetDeps
}: }:
let let
@ -40,6 +41,12 @@ let
runtime = ".NET Runtime ${version}"; runtime = ".NET Runtime ${version}";
sdk = ".NET SDK ${version}"; sdk = ".NET SDK ${version}";
}; };
packageDeps = mkNugetDeps {
name = "${pname}-${version}-deps";
nugetDeps = packages;
};
in in
stdenv.mkDerivation (finalAttrs: rec { stdenv.mkDerivation (finalAttrs: rec {
inherit pname version; inherit pname version;
@ -120,7 +127,8 @@ stdenv.mkDerivation (finalAttrs: rec {
''; '';
passthru = rec { passthru = rec {
inherit icu packages; inherit icu;
packages = packageDeps;
updateScript = updateScript =
if type == "sdk" then if type == "sdk" then

View File

@ -28,10 +28,6 @@ let
inherit sha256; inherit sha256;
}; };
sdkSource = linkFarmFromDrvs "nuget-sdk-packages" (
dotnetSdk.passthru.packages { inherit fetchNuGet; }
);
nugetSource = linkFarmFromDrvs "nuget-packages" ( nugetSource = linkFarmFromDrvs "nuget-packages" (
import ./deps.nix { inherit fetchNuGet; } import ./deps.nix { inherit fetchNuGet; }
); );
@ -51,8 +47,6 @@ stdenv.mkDerivation rec {
pname = "github-runner"; pname = "github-runner";
version = "2.300.0"; version = "2.300.0";
inherit sdkSource;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "actions"; owner = "actions";
repo = "runner"; repo = "runner";
@ -124,7 +118,7 @@ stdenv.mkDerivation rec {
# Restore the dependencies # Restore the dependencies
dotnet restore src/ActionsRunner.sln \ dotnet restore src/ActionsRunner.sln \
--runtime "${runtimeId}" \ --runtime "${runtimeId}" \
--source "${sdkSource}" \ --source "${dotnetSdk.packages}" \
--source "${nugetSource}" --source "${nugetSource}"
runHook postConfigure runHook postConfigure
@ -353,7 +347,7 @@ stdenv.mkDerivation rec {
'') (lib.attrValues runtimeIds)} '') (lib.attrValues runtimeIds)}
printf "\n* Make %s file\n" "$(basename "$deps_file")" printf "\n* Make %s file\n" "$(basename "$deps_file")"
nuget-to-nix "$workdir/nuget_pkgs" "${sdkSource}" > "$deps_file" nuget-to-nix "$workdir/nuget_pkgs" "${dotnetSdk.packages}" > "$deps_file"
printf "\n* Dependency file writen to %s" "$deps_file" printf "\n* Dependency file writen to %s" "$deps_file"
''; '';
}; };