mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 15:03:28 +00:00
dotnetCorePackages.combinePackages: refactor
This refactors the combinePackages function to properly combine the different .NET versions as the previous version was copying already wrapped binary which wasn't pointing to the combined directories' binary and it also wasn't linking the /sdk-manifests directory. A few other miscellaneous files like LICENSE.txt, nix-support dir and ThirdPartyNotices.txt weren't being copied either which resulted in an incomplete .NET installation in the combined directory. The passthrough.icu property was also not being set which resulted in us being unable to use the result of this function in buildDotnetModule.
This commit is contained in:
parent
f54555cecf
commit
01dd4610f8
@ -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;
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user