diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 0e5740a6c32..b9bf6661671 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -168,6 +168,7 @@ grahamc = "Graham Christensen "; gridaphobe = "Eric Seidel "; guibert = "David Guibert "; + hakuch = "Jesse Haber-Kucharsky "; havvy = "Ryan Scheel "; hbunke = "Hendrik Bunke "; hce = "Hans-Christian Esperer "; diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix index 0d765ec93bb..afa480296f6 100644 --- a/pkgs/development/tools/ocaml/opam/default.nix +++ b/pkgs/development/tools/ocaml/opam/default.nix @@ -1,4 +1,7 @@ -{ stdenv, fetchgit, fetchurl, ocaml, unzip, ncurses, curl }: +{ stdenv, fetchgit, fetchurl, makeWrapper, + ocaml, unzip, ncurses, curl, + aspcudSupport ? !stdenv.isDarwin, aspcud +}: assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "3.12.1"; @@ -45,7 +48,7 @@ in stdenv.mkDerivation rec { name = "opam-${version}"; version = "1.2.2"; - buildInputs = [ unzip curl ncurses ocaml ]; + buildInputs = [ unzip curl ncurses ocaml makeWrapper]; src = srcs.opam; @@ -69,6 +72,13 @@ in stdenv.mkDerivation rec { # Dirty, but apparently ocp-build requires a TERM makeFlags = ["TERM=screen"]; + postInstall = + if aspcudSupport then '' + wrapProgram $out/bin/opam \ + --suffix PATH : ${aspcud}/bin + '' + else ""; + doCheck = false; meta = with stdenv.lib; { diff --git a/pkgs/tools/misc/aspcud/default.nix b/pkgs/tools/misc/aspcud/default.nix new file mode 100644 index 00000000000..577c0a33b3e --- /dev/null +++ b/pkgs/tools/misc/aspcud/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, + boost, clasp, cmake, gringo, re2c +}: + +let + version = "1.9.0"; +in + +stdenv.mkDerivation rec { + name = "aspcud-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/project/potassco/aspcud/${version}/aspcud-${version}-source.tar.gz"; + sha256 = "029035vcdk527ssf126i8ipi5zs73gqpbrg019pvm9r24rf0m373"; + }; + + buildInputs = [ boost clasp cmake gringo re2c ]; + + buildPhase = '' + cmake -DCMAKE_BUILD_TYPE=Release \ + -DGRINGO_LOC=${gringo}/bin/gringo \ + -DCLASP_LOC=${clasp}/bin/clasp \ + -DENCODING_LOC=$out/share/aspcud/specification.lp \ + . + + make + ''; + + installPhase = '' + mkdir -p $out/bin + cp bin/{aspcud,cudf2lp,lemon} $out/bin + + mkdir -p $out/share/aspcud + cp ../share/aspcud/specification.lp $out/share/aspcud + ''; + + meta = with stdenv.lib; { + description = "Solver for package problems in CUDF format using ASP"; + homepage = http://potasssco.sourceforge.net/; + platforms = platforms.linux; + maintainers = [ maintainers.hakuch ]; + license = licenses.gpl3Plus; + }; +} diff --git a/pkgs/tools/misc/clasp/default.nix b/pkgs/tools/misc/clasp/default.nix new file mode 100644 index 00000000000..135eda554b3 --- /dev/null +++ b/pkgs/tools/misc/clasp/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl }: + +let + version = "3.1.4"; +in + +stdenv.mkDerivation { + name = "clasp-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/project/potassco/clasp/${version}/clasp-${version}-source.tar.gz"; + sha256 = "1zkjqc4gp4n9p2kf3k3z8x82g42any4p3shhhivny89z1jlxi9zn"; + }; + + preConfigure = "patchShebangs ./configure.sh"; + configureScript = "./configure.sh"; + + preBuild = "cd build/release"; + + installPhase = '' + mkdir -p $out/bin + cp bin/clasp $out/bin/clasp + ''; + + meta = with stdenv.lib; { + description = "Answer set solver for (extended) normal and disjunctive logic programs"; + homepage = http://potassco.sourceforge.net/; + platforms = platforms.all; + maintainers = [ maintainers.hakuch ]; + license = licenses.gpl2Plus; + }; +} diff --git a/pkgs/tools/misc/gringo/default.nix b/pkgs/tools/misc/gringo/default.nix new file mode 100644 index 00000000000..ae71c01314c --- /dev/null +++ b/pkgs/tools/misc/gringo/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, + bison, re2c, scons +}: + +let + version = "4.5.4"; +in + +stdenv.mkDerivation rec { + name = "gringo-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/project/potassco/gringo/${version}/gringo-${version}-source.tar.gz"; + sha256 = "16k4pkwyr2mh5w8j91vhxh9aff7f4y31npwf09w6f8q63fxvpy41"; + }; + + buildInputs = [ bison re2c scons ]; + + patches = [ + ./gringo-4.5.4-cmath.patch + ]; + + buildPhase = '' + scons --build-dir=release + ''; + + installPhase = '' + mkdir -p $out/bin + cp build/release/gringo $out/bin/gringo + ''; + + meta = with stdenv.lib; { + description = "Converts input programs with first-order variables to equivalent ground programs"; + homepage = http://potassco.sourceforge.net/; + platforms = platforms.linux; + maintainers = [ maintainers.hakuch ]; + license = licenses.gpl3Plus; + }; +} diff --git a/pkgs/tools/misc/gringo/gringo-4.5.4-cmath.patch b/pkgs/tools/misc/gringo/gringo-4.5.4-cmath.patch new file mode 100644 index 00000000000..7b5510e2344 --- /dev/null +++ b/pkgs/tools/misc/gringo/gringo-4.5.4-cmath.patch @@ -0,0 +1,11 @@ +--- gringo/libgringo/src/term.cc~ 2016-07-12 23:56:10.593577749 -0400 ++++ gringo/libgringo/src/term.cc 2016-07-12 23:52:35.169968338 -0400 +@@ -22,6 +22,8 @@ + #include "gringo/logger.hh" + #include "gringo/graph.hh" + ++#include ++ + namespace Gringo { + + // {{{ definition of Defines diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9262c8c144a..a70e553b2d7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -536,6 +536,10 @@ in }; aria = self.aria2; + aspcud = callPackage ../tools/misc/aspcud { + boost = boost155; + }; + at = callPackage ../tools/system/at { }; atftp = callPackage ../tools/networking/atftp { }; @@ -710,6 +714,8 @@ in ckbcomp = callPackage ../tools/X11/ckbcomp { }; + clasp = callPackage ../tools/misc/clasp { }; + cli53 = callPackage ../tools/admin/cli53 { }; cli-visualizer = callPackage ../applications/misc/cli-visualizer { }; @@ -843,6 +849,8 @@ in gmic = callPackage ../tools/graphics/gmic { }; + gringo = callPackage ../tools/misc/gringo { }; + gti = callPackage ../tools/misc/gti { }; heatseeker = callPackage ../tools/misc/heatseeker { };