nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 88 lines 1.8 kB view raw
1{ 2 symlinkJoin, 3 fetchurl, 4 stdenvNoCC, 5 lib, 6 unzip, 7 patchNupkgs, 8 nugetPackageHook, 9 callPackage, 10 overrides ? callPackage ./overrides.nix { }, 11}: 12lib.makeOverridable ( 13 { 14 pname, 15 version, 16 sha256 ? "", 17 hash ? "", 18 url ? "https://www.nuget.org/api/v2/package/${pname}/${version}", 19 installable ? false, 20 }: 21 let 22 package = stdenvNoCC.mkDerivation rec { 23 inherit pname version; 24 25 src = fetchurl { 26 name = "${pname}.${version}.nupkg"; 27 # There is no need to verify whether both sha256 and hash are 28 # valid here, because nuget-to-json does not generate a deps.nix 29 # containing both. 30 inherit 31 url 32 sha256 33 hash 34 version 35 ; 36 }; 37 38 nativeBuildInputs = [ 39 unzip 40 patchNupkgs 41 nugetPackageHook 42 ]; 43 44 unpackPhase = '' 45 runHook preUnpack 46 47 unpackNupkg "$src" source 48 cd source 49 50 runHook postUnpack 51 ''; 52 53 prePatch = '' 54 shopt -s nullglob 55 local dir 56 for dir in tools runtimes/*/native; do 57 [[ ! -d "$dir" ]] || chmod -R +x "$dir" 58 done 59 rm -rf .signature.p7s 60 ''; 61 62 installPhase = '' 63 runHook preInstall 64 65 dir=$out/share/nuget/packages/${lib.toLower pname}/${lib.toLower version} 66 mkdir -p $dir 67 cp -r . $dir 68 echo {} > "$dir"/.nupkg.metadata 69 70 runHook postInstall 71 ''; 72 73 preFixup = '' 74 patch-nupkgs $out/share/nuget/packages 75 ''; 76 77 createInstallableNugetSource = installable; 78 79 meta = { 80 sourceProvenance = with lib.sourceTypes; [ 81 binaryBytecode 82 binaryNativeCode 83 ]; 84 }; 85 }; 86 in 87 overrides.${pname} or lib.id package 88)