2015-05-22 13:25:02 +00:00
|
|
|
{ stdenv
|
2021-01-10 11:03:59 +00:00
|
|
|
, lib
|
2015-05-22 13:25:02 +00:00
|
|
|
, pkgs
|
|
|
|
, buildDotnetPackage
|
2022-07-30 18:39:22 +00:00
|
|
|
, buildDotnetModule
|
2015-05-22 13:25:02 +00:00
|
|
|
, fetchurl
|
|
|
|
, fetchFromGitHub
|
|
|
|
, fetchNuGet
|
2020-06-14 09:58:12 +00:00
|
|
|
, glib
|
2015-05-22 13:25:02 +00:00
|
|
|
, mono
|
|
|
|
, overrides ? {}
|
|
|
|
}:
|
|
|
|
|
|
|
|
let self = dotnetPackages // overrides; dotnetPackages = with self; {
|
|
|
|
|
2015-06-12 15:06:32 +00:00
|
|
|
# BINARY PACKAGES
|
2015-05-22 13:25:02 +00:00
|
|
|
|
2016-05-08 19:19:35 +00:00
|
|
|
NUnit3 = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "NUnit";
|
2016-05-08 19:19:35 +00:00
|
|
|
version = "3.0.1";
|
|
|
|
sha256 = "1g3j3kvg9vrapb1vjgq65nvn1vg7bzm66w7yjnaip1iww1yn1b0p";
|
|
|
|
outputFiles = [ "lib/*" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
NUnit2 = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "NUnit";
|
2015-05-22 13:25:02 +00:00
|
|
|
version = "2.6.4";
|
|
|
|
sha256 = "1acwsm7p93b1hzfb83ia33145x0w6fvdsfjm9xflsisljxpdx35y";
|
|
|
|
outputFiles = [ "lib/*" ];
|
2016-04-29 16:23:36 +00:00
|
|
|
};
|
|
|
|
|
2016-05-08 19:19:35 +00:00
|
|
|
NUnit = NUnit2;
|
|
|
|
|
2016-05-08 20:21:11 +00:00
|
|
|
NUnitConsole = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "NUnit.Console";
|
2016-05-08 20:21:11 +00:00
|
|
|
version = "3.0.1";
|
|
|
|
sha256 = "154bqwm2n95syv8nwd67qh8qsv0b0h5zap60sk64z3kd3a9ffi5p";
|
|
|
|
outputFiles = [ "tools/*" ];
|
|
|
|
};
|
|
|
|
|
2016-04-29 16:23:36 +00:00
|
|
|
MaxMindDb = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "MaxMind.Db";
|
2016-04-29 16:23:36 +00:00
|
|
|
version = "1.1.0.0";
|
|
|
|
sha256 = "0lixl76f7k3ldiqzg94zh13gn82w5mm5dx72y97fcqvp8g6nj3ds";
|
|
|
|
outputFiles = [ "lib/*" ];
|
2016-04-29 16:24:26 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
MaxMindGeoIP2 = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "MaxMind.GeoIP2";
|
2016-04-29 16:24:26 +00:00
|
|
|
version = "2.3.1";
|
|
|
|
sha256 = "1s44dvjnmj1aimbrgkmpj6h5dn1w6acgqjch1axc76yz6hwknqgf";
|
|
|
|
outputFiles = [ "lib/*" ];
|
2016-04-29 16:24:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
SharpZipLib = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "SharpZipLib";
|
2022-05-15 13:12:02 +00:00
|
|
|
version = "1.3.3";
|
|
|
|
sha256 = "sha256-HWEQTKh9Ktwg/zIl079dAiH+ob2ShWFAqLgG6XgIMr4=";
|
2016-04-29 16:24:51 +00:00
|
|
|
outputFiles = [ "lib/*" ];
|
2016-04-29 16:25:12 +00:00
|
|
|
};
|
|
|
|
|
2016-04-29 17:38:32 +00:00
|
|
|
StyleCopMSBuild = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "StyleCop.MSBuild";
|
2016-04-29 17:38:32 +00:00
|
|
|
version = "4.7.49.0";
|
|
|
|
sha256 = "0rpfyvcggm881ynvgr17kbx5hvj7ivlms0bmskmb2zyjlpddx036";
|
|
|
|
outputFiles = [ "tools/*" ];
|
|
|
|
};
|
|
|
|
|
2016-04-29 18:34:35 +00:00
|
|
|
StyleCopPlusMSBuild = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "StyleCopPlus.MSBuild";
|
2016-04-29 18:34:35 +00:00
|
|
|
version = "4.7.49.5";
|
|
|
|
sha256 = "1hv4lfxw72aql8siyqc4n954vzdz8p6jx9f2wrgzz0jy1k98x2mr";
|
|
|
|
outputFiles = [ "tools/*" ];
|
|
|
|
};
|
|
|
|
|
2016-04-29 18:34:54 +00:00
|
|
|
RestSharp = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "RestSharp";
|
2022-10-10 07:40:05 +00:00
|
|
|
version = "106.12.0";
|
|
|
|
sha256 = "sha256-NGzveByJvCRtHlI2C8d/mLs3akyMm77NER8TUG6HiD4=";
|
2016-04-29 18:34:54 +00:00
|
|
|
outputFiles = [ "lib/*" ];
|
|
|
|
};
|
|
|
|
|
2016-04-29 17:19:53 +00:00
|
|
|
SharpFont = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "SharpFont";
|
2018-10-31 20:04:31 +00:00
|
|
|
version = "4.0.1";
|
|
|
|
sha256 = "1yd3cm4ww0hw2k3aymf792hp6skyg8qn491m2a3fhkzvsl8z7vs8";
|
2016-04-29 17:19:53 +00:00
|
|
|
outputFiles = [ "lib/*" "config/*" ];
|
|
|
|
};
|
|
|
|
|
2016-04-29 16:25:12 +00:00
|
|
|
SmartIrc4net = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "SmartIrc4net";
|
2016-04-29 16:25:12 +00:00
|
|
|
version = "0.4.5.1";
|
2017-11-21 18:24:06 +00:00
|
|
|
sha256 = "1d531sj39fvwmj2wgplqfify301y3cwp7kwr9ai5hgrq81jmjn2b";
|
2016-04-29 16:25:12 +00:00
|
|
|
outputFiles = [ "lib/*" ];
|
2015-05-22 13:25:02 +00:00
|
|
|
};
|
|
|
|
|
2016-04-29 16:25:39 +00:00
|
|
|
FuzzyLogicLibrary = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "FuzzyLogicLibrary";
|
2016-04-29 16:25:39 +00:00
|
|
|
version = "1.2.0";
|
|
|
|
sha256 = "0x518i8d3rw9n51xwawa4sywvqd722adj7kpcgcm63r66s950r5l";
|
|
|
|
outputFiles = [ "bin/*" ];
|
|
|
|
};
|
|
|
|
|
2016-10-29 05:20:17 +00:00
|
|
|
OpenNAT = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Open.NAT";
|
2016-10-29 05:20:17 +00:00
|
|
|
version = "2.1.0";
|
|
|
|
sha256 = "1jyd30fwycdwx5ck96zhp2xf20yz0sp7g3pjbqhmay4kd322mfwk";
|
|
|
|
outputFiles = [ "lib/*" ];
|
|
|
|
};
|
|
|
|
|
2016-04-29 16:26:00 +00:00
|
|
|
MonoNat = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Mono.Nat";
|
2016-05-08 19:24:48 +00:00
|
|
|
version = "1.2.24";
|
|
|
|
sha256 = "0vfkach11kkcd9rcqz3s38m70d5spyb21gl99iqnkljxj5555wjs";
|
2016-04-29 16:26:00 +00:00
|
|
|
outputFiles = [ "lib/*" ];
|
|
|
|
};
|
|
|
|
|
2015-05-22 13:25:02 +00:00
|
|
|
NUnitRunners = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "NUnit.Runners";
|
2015-05-22 13:25:02 +00:00
|
|
|
version = "2.6.4";
|
|
|
|
sha256 = "11nmi7vikn9idz8qcad9z7f73arsh5rw18fc1sri9ywz77mpm1s4";
|
|
|
|
outputFiles = [ "tools/*" ];
|
|
|
|
preInstall = "mv -v tools/lib/* tools && rmdir -v tools/lib";
|
|
|
|
};
|
|
|
|
|
2015-06-12 15:06:32 +00:00
|
|
|
# SOURCE PACKAGES
|
|
|
|
|
2022-07-30 18:39:22 +00:00
|
|
|
Boogie = buildDotnetModule rec {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Boogie";
|
2022-07-30 18:39:22 +00:00
|
|
|
version = "2.15.7";
|
2017-02-03 01:16:45 +00:00
|
|
|
|
2022-07-30 18:47:45 +00:00
|
|
|
src = fetchFromGitHub {
|
2017-02-03 01:16:45 +00:00
|
|
|
owner = "boogie-org";
|
|
|
|
repo = "boogie";
|
2020-03-03 10:50:13 +00:00
|
|
|
rev = "v${version}";
|
2022-07-30 18:39:22 +00:00
|
|
|
sha256 = "16kdvkbx2zwj7m43cra12vhczbpj23wyrdnj0ygxf7np7c2aassp";
|
2017-02-03 01:16:45 +00:00
|
|
|
};
|
|
|
|
|
2022-07-30 18:39:22 +00:00
|
|
|
projectFile = [ "Source/Boogie.sln" ];
|
|
|
|
nugetDeps = ../development/dotnet-modules/boogie-deps.nix;
|
2017-02-03 01:16:45 +00:00
|
|
|
|
|
|
|
postInstall = ''
|
2021-11-08 16:12:26 +00:00
|
|
|
mkdir -pv "$out/lib/dotnet/${pname}"
|
|
|
|
ln -sv "${pkgs.z3}/bin/z3" "$out/lib/dotnet/${pname}/z3.exe"
|
2018-05-03 11:52:41 +00:00
|
|
|
|
|
|
|
# so that this derivation can be used as a vim plugin to install syntax highlighting
|
|
|
|
vimdir=$out/share/vim-plugins/boogie
|
|
|
|
install -Dt $vimdir/syntax/ Util/vim/syntax/boogie.vim
|
|
|
|
mkdir $vimdir/ftdetect
|
|
|
|
echo 'au BufRead,BufNewFile *.bpl set filetype=boogie' > $vimdir/ftdetect/bpl.vim
|
2023-03-05 17:01:43 +00:00
|
|
|
mkdir -p $out/share/nvim
|
|
|
|
ln -s $out/share/vim-plugins/boogie $out/share/nvim/site
|
2017-02-03 01:16:45 +00:00
|
|
|
'';
|
|
|
|
|
2022-07-30 18:39:22 +00:00
|
|
|
postFixup = ''
|
|
|
|
ln -s "$out/bin/BoogieDriver" "$out/bin/boogie"
|
2022-08-08 19:33:30 +00:00
|
|
|
rm -f $out/bin/{Microsoft,NUnit3,System}.* "$out/bin"/*Tests
|
2022-07-30 18:39:22 +00:00
|
|
|
'';
|
|
|
|
|
2021-01-10 11:03:59 +00:00
|
|
|
meta = with lib; {
|
2017-02-03 01:16:45 +00:00
|
|
|
description = "An intermediate verification language";
|
|
|
|
homepage = "https://github.com/boogie-org/boogie";
|
2018-05-03 11:52:41 +00:00
|
|
|
longDescription = ''
|
|
|
|
Boogie is an intermediate verification language (IVL), intended as a
|
|
|
|
layer on which to build program verifiers for other languages.
|
|
|
|
|
|
|
|
This derivation may be used as a vim plugin to provide syntax highlighting.
|
|
|
|
'';
|
2017-02-03 01:16:45 +00:00
|
|
|
license = licenses.mspl;
|
|
|
|
maintainers = [ maintainers.taktoa ];
|
|
|
|
platforms = with platforms; (linux ++ darwin);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-08-05 23:09:10 +00:00
|
|
|
Dafny = buildDotnetModule rec {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Dafny";
|
2022-08-05 23:09:10 +00:00
|
|
|
version = "3.7.3";
|
2016-09-01 07:36:56 +00:00
|
|
|
|
2022-08-08 19:30:26 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "Microsoft";
|
|
|
|
repo = "dafny";
|
|
|
|
rev = "v${version}";
|
|
|
|
sha256 = "1knv6zvpq0bnngmlwkcqgjpdkqsgbiihs6a0cycb8ssn18s4ippr";
|
2016-09-01 07:36:56 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
preBuild = ''
|
2022-08-05 23:16:58 +00:00
|
|
|
ln -s ${pkgs.z3} Binaries/z3
|
2016-09-01 07:36:56 +00:00
|
|
|
'';
|
|
|
|
|
2022-08-05 23:09:10 +00:00
|
|
|
buildInputs = [ Boogie pkgs.jdk11 ];
|
|
|
|
nugetDeps = ../development/dotnet-modules/dafny-deps.nix;
|
2016-09-01 07:36:56 +00:00
|
|
|
|
2022-08-05 23:09:10 +00:00
|
|
|
projectFile = [ "Source/Dafny.sln" ];
|
2016-09-01 07:36:56 +00:00
|
|
|
|
|
|
|
# Boogie as an input is not enough. Boogie libraries need to be at the same
|
|
|
|
# place as Dafny ones. Same for "*.dll.mdb". No idea why or how to fix.
|
|
|
|
postFixup = ''
|
2021-11-08 16:12:26 +00:00
|
|
|
for lib in ${Boogie}/lib/dotnet/${Boogie.pname}/*.dll{,.mdb}; do
|
|
|
|
ln -s $lib $out/lib/dotnet/${pname}/
|
2016-09-01 07:36:56 +00:00
|
|
|
done
|
|
|
|
# We generate our own executable scripts
|
2021-11-08 16:12:26 +00:00
|
|
|
rm -f $out/lib/dotnet/${pname}/dafny{,-server}
|
2022-08-05 23:09:10 +00:00
|
|
|
|
|
|
|
mv "$out/bin/Dafny" "$out/bin/dafny"
|
|
|
|
|
2022-08-08 19:32:16 +00:00
|
|
|
rm -f $out/bin/{coverlet,Microsoft,NUnit3,System}.*
|
|
|
|
rm -f $out/bin/{ThirdPartyNotices.txt,XUnitExtensions}
|
2016-09-01 07:36:56 +00:00
|
|
|
'';
|
|
|
|
|
2021-01-10 11:03:59 +00:00
|
|
|
meta = with lib; {
|
2016-09-01 07:36:56 +00:00
|
|
|
description = "A programming language with built-in specification constructs";
|
2019-04-22 08:14:28 +00:00
|
|
|
homepage = "https://research.microsoft.com/dafny";
|
2016-09-01 07:36:56 +00:00
|
|
|
maintainers = with maintainers; [ layus ];
|
2017-02-07 09:30:36 +00:00
|
|
|
license = licenses.mit;
|
2016-09-01 07:36:56 +00:00
|
|
|
platforms = with platforms; (linux ++ darwin);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2015-10-29 02:48:08 +00:00
|
|
|
MonoAddins = buildDotnetPackage rec {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Mono.Addins";
|
2015-10-29 02:48:08 +00:00
|
|
|
version = "1.2";
|
|
|
|
|
|
|
|
xBuildFiles = [
|
|
|
|
"Mono.Addins/Mono.Addins.csproj"
|
|
|
|
"Mono.Addins.Setup/Mono.Addins.Setup.csproj"
|
|
|
|
"Mono.Addins.Gui/Mono.Addins.Gui.csproj"
|
|
|
|
"Mono.Addins.CecilReflector/Mono.Addins.CecilReflector.csproj"
|
|
|
|
];
|
|
|
|
outputFiles = [ "bin/*" ];
|
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "mono";
|
|
|
|
repo = "mono-addins";
|
|
|
|
rev = "mono-addins-${version}";
|
|
|
|
sha256 = "1hnn0a2qsjcjprsxas424bzvhsdwy0yc2jj5xbp698c0m9kfk24y";
|
|
|
|
};
|
|
|
|
|
2016-09-11 21:24:51 +00:00
|
|
|
buildInputs = [ pkgs.gtk-sharp-2_0 ];
|
2015-10-29 02:48:08 +00:00
|
|
|
|
|
|
|
meta = {
|
|
|
|
description = "A generic framework for creating extensible applications";
|
2020-04-01 01:11:51 +00:00
|
|
|
homepage = "https://www.mono-project.com/Mono.Addins";
|
2015-10-29 02:48:08 +00:00
|
|
|
longDescription = ''
|
|
|
|
A generic framework for creating extensible applications,
|
|
|
|
and for creating libraries which extend those applications.
|
|
|
|
'';
|
2021-01-10 11:03:59 +00:00
|
|
|
license = lib.licenses.mit;
|
2015-10-29 02:48:08 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2018-09-14 23:49:57 +00:00
|
|
|
NewtonsoftJson = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Newtonsoft.Json";
|
2018-09-14 23:49:57 +00:00
|
|
|
version = "11.0.2";
|
|
|
|
sha256 = "07na27n4mlw77f3hg5jpayzxll7f4gyna6x7k9cybmxpbs6l77k7";
|
|
|
|
outputFiles = [ "*" ];
|
2015-05-22 13:25:02 +00:00
|
|
|
};
|
|
|
|
|
2021-07-21 15:56:36 +00:00
|
|
|
Nuget = buildDotnetPackage rec {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Nuget";
|
2023-02-27 11:12:01 +00:00
|
|
|
version = "6.3.1.1";
|
2015-05-22 13:25:02 +00:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "mono";
|
2021-07-21 15:56:36 +00:00
|
|
|
repo = "linux-packaging-nuget";
|
|
|
|
rev = "upstream/${version}.bin";
|
2023-02-27 11:12:01 +00:00
|
|
|
sha256 = "sha256-D7F4B23HK5ElY68PYKVDsyi8OF0DLqqUqQzj5CpMfkc=";
|
2015-05-22 13:25:02 +00:00
|
|
|
};
|
|
|
|
|
2021-07-20 18:30:08 +00:00
|
|
|
# configurePhase breaks the binary and results in
|
|
|
|
# `File does not contain a valid CIL image.`
|
|
|
|
dontConfigure = true;
|
2021-07-20 09:53:09 +00:00
|
|
|
dontBuild = true;
|
2021-07-21 15:56:36 +00:00
|
|
|
dontPlacateNuget = true;
|
2015-05-22 13:25:02 +00:00
|
|
|
|
|
|
|
outputFiles = [ "*" ];
|
2018-03-08 21:08:23 +00:00
|
|
|
exeFiles = [ "nuget.exe" ];
|
2015-05-22 13:25:02 +00:00
|
|
|
};
|
|
|
|
|
2018-09-15 14:02:55 +00:00
|
|
|
Paket = fetchNuGet {
|
2021-11-08 16:12:26 +00:00
|
|
|
pname = "Paket";
|
2018-09-15 14:02:55 +00:00
|
|
|
version = "5.179.1";
|
|
|
|
sha256 = "11rzna03i145qj08hwrynya548fwk8xzxmg65swyaf19jd7gzg82";
|
|
|
|
outputFiles = [ "*" ];
|
2015-05-22 13:25:02 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}; in self
|