20 fallbackTargetPackages,
25 mkPackages = callPackage ./packages.nix;
26 mkVMR = callPackage ./vmr.nix;
28 sdkPackages = symlinkJoin {
29 name = "${bootstrapSdk.name}-packages";
35 ) bootstrapSdk.packages;
48 prebuiltPackages = mkNugetDeps {
49 name = "dotnet-vmr-deps";
50 sourceFile = depsFile;
54 nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [
64 -s //Project -t elem -n Import \
65 -i \$prev -t attr -n Project -v "${./patch-restored-packages.proj}" \
66 src/*/Directory.Build.targets
70 old.postConfigure or ""
72 [[ ! -v prebuiltPackages ]] || \
73 ln -sf "$prebuiltPackages"/share/nuget/source/*/*/*.nupkg prereqs/packages/prebuilt/
74 ln -sf "${sdkPackages}"/share/nuget/source/*/*/*.nupkg prereqs/packages/prebuilt/
79 ++ lib.optionals (lib.versionAtLeast old.version "9") [
80 # We need to set this as long as we have something in deps.json. Currently
81 # that's the portable ilasm/ildasm which aren't in the centos sourcebuilt
83 "-p:SkipErrorOnPrebuilts=true"
86 passthru = old.passthru or { } // {
89 inherit (vmr) targetRid updateScript;
90 otherRids = lib.remove targetRid (
91 map (system: dotnetCorePackages.systemToDotnetRid system) vmr.meta.platforms
94 pkg = vmr.overrideAttrs (old: {
95 nativeBuildInputs = old.nativeBuildInputs ++ [
106 -s //Project -t elem -n Import \
107 -i \$prev -t attr -n Project -v "${./record-downloaded-packages.proj}" \
108 repo-projects/Directory.Build.targets
109 # make nuget-client use the standard arcade package-cache dir, which
110 # is where we scan for dependencies
113 -s //Project -t elem -n ItemGroup \
114 -s \$prev -t elem -n EnvironmentVariables \
115 -i \$prev -t attr -n Include -v 'NUGET_PACKAGES=$(ProjectDirectory)artifacts/sb/package-cache/' \
116 repo-projects/nuget-client.proj
118 buildFlags = [ "--online" ] ++ old.buildFlags;
119 prebuiltPackages = null;
122 drv = builtins.unsafeDiscardOutputDependency pkg.drvPath;
124 writeShellScript "fetch-dotnet-sdk-deps" ''
125 ${nix}/bin/nix-shell --pure --run 'source /dev/stdin' "${drv}" << 'EOF'
129 trap 'rm -fr "$tmp"' EXIT
134 phases="''${prePhases[*]:-} unpackPhase patchPhase ''${preConfigurePhases[*]:-} \
135 configurePhase ''${preBuildPhases[*]:-} buildPhase checkPhase" \
138 depsFiles=(./src/*/deps.json)
140 jq . $(nix-build ${toString ./combine-deps.nix} \
141 --arg list "[ ''${depsFiles[*]} ]" \
142 --argstr baseRid ${targetRid} \
143 --arg otherRids '${lib.generators.toPretty { multiline = false; } otherRids}' \
146 mv deps.json "${toString prebuiltPackages.sourceFile}"
152 mkPackages { inherit baseName vmr; }