14 let self = dotnetPackages // overrides; dotnetPackages = with self; {
21 sha256 = "1g3j3kvg9vrapb1vjgq65nvn1vg7bzm66w7yjnaip1iww1yn1b0p";
22 outputFiles = [ "lib/*" ];
28 sha256 = "1acwsm7p93b1hzfb83ia33145x0w6fvdsfjm9xflsisljxpdx35y";
29 outputFiles = [ "lib/*" ];
34 NUnitConsole = fetchNuGet {
35 pname = "NUnit.Console";
37 sha256 = "154bqwm2n95syv8nwd67qh8qsv0b0h5zap60sk64z3kd3a9ffi5p";
38 outputFiles = [ "tools/*" ];
41 MaxMindDb = fetchNuGet {
44 sha256 = "0lixl76f7k3ldiqzg94zh13gn82w5mm5dx72y97fcqvp8g6nj3ds";
45 outputFiles = [ "lib/*" ];
48 MaxMindGeoIP2 = fetchNuGet {
49 pname = "MaxMind.GeoIP2";
51 sha256 = "1s44dvjnmj1aimbrgkmpj6h5dn1w6acgqjch1axc76yz6hwknqgf";
52 outputFiles = [ "lib/*" ];
55 SharpZipLib = fetchNuGet {
56 pname = "SharpZipLib";
58 sha256 = "sha256-HWEQTKh9Ktwg/zIl079dAiH+ob2ShWFAqLgG6XgIMr4=";
59 outputFiles = [ "lib/*" ];
62 StyleCopMSBuild = fetchNuGet {
63 pname = "StyleCop.MSBuild";
65 sha256 = "0rpfyvcggm881ynvgr17kbx5hvj7ivlms0bmskmb2zyjlpddx036";
66 outputFiles = [ "tools/*" ];
69 StyleCopPlusMSBuild = fetchNuGet {
70 pname = "StyleCopPlus.MSBuild";
72 sha256 = "1hv4lfxw72aql8siyqc4n954vzdz8p6jx9f2wrgzz0jy1k98x2mr";
73 outputFiles = [ "tools/*" ];
76 RestSharp = fetchNuGet {
79 sha256 = "sha256-NGzveByJvCRtHlI2C8d/mLs3akyMm77NER8TUG6HiD4=";
80 outputFiles = [ "lib/*" ];
83 SharpFont = fetchNuGet {
86 sha256 = "1yd3cm4ww0hw2k3aymf792hp6skyg8qn491m2a3fhkzvsl8z7vs8";
87 outputFiles = [ "lib/*" "config/*" ];
90 SmartIrc4net = fetchNuGet {
91 pname = "SmartIrc4net";
93 sha256 = "1d531sj39fvwmj2wgplqfify301y3cwp7kwr9ai5hgrq81jmjn2b";
94 outputFiles = [ "lib/*" ];
97 FuzzyLogicLibrary = fetchNuGet {
98 pname = "FuzzyLogicLibrary";
100 sha256 = "0x518i8d3rw9n51xwawa4sywvqd722adj7kpcgcm63r66s950r5l";
101 outputFiles = [ "bin/*" ];
104 OpenNAT = fetchNuGet {
107 sha256 = "1jyd30fwycdwx5ck96zhp2xf20yz0sp7g3pjbqhmay4kd322mfwk";
108 outputFiles = [ "lib/*" ];
111 MonoNat = fetchNuGet {
114 sha256 = "0vfkach11kkcd9rcqz3s38m70d5spyb21gl99iqnkljxj5555wjs";
115 outputFiles = [ "lib/*" ];
118 NUnitRunners = fetchNuGet {
119 pname = "NUnit.Runners";
121 sha256 = "11nmi7vikn9idz8qcad9z7f73arsh5rw18fc1sri9ywz77mpm1s4";
122 outputFiles = [ "tools/*" ];
123 preInstall = "mv -v tools/lib/* tools && rmdir -v tools/lib";
128 Boogie = buildDotnetModule rec {
132 src = fetchFromGitHub {
133 owner = "boogie-org";
136 sha256 = "16kdvkbx2zwj7m43cra12vhczbpj23wyrdnj0ygxf7np7c2aassp";
139 projectFile = [ "Source/Boogie.sln" ];
140 nugetDeps = ../development/dotnet-modules/boogie-deps.nix;
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
154 ln -s "$out/bin/BoogieDriver" "$out/bin/boogie"
158 description = "An intermediate verification language";
159 homepage = "https://github.com/boogie-org/boogie";
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.
166 license = licenses.mspl;
167 maintainers = [ maintainers.taktoa ];
168 platforms = with platforms; (linux ++ darwin);
172 Boogie_2_4_1 = buildDotnetPackage rec {
176 src = fetchFromGitHub {
177 owner = "boogie-org";
180 sha256 = "13f6ifkh6gpy4bvx5zhgwmk3wd5rfxzl9wxwfhcj1c90fdrhwh1b";
183 # emulate `nuget restore Source/Boogie.sln`
184 # which installs in $srcdir/Source/packages
186 mkdir -p Source/packages/NUnit.2.6.3
187 ln -sn ${dotnetPackages.NUnit}/lib/dotnet/NUnit Source/packages/NUnit.2.6.3/lib
192 dotnetPackages.NUnitRunners
195 xBuildFiles = [ "Source/Boogie.sln" ];
197 outputFiles = [ "Binaries/*" ];
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
211 description = "An intermediate verification language";
212 homepage = "https://github.com/boogie-org/boogie";
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.
219 license = licenses.mspl;
220 maintainers = [ maintainers.taktoa ];
221 platforms = with platforms; (linux ++ darwin);
226 z3 = pkgs.z3.overrideAttrs (oldAttrs: rec {
228 name = "z3-${version}";
230 src = fetchFromGitHub {
233 rev = "z3-${version}";
234 sha256 = "014igqm5vwswz0yhz0cdxsj3a6dh7i79hvhgc3jmmmz3z0xm1gyn";
237 self' = pkgs.dotnetPackages.override ({
238 pkgs = pkgs // { inherit z3; };
240 Boogie = assert self'.Boogie_2_4_1.version == "2.4.1"; self'.Boogie_2_4_1;
241 in buildDotnetPackage rec {
246 url = "https://github.com/Microsoft/dafny/archive/v${version}.tar.gz";
247 sha256 = "0s6ihx32kda7400lvdrq60l46c11nki8b6kalir2g4ic508f6ypa";
252 -e 's/ Visible="False"//' \
253 -e "s/Exists(\$(CodeContractsInstallDir))/Exists('\$(CodeContractsInstallDir)')/" \
258 ln -s ${z3} Binaries/z3
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.
277 for lib in ${Boogie}/lib/dotnet/${Boogie.pname}/*.dll{,.mdb}; do
278 ln -s $lib $out/lib/dotnet/${pname}/
280 # We generate our own executable scripts
281 rm -f $out/lib/dotnet/${pname}/dafny{,-server}
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);
293 MonoAddins = buildDotnetPackage rec {
294 pname = "Mono.Addins";
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"
303 outputFiles = [ "bin/*" ];
305 src = fetchFromGitHub {
307 repo = "mono-addins";
308 rev = "mono-addins-${version}";
309 sha256 = "1hnn0a2qsjcjprsxas424bzvhsdwy0yc2jj5xbp698c0m9kfk24y";
312 buildInputs = [ pkgs.gtk-sharp-2_0 ];
315 description = "A generic framework for creating extensible applications";
316 homepage = "https://www.mono-project.com/Mono.Addins";
318 A generic framework for creating extensible applications,
319 and for creating libraries which extend those applications.
321 license = lib.licenses.mit;
325 NewtonsoftJson = fetchNuGet {
326 pname = "Newtonsoft.Json";
328 sha256 = "07na27n4mlw77f3hg5jpayzxll7f4gyna6x7k9cybmxpbs6l77k7";
329 outputFiles = [ "*" ];
332 Nuget = buildDotnetPackage rec {
334 version = "5.6.0.6489";
336 src = fetchFromGitHub {
338 repo = "linux-packaging-nuget";
339 rev = "upstream/${version}.bin";
340 sha256 = "sha256-71vjM7a+F0DNTY+dML3UBSkrVyXv/k5rdl7iXBKSpNM=";
343 # configurePhase breaks the binary and results in
344 # `File does not contain a valid CIL image.`
345 dontConfigure = true;
347 dontPlacateNuget = true;
349 outputFiles = [ "*" ];
350 exeFiles = [ "nuget.exe" ];
356 sha256 = "11rzna03i145qj08hwrynya548fwk8xzxmg65swyaf19jd7gzg82";
357 outputFiles = [ "*" ];