diff --git a/pkgs/development/compilers/dotnet/combine-packages.nix b/pkgs/development/compilers/dotnet/combine-packages.nix index c99af4e62ae5..4baa53db35f0 100644 --- a/pkgs/development/compilers/dotnet/combine-packages.nix +++ b/pkgs/development/compilers/dotnet/combine-packages.nix @@ -1,8 +1,13 @@ packages: -{ buildEnv, lib }: +{ buildEnv, makeWrapper, lib }: +# TODO: Rethink how we determine and/or get the CLI. +# Possible options raised in #187118: +# 1. A separate argument for the CLI (as suggested by IvarWithoutBones +# 2. Use the highest version SDK for the CLI (as suggested by GGG) +# 3. Something else? let cli = builtins.head packages; in -assert lib.assertMsg ((builtins.length packages) != 0) +assert lib.assertMsg ((builtins.length packages) < 1) ''You must include at least one package, e.g `with dotnetCorePackages; combinePackages [ sdk_3_1 aspnetcore_5_0 @@ -10,11 +15,20 @@ assert lib.assertMsg ((builtins.length packages) != 0) buildEnv { name = "dotnet-core-combined"; paths = packages; - pathsToLink = [ "/host" "/packs" "/sdk" "/shared" "/templates" ]; + pathsToLink = [ "/host" "/packs" "/sdk" "/sdk-manifests" "/shared" "/templates" ]; ignoreCollisions = true; + nativeBuildInputs = [ + makeWrapper + ]; postBuild = '' - cp ${cli}/dotnet $out/dotnet + cp -R ${cli}/{dotnet,LICENSE.txt,nix-support,ThirdPartyNotices.txt} $out/ + mkdir $out/bin - ln -s $out/dotnet $out/bin/ + ln -s $out/dotnet $out/bin/dotnet + wrapProgram $out/bin/dotnet \ + --prefix LD_LIBRARY_PATH : ${cli.icu}/lib ''; + passthru = { + inherit (cli) icu packages; + }; }