From 92a255d13b8effb4521e950579a1636edc7fbfa6 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Tue, 20 Feb 2024 23:16:51 -0400 Subject: [PATCH 1/4] nuget-to-nix: fix error handling --- pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh index def59954e480..c8e2c0c298ec 100755 --- a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh +++ b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh @@ -52,6 +52,7 @@ for package in *; do fi used_source="$(jq -r '.source' "$version"/.nupkg.metadata)" + found=false if [[ -d "$used_source" ]]; then continue @@ -80,7 +81,7 @@ for package in *; do fi done - if ! ${found-false}; then + if [[ $found = false ]]; then echo "couldn't find $package $version" >&2 exit 1 fi From c3397c44f4971bb61eb384180e5b8ac6f1be22b9 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Tue, 20 Feb 2024 17:27:29 -0400 Subject: [PATCH 2/4] dotnet/update.sh: fix error when nixpkgs path is not defined --- pkgs/development/compilers/dotnet/update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/dotnet/update.sh b/pkgs/development/compilers/dotnet/update.sh index f9f198b05e2f..f34cfbed2c1b 100755 --- a/pkgs/development/compilers/dotnet/update.sh +++ b/pkgs/development/compilers/dotnet/update.sh @@ -85,7 +85,7 @@ version_older () { cur_version=$1 max_version=$2 result=$(nix-instantiate -I ../../../../. \ - --eval -E "(import {}).lib.versionOlder \"$cur_version\" \"$max_version\"") + --eval -E "(import ../../../../. {}).lib.versionOlder \"$cur_version\" \"$max_version\"") if [[ "$result" == "true" ]]; then return 0 else From 496c9cf6857c56c0b38594c07087a6973b529012 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Wed, 21 Feb 2024 00:02:11 -0400 Subject: [PATCH 3/4] dotnet/update.sh: remove redundant backslashes --- pkgs/development/compilers/dotnet/update.sh | 248 ++++++++++---------- 1 file changed, 124 insertions(+), 124 deletions(-) diff --git a/pkgs/development/compilers/dotnet/update.sh b/pkgs/development/compilers/dotnet/update.sh index f34cfbed2c1b..e71a13385dac 100755 --- a/pkgs/development/compilers/dotnet/update.sh +++ b/pkgs/development/compilers/dotnet/update.sh @@ -36,11 +36,11 @@ release_platform_attr () { platform_sources () { local release_files="$1" - local platforms=( \ - "x86_64-linux linux-x64" \ - "aarch64-linux linux-arm64" \ - "x86_64-darwin osx-x64" \ - "aarch64-darwin osx-arm64" \ + local platforms=( + "x86_64-linux linux-x64" + "aarch64-linux linux-arm64" + "x86_64-darwin osx-x64" + "aarch64-darwin osx-arm64" ) echo "srcs = {" @@ -117,31 +117,31 @@ aspnetcore_packages () { # 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.Runtime.linux-arm" \ - "Microsoft.AspNetCore.App.Runtime.linux-arm64" \ - "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-x64" \ - "Microsoft.AspNetCore.App.Runtime.win-arm64" \ - "Microsoft.AspNetCore.App.Runtime.win-x64" \ - "Microsoft.AspNetCore.App.Runtime.win-x86" \ + local pkgs=( + "Microsoft.AspNetCore.App.Runtime.linux-arm" + "Microsoft.AspNetCore.App.Runtime.linux-arm64" + "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-x64" + "Microsoft.AspNetCore.App.Runtime.win-arm64" + "Microsoft.AspNetCore.App.Runtime.win-x64" + "Microsoft.AspNetCore.App.Runtime.win-x86" ) # These packages are currently broken on .NET 8 if version_older "$version" "8"; then - pkgs+=( \ - "Microsoft.AspNetCore.App.Runtime.win-arm" \ + pkgs+=( + "Microsoft.AspNetCore.App.Runtime.win-arm" ) fi # 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" \ + pkgs+=( + "Microsoft.AspNetCore.App.Ref" + "Microsoft.AspNetCore.App.Runtime.linux-musl-arm" + "Microsoft.AspNetCore.App.Runtime.osx-arm64" ) fi @@ -173,119 +173,119 @@ sdk_packages () { # 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.NETCore.App.Host.linux-arm" \ - "Microsoft.NETCore.App.Host.linux-arm64" \ - "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-x64" \ - "Microsoft.NETCore.App.Host.win-arm64" \ - "Microsoft.NETCore.App.Host.win-x64" \ - "Microsoft.NETCore.App.Host.win-x86" \ - "Microsoft.NETCore.App.Runtime.linux-arm" \ - "Microsoft.NETCore.App.Runtime.linux-arm64" \ - "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-x64" \ - "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-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-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-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" \ - "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" \ - "Microsoft.NETCore.App.Crossgen2.linux-musl-arm" \ - "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64" \ - "Microsoft.NETCore.App.Crossgen2.linux-musl-x64" \ - "Microsoft.NETCore.App.Crossgen2.linux-arm" \ - "Microsoft.NETCore.App.Crossgen2.linux-arm64" \ - "Microsoft.NETCore.App.Crossgen2.linux-x64" \ - "Microsoft.NETCore.App.Crossgen2.osx-x64" \ + local pkgs=( + "Microsoft.NETCore.App.Host.linux-arm" + "Microsoft.NETCore.App.Host.linux-arm64" + "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-x64" + "Microsoft.NETCore.App.Host.win-arm64" + "Microsoft.NETCore.App.Host.win-x64" + "Microsoft.NETCore.App.Host.win-x86" + "Microsoft.NETCore.App.Runtime.linux-arm" + "Microsoft.NETCore.App.Runtime.linux-arm64" + "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-x64" + "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-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-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-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" + "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" + "Microsoft.NETCore.App.Crossgen2.linux-musl-arm" + "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64" + "Microsoft.NETCore.App.Crossgen2.linux-musl-x64" + "Microsoft.NETCore.App.Crossgen2.linux-arm" + "Microsoft.NETCore.App.Crossgen2.linux-arm64" + "Microsoft.NETCore.App.Crossgen2.linux-x64" + "Microsoft.NETCore.App.Crossgen2.osx-x64" "Microsoft.NETCore.App.Crossgen2.osx-arm64" ) # These packages were removed on .NET 8 if version_older "$version" "8"; then - pkgs+=( \ - "Microsoft.NETCore.App.Host.win-arm" \ - "Microsoft.NETCore.App.Runtime.win-arm" \ - "runtime.win-arm.Microsoft.NETCore.DotNetAppHost" \ - "runtime.win-arm.Microsoft.NETCore.DotNetHost" \ - "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy" \ - "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver" \ - "Microsoft.NETCore.App.Composite" \ + pkgs+=( + "Microsoft.NETCore.App.Host.win-arm" + "Microsoft.NETCore.App.Runtime.win-arm" + "runtime.win-arm.Microsoft.NETCore.DotNetAppHost" + "runtime.win-arm.Microsoft.NETCore.DotNetHost" + "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy" + "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver" + "Microsoft.NETCore.App.Composite" ) fi # Packages that only apply to .NET 7 and up if ! version_older "$version" "7"; then - pkgs+=( \ - "runtime.linux-arm64.Microsoft.DotNet.ILCompiler" \ - "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler" \ - "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler" \ - "runtime.linux-x64.Microsoft.DotNet.ILCompiler" \ - "runtime.osx-x64.Microsoft.DotNet.ILCompiler" \ - "runtime.win-arm64.Microsoft.DotNet.ILCompiler" \ - "runtime.win-x64.Microsoft.DotNet.ILCompiler" \ + pkgs+=( + "runtime.linux-arm64.Microsoft.DotNet.ILCompiler" + "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler" + "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler" + "runtime.linux-x64.Microsoft.DotNet.ILCompiler" + "runtime.osx-x64.Microsoft.DotNet.ILCompiler" + "runtime.win-arm64.Microsoft.DotNet.ILCompiler" + "runtime.win-x64.Microsoft.DotNet.ILCompiler" ) fi From 9cc567366575f2fb590067c75acb974941994286 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Tue, 20 Feb 2024 23:01:29 -0400 Subject: [PATCH 4/4] dotnet/update.sh: move substitutions to avoid loss of errors --- pkgs/development/compilers/dotnet/update.sh | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pkgs/development/compilers/dotnet/update.sh b/pkgs/development/compilers/dotnet/update.sh index e71a13385dac..0bc9b0f08672 100755 --- a/pkgs/development/compilers/dotnet/update.sh +++ b/pkgs/development/compilers/dotnet/update.sh @@ -359,6 +359,13 @@ Examples: channel_version=$(jq -r '."channel-version"' <<< "$content") support_phase=$(jq -r '."support-phase"' <<< "$content") + aspnetcore_sources="$(platform_sources "$aspnetcore_files")" + runtime_sources="$(platform_sources "$runtime_files")" + sdk_sources="$(platform_sources "$sdk_files")" + + aspnetcore_packages="$(aspnetcore_packages "${aspnetcore_version}")" + sdk_packages="$(sdk_packages "${runtime_version}")" + result=$(mktemp) trap "rm -f $result" TERM INT EXIT @@ -368,20 +375,20 @@ Examples: { aspnetcore_$major_minor_underscore = buildAspNetCore { version = \"${aspnetcore_version}\"; - $(platform_sources "$aspnetcore_files") + $aspnetcore_sources }; runtime_$major_minor_underscore = buildNetRuntime { version = \"${runtime_version}\"; - $(platform_sources "$runtime_files") + $runtime_sources }; sdk_$major_minor_underscore = buildNetSdk { version = \"${sdk_version}\"; - $(platform_sources "$sdk_files") + $sdk_sources packages = { fetchNuGet }: [ -$(aspnetcore_packages "${aspnetcore_version}") -$(sdk_packages "${runtime_version}") +$aspnetcore_packages +$sdk_packages ]; }; }" > "${result}"