buildDotnetModule: include sdk-specific packages in nuget source

Some packages are defined by the build proccess, and change every time
the dotnet-sdk package changes. To avoid having to regenerate every
dependant packages dependencies every dotnet update, this moves these
packages into the `dotnet-sdk` `passthru` attribute, and includes them
every time `buildDotnetModule` is used.
This commit is contained in:
mdarocha 2022-07-15 16:53:58 +02:00
parent e444b88411
commit 886280e8a9
7 changed files with 266 additions and 10 deletions

View File

@ -1,4 +1,4 @@
{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert, srcOnly }:
{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert, srcOnly, symlinkJoin }:
{ name ? "${args.pname}-${args.version}"
, pname ? name
@ -84,12 +84,30 @@ let
then nugetDeps
else mkNugetDeps { inherit name; nugetDeps = import nugetDeps; };
nuget-source = mkNugetSource {
name = "${name}-nuget-source";
# contains the actual package dependencies
_dependenciesSource = mkNugetSource {
name = "${name}-dependencies-source";
description = "A Nuget source with the dependencies for ${name}";
deps = [ _nugetDeps ] ++ lib.optional (localDeps != null) localDeps;
};
# this contains all the nuget packages that are implictly referenced by the dotnet
# build system. having them as separate deps allows us to avoid having to regenerate
# a packages dependencies when the dotnet-sdk version changes
_sdkDeps = mkNugetDeps {
name = "dotnet-sdk-${dotnet-sdk.version}-deps";
nugetDeps = dotnet-sdk.passthru.packages;
};
_sdkSource = mkNugetSource {
name = "dotnet-sdk-${dotnet-sdk.version}-source";
deps = [ _sdkDeps ];
};
nuget-source = symlinkJoin {
name = "${name}-nuget-source";
paths = [ _dependenciesSource _sdkSource ];
};
in stdenvNoCC.mkDerivation (args // {
nativeBuildInputs = args.nativeBuildInputs or [] ++ [
dotnetConfigureHook

View File

@ -1,10 +1,12 @@
{ type
, version
, srcs
, icu #passing icu as an argument, because dotnet 3.1 has troubles with icu71
, icu # passing icu as an argument, because dotnet 3.1 has troubles with icu71
, packages ? null
}:
assert builtins.elem type [ "aspnetcore" "runtime" "sdk" ];
assert if type == "sdk" then packages != null else true;
{ lib
, stdenv
@ -104,7 +106,7 @@ stdenv.mkDerivation rec {
'';
passthru = {
inherit icu;
inherit icu packages;
};
meta = with lib; {

View File

@ -15,9 +15,9 @@ let
};
## Files in versions/ are generated automatically by print-hashes.sh ##
dotnet_3_1 = (import ./versions/3.1.nix (buildAttrs // { icu = icu70; }));
dotnet_5_0 = (import ./versions/5.0.nix (buildAttrs // { inherit icu; }));
dotnet_6_0 = (import ./versions/6.0.nix (buildAttrs // { inherit icu; }));
dotnet_3_1 = import ./versions/3.1.nix (buildAttrs // { icu = icu70; });
dotnet_5_0 = import ./versions/5.0.nix (buildAttrs // { inherit icu; });
dotnet_6_0 = import ./versions/6.0.nix (buildAttrs // { inherit icu; });
in
rec {
combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};

View File

@ -1,7 +1,7 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq
#!nix-shell -I nixpkgs=../../../../. -i bash -p curl jq nix gnused
set -eu
set -euo pipefail
release () {
local content="$1"
@ -51,6 +51,134 @@ platform_sources () {
echo " };"
}
sdk_packages () {
local version=$1
# These packages are implicitly references by the build process,
# based on the specific project configurations (RIDs, used features, etc.)
# They are always referenced with the same version as the SDK used for building.
# Since we lock nuget dependencies, when these packages are included in the generated
# lock files (deps.nix), every update of SDK required those lock files to be
# updated to reflect the new versions of these packages - otherwise, the build
# would fail due to missing dependencies.
#
# Moving them to a separate list stored alongside the SDK package definitions,
# and implictly including them along in buildDotnetModule allows us
# to make updating .NET SDK packages a lot easier - we now just update
# the versions of these packages in one place, and all packages that
# use buildDotnetModule continue building with the new .NET version without changes.
#
# Keep in mind that there is no canonical list of these implicitly
# referenced packages - this list was created based on looking into
# the deps.nix files of existing packages, and which dependencies required
# updating after a SDK version bump.
#
# Due to this, make sure to check if new SDK versions introduce any new packages.
# This should not happend in minor or bugfix updates, but probably happens
# with every new major .NET release.
local pkgs=( \
"Microsoft.AspNetCore.App.Ref" \
"Microsoft.AspNetCore.App.Runtime.linux-arm" \
"Microsoft.AspNetCore.App.Runtime.linux-arm64" \
"Microsoft.AspNetCore.App.Runtime.linux-musl-arm" \
"Microsoft.AspNetCore.App.Runtime.linux-musl-arm64" \
"Microsoft.AspNetCore.App.Runtime.linux-musl-x64" \
"Microsoft.AspNetCore.App.Runtime.linux-x64" \
"Microsoft.AspNetCore.App.Runtime.osx-arm64" \
"Microsoft.AspNetCore.App.Runtime.osx-x64" \
"Microsoft.AspNetCore.App.Runtime.win-arm" \
"Microsoft.AspNetCore.App.Runtime.win-arm64" \
"Microsoft.AspNetCore.App.Runtime.win-x64" \
"Microsoft.AspNetCore.App.Runtime.win-x86" \
"Microsoft.NETCore.App.Composite" \
"Microsoft.NETCore.App.Host.linux-arm" \
"Microsoft.NETCore.App.Host.linux-arm64" \
"Microsoft.NETCore.App.Host.linux-musl-arm" \
"Microsoft.NETCore.App.Host.linux-musl-arm64" \
"Microsoft.NETCore.App.Host.linux-musl-x64" \
"Microsoft.NETCore.App.Host.linux-x64" \
"Microsoft.NETCore.App.Host.osx-arm64" \
"Microsoft.NETCore.App.Host.osx-x64" \
"Microsoft.NETCore.App.Host.win-arm" \
"Microsoft.NETCore.App.Host.win-arm64" \
"Microsoft.NETCore.App.Host.win-x64" \
"Microsoft.NETCore.App.Host.win-x86" \
"Microsoft.NETCore.App.Ref" \
"Microsoft.NETCore.App.Runtime.linux-arm" \
"Microsoft.NETCore.App.Runtime.linux-arm64" \
"Microsoft.NETCore.App.Runtime.linux-musl-arm" \
"Microsoft.NETCore.App.Runtime.linux-musl-arm64" \
"Microsoft.NETCore.App.Runtime.linux-musl-x64" \
"Microsoft.NETCore.App.Runtime.linux-x64" \
"Microsoft.NETCore.App.Runtime.osx-arm64" \
"Microsoft.NETCore.App.Runtime.osx-x64" \
"Microsoft.NETCore.App.Runtime.win-arm" \
"Microsoft.NETCore.App.Runtime.win-arm64" \
"Microsoft.NETCore.App.Runtime.win-x64" \
"Microsoft.NETCore.App.Runtime.win-x86" \
"Microsoft.NETCore.DotNetAppHost" \
"Microsoft.NETCore.DotNetHost" \
"Microsoft.NETCore.DotNetHostPolicy" \
"Microsoft.NETCore.DotNetHostResolver" \
"runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost" \
"runtime.linux-arm64.Microsoft.NETCore.DotNetHost" \
"runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.linux-arm.Microsoft.NETCore.DotNetAppHost" \
"runtime.linux-arm.Microsoft.NETCore.DotNetHost" \
"runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver" \
"runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost" \
"runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost" \
"runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost" \
"runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost" \
"runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver" \
"runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost" \
"runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost" \
"runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.linux-x64.Microsoft.NETCore.DotNetAppHost" \
"runtime.linux-x64.Microsoft.NETCore.DotNetHost" \
"runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost" \
"runtime.osx-arm64.Microsoft.NETCore.DotNetHost" \
"runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.osx-x64.Microsoft.NETCore.DotNetAppHost" \
"runtime.osx-x64.Microsoft.NETCore.DotNetHost" \
"runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.win-arm64.Microsoft.NETCore.DotNetAppHost" \
"runtime.win-arm64.Microsoft.NETCore.DotNetHost" \
"runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.win-arm.Microsoft.NETCore.DotNetAppHost" \
"runtime.win-arm.Microsoft.NETCore.DotNetHost" \
"runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.win-arm.Microsoft.NETCore.DotNetHostResolver" \
"runtime.win-x64.Microsoft.NETCore.DotNetAppHost" \
"runtime.win-x64.Microsoft.NETCore.DotNetHost" \
"runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.win-x64.Microsoft.NETCore.DotNetHostResolver" \
"runtime.win-x86.Microsoft.NETCore.DotNetAppHost" \
"runtime.win-x86.Microsoft.NETCore.DotNetHost" \
"runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy" \
"runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" \
)
local nuget_url="$(curl -f "https://api.nuget.org/v3/index.json" | jq --raw-output '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')"
for pkg in "${pkgs[@]}"; do
local url hash
url="${nuget_url}${pkg,,}/${version,,}/${pkg,,}.${version,,}.nupkg"
hash="$(nix-prefetch-url "$url")"
echo " (fetchNuGet { pname = \"${pkg}\"; version = \"${version}\"; sha256 = \"${hash}\"; })"
done
}
main () {
pname=$(basename "$0")
if [[ ! "$*" =~ ^.*[0-9]{1,}\.[0-9]{1,}.*$ ]]; then
@ -67,12 +195,18 @@ Examples:
for sem_version in "$@"; do
echo "Generating ./versions/${sem_version}.nix"
patch_specified=false
# Check if a patch was specified as an argument.
# If so, generate file for the specific version.
# If only x.y version was provided, get the latest patch
# version of the given x.y version.
if [[ "$sem_version" =~ ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}$ ]]; then
patch_specified=true
elif [[ ! "$sem_version" =~ ^[0-9]{1,}\.[0-9]{1,}$ ]]; then
continue
fi
# Make sure the x.y version is properly passed to .NET release metadata url.
# Then get the json file and parse it to find the latest patch release.
major_minor=$(sed 's/^\([0-9]*\.[0-9]*\).*$/\1/' <<< "$sem_version")
content=$(curl -sL https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/"$major_minor"/releases.json)
major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-release"' <<< "$content")
@ -109,6 +243,9 @@ Examples:
inherit icu;
version = \"${sdk_version}\";
$(platform_sources "$sdk_files")
packages = { fetchNuGet }: [
$(sdk_packages "${runtime_version}")
];
};
}" > "./versions/${sem_version}.nix"
echo "Generated ./versions/${sem_version}.nix"

View File

@ -57,5 +57,8 @@
sha512 = "370cba4685e07d1cdb5d7f9b754812b237802ace679c9b9985c6e5c4dc09f500580f1413679a288615079bd155b68b362adb00151b2b8f5ca7c3718ab9e16194";
};
};
packages = { fetchNuGet }: [
];
};
}

View File

@ -57,5 +57,8 @@
sha512 = "70beea069db182cca211cf04d7a80f3d6a3987d76cbd2bb60590ee76b93a4041b1b86ad91057cddbbaddd501c72327c1bc0a5fec630f38063f84bd60ba2b4792";
};
};
packages = { fetchNuGet }: [
];
};
}

View File

@ -69,5 +69,98 @@
sha512 = "59caea897a56b785245dcd3a6082247aeb879c39ecfab16db60e9dc3db447ca4e3ebe68e992c0551af886cd81f6f0088cb1433f1be6df865afa357f90f37ccf6";
};
};
packages = { fetchNuGet }: [
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.7"; sha256 = "028dlrbgs6d9gdvkl48lksm9gagsch5ih974l5wwfpdgx693v4wl"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.7"; sha256 = "1y5l528qp08bghm7qdk223g9ki6mv1hhmixhw5zfdzscp0wf11dh"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.7"; sha256 = "013xk8m2bkh99s0l5wz8k01pw9r7kwlywsngqciwvqk44vr265ga"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "6.0.7"; sha256 = "0pl8lr2chnscrbjckqw2ydck15fgxffsmkm7sqbcg9x9pwc0mkap"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "6.0.7"; sha256 = "140333iig3wc0iv76gk97cd6bqsjyhmhkf0myd04m9ds5dcwpxks"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "6.0.7"; sha256 = "1qfwhpvj9d3xp53y8mhhsamvnihy0czjhj63zxzc3fa21jpiscyy"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.7"; sha256 = "03i5yqhklgm4p536a3vxwgkbyivwschgvn639xwx846g2ghdqnf2"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.7"; sha256 = "01l2wr1lvfa63jn9j3ydgys6j0hcs30w880k0dd50q1jkm24cq4m"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.7"; sha256 = "1kzcw6gxd7ky32zpiwvmzgd5yy6vyjk8p600jwaagz63z36zaa3k"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "6.0.7"; sha256 = "1dkc3px04mpzd8zlkxcld63kqlncd8fs1dm3qdfg83sx7nzzf9xl"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.7"; sha256 = "1hy3wcy7dsw4pl8bcqy84i8hgxk6b1cm30chj2gjahx5yy1gwzr0"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.7"; sha256 = "07h9b4fqna61j206hk5jrf9mrffg63ii2icn9h6x19h4pr9bf340"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.7"; sha256 = "1mjjb8a1g1fsw1qbhixc5hjwnkn35551pmfdl9l702zhd9hwf0s9"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "6.0.7"; sha256 = "0l6765cbdmdh71raq5snxd56w71clfbm4iwi93y3n67skpjkn6ml"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.7"; sha256 = "1h8ziaf6qdsm14h1cx7573r0nsr3cwv7sczg9j9lqaizwxmqg8dq"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.7"; sha256 = "0354iizqhwhnxcgrn5p8gqv50dnyj5vdyrikwqhv6yd178ardw00"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "6.0.7"; sha256 = "17bsbx0hdzkl3axxfd4xav7q455mkw1wvr3j1r0q0z2gic0x3p23"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "6.0.7"; sha256 = "0lky1ihhlwjsdb0pb77vx663yji53pnkl9ij3z58pxdknldf0ayb"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "6.0.7"; sha256 = "1gswphp5w6hbz60bymksf9i6iwlqg5hx8w2l3x83cfpw9q0pw5kd"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.7"; sha256 = "1i19iqz89fh54k3126daqrdwn0sxp00ziw0d2hd8z6dkf49vbvmx"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.7"; sha256 = "059q3gnvhg7ywbdrvnra8zrcwxa5si50fakh71dg0rnwnivpngj9"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.7"; sha256 = "0q61220ii4biz02w37jqi84cnzgspzrrfqpg2g3mkhamb0lgq3c6"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "6.0.7"; sha256 = "0aswrsx45f5ql94mbz6qgj4rcd585mvsmg8lbm9yzqavnkxw37q9"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.7"; sha256 = "1ax2cyk9zfav69lr6pr223gm4ydqdwjb13pc2mxzb7j9x2z4dj8q"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.7"; sha256 = "0vqng4wqlkl9d3qphh0zzd1k2f53flvwk3k847iaxxdijvlr0b65"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.7"; sha256 = "0xmkfsvzcyk5akaz3k220xx6xli2kimzaqcnfpmyh9l66zkykrym"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.7"; sha256 = "0kgbxc6czq2sz1i7cjlv58jsisvc936m1zzj5f9qfv9c4aka2hig"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.7"; sha256 = "0fm8p7dpq12pv9qar8h7s1rz1dcyki7dh2424xrr49p8d58gmdsf"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.7"; sha256 = "1kddakhs8bhrj14qmah78b164ia9277hjdvz8cd61b17f93iz7kd"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "6.0.7"; sha256 = "0lzp9fc2h4h46ycy1dpbkqdp8qxm7xmfphfc3lgxr6jj9j123qac"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "6.0.7"; sha256 = "1hlks5p0i05xixarma211v09rr1n6r5qzmzjy0ca2gvgf9lv5xg1"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "6.0.7"; sha256 = "04ryakvm54y5a0652hk77f8my3xq7faqn2v50i0w014njq1jyd5a"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.7"; sha256 = "0pci9m6phhdvmk698dm7mzgxlmzf7wbk992s705iqzahdl2ra3sr"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.7"; sha256 = "0ij8vixb7ymwxa8yxrhizqjkxbh8hkfg47bk9fmkaw9ab94jhj93"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.7"; sha256 = "0xd2vkrav41fcf86p7ddjqiarjchsl5wy1haxiw7nr0bq3hzmirv"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "6.0.7"; sha256 = "0ks2mslr021rwh3k5x7cd28494q16sjr5fw3wx5ba4bagf56wyyr"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.7"; sha256 = "1r1alh763xc40y3iqy2iwb91d273sf1hvgqhvwccyck30m9mqisl"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.7"; sha256 = "00ihv8c7h9fkyldwvkqf9wpzi0rr9wrhg7fai374ipmsj9kn6xl0"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.7"; sha256 = "1jz71dxps71hb7qay2x93p34bvni7a7dgxk137h162ac4qaa5dn7"; })
(fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "0a2vpn7j4h9phqv7azc9lczrkybln4ddf458j49dkjv3ghrav81z"; })
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0j1if6nfi3sn1s8jdp08ks8v8526h275as61zh57kwmss5iczl4i"; })
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "19cjlpmg0r6f2b2q1jllivlmjkv47bzl32l5xpq3ppn2l6qxs35x"; })
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "11nayi9ai5qd9l944rap6fskzaw3nvmv8wmgf564cv4diphy8995"; })
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "1kdv31lz32gywpffa3qiyrmrvqxgxk0zggr0a2235x33zalw9l27"; })
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0wi08fp0rxif89g0bmyg0ksk5f02xg7hyahignhqh26qpc7d608s"; })
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "0ns8lgqby70cnbij3lprgwzsgqzlv4db98qmcdvlnshv6lqqfd86"; })
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "0x1sjdzvqmvmgg6dsn427r5i3776cphhzpmfjlj4sfilsfpygihp"; })
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "12f24lnzb9m3dl06qklbc08577mf5vc9zibxabdidk83h7k7p0qc"; })
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0garwnx2j86psq11pcd1z8vvnmhyn3x0fss0c4rza9c3bivh70wz"; })
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "18mgsgmdvm38pxy5jr1wglgz0a1fk5gm8awscmy5y5dcx7qghy3s"; })
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "12ksjis47q9dnnibx6snsnbgz07g1a6fsyrmir39b8m1cq5bbg0r"; })
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "1midq986vs6qwz0b34wmrbv5yk4clqmjhnqgkmfd8bxxflzglg9w"; })
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0ba37pr3x44n2mhi5kld0cvh2w81fvgwdfl6g1llr1a9ncl8dbq4"; })
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "01pj41baqhkzk1nbqpy6khwakjrq5741wnnb1ny0j0i4mny7aa3i"; })
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "1g0zmc71rf1c2gfwm5zn7qdhisr726rf1fqs9n9nisz7pj0c719k"; })
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "0jr9ig4hga3iyxfwihlswpdfxlln66b16gfmb70qizn3jigwwvkh"; })
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0wmm9yv20h7wp10xrca6hmv80isjzrw793zkwi591qah99rm7q44"; })
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "0dp94sm7gpzyw882141salqrpk54fp7fgmaqmr5xir2q6r7wxmaf"; })
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "05w0wkin5ydhrgqissdsdzxz39c4fh7msx2h5b50m84ixalqrkgf"; })
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "17anarmiq2n1damyg5yjnm22z4v6fkv30dri6nz1987r0fdn2waf"; })
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "1i9z2xh5r5bfncfd2h469zi46wykkikmbhkf9sys4jpfng78krdn"; })
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "0xm0l5iil6zi6cdnhnnlqzn4bw88gyabajz4wxrklcj7kz8mgm81"; })
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "03bjmb5ad8s7vj5cpbijmpr21z82d565wv0mg0h5iqlk02v5jw9g"; })
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "1wqah3lc8q949w7gi94jmp2hy6ld4s1jxbmm0zj3xjqrq0gmqzqw"; })
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0vpk34xr3i9bvr7cgl22ss3gj2gmsg6drjv9mj1hksnd7fzb9m9r"; })
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "08swlx9khbyc34lxi59dgkc3fhbap2abm565dnpizmg4jqn7zz7s"; })
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "1lkxnbfpf3f8yj0srq8iavy12i14r0nhcpjxff7ypnk2z7xyc098"; })
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "1is814drvhf81xnq04npr5x56f8mxnr92vmc8bv66d8320yp8z1k"; })
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0qqzk3r0mlldfpzm40gzrd0q6danfdd4h6l9fmjwwpmadj18dsg3"; })
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "1x7iqnksx4n4sb2ms5ibygkhfcnxbvkvamkx2s0rrbkghy25zndh"; })
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "04m2asmr63vxapgga4gadbrp18349sxzyn7ryn74lg6sqzdpvdr1"; })
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "0ck53135666f917lib6ahb32nxk78r65755v94hhv4g2xdbk813r"; })
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0mig9c1xn6vdj1xdf20fvy9scw270l52rr2kwfjgppf4px661p77"; })
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "0dwa93brfc4mpjrjrz10jm3ina6kv1v75hdny00m5jfla366k6gj"; })
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "05svx1hz2n9qv6hj4grk0z7rkpw5v3s9059xpkjsb0h0f0y4zx6g"; })
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "0adyh8w348fw9pilj4giiriv4dxxlqgjvrbrcbkc6xdbn9085lav"; })
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "10nq0apr0askhq8z4kmna8gzqiazw4x94nz1c81qm7why0kyv0ws"; })
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "17fxrkxf82jyihp9qkfab6dz8kkz6y437hi123mwyh274qfvcj61"; })
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "0x6h4q5v153z5ym1rjzxgxrm3x87jqpiz52bmsgzv5vb1nkbhcnh"; })
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "09b28pkjxxk1qrij83vjmf16zb8vpipdawzzkk09fw27rspbcckp"; })
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "1r8plgiddlgarij4v60d0dzv5j1jqmnjhwhkaggfkzysgp16yvqi"; })
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "0qzal5v635206c0m4bcm5x29i7ff4y4yg705wv3yqb4b653lxcsy"; })
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "0k9g1n6ansv157jmsfczl2kasnsyvll8ka0yvhzgvwx7rxi7f006"; })
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "0ccahvy9787vb990mn0r2aj3yl8ykzs9wzvh3jk5y7x27zhpsd28"; })
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "0vhisvl2w6dyjmgdrkyhccjhnqlnx24drb1vypwhr6xdmx9r6mv1"; })
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "1zv9r7yhhbqa8vpyiw4an2gdai1icp7dshq228lnadgll3slzaj2"; })
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "02ylic2qyy6ayg1d76axhh61jsr64fi0svsnfj2s34iiifq8faah"; })
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "6.0.7"; sha256 = "0gfkrvg1c6zq8dzp8pzjv3cbpy79z0gbym340cq8z235z7a2sijm"; })
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "6.0.7"; sha256 = "1f0gbq6j5vhqznjgffaxg4pibl33l9k7zldn43wrzdr8ma5c6ily"; })
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.7"; sha256 = "0a00frccimbza86kjrf1397bbsvsiggry1ihb4c4rk4d8qc2maq9"; })
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.7"; sha256 = "0ppvrdwh32xr7rxlhc59lilj220cayk9f44p0qqygp3z20l1gzkl"; })
];
};
}