boolector: add version 1.5 and 1.6

There are two versions here because beginning with 1.6.0, Boolector has
a more restrictive, unfree license which disallows commercial use.

As a result, Boolector 1.5 is the default 'boolector' expression.

Signed-off-by: Austin Seipp <aseipp@pobox.com>

+53
+47
pkgs/applications/science/logic/boolector/default.nix
··· 1 + { stdenv, fetchurl, zlib, useV16 ? false }: 2 + 3 + let 4 + v15 = rec { 5 + name = "boolector-${version}"; 6 + version = "1.5.118"; 7 + src = fetchurl { 8 + url = "http://fmv.jku.at/boolector/${name}-with-sat-solvers.tar.gz"; 9 + sha256 = "17j7q02rryvfwgvglxnhx0kv8hxwy8wbhzawn48lw05i98vxlmk9"; 10 + }; 11 + }; 12 + 13 + v16 = rec { 14 + name = "boolector-${version}"; 15 + version = "1.6.0"; 16 + src = fetchurl { 17 + url = "http://fmv.jku.at/boolector/${name}-with-sat-solvers.tar.gz"; 18 + sha256 = "0jka4r6bc3i24axgdp6qbq6gjadwz9kvi11s2c5sbwmdnjd7cp85"; 19 + }; 20 + }; 21 + 22 + boolectorPkg = if useV16 then v16 else v15; 23 + license = with stdenv.lib.licenses; if useV16 then unfreeRedistributable else gpl3; 24 + in 25 + stdenv.mkDerivation (boolectorPkg // { 26 + buildInputs = [ zlib ]; 27 + enableParallelBuilding = false; 28 + 29 + buildPhase = "./build.sh"; 30 + 31 + installPhase = '' 32 + mkdir -p $out/bin $out/lib $out/include 33 + cp boolector/boolector $out/bin 34 + cp boolector/deltabtor $out/bin 35 + cp boolector/synthebtor $out/bin 36 + cp boolector/libboolector.a $out/lib 37 + cp boolector/boolector.h $out/include 38 + ''; 39 + 40 + meta = { 41 + inherit license; 42 + description = "An extremely fast SMT solver for bit-vectors and arrays"; 43 + homepage = "http://fmv.jku.at/boolector"; 44 + platforms = stdenv.lib.platforms.linux; 45 + maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; 46 + }; 47 + })
+6
pkgs/top-level/all-packages.nix
··· 10278 10278 10279 10279 z3 = callPackage ../applications/science/logic/z3 {}; 10280 10280 10281 + boolector = boolector15; 10282 + boolector15 = callPackage ../applications/science/logic/boolector {}; 10283 + boolector16 = lowPrio (callPackage ../applications/science/logic/boolector { 10284 + useV16 = true; 10285 + }); 10286 + 10281 10287 ### SCIENCE / ELECTRONICS 10282 10288 10283 10289 eagle = callPackage_i686 ../applications/science/electronics/eagle { };