python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / top-level / dotnet-packages.nix
blobcd064113599a9f3439375b3c11c7671a1f9061cc
1 { stdenv
2 , lib
3 , pkgs
4 , buildDotnetPackage
5 , buildDotnetModule
6 , fetchurl
7 , fetchFromGitHub
8 , fetchNuGet
9 , glib
10 , mono
11 , overrides ? {}
14 let self = dotnetPackages // overrides; dotnetPackages = with self; {
16   # BINARY PACKAGES
18   NUnit3 = fetchNuGet {
19     pname = "NUnit";
20     version = "3.0.1";
21     sha256 = "1g3j3kvg9vrapb1vjgq65nvn1vg7bzm66w7yjnaip1iww1yn1b0p";
22     outputFiles = [ "lib/*" ];
23   };
25   NUnit2 = fetchNuGet {
26     pname = "NUnit";
27     version = "2.6.4";
28     sha256 = "1acwsm7p93b1hzfb83ia33145x0w6fvdsfjm9xflsisljxpdx35y";
29     outputFiles = [ "lib/*" ];
30   };
32   NUnit = NUnit2;
34   NUnitConsole = fetchNuGet {
35     pname = "NUnit.Console";
36     version = "3.0.1";
37     sha256 = "154bqwm2n95syv8nwd67qh8qsv0b0h5zap60sk64z3kd3a9ffi5p";
38     outputFiles = [ "tools/*" ];
39   };
41   MaxMindDb = fetchNuGet {
42     pname = "MaxMind.Db";
43     version = "1.1.0.0";
44     sha256 = "0lixl76f7k3ldiqzg94zh13gn82w5mm5dx72y97fcqvp8g6nj3ds";
45     outputFiles = [ "lib/*" ];
46   };
48   MaxMindGeoIP2 = fetchNuGet {
49     pname = "MaxMind.GeoIP2";
50     version = "2.3.1";
51     sha256 = "1s44dvjnmj1aimbrgkmpj6h5dn1w6acgqjch1axc76yz6hwknqgf";
52     outputFiles = [ "lib/*" ];
53   };
55   SharpZipLib = fetchNuGet {
56     pname = "SharpZipLib";
57     version = "1.3.3";
58     sha256 = "sha256-HWEQTKh9Ktwg/zIl079dAiH+ob2ShWFAqLgG6XgIMr4=";
59     outputFiles = [ "lib/*" ];
60   };
62   StyleCopMSBuild = fetchNuGet {
63     pname = "StyleCop.MSBuild";
64     version = "4.7.49.0";
65     sha256 = "0rpfyvcggm881ynvgr17kbx5hvj7ivlms0bmskmb2zyjlpddx036";
66     outputFiles = [ "tools/*" ];
67   };
69   StyleCopPlusMSBuild = fetchNuGet {
70     pname = "StyleCopPlus.MSBuild";
71     version = "4.7.49.5";
72     sha256 = "1hv4lfxw72aql8siyqc4n954vzdz8p6jx9f2wrgzz0jy1k98x2mr";
73     outputFiles = [ "tools/*" ];
74   };
76   RestSharp = fetchNuGet {
77     pname = "RestSharp";
78     version = "106.12.0";
79     sha256 = "sha256-NGzveByJvCRtHlI2C8d/mLs3akyMm77NER8TUG6HiD4=";
80     outputFiles = [ "lib/*" ];
81   };
83   SharpFont = fetchNuGet {
84     pname = "SharpFont";
85     version = "4.0.1";
86     sha256 = "1yd3cm4ww0hw2k3aymf792hp6skyg8qn491m2a3fhkzvsl8z7vs8";
87     outputFiles = [ "lib/*" "config/*" ];
88   };
90   SmartIrc4net = fetchNuGet {
91     pname = "SmartIrc4net";
92     version = "0.4.5.1";
93     sha256 = "1d531sj39fvwmj2wgplqfify301y3cwp7kwr9ai5hgrq81jmjn2b";
94     outputFiles = [ "lib/*" ];
95   };
97   FuzzyLogicLibrary = fetchNuGet {
98     pname = "FuzzyLogicLibrary";
99     version = "1.2.0";
100     sha256 = "0x518i8d3rw9n51xwawa4sywvqd722adj7kpcgcm63r66s950r5l";
101     outputFiles = [ "bin/*" ];
102   };
104   OpenNAT = fetchNuGet {
105     pname = "Open.NAT";
106     version = "2.1.0";
107     sha256 = "1jyd30fwycdwx5ck96zhp2xf20yz0sp7g3pjbqhmay4kd322mfwk";
108     outputFiles = [ "lib/*" ];
109   };
111   MonoNat = fetchNuGet {
112     pname = "Mono.Nat";
113     version = "1.2.24";
114     sha256 = "0vfkach11kkcd9rcqz3s38m70d5spyb21gl99iqnkljxj5555wjs";
115     outputFiles = [ "lib/*" ];
116   };
118   NUnitRunners = fetchNuGet {
119     pname = "NUnit.Runners";
120     version = "2.6.4";
121     sha256 = "11nmi7vikn9idz8qcad9z7f73arsh5rw18fc1sri9ywz77mpm1s4";
122     outputFiles = [ "tools/*" ];
123     preInstall = "mv -v tools/lib/* tools && rmdir -v tools/lib";
124   };
126   # SOURCE PACKAGES
128   Boogie = buildDotnetModule rec {
129     pname = "Boogie";
130     version = "2.15.7";
132     src = fetchFromGitHub {
133       owner = "boogie-org";
134       repo = "boogie";
135       rev = "v${version}";
136       sha256 = "16kdvkbx2zwj7m43cra12vhczbpj23wyrdnj0ygxf7np7c2aassp";
137     };
139     projectFile = [ "Source/Boogie.sln" ];
140     nugetDeps = ../development/dotnet-modules/boogie-deps.nix;
142     postInstall = ''
143         mkdir -pv "$out/lib/dotnet/${pname}"
144         ln -sv "${pkgs.z3}/bin/z3" "$out/lib/dotnet/${pname}/z3.exe"
146         # so that this derivation can be used as a vim plugin to install syntax highlighting
147         vimdir=$out/share/vim-plugins/boogie
148         install -Dt $vimdir/syntax/ Util/vim/syntax/boogie.vim
149         mkdir $vimdir/ftdetect
150         echo 'au BufRead,BufNewFile *.bpl set filetype=boogie' > $vimdir/ftdetect/bpl.vim
151     '';
153     postFixup = ''
154         ln -s "$out/bin/BoogieDriver" "$out/bin/boogie"
155     '';
157     meta = with lib; {
158       description = "An intermediate verification language";
159       homepage = "https://github.com/boogie-org/boogie";
160       longDescription = ''
161         Boogie is an intermediate verification language (IVL), intended as a
162         layer on which to build program verifiers for other languages.
164         This derivation may be used as a vim plugin to provide syntax highlighting.
165       '';
166       license = licenses.mspl;
167       maintainers = [ maintainers.taktoa ];
168       platforms = with platforms; (linux ++ darwin);
169     };
170   };
172   Boogie_2_4_1 = buildDotnetPackage rec {
173     pname = "Boogie";
174     version = "2.4.1";
176     src = fetchFromGitHub {
177       owner = "boogie-org";
178       repo = "boogie";
179       rev = "v${version}";
180       sha256 = "13f6ifkh6gpy4bvx5zhgwmk3wd5rfxzl9wxwfhcj1c90fdrhwh1b";
181     };
183     # emulate `nuget restore Source/Boogie.sln`
184     # which installs in $srcdir/Source/packages
185     preBuild = ''
186       mkdir -p Source/packages/NUnit.2.6.3
187       ln -sn ${dotnetPackages.NUnit}/lib/dotnet/NUnit Source/packages/NUnit.2.6.3/lib
188     '';
190     buildInputs = [
191       dotnetPackages.NUnit
192       dotnetPackages.NUnitRunners
193     ];
195     xBuildFiles = [ "Source/Boogie.sln" ];
197     outputFiles = [ "Binaries/*" ];
199     postInstall = ''
200         mkdir -pv "$out/lib/dotnet/${pname}"
201         ln -sv "${pkgs.z3}/bin/z3" "$out/lib/dotnet/${pname}/z3.exe"
203         # so that this derivation can be used as a vim plugin to install syntax highlighting
204         vimdir=$out/share/vim-plugins/boogie
205         install -Dt $vimdir/syntax/ Util/vim/syntax/boogie.vim
206         mkdir $vimdir/ftdetect
207         echo 'au BufRead,BufNewFile *.bpl set filetype=boogie' > $vimdir/ftdetect/bpl.vim
208     '';
210     meta = with lib; {
211       description = "An intermediate verification language";
212       homepage = "https://github.com/boogie-org/boogie";
213       longDescription = ''
214         Boogie is an intermediate verification language (IVL), intended as a
215         layer on which to build program verifiers for other languages.
217         This derivation may be used as a vim plugin to provide syntax highlighting.
218       '';
219       license = licenses.mspl;
220       maintainers = [ maintainers.taktoa ];
221       platforms = with platforms; (linux ++ darwin);
222     };
223   };
225   Dafny = let
226     z3 = pkgs.z3.overrideAttrs (oldAttrs: rec {
227       version = "4.8.4";
228       name = "z3-${version}";
230       src = fetchFromGitHub {
231         owner = "Z3Prover";
232         repo = "z3";
233         rev = "z3-${version}";
234         sha256 = "014igqm5vwswz0yhz0cdxsj3a6dh7i79hvhgc3jmmmz3z0xm1gyn";
235       };
236     });
237     self' = pkgs.dotnetPackages.override ({
238       pkgs = pkgs // { inherit z3; };
239     });
240     Boogie = assert self'.Boogie_2_4_1.version == "2.4.1"; self'.Boogie_2_4_1;
241   in buildDotnetPackage rec {
242     pname = "Dafny";
243     version = "2.3.0";
245     src = fetchurl {
246       url = "https://github.com/Microsoft/dafny/archive/v${version}.tar.gz";
247       sha256 = "0s6ihx32kda7400lvdrq60l46c11nki8b6kalir2g4ic508f6ypa";
248     };
250     postPatch = ''
251       sed -i \
252         -e 's/ Visible="False"//' \
253         -e "s/Exists(\$(CodeContractsInstallDir))/Exists('\$(CodeContractsInstallDir)')/" \
254         Source/*/*.csproj
255     '';
257     preBuild = ''
258       ln -s ${z3} Binaries/z3
259     '';
261     buildInputs = [ Boogie ];
263     xBuildFiles = [ "Source/Dafny.sln" ];
264     xBuildFlags = [ "/p:Configuration=Checked" "/p:Platform=Any CPU" "/t:Rebuild" ];
266     outputFiles = [ "Binaries/*" ];
268     # Do not wrap the z3 executable, only dafny-related ones.
269     exeFiles = [ "Dafny*.exe" ];
271     # Dafny needs mono in its path.
272     makeWrapperArgs = "--set PATH ${mono}/bin";
274     # Boogie as an input is not enough. Boogie libraries need to be at the same
275     # place as Dafny ones. Same for "*.dll.mdb". No idea why or how to fix.
276     postFixup = ''
277       for lib in ${Boogie}/lib/dotnet/${Boogie.pname}/*.dll{,.mdb}; do
278         ln -s $lib $out/lib/dotnet/${pname}/
279       done
280       # We generate our own executable scripts
281       rm -f $out/lib/dotnet/${pname}/dafny{,-server}
282     '';
284     meta = with lib; {
285       description = "A programming language with built-in specification constructs";
286       homepage = "https://research.microsoft.com/dafny";
287       maintainers = with maintainers; [ layus ];
288       license = licenses.mit;
289       platforms = with platforms; (linux ++ darwin);
290     };
291   };
293   MonoAddins = buildDotnetPackage rec {
294     pname = "Mono.Addins";
295     version = "1.2";
297     xBuildFiles = [
298       "Mono.Addins/Mono.Addins.csproj"
299       "Mono.Addins.Setup/Mono.Addins.Setup.csproj"
300       "Mono.Addins.Gui/Mono.Addins.Gui.csproj"
301       "Mono.Addins.CecilReflector/Mono.Addins.CecilReflector.csproj"
302     ];
303     outputFiles = [ "bin/*" ];
305     src = fetchFromGitHub {
306       owner = "mono";
307       repo = "mono-addins";
308       rev = "mono-addins-${version}";
309       sha256 = "1hnn0a2qsjcjprsxas424bzvhsdwy0yc2jj5xbp698c0m9kfk24y";
310     };
312     buildInputs = [ pkgs.gtk-sharp-2_0 ];
314     meta = {
315       description = "A generic framework for creating extensible applications";
316       homepage = "https://www.mono-project.com/Mono.Addins";
317       longDescription = ''
318         A generic framework for creating extensible applications,
319         and for creating libraries which extend those applications.
320       '';
321       license = lib.licenses.mit;
322     };
323   };
325   NewtonsoftJson = fetchNuGet {
326     pname = "Newtonsoft.Json";
327     version = "11.0.2";
328     sha256 = "07na27n4mlw77f3hg5jpayzxll7f4gyna6x7k9cybmxpbs6l77k7";
329     outputFiles = [ "*" ];
330   };
332   Nuget = buildDotnetPackage rec {
333     pname = "Nuget";
334     version = "5.6.0.6489";
336     src = fetchFromGitHub {
337       owner = "mono";
338       repo = "linux-packaging-nuget";
339       rev = "upstream/${version}.bin";
340       sha256 = "sha256-71vjM7a+F0DNTY+dML3UBSkrVyXv/k5rdl7iXBKSpNM=";
341     };
343     # configurePhase breaks the binary and results in
344     # `File does not contain a valid CIL image.`
345     dontConfigure = true;
346     dontBuild = true;
347     dontPlacateNuget = true;
349     outputFiles = [ "*" ];
350     exeFiles = [ "nuget.exe" ];
351   };
353   Paket = fetchNuGet {
354     pname = "Paket";
355     version = "5.179.1";
356     sha256 = "11rzna03i145qj08hwrynya548fwk8xzxmg65swyaf19jd7gzg82";
357     outputFiles = [ "*" ];
358   };
360 }; in self