From f3a49abf089de509bbfc5f535d01d0053bc54046 Mon Sep 17 00:00:00 2001 From: Marco Maggesi Date: Fri, 31 Jan 2014 06:44:42 +0100 Subject: [PATCH] Add OCaml Oasis OCaml Oasis is a configure/build/install system for OCaml proget (like Cabal for Haskell). This commit also add a few small dependencies that where missing - OCaml Data Notation (odn) - ocamlify - ocamlmod --- .../development/ocaml-modules/odn/default.nix | 28 ++++++++++++++++ .../development/tools/ocaml/oasis/default.nix | 32 +++++++++++++++++++ .../tools/ocaml/ocamlify/default.nix | 26 +++++++++++++++ .../tools/ocaml/ocamlmod/default.nix | 25 +++++++++++++++ pkgs/top-level/all-packages.nix | 8 +++++ 5 files changed, 119 insertions(+) create mode 100644 pkgs/development/ocaml-modules/odn/default.nix create mode 100644 pkgs/development/tools/ocaml/oasis/default.nix create mode 100644 pkgs/development/tools/ocaml/ocamlify/default.nix create mode 100644 pkgs/development/tools/ocaml/ocamlmod/default.nix diff --git a/pkgs/development/ocaml-modules/odn/default.nix b/pkgs/development/ocaml-modules/odn/default.nix new file mode 100644 index 000000000000..5f72afcf7666 --- /dev/null +++ b/pkgs/development/ocaml-modules/odn/default.nix @@ -0,0 +1,28 @@ +{stdenv, fetchurl, ocaml, findlib, ocaml_typeconv, ounit}: + +stdenv.mkDerivation { + name = "ocaml-data-notation-0.0.11"; + + src = fetchurl { + url = https://forge.ocamlcore.org/frs/download.php/1310/ocaml-data-notation-0.0.11.tar.gz; + sha256 = "09a8zdyifpc2nl4hdvg9206142y31cq95ajgij011s1qcg3z93lj"; + }; + + buildInputs = [ocaml findlib ocaml_typeconv ounit]; + + createFindlibDestdir = true; + + configurePhase = "ocaml setup.ml -configure"; + buildPhase = "ocaml setup.ml -build"; + installPhase = "ocaml setup.ml -install"; + + meta = { + description = "Store data using OCaml notation"; + homepage = https://forge.ocamlcore.org/projects/odn/; + license = stdenv.lib.licenses.lgpl21; + platforms = ocaml.meta.platforms; + maintainers = with stdenv.lib.maintainers; [ + z77z + ]; + }; +} diff --git a/pkgs/development/tools/ocaml/oasis/default.nix b/pkgs/development/tools/ocaml/oasis/default.nix new file mode 100644 index 000000000000..3ab935705a2d --- /dev/null +++ b/pkgs/development/tools/ocaml/oasis/default.nix @@ -0,0 +1,32 @@ +{stdenv, fetchurl, ocaml, findlib, ocaml_data_notation, ocaml_typeconv, + ocamlmod, ocamlify, ounit, expect}: + +stdenv.mkDerivation { + name = "ocaml-oasis-0.4.1"; + + src = fetchurl { + url = http://forge.ocamlcore.org/frs/download.php/1355/oasis-0.4.1.tar.gz; + sha256 = "1lsnw9f1jh6106kphxg40qp0sia6cbkbb9ahs5y6ifnfkmllkjhj"; + }; + + createFindlibDestdir = true; + + buildInputs = + [ + ocaml findlib ocaml_data_notation ocaml_typeconv ocamlmod ocamlify ounit + ]; + + configurePhase = "ocaml setup.ml -configure --prefix $out"; + buildPhase = "ocaml setup.ml -build"; + installPhase = "ocaml setup.ml -install"; + + meta = { + homepage = http://oasis.forge.ocamlcore.org/; + description = "Configure, build and install system for OCaml projects"; + license = stdenv.lib.licenses.lgpl21; + platforms = ocaml.meta.platforms; + maintainers = with stdenv.lib.maintainers; [ + z77z + ]; + }; +} diff --git a/pkgs/development/tools/ocaml/ocamlify/default.nix b/pkgs/development/tools/ocaml/ocamlify/default.nix new file mode 100644 index 000000000000..88b7451e0f00 --- /dev/null +++ b/pkgs/development/tools/ocaml/ocamlify/default.nix @@ -0,0 +1,26 @@ +{stdenv, fetchurl, ocaml, findlib, ounit}: + +stdenv.mkDerivation { + name = "ocamlify-0.0.2"; + + src = fetchurl { + url = http://forge.ocamlcore.org/frs/download.php/1209/ocamlify-0.0.2.tar.gz; + sha256 = "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii"; + }; + + buildInputs = [ocaml findlib ounit]; + + configurePhase = "ocaml setup.ml -configure --prefix $out"; + buildPhase = "ocaml setup.ml -build"; + installPhase = "ocaml setup.ml -install"; + + meta = { + homepage = http://forge.ocamlcore.org/projects/ocamlmod/ocamlmod; + description = "Generate OCaml modules from source files"; + platforms = ocaml.meta.platforms; + license = stdenv.lib.licenses.lgpl21; + maintainers = with stdenv.lib.maintainers; [ + z77z + ]; + }; +} diff --git a/pkgs/development/tools/ocaml/ocamlmod/default.nix b/pkgs/development/tools/ocaml/ocamlmod/default.nix new file mode 100644 index 000000000000..d72df18f8992 --- /dev/null +++ b/pkgs/development/tools/ocaml/ocamlmod/default.nix @@ -0,0 +1,25 @@ +{stdenv, fetchurl, ocaml, findlib, ounit}: + +stdenv.mkDerivation { + name = "ocamlmod-0.0.7"; + + src = fetchurl { + url = http://forge.ocamlcore.org/frs/download.php/1350/ocamlmod-0.0.7.tar.gz; + sha256 = "11kg7wh0gy492ma5c6bcjh6frv1a9lh9f26hiys2i0d1ky8s0ad3"; + }; + + buildInputs = [ocaml findlib ounit]; + + configurePhase = "ocaml setup.ml -configure --prefix $out"; + buildPhase = "ocaml setup.ml -build"; + installPhase = "ocaml setup.ml -install"; + + meta = { + homepage = http://forge.ocamlcore.org/projects/ocamlmod/ocamlmod; + description = "Generate OCaml modules from source files"; + platforms = ocaml.meta.platforms; + maintainers = with stdenv.lib.maintainers; [ + z77z + ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4a41cebc7d5f..08b4f1efb10a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2903,18 +2903,26 @@ let ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { }; + ocaml_data_notation = callPackage ../development/ocaml-modules/odn { }; + ocaml_expat = callPackage ../development/ocaml-modules/expat { }; ocamlgraph = callPackage ../development/ocaml-modules/ocamlgraph { }; ocaml_http = callPackage ../development/ocaml-modules/http { }; + ocamlify = callPackage ../development/tools/ocaml/ocamlify { }; + ocaml_lwt = callPackage ../development/ocaml-modules/lwt { }; + ocamlmod = callPackage ../development/tools/ocaml/ocamlmod { }; + ocaml_mysql = callPackage ../development/ocaml-modules/mysql { }; ocamlnet = callPackage ../development/ocaml-modules/ocamlnet { }; + ocaml_oasis = callPackage ../development/tools/ocaml/oasis { }; + ocaml_pcre = callPackage ../development/ocaml-modules/pcre { inherit pcre; };