mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-09-29 07:32:58 +00:00
dotnet: add override mechanism for nuget packages (#339953)
This commit is contained in:
commit
13a975148a
@ -93,7 +93,7 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given
|
|||||||
To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
|
To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
|
||||||
|
|
||||||
* `projectFile` is used for specifying the dotnet project file, relative to the source root. These have `.sln` (entire solution) or `.csproj` (single project) file extensions. This can be a list of multiple projects as well. When omitted, will attempt to find and build the solution (`.sln`). If running into problems, make sure to set it to a file (or a list of files) with the `.csproj` extension - building applications as entire solutions is not fully supported by the .NET CLI.
|
* `projectFile` is used for specifying the dotnet project file, relative to the source root. These have `.sln` (entire solution) or `.csproj` (single project) file extensions. This can be a list of multiple projects as well. When omitted, will attempt to find and build the solution (`.sln`). If running into problems, make sure to set it to a file (or a list of files) with the `.csproj` extension - building applications as entire solutions is not fully supported by the .NET CLI.
|
||||||
* `nugetDeps` takes either a path to a `deps.nix` file, or a derivation. The `deps.nix` file can be generated using the script attached to `passthru.fetch-deps`. If the argument is a derivation, it will be used directly and assume it has the same output as `mkNugetDeps`.
|
* `nugetDeps` takes either a path to a `deps.nix` file, or a derivation. The `deps.nix` file can be generated using the script attached to `passthru.fetch-deps`. For compatibility, if the argument is a list of derivations, they will be added to `buildInputs`.
|
||||||
::: {.note}
|
::: {.note}
|
||||||
For more detail about managing the `deps.nix` file, see [Generating and updating NuGet dependencies](#generating-and-updating-nuget-dependencies)
|
For more detail about managing the `deps.nix` file, see [Generating and updating NuGet dependencies](#generating-and-updating-nuget-dependencies)
|
||||||
:::
|
:::
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
update scripts.
|
update scripts.
|
||||||
*/
|
*/
|
||||||
let
|
let
|
||||||
pkgs = import ../.. {};
|
pkgs = import ../.. { config.allowAliases = false; };
|
||||||
|
|
||||||
inherit (pkgs) lib;
|
inherit (pkgs) lib;
|
||||||
|
|
||||||
|
@ -5,9 +5,6 @@
|
|||||||
, dotnetCorePackages
|
, dotnetCorePackages
|
||||||
, dbus
|
, dbus
|
||||||
, fontconfig
|
, fontconfig
|
||||||
, libICE
|
|
||||||
, libSM
|
|
||||||
, libX11
|
|
||||||
, portaudio
|
, portaudio
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -32,10 +29,6 @@ buildDotnetModule rec {
|
|||||||
|
|
||||||
runtimeDeps = [
|
runtimeDeps = [
|
||||||
dbus
|
dbus
|
||||||
fontconfig
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
libX11
|
|
||||||
portaudio
|
portaudio
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2,22 +2,16 @@
|
|||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, buildDotnetModule
|
, buildDotnetModule
|
||||||
, dotnetCorePackages
|
, dotnetCorePackages
|
||||||
, libX11
|
|
||||||
, libICE
|
|
||||||
, libSM
|
|
||||||
, fontconfig
|
|
||||||
, libsecret
|
, libsecret
|
||||||
, git
|
, git
|
||||||
, git-credential-manager
|
, git-credential-manager
|
||||||
, gnupg
|
, gnupg
|
||||||
, pass
|
, pass
|
||||||
, testers
|
, testers
|
||||||
, withGuiSupport ? true
|
|
||||||
, withLibsecretSupport ? true
|
, withLibsecretSupport ? true
|
||||||
, withGpgSupport ? true
|
, withGpgSupport ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert withLibsecretSupport -> withGuiSupport;
|
|
||||||
buildDotnetModule rec {
|
buildDotnetModule rec {
|
||||||
pname = "git-credential-manager";
|
pname = "git-credential-manager";
|
||||||
version = "2.5.1";
|
version = "2.5.1";
|
||||||
@ -36,9 +30,8 @@ buildDotnetModule rec {
|
|||||||
dotnetInstallFlags = [ "--framework" "net8.0" ];
|
dotnetInstallFlags = [ "--framework" "net8.0" ];
|
||||||
executables = [ "git-credential-manager" ];
|
executables = [ "git-credential-manager" ];
|
||||||
|
|
||||||
runtimeDeps = [ fontconfig ]
|
runtimeDeps =
|
||||||
++ lib.optionals withGuiSupport [ libX11 libICE libSM ]
|
lib.optional withLibsecretSupport libsecret;
|
||||||
++ lib.optional withLibsecretSupport libsecret;
|
|
||||||
makeWrapperArgs = [
|
makeWrapperArgs = [
|
||||||
"--prefix PATH : ${lib.makeBinPath ([ git ] ++ lib.optionals withGpgSupport [ gnupg pass ])}"
|
"--prefix PATH : ${lib.makeBinPath ([ git ] ++ lib.optionals withGpgSupport [ gnupg pass ])}"
|
||||||
];
|
];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ buildDotnetModule, emptyDirectory, mkNugetDeps, dotnet-sdk }:
|
{ buildDotnetModule, emptyDirectory, fetchNupkg, dotnet-sdk }:
|
||||||
|
|
||||||
{ pname
|
{ pname
|
||||||
, version
|
, version
|
||||||
@ -23,13 +23,15 @@ buildDotnetModule (args // {
|
|||||||
|
|
||||||
src = emptyDirectory;
|
src = emptyDirectory;
|
||||||
|
|
||||||
nugetDeps = mkNugetDeps {
|
buildInputs = [
|
||||||
name = pname;
|
(fetchNupkg {
|
||||||
nugetDeps = { fetchNuGet }: [
|
pname = nugetName;
|
||||||
(fetchNuGet { pname = nugetName; inherit version; sha256 = nugetSha256; hash = nugetHash; })
|
inherit version;
|
||||||
] ++ (nugetDeps fetchNuGet);
|
sha256 = nugetSha256;
|
||||||
installable = true;
|
hash = nugetHash;
|
||||||
};
|
installable = true;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
dotnetGlobalTool = true;
|
dotnetGlobalTool = true;
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
writeShellScript,
|
writeShellScript,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
dotnetCorePackages,
|
dotnetCorePackages,
|
||||||
mkNugetDeps,
|
fetchNupkg,
|
||||||
nuget-to-nix,
|
nuget-to-nix,
|
||||||
cacert,
|
cacert,
|
||||||
unzip,
|
unzip,
|
||||||
@ -18,10 +18,7 @@ let
|
|||||||
transformArgs =
|
transformArgs =
|
||||||
finalAttrs:
|
finalAttrs:
|
||||||
{
|
{
|
||||||
name ? "${args.pname}-${args.version}",
|
|
||||||
pname ? name,
|
|
||||||
enableParallelBuilding ? true,
|
enableParallelBuilding ? true,
|
||||||
doCheck ? false,
|
|
||||||
# Flags to pass to `makeWrapper`. This is done to avoid double wrapping.
|
# Flags to pass to `makeWrapper`. This is done to avoid double wrapping.
|
||||||
makeWrapperArgs ? [ ],
|
makeWrapperArgs ? [ ],
|
||||||
|
|
||||||
@ -115,22 +112,36 @@ let
|
|||||||
_nugetDeps =
|
_nugetDeps =
|
||||||
if (nugetDeps != null) then
|
if (nugetDeps != null) then
|
||||||
if lib.isDerivation nugetDeps then
|
if lib.isDerivation nugetDeps then
|
||||||
|
[ nugetDeps ]
|
||||||
|
else if lib.isList nugetDeps then
|
||||||
nugetDeps
|
nugetDeps
|
||||||
else
|
else
|
||||||
mkNugetDeps {
|
assert (lib.isPath nugetDeps);
|
||||||
inherit name;
|
callPackage nugetDeps { fetchNuGet = fetchNupkg; }
|
||||||
sourceFile = nugetDeps;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script.";
|
[ ];
|
||||||
|
|
||||||
nugetDepsFile = _nugetDeps.sourceFile;
|
nugetDepsFile = if lib.isPath nugetDeps then nugetDeps else null;
|
||||||
|
|
||||||
inherit (dotnetCorePackages) systemToDotnetRid;
|
inherit (dotnetCorePackages) systemToDotnetRid;
|
||||||
in
|
in
|
||||||
# Not all args need to be passed through to mkDerivation
|
# Not all args need to be passed through to mkDerivation
|
||||||
# TODO: We should probably filter out even more attrs
|
# TODO: We should probably filter out even more attrs
|
||||||
removeAttrs args [ "nugetDeps" ]
|
removeAttrs args [
|
||||||
|
"nugetDeps"
|
||||||
|
"installPath"
|
||||||
|
"executables"
|
||||||
|
"projectFile"
|
||||||
|
"projectReferences"
|
||||||
|
"runtimeDeps"
|
||||||
|
"runtimeId"
|
||||||
|
"disabledTests"
|
||||||
|
"testProjectFile"
|
||||||
|
"buildType"
|
||||||
|
"selfContainedBuild"
|
||||||
|
"useDotnet"
|
||||||
|
"useAppHost"
|
||||||
|
]
|
||||||
// {
|
// {
|
||||||
dotnetInstallPath = installPath;
|
dotnetInstallPath = installPath;
|
||||||
dotnetExecutables = executables;
|
dotnetExecutables = executables;
|
||||||
@ -145,9 +156,18 @@ let
|
|||||||
dotnetRuntimeDeps = map lib.getLib runtimeDeps;
|
dotnetRuntimeDeps = map lib.getLib runtimeDeps;
|
||||||
dotnetSelfContainedBuild = selfContainedBuild;
|
dotnetSelfContainedBuild = selfContainedBuild;
|
||||||
dotnetUseAppHost = useAppHost;
|
dotnetUseAppHost = useAppHost;
|
||||||
inherit useDotnetFromEnv;
|
|
||||||
|
|
||||||
inherit enableParallelBuilding;
|
inherit
|
||||||
|
enableParallelBuilding
|
||||||
|
dotnetRestoreFlags
|
||||||
|
dotnetBuildFlags
|
||||||
|
dotnetTestFlags
|
||||||
|
dotnetInstallFlags
|
||||||
|
dotnetPackFlags
|
||||||
|
dotnetFlags
|
||||||
|
packNupkg
|
||||||
|
useDotnetFromEnv
|
||||||
|
;
|
||||||
|
|
||||||
nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
|
nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
|
||||||
dotnetConfigureHook
|
dotnetConfigureHook
|
||||||
@ -163,13 +183,7 @@ let
|
|||||||
yq
|
yq
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs = args.buildInputs or [ ] ++ [ dotnet-sdk.packages ] ++ _nugetDeps ++ projectReferences;
|
||||||
args.buildInputs or [ ]
|
|
||||||
++ [
|
|
||||||
dotnet-sdk.packages
|
|
||||||
_nugetDeps
|
|
||||||
]
|
|
||||||
++ projectReferences;
|
|
||||||
|
|
||||||
# Parse the version attr into a format acceptable for the Version msbuild property
|
# Parse the version attr into a format acceptable for the Version msbuild property
|
||||||
# The actual version attr is saved in InformationalVersion, which accepts an arbitrary string
|
# The actual version attr is saved in InformationalVersion, which accepts an arbitrary string
|
||||||
@ -213,13 +227,13 @@ let
|
|||||||
{
|
{
|
||||||
nugetDeps = _nugetDeps;
|
nugetDeps = _nugetDeps;
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (!lib.isDerivation nugetDeps) {
|
// lib.optionalAttrs (nugetDeps == null || lib.isPath nugetDeps) {
|
||||||
fetch-deps =
|
fetch-deps =
|
||||||
let
|
let
|
||||||
pkg = finalAttrs.finalPackage.overrideAttrs (
|
pkg = finalAttrs.finalPackage.overrideAttrs (
|
||||||
old:
|
old:
|
||||||
{
|
{
|
||||||
buildInputs = lib.remove _nugetDeps old.buildInputs;
|
buildInputs = lib.subtractLists _nugetDeps old.buildInputs;
|
||||||
keepNugetConfig = true;
|
keepNugetConfig = true;
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (runtimeId == null) {
|
// lib.optionalAttrs (runtimeId == null) {
|
||||||
@ -238,15 +252,15 @@ let
|
|||||||
# Note that toString is necessary here as it results in the path at
|
# Note that toString is necessary here as it results in the path at
|
||||||
# eval time (i.e. to the file in your local Nixpkgs checkout) rather
|
# eval time (i.e. to the file in your local Nixpkgs checkout) rather
|
||||||
# than the Nix store path of the path after it's been imported.
|
# than the Nix store path of the path after it's been imported.
|
||||||
if lib.isPath nugetDepsFile && !lib.hasPrefix "${builtins.storeDir}/" (toString nugetDepsFile) then
|
if lib.isPath nugetDeps && !lib.isStorePath nugetDepsFile then
|
||||||
toString nugetDepsFile
|
toString nugetDepsFile
|
||||||
else
|
else
|
||||||
''$(mktemp -t "${pname}-deps-XXXXXX.nix")'';
|
''$(mktemp -t "${finalAttrs.pname ? finalAttrs.finalPackage.name}-deps-XXXXXX.nix")'';
|
||||||
nugetToNix = (nuget-to-nix.override { inherit dotnet-sdk; });
|
nugetToNix = (nuget-to-nix.override { inherit dotnet-sdk; });
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
writeShellScript "${name}-fetch-deps" ''
|
writeShellScript "${finalAttrs.finalPackage.name}-fetch-deps" ''
|
||||||
NIX_BUILD_SHELL="${runtimeShell}" exec ${nix}/bin/nix-shell \
|
NIX_BUILD_SHELL="${runtimeShell}" exec ${nix}/bin/nix-shell \
|
||||||
--pure --run 'source "${innerScript}"' "${drv}"
|
--pure --run 'source "${innerScript}"' "${drv}"
|
||||||
'';
|
'';
|
||||||
|
@ -4,6 +4,8 @@ tmp=$(mktemp -d)
|
|||||||
trap 'chmod -R +w "$tmp" && rm -fr "$tmp"' EXIT
|
trap 'chmod -R +w "$tmp" && rm -fr "$tmp"' EXIT
|
||||||
|
|
||||||
HOME=$tmp/.home
|
HOME=$tmp/.home
|
||||||
|
export TMPDIR="$tmp/.tmp"
|
||||||
|
mkdir "$HOME" "$TMPDIR"
|
||||||
cd "$tmp"
|
cd "$tmp"
|
||||||
|
|
||||||
phases="
|
phases="
|
||||||
|
@ -50,7 +50,7 @@ dotnetConfigureHook() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ -f .config/dotnet-tools.json || -f .dotnet-tools.json ]]; then
|
if [[ -f .config/dotnet-tools.json || -f dotnet-tools.json ]]; then
|
||||||
dotnet tool restore
|
dotnet tool restore
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
80
pkgs/build-support/dotnet/fetch-nupkg/default.nix
Normal file
80
pkgs/build-support/dotnet/fetch-nupkg/default.nix
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
symlinkJoin,
|
||||||
|
fetchurl,
|
||||||
|
stdenvNoCC,
|
||||||
|
lib,
|
||||||
|
unzip,
|
||||||
|
patchNupkgs,
|
||||||
|
nugetPackageHook,
|
||||||
|
callPackage,
|
||||||
|
overrides ? callPackage ./overrides.nix { },
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
pname,
|
||||||
|
version,
|
||||||
|
sha256 ? "",
|
||||||
|
hash ? "",
|
||||||
|
url ? "https://www.nuget.org/api/v2/package/${pname}/${version}",
|
||||||
|
installable ? false,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
package = stdenvNoCC.mkDerivation rec {
|
||||||
|
inherit pname version;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
name = "${pname}.${version}.nupkg";
|
||||||
|
# There is no need to verify whether both sha256 and hash are
|
||||||
|
# valid here, because nuget-to-nix does not generate a deps.nix
|
||||||
|
# containing both.
|
||||||
|
inherit
|
||||||
|
url
|
||||||
|
sha256
|
||||||
|
hash
|
||||||
|
version
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
unzip
|
||||||
|
patchNupkgs
|
||||||
|
nugetPackageHook
|
||||||
|
];
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
runHook preUnpack
|
||||||
|
|
||||||
|
unzip -nqd source $src
|
||||||
|
chmod -R +rw source
|
||||||
|
cd source
|
||||||
|
|
||||||
|
runHook postUnpack
|
||||||
|
'';
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
shopt -s nullglob
|
||||||
|
local dir
|
||||||
|
for dir in tools runtimes/*/native; do
|
||||||
|
[[ ! -d "$dir" ]] || chmod -R +x "$dir"
|
||||||
|
done
|
||||||
|
rm -rf .signature.p7s
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
dir=$out/share/nuget/packages/${lib.toLower pname}/${lib.toLower version}
|
||||||
|
mkdir -p $dir
|
||||||
|
cp -r . $dir
|
||||||
|
echo {} > "$dir"/.nupkg.metadata
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
patch-nupkgs $out/share/nuget/packages
|
||||||
|
'';
|
||||||
|
|
||||||
|
createInstallableNugetSource = installable;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
overrides.${pname} or lib.id package
|
55
pkgs/build-support/dotnet/fetch-nupkg/overrides.nix
Normal file
55
pkgs/build-support/dotnet/fetch-nupkg/overrides.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
autoPatchelfHook,
|
||||||
|
dotnetCorePackages,
|
||||||
|
fontconfig,
|
||||||
|
lib,
|
||||||
|
libICE,
|
||||||
|
libSM,
|
||||||
|
libX11,
|
||||||
|
stdenv,
|
||||||
|
writeText,
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# e.g.
|
||||||
|
# "Package.Id" =
|
||||||
|
# package:
|
||||||
|
# package.overrideAttrs (old: {
|
||||||
|
# buildInputs = old.buildInputs or [ ] ++ [ hello ];
|
||||||
|
# });
|
||||||
|
|
||||||
|
"Avalonia.X11" =
|
||||||
|
package:
|
||||||
|
package.overrideAttrs (
|
||||||
|
old:
|
||||||
|
lib.optionalAttrs (!stdenv.isDarwin) {
|
||||||
|
setupHook = writeText "setupHook.sh" ''
|
||||||
|
prependToVar dotnetRuntimeDeps \
|
||||||
|
"${lib.getLib libICE}" \
|
||||||
|
"${lib.getLib libSM}" \
|
||||||
|
"${lib.getLib libX11}"
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
"SkiaSharp.NativeAssets.Linux" =
|
||||||
|
package:
|
||||||
|
package.overrideAttrs (
|
||||||
|
old:
|
||||||
|
lib.optionalAttrs stdenv.isLinux {
|
||||||
|
nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ autoPatchelfHook ];
|
||||||
|
|
||||||
|
buildInputs = old.buildInputs or [ ] ++ [ fontconfig ];
|
||||||
|
|
||||||
|
preInstall =
|
||||||
|
old.preInstall or ""
|
||||||
|
+ ''
|
||||||
|
cd runtimes
|
||||||
|
for platform in *; do
|
||||||
|
[[ $platform == "${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}" ]] ||
|
||||||
|
rm -r "$platform"
|
||||||
|
done
|
||||||
|
cd - >/dev/null
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
@ -5,6 +5,7 @@
|
|||||||
, unzip
|
, unzip
|
||||||
, patchNupkgs
|
, patchNupkgs
|
||||||
, nugetPackageHook
|
, nugetPackageHook
|
||||||
|
, fetchNupkg
|
||||||
}:
|
}:
|
||||||
lib.makeOverridable(
|
lib.makeOverridable(
|
||||||
{ name
|
{ name
|
||||||
@ -15,56 +16,7 @@ lib.makeOverridable(
|
|||||||
(symlinkJoin {
|
(symlinkJoin {
|
||||||
name = "${name}-nuget-deps";
|
name = "${name}-nuget-deps";
|
||||||
paths = nugetDeps {
|
paths = nugetDeps {
|
||||||
fetchNuGet =
|
fetchNuGet = args: fetchNupkg (args // { inherit installable; });
|
||||||
{ pname
|
|
||||||
, version
|
|
||||||
, sha256 ? ""
|
|
||||||
, hash ? ""
|
|
||||||
, url ? "https://www.nuget.org/api/v2/package/${pname}/${version}" }:
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
|
||||||
inherit pname version;
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
name = "${pname}.${version}.nupkg";
|
|
||||||
# There is no need to verify whether both sha256 and hash are
|
|
||||||
# valid here, because nuget-to-nix does not generate a deps.nix
|
|
||||||
# containing both.
|
|
||||||
inherit url sha256 hash version;
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
unzip
|
|
||||||
patchNupkgs
|
|
||||||
nugetPackageHook
|
|
||||||
];
|
|
||||||
|
|
||||||
unpackPhase = ''
|
|
||||||
unzip -nq $src
|
|
||||||
chmod -R +rw .
|
|
||||||
'';
|
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
shopt -s nullglob
|
|
||||||
local dir
|
|
||||||
for dir in tools runtimes/*/native; do
|
|
||||||
[[ ! -d "$dir" ]] || chmod -R +x "$dir"
|
|
||||||
done
|
|
||||||
rm -rf .signature.p7s
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
dir=$out/share/nuget/packages/${lib.toLower pname}/${lib.toLower version}
|
|
||||||
mkdir -p $dir
|
|
||||||
cp -r . $dir
|
|
||||||
echo {} > "$dir"/.nupkg.metadata
|
|
||||||
'';
|
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
patch-nupkgs $out/share/nuget/packages
|
|
||||||
'';
|
|
||||||
|
|
||||||
createInstallableNugetSource = installable;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}) // {
|
}) // {
|
||||||
inherit sourceFile;
|
inherit sourceFile;
|
||||||
|
@ -5,11 +5,6 @@
|
|||||||
|
|
||||||
dotnetCorePackages,
|
dotnetCorePackages,
|
||||||
|
|
||||||
libX11,
|
|
||||||
libICE,
|
|
||||||
libSM,
|
|
||||||
fontconfig,
|
|
||||||
|
|
||||||
xdg-utils,
|
xdg-utils,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -38,12 +33,6 @@ buildDotnetModule rec {
|
|||||||
|
|
||||||
nugetDeps = ./deps.nix;
|
nugetDeps = ./deps.nix;
|
||||||
|
|
||||||
runtimeDeps = [
|
|
||||||
libX11
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
fontconfig
|
|
||||||
];
|
|
||||||
|
|
||||||
# Required for OneClick
|
# Required for OneClick
|
||||||
makeWrapperArgs = [
|
makeWrapperArgs = [
|
||||||
|
@ -6,9 +6,6 @@
|
|||||||
dotnetCorePackages,
|
dotnetCorePackages,
|
||||||
xz,
|
xz,
|
||||||
pcre,
|
pcre,
|
||||||
libX11,
|
|
||||||
libICE,
|
|
||||||
libSM,
|
|
||||||
autoPatchelfHook,
|
autoPatchelfHook,
|
||||||
bintools,
|
bintools,
|
||||||
fixDarwinDylibNames,
|
fixDarwinDylibNames,
|
||||||
@ -77,13 +74,9 @@ buildDotnetModule rec {
|
|||||||
runtimeDeps = [
|
runtimeDeps = [
|
||||||
xz
|
xz
|
||||||
pcre
|
pcre
|
||||||
libX11
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
libgdiplus
|
libgdiplus
|
||||||
glib
|
glib
|
||||||
libXrandr
|
libXrandr
|
||||||
fontconfig
|
|
||||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [ blender ];
|
] ++ lib.optionals stdenv.hostPlatform.isLinux [ blender ];
|
||||||
|
|
||||||
# there is no "*.so.3" or "*.so.5" in nixpkgs. So ignore the warning
|
# there is no "*.so.3" or "*.so.5" in nixpkgs. So ignore the warning
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
{
|
{
|
||||||
buildDotnetModule
|
buildDotnetModule
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fontconfig
|
|
||||||
, lib
|
, lib
|
||||||
, openal
|
, openal
|
||||||
, xorg
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildDotnetModule rec {
|
buildDotnetModule rec {
|
||||||
@ -23,7 +21,7 @@ buildDotnetModule rec {
|
|||||||
nugetDeps = ./deps.nix;
|
nugetDeps = ./deps.nix;
|
||||||
executables = [ "Knossos.NET" ];
|
executables = [ "Knossos.NET" ];
|
||||||
|
|
||||||
runtimeDeps = [ fontconfig openal xorg.libX11 xorg.libICE xorg.libSM ];
|
runtimeDeps = [ openal ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/KnossosNET/Knossos.NET";
|
homepage = "https://github.com/KnossosNET/Knossos.NET";
|
||||||
|
@ -6,14 +6,6 @@
|
|||||||
dotnetCorePackages,
|
dotnetCorePackages,
|
||||||
wrapGAppsHook3,
|
wrapGAppsHook3,
|
||||||
|
|
||||||
libX11,
|
|
||||||
libICE,
|
|
||||||
libSM,
|
|
||||||
libXi,
|
|
||||||
libXcursor,
|
|
||||||
libXext,
|
|
||||||
libXrandr,
|
|
||||||
fontconfig,
|
|
||||||
glew,
|
glew,
|
||||||
gtk3,
|
gtk3,
|
||||||
}:
|
}:
|
||||||
@ -48,14 +40,6 @@ buildDotnetModule rec {
|
|||||||
|
|
||||||
runtimeDeps = [
|
runtimeDeps = [
|
||||||
# For Avalonia UI
|
# For Avalonia UI
|
||||||
libX11
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
libXi
|
|
||||||
libXcursor
|
|
||||||
libXext
|
|
||||||
libXrandr
|
|
||||||
fontconfig
|
|
||||||
glew
|
glew
|
||||||
# For file dialogs
|
# For file dialogs
|
||||||
gtk3
|
gtk3
|
||||||
|
@ -5,11 +5,7 @@
|
|||||||
dotnetCorePackages,
|
dotnetCorePackages,
|
||||||
zlib,
|
zlib,
|
||||||
icu,
|
icu,
|
||||||
fontconfig,
|
|
||||||
openssl,
|
openssl,
|
||||||
libX11,
|
|
||||||
libICE,
|
|
||||||
libSM,
|
|
||||||
icoutils,
|
icoutils,
|
||||||
copyDesktopItems,
|
copyDesktopItems,
|
||||||
makeDesktopItem,
|
makeDesktopItem,
|
||||||
@ -36,11 +32,7 @@ buildDotnetModule rec {
|
|||||||
runtimeDeps = [
|
runtimeDeps = [
|
||||||
zlib
|
zlib
|
||||||
icu
|
icu
|
||||||
fontconfig
|
|
||||||
openssl
|
openssl
|
||||||
libX11
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -7,9 +7,6 @@
|
|||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
fontconfig,
|
fontconfig,
|
||||||
lib,
|
lib,
|
||||||
libICE,
|
|
||||||
libSM,
|
|
||||||
libX11,
|
|
||||||
runCommand,
|
runCommand,
|
||||||
pname ? "nexusmods-app",
|
pname ? "nexusmods-app",
|
||||||
}:
|
}:
|
||||||
@ -62,13 +59,6 @@ buildDotnetModule (finalAttrs: {
|
|||||||
|
|
||||||
runtimeInputs = [ desktop-file-utils ];
|
runtimeInputs = [ desktop-file-utils ];
|
||||||
|
|
||||||
runtimeDeps = [
|
|
||||||
fontconfig
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
libX11
|
|
||||||
];
|
|
||||||
|
|
||||||
executables = [ "NexusMods.App" ];
|
executables = [ "NexusMods.App" ];
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
@ -4,11 +4,6 @@
|
|||||||
, copyDesktopItems
|
, copyDesktopItems
|
||||||
, makeDesktopItem
|
, makeDesktopItem
|
||||||
, lib
|
, lib
|
||||||
, fontconfig
|
|
||||||
, libX11
|
|
||||||
, libXcursor
|
|
||||||
, libICE
|
|
||||||
, libSM
|
|
||||||
, runCommandLocal
|
, runCommandLocal
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@ -43,14 +38,6 @@ buildDotnetModule {
|
|||||||
copyDesktopItems
|
copyDesktopItems
|
||||||
];
|
];
|
||||||
|
|
||||||
runtimeDeps = [
|
|
||||||
fontconfig
|
|
||||||
libX11
|
|
||||||
libICE
|
|
||||||
libXcursor
|
|
||||||
libSM
|
|
||||||
];
|
|
||||||
|
|
||||||
projectFile = [
|
projectFile = [
|
||||||
"RetroSpyX/RetroSpyX.csproj"
|
"RetroSpyX/RetroSpyX.csproj"
|
||||||
"GBPemuX/GBPemuX.csproj"
|
"GBPemuX/GBPemuX.csproj"
|
||||||
|
2
pkgs/by-name/ro/roslyn-ls/deps.nix
generated
2
pkgs/by-name/ro/roslyn-ls/deps.nix
generated
@ -2,6 +2,7 @@
|
|||||||
# Please dont edit it manually, your changes might get overwritten!
|
# Please dont edit it manually, your changes might get overwritten!
|
||||||
|
|
||||||
{ fetchNuGet }: [
|
{ fetchNuGet }: [
|
||||||
|
(fetchNuGet { pname = "dotnet-format"; version = "7.0.360304"; hash = "sha256-TuhZIhearocl702hLzGJCcRd8+RWoI4tDY02Bf6Lus8="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/dotnet-format/7.0.360304/dotnet-format.7.0.360304.nupkg"; })
|
||||||
(fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; hash = "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/humanizer.core/2.14.1/humanizer.core.2.14.1.nupkg"; })
|
(fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; hash = "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/humanizer.core/2.14.1/humanizer.core.2.14.1.nupkg"; })
|
||||||
(fetchNuGet { pname = "ICSharpCode.Decompiler"; version = "8.1.1.7464"; hash = "sha256-71/e9zuQIfqRXOiWxZkUFW/tMAj63nE8tg/sR7bGzuM="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/icsharpcode.decompiler/8.1.1.7464/icsharpcode.decompiler.8.1.1.7464.nupkg"; })
|
(fetchNuGet { pname = "ICSharpCode.Decompiler"; version = "8.1.1.7464"; hash = "sha256-71/e9zuQIfqRXOiWxZkUFW/tMAj63nE8tg/sR7bGzuM="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/icsharpcode.decompiler/8.1.1.7464/icsharpcode.decompiler.8.1.1.7464.nupkg"; })
|
||||||
(fetchNuGet { pname = "MessagePack"; version = "2.5.108"; hash = "sha256-+vMXyEbfutY5WOFuFnNF24uLcKJTTdntVrVlSJH4yjI="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/messagepack/2.5.108/messagepack.2.5.108.nupkg"; })
|
(fetchNuGet { pname = "MessagePack"; version = "2.5.108"; hash = "sha256-+vMXyEbfutY5WOFuFnNF24uLcKJTTdntVrVlSJH4yjI="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/messagepack/2.5.108/messagepack.2.5.108.nupkg"; })
|
||||||
@ -116,6 +117,7 @@
|
|||||||
(fetchNuGet { pname = "NuGet.ProjectModel"; version = "6.8.0-rc.112"; hash = "sha256-geQh1fSRTp2FTzeilFL8gxFFq7q8u7YaakShPKiTwns="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/nuget.projectmodel/6.8.0-rc.112/nuget.projectmodel.6.8.0-rc.112.nupkg"; })
|
(fetchNuGet { pname = "NuGet.ProjectModel"; version = "6.8.0-rc.112"; hash = "sha256-geQh1fSRTp2FTzeilFL8gxFFq7q8u7YaakShPKiTwns="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/nuget.projectmodel/6.8.0-rc.112/nuget.projectmodel.6.8.0-rc.112.nupkg"; })
|
||||||
(fetchNuGet { pname = "NuGet.Protocol"; version = "6.8.0-rc.112"; hash = "sha256-6r/MJCo2ngibSAfNdH+xmeNUl38EPjQkaewKsTJpfvU="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/nuget.protocol/6.8.0-rc.112/nuget.protocol.6.8.0-rc.112.nupkg"; })
|
(fetchNuGet { pname = "NuGet.Protocol"; version = "6.8.0-rc.112"; hash = "sha256-6r/MJCo2ngibSAfNdH+xmeNUl38EPjQkaewKsTJpfvU="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/nuget.protocol/6.8.0-rc.112/nuget.protocol.6.8.0-rc.112.nupkg"; })
|
||||||
(fetchNuGet { pname = "NuGet.Versioning"; version = "6.8.0-rc.112"; hash = "sha256-BzAWS5wpGnNj0gU33sfWao7BELGjrQBT4xj3EC7qRRE="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/nuget.versioning/6.8.0-rc.112/nuget.versioning.6.8.0-rc.112.nupkg"; })
|
(fetchNuGet { pname = "NuGet.Versioning"; version = "6.8.0-rc.112"; hash = "sha256-BzAWS5wpGnNj0gU33sfWao7BELGjrQBT4xj3EC7qRRE="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/nuget.versioning/6.8.0-rc.112/nuget.versioning.6.8.0-rc.112.nupkg"; })
|
||||||
|
(fetchNuGet { pname = "PowerShell"; version = "7.0.0"; hash = "sha256-ioasr71UIhDmeZ2Etw52lQ7QsioEd1pnbpVlEeCyUI4="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/powershell/7.0.0/powershell.7.0.0.nupkg"; })
|
||||||
(fetchNuGet { pname = "RichCodeNav.EnvVarDump"; version = "0.1.1643-alpha"; hash = "sha256-bwND+Na9iEnkEdeL1elY34+m4/F4BYATBHv/2BEw4d4="; url = "https://pkgs.dev.azure.com/azure-public/3ccf6661-f8ce-4e8a-bb2e-eff943ddd3c7/_packaging/58ca65bb-e6c1-4210-88ac-fa55c1cd7877/nuget/v3/flat2/richcodenav.envvardump/0.1.1643-alpha/richcodenav.envvardump.0.1.1643-alpha.nupkg"; })
|
(fetchNuGet { pname = "RichCodeNav.EnvVarDump"; version = "0.1.1643-alpha"; hash = "sha256-bwND+Na9iEnkEdeL1elY34+m4/F4BYATBHv/2BEw4d4="; url = "https://pkgs.dev.azure.com/azure-public/3ccf6661-f8ce-4e8a-bb2e-eff943ddd3c7/_packaging/58ca65bb-e6c1-4210-88ac-fa55c1cd7877/nuget/v3/flat2/richcodenav.envvardump/0.1.1643-alpha/richcodenav.envvardump.0.1.1643-alpha.nupkg"; })
|
||||||
(fetchNuGet { pname = "Roslyn.Diagnostics.Analyzers"; version = "3.11.0-beta1.24081.1"; hash = "sha256-wIOhKwvYetwytnuNX0uNC5oyBDU7xAhLqzTvyuGDVMM="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/roslyn.diagnostics.analyzers/3.11.0-beta1.24081.1/roslyn.diagnostics.analyzers.3.11.0-beta1.24081.1.nupkg"; })
|
(fetchNuGet { pname = "Roslyn.Diagnostics.Analyzers"; version = "3.11.0-beta1.24081.1"; hash = "sha256-wIOhKwvYetwytnuNX0uNC5oyBDU7xAhLqzTvyuGDVMM="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/roslyn.diagnostics.analyzers/3.11.0-beta1.24081.1/roslyn.diagnostics.analyzers.3.11.0-beta1.24081.1.nupkg"; })
|
||||||
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; hash = "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.collections/4.3.0/runtime.any.system.collections.4.3.0.nupkg"; })
|
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; hash = "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/runtime.any.system.collections/4.3.0/runtime.any.system.collections.4.3.0.nupkg"; })
|
||||||
|
@ -33,7 +33,7 @@ buildDotnetModule rec {
|
|||||||
jq '.sdk.rollForward = "latestMinor"' < global.json > global.json.tmp
|
jq '.sdk.rollForward = "latestMinor"' < global.json > global.json.tmp
|
||||||
mv global.json.tmp global.json
|
mv global.json.tmp global.json
|
||||||
|
|
||||||
substituteInPlace $projectFile \
|
substituteInPlace $dotnetProjectFiles \
|
||||||
--replace-fail \
|
--replace-fail \
|
||||||
'>win-x64;win-arm64;linux-x64;linux-arm64;linux-musl-x64;linux-musl-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>' \
|
'>win-x64;win-arm64;linux-x64;linux-arm64;linux-musl-x64;linux-musl-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>' \
|
||||||
'>linux-x64;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>'
|
'>linux-x64;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>'
|
||||||
@ -58,7 +58,7 @@ buildDotnetModule rec {
|
|||||||
''
|
''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
env dotnet publish $projectFile \
|
env dotnet publish $dotnetProjectFiles \
|
||||||
-p:ContinuousIntegrationBuild=true \
|
-p:ContinuousIntegrationBuild=true \
|
||||||
-p:Deterministic=true \
|
-p:Deterministic=true \
|
||||||
-p:InformationalVersion=$version \
|
-p:InformationalVersion=$version \
|
||||||
|
@ -10,13 +10,6 @@
|
|||||||
, sndio
|
, sndio
|
||||||
, pulseaudio
|
, pulseaudio
|
||||||
, vulkan-loader
|
, vulkan-loader
|
||||||
, libICE
|
|
||||||
, libSM
|
|
||||||
, libXi
|
|
||||||
, libXcursor
|
|
||||||
, libXext
|
|
||||||
, libXrandr
|
|
||||||
, fontconfig
|
|
||||||
, glew
|
, glew
|
||||||
, libGL
|
, libGL
|
||||||
, udev
|
, udev
|
||||||
@ -55,13 +48,6 @@ buildDotnetModule rec {
|
|||||||
udev
|
udev
|
||||||
|
|
||||||
# Avalonia UI
|
# Avalonia UI
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
libXi
|
|
||||||
libXcursor
|
|
||||||
libXext
|
|
||||||
libXrandr
|
|
||||||
fontconfig
|
|
||||||
glew
|
glew
|
||||||
|
|
||||||
# Headless executable
|
# Headless executable
|
||||||
|
@ -51,6 +51,13 @@ makeScopeWithSplicing' {
|
|||||||
patchNupkgs = callPackage ./patch-nupkgs.nix {};
|
patchNupkgs = callPackage ./patch-nupkgs.nix {};
|
||||||
nugetPackageHook = callPackage ./nuget-package-hook.nix {};
|
nugetPackageHook = callPackage ./nuget-package-hook.nix {};
|
||||||
|
|
||||||
|
buildDotnetModule = callPackage ../../../build-support/dotnet/build-dotnet-module { };
|
||||||
|
buildDotnetGlobalTool = callPackage ../../../build-support/dotnet/build-dotnet-global-tool { };
|
||||||
|
|
||||||
|
mkNugetSource = callPackage ../../../build-support/dotnet/make-nuget-source { };
|
||||||
|
mkNugetDeps = callPackage ../../../build-support/dotnet/make-nuget-deps { };
|
||||||
|
fetchNupkg = callPackage ../../../build-support/dotnet/fetch-nupkg { };
|
||||||
|
|
||||||
dotnet_8 = recurseIntoAttrs (callPackage ./8 { bootstrapSdk = dotnet_8_0.sdk_8_0_1xx; });
|
dotnet_8 = recurseIntoAttrs (callPackage ./8 { bootstrapSdk = dotnet_8_0.sdk_8_0_1xx; });
|
||||||
dotnet_9 = recurseIntoAttrs (callPackage ./9 {});
|
dotnet_9 = recurseIntoAttrs (callPackage ./9 {});
|
||||||
} // lib.optionalAttrs config.allowAliases {
|
} // lib.optionalAttrs config.allowAliases {
|
||||||
|
@ -16,6 +16,7 @@ _linkPackages() {
|
|||||||
local -r src="$1"
|
local -r src="$1"
|
||||||
local -r dest="$2"
|
local -r dest="$2"
|
||||||
local dir
|
local dir
|
||||||
|
local x
|
||||||
|
|
||||||
for x in "$src"/*/*; do
|
for x in "$src"/*/*; do
|
||||||
dir=$dest/$(basename "$(dirname "$x")")
|
dir=$dest/$(basename "$(dirname "$x")")
|
||||||
@ -27,8 +28,9 @@ _linkPackages() {
|
|||||||
createNugetDirs() {
|
createNugetDirs() {
|
||||||
nugetTemp=$PWD/.nuget-temp
|
nugetTemp=$PWD/.nuget-temp
|
||||||
export NUGET_PACKAGES=$nugetTemp/packages
|
export NUGET_PACKAGES=$nugetTemp/packages
|
||||||
|
export NUGET_FALLBACK_PACKAGES=$nugetTemp/fallback
|
||||||
nugetSource=$nugetTemp/source
|
nugetSource=$nugetTemp/source
|
||||||
mkdir -p "$NUGET_PACKAGES" "$nugetSource"
|
mkdir -p "$NUGET_PACKAGES" "$NUGET_FALLBACK_PACKAGES" "$nugetSource"
|
||||||
|
|
||||||
dotnet new nugetconfig
|
dotnet new nugetconfig
|
||||||
if [[ -z ${keepNugetConfig-} ]]; then
|
if [[ -z ${keepNugetConfig-} ]]; then
|
||||||
@ -39,9 +41,11 @@ createNugetDirs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
configureNuget() {
|
configureNuget() {
|
||||||
|
local x
|
||||||
|
|
||||||
for x in "${!_nugetInputs[@]}"; do
|
for x in "${!_nugetInputs[@]}"; do
|
||||||
if [[ -d $x/share/nuget/packages ]]; then
|
if [[ -d $x/share/nuget/packages ]]; then
|
||||||
addToSearchPathWithCustomDelimiter ";" NUGET_FALLBACK_PACKAGES "$x/share/nuget/packages"
|
_linkPackages "$x/share/nuget/packages" "$NUGET_FALLBACK_PACKAGES"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -d $x/share/nuget/source ]]; then
|
if [[ -d $x/share/nuget/source ]]; then
|
||||||
@ -60,7 +64,7 @@ configureNuget() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -f paket.dependencies ]]; then
|
if [[ -z ${keepNugetConfig-} && -f paket.dependencies ]]; then
|
||||||
sed -i "s:source .*:source $nugetSource:" paket.dependencies
|
sed -i "s:source .*:source $nugetSource:" paket.dependencies
|
||||||
sed -i "s:remote\:.*:remote\: $nugetSource:" paket.lock
|
sed -i "s:remote\:.*:remote\: $nugetSource:" paket.lock
|
||||||
|
|
||||||
|
@ -65,6 +65,7 @@ in {
|
|||||||
read version
|
read version
|
||||||
mkdir -p "$packages"/share/nuget/packages/"$id"
|
mkdir -p "$packages"/share/nuget/packages/"$id"
|
||||||
cp -r "$package" "$packages"/share/nuget/packages/"$id"/"$version"
|
cp -r "$package" "$packages"/share/nuget/packages/"$id"/"$version"
|
||||||
|
echo {} > "$packages"/share/nuget/packages/"$id"/"$version"/.nupkg.metadata
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -38,8 +38,7 @@ buildPythonPackage {
|
|||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
dotnetCorePackages.sdk_6_0.packages
|
dotnetCorePackages.sdk_6_0.packages
|
||||||
dotnet-build.nugetDeps
|
] ++ dotnet-build.nugetDeps;
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
setuptools
|
setuptools
|
||||||
|
@ -37,7 +37,7 @@ buildPythonPackage {
|
|||||||
--replace 'dynamic = ["version"]' 'version = "${version}"'
|
--replace 'dynamic = ["version"]' 'version = "${version}"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [ dotnet-build.nugetDeps ];
|
buildInputs = dotnet-build.nugetDeps;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
setuptools
|
setuptools
|
||||||
|
@ -6,14 +6,6 @@
|
|||||||
, iconConvTools
|
, iconConvTools
|
||||||
, copyDesktopItems
|
, copyDesktopItems
|
||||||
, makeDesktopItem
|
, makeDesktopItem
|
||||||
, libX11
|
|
||||||
, libICE
|
|
||||||
, libSM
|
|
||||||
, libXi
|
|
||||||
, libXcursor
|
|
||||||
, libXext
|
|
||||||
, libXrandr
|
|
||||||
, fontconfig
|
|
||||||
, glew
|
, glew
|
||||||
, SDL2
|
, SDL2
|
||||||
, glfw
|
, glfw
|
||||||
@ -95,14 +87,6 @@ buildDotnetModule rec {
|
|||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
|
|
||||||
# Avalonia UI dependencies.
|
# Avalonia UI dependencies.
|
||||||
libX11
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
libXi
|
|
||||||
libXcursor
|
|
||||||
libXext
|
|
||||||
libXrandr
|
|
||||||
fontconfig
|
|
||||||
glew
|
glew
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -5,4 +5,5 @@
|
|||||||
use-dotnet-from-env = lib.recurseIntoAttrs (callPackage ./use-dotnet-from-env { });
|
use-dotnet-from-env = lib.recurseIntoAttrs (callPackage ./use-dotnet-from-env { });
|
||||||
structured-attrs = lib.recurseIntoAttrs (callPackage ./structured-attrs { });
|
structured-attrs = lib.recurseIntoAttrs (callPackage ./structured-attrs { });
|
||||||
final-attrs = lib.recurseIntoAttrs (callPackage ./final-attrs { });
|
final-attrs = lib.recurseIntoAttrs (callPackage ./final-attrs { });
|
||||||
|
nuget-deps = lib.recurseIntoAttrs (callPackage ./nuget-deps { });
|
||||||
}
|
}
|
||||||
|
44
pkgs/test/dotnet/nuget-deps/default.nix
Normal file
44
pkgs/test/dotnet/nuget-deps/default.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Tests that `nugetDeps` in buildDotnetModule can handle various types.
|
||||||
|
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
dotnet-sdk,
|
||||||
|
buildPackages, # buildDotnetModule
|
||||||
|
runCommand,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib)
|
||||||
|
mapAttrs
|
||||||
|
;
|
||||||
|
|
||||||
|
inherit (buildPackages)
|
||||||
|
emptyDirectory
|
||||||
|
buildDotnetModule
|
||||||
|
;
|
||||||
|
|
||||||
|
in
|
||||||
|
mapAttrs
|
||||||
|
(
|
||||||
|
name: nugetDeps:
|
||||||
|
buildDotnetModule {
|
||||||
|
name = "nuget-deps-${name}";
|
||||||
|
unpackPhase = ''
|
||||||
|
runHook preUnpack
|
||||||
|
|
||||||
|
mkdir test
|
||||||
|
cd test
|
||||||
|
dotnet new console -o .
|
||||||
|
ls -l
|
||||||
|
|
||||||
|
runHook postUnpack
|
||||||
|
'';
|
||||||
|
inherit nugetDeps;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
{
|
||||||
|
"null" = null;
|
||||||
|
"file" = ./nuget-deps.nix;
|
||||||
|
"derivation" = emptyDirectory;
|
||||||
|
"list" = [ emptyDirectory ];
|
||||||
|
}
|
6
pkgs/test/dotnet/nuget-deps/nuget-deps.nix
Normal file
6
pkgs/test/dotnet/nuget-deps/nuget-deps.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# This file was automatically generated by passthru.fetch-deps.
|
||||||
|
# Please dont edit it manually, your changes might get overwritten!
|
||||||
|
|
||||||
|
{ fetchNuGet }:
|
||||||
|
[
|
||||||
|
]
|
@ -3,10 +3,6 @@
|
|||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, glibc
|
, glibc
|
||||||
, zlib
|
, zlib
|
||||||
, libX11
|
|
||||||
, libICE
|
|
||||||
, libSM
|
|
||||||
, fontconfig
|
|
||||||
, gtk3
|
, gtk3
|
||||||
, copyDesktopItems
|
, copyDesktopItems
|
||||||
, icoutils
|
, icoutils
|
||||||
@ -32,10 +28,6 @@ buildDotnetModule rec {
|
|||||||
runtimeDeps = [
|
runtimeDeps = [
|
||||||
glibc
|
glibc
|
||||||
zlib
|
zlib
|
||||||
libX11
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
fontconfig
|
|
||||||
gtk3
|
gtk3
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
, dotnet-runtime_8
|
, dotnet-runtime_8
|
||||||
, buildDotnetModule
|
, buildDotnetModule
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fontconfig
|
|
||||||
, xorg
|
|
||||||
, libglvnd
|
, libglvnd
|
||||||
, makeDesktopItem
|
, makeDesktopItem
|
||||||
, copyDesktopItems
|
, copyDesktopItems
|
||||||
@ -34,7 +32,7 @@ buildDotnetModule rec {
|
|||||||
copyDesktopItems
|
copyDesktopItems
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [ stdenv.cc.cc.lib fontconfig ];
|
buildInputs = [ stdenv.cc.cc.lib ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
rm -rf $out/lib/${lib.toLower pname}/runtimes/{*musl*,win*}
|
rm -rf $out/lib/${lib.toLower pname}/runtimes/{*musl*,win*}
|
||||||
@ -42,9 +40,6 @@ buildDotnetModule rec {
|
|||||||
|
|
||||||
runtimeDeps = [
|
runtimeDeps = [
|
||||||
libglvnd
|
libglvnd
|
||||||
xorg.libSM
|
|
||||||
xorg.libICE
|
|
||||||
xorg.libX11
|
|
||||||
];
|
];
|
||||||
|
|
||||||
desktopItems = makeDesktopItem {
|
desktopItems = makeDesktopItem {
|
||||||
|
@ -875,12 +875,8 @@ with pkgs;
|
|||||||
dotnet-runtime = dotnetCorePackages.runtime_6_0;
|
dotnet-runtime = dotnetCorePackages.runtime_6_0;
|
||||||
dotnet-aspnetcore = dotnetCorePackages.aspnetcore_6_0;
|
dotnet-aspnetcore = dotnetCorePackages.aspnetcore_6_0;
|
||||||
|
|
||||||
buildDotnetModule = callPackage ../build-support/dotnet/build-dotnet-module { };
|
|
||||||
nuget-to-nix = callPackage ../build-support/dotnet/nuget-to-nix { };
|
nuget-to-nix = callPackage ../build-support/dotnet/nuget-to-nix { };
|
||||||
mkNugetSource = callPackage ../build-support/dotnet/make-nuget-source { };
|
inherit (dotnetCorePackages) buildDotnetModule buildDotnetGlobalTool mkNugetSource mkNugetDeps;
|
||||||
mkNugetDeps = (newScope dotnetCorePackages) ../build-support/dotnet/make-nuget-deps { };
|
|
||||||
|
|
||||||
buildDotnetGlobalTool = callPackage ../build-support/dotnet/build-dotnet-global-tool { };
|
|
||||||
|
|
||||||
fsautocomplete = callPackage ../development/tools/fsautocomplete { };
|
fsautocomplete = callPackage ../development/tools/fsautocomplete { };
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user