diff options
Diffstat (limited to 'pkgs/development/compilers/dotnet/update.sh')
-rwxr-xr-x | pkgs/development/compilers/dotnet/update.sh | 78 |
1 files changed, 52 insertions, 26 deletions
diff --git a/pkgs/development/compilers/dotnet/update.sh b/pkgs/development/compilers/dotnet/update.sh index 9aaa3670cef6..dc9ff0538c74 100755 --- a/pkgs/development/compilers/dotnet/update.sh +++ b/pkgs/development/compilers/dotnet/update.sh @@ -1,5 +1,6 @@ #!/usr/bin/env nix-shell #!nix-shell -I nixpkgs=../../../../. -i bash -p curl jq nix gnused +# shellcheck shell=bash set -euo pipefail @@ -67,6 +68,18 @@ generate_package_list() { done } +version_older () { + cur_version=$1 + max_version=$2 + result=$(nix-instantiate -I ../../../../. \ + --eval -E "(import <nixpkgs> {}).lib.versionOlder \"$cur_version\" \"$max_version\"") + if [[ "$result" == "true" ]]; then + return 0 + else + return 1 + fi +} + aspnetcore_packages () { local version=$1 # These packages are implicitly references by the build process, @@ -92,14 +105,11 @@ aspnetcore_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" \ @@ -107,6 +117,16 @@ aspnetcore_packages () { "Microsoft.AspNetCore.App.Runtime.win-x86" \ ) + # Packages that only apply to .NET 6 and up + if ! version_older "$version" "6"; then + pkgs+=( \ + "Microsoft.AspNetCore.App.Ref" \ + "Microsoft.AspNetCore.App.Runtime.linux-musl-arm" \ + "Microsoft.AspNetCore.App.Runtime.osx-arm64" \ + ) + fi + + generate_package_list "$version" "${pkgs[@]}" } @@ -135,35 +155,21 @@ sdk_packages () { # This should not happend in minor or bugfix updates, but probably happens # with every new major .NET release. local pkgs=( \ - "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.Mono.linux-arm" \ - "Microsoft.NETCore.App.Runtime.Mono.linux-arm64" \ - "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.linux-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" \ - "Microsoft.NETCore.App.Runtime.Mono.osx-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.win-x64" \ - "Microsoft.NETCore.App.Runtime.Mono.win-x86" \ - "Microsoft.NETCore.App.Runtime.osx-arm64" \ "Microsoft.NETCore.App.Runtime.osx-x64" \ "Microsoft.NETCore.App.Runtime.win-arm" \ "Microsoft.NETCore.App.Runtime.win-arm64" \ @@ -185,10 +191,6 @@ sdk_packages () { "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" \ @@ -197,10 +199,6 @@ sdk_packages () { "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" \ @@ -223,8 +221,36 @@ sdk_packages () { "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" \ ) + # Packages that only apply to .NET 6 and up + if ! version_older "$version" "6"; then + pkgs+=( \ + "Microsoft.NETCore.App.Composite" \ + "Microsoft.NETCore.App.Host.linux-musl-arm" \ + "Microsoft.NETCore.App.Host.osx-arm64" \ + "Microsoft.NETCore.App.Runtime.linux-musl-arm" \ + "Microsoft.NETCore.App.Runtime.osx-arm64" \ + "Microsoft.NETCore.App.Ref" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-arm" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-arm64" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.linux-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" \ + "Microsoft.NETCore.App.Runtime.Mono.osx-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.win-x64" \ + "Microsoft.NETCore.App.Runtime.Mono.win-x86" \ + "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.osx-arm64.Microsoft.NETCore.DotNetAppHost" \ + "runtime.osx-arm64.Microsoft.NETCore.DotNetHost" \ + "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy" \ + "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver" \ + ) + fi + # Packages that only apply to .NET 7 and up - if [[ ! ( "$version" =~ ^[1-6]\. ) ]]; then + if ! version_older "$version" "7"; then # ILCompiler requires nixpkgs#181373 to be fixed to work properly pkgs+=( \ "runtime.linux-arm64.Microsoft.DotNet.ILCompiler" \ |