Merge pull request #8291 from maurer/misc-ocaml

Add miscellaneous OCaml Packages
This commit is contained in:
vbgl 2015-06-27 18:52:03 +02:00
commit 742824bd78
12 changed files with 335 additions and 0 deletions

View file

@ -145,6 +145,7 @@
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
marcweber = "Marc Weber <marco-oweber@gmx.de>";
maurer = "Matthew Maurer <matthew.r.maurer+nix@gmail.com>";
matejc = "Matej Cotman <cotman.matej@gmail.com>";
matthiasbeyer = "Matthias Beyer <mail@beyermatthias.de>";
mbakke = "Marius Bakke <ymse@tuta.io>";

View file

@ -0,0 +1,25 @@
{stdenv, fetchurl, buildOcaml, time}:
buildOcaml rec {
name = "bitstring";
version = "2.0.4";
src = fetchurl {
url = "http://bitstring.googlecode.com/files/ocaml-bitstring-${version}.tar.gz";
sha256 = "0mapzn2ls5qcrzjm1az50lqjj76ldkmz4fbv2phc9w6smab50qy5";
};
patches = [ ./camlp4.patch ./meta.patch ];
buildInputs = [time];
doCheck = true;
createFindlibDestdir = true;
hasSharedObjects = true;
meta = with stdenv.lib; {
description = "This library adds Erlang-style bitstrings and matching over bitstrings as a syntax extension and library for OCaml.";
homepage = http://code.google.com/p/bitstring/;
license = licenses.lgpl21Plus;
maintainers = [ maintainers.maurer ];
};
}

View file

@ -0,0 +1,44 @@
diff --git a/Makefile.in b/Makefile.in
index d040f4c..cc1a8f5 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -40,7 +40,7 @@ pkg_extlib = @OCAML_PKG_extlib@
enable_coverage = @enable_coverage@
OCAMLCFLAGS = -g
-OCAMLCPACKAGES =
+OCAMLCPACKAGES = -package camlp4
OCAMLCLIBS = -linkpkg
OCAMLOPTFLAGS = $(OCAMLCFLAGS)
OCAMLOPTPACKAGES = $(OCAMLCPACKAGES)
@@ -110,12 +110,13 @@ bitstring_persistent.cmi: bitstring_persistent.mli
-I +camlp4 -pp camlp4of -c $<
pa_bitstring.cmo: pa_bitstring.ml bitstring.cma bitstring_persistent.cma
- $(OCAMLFIND) ocamlc bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
+ $(OCAMLFIND) ocamlc $(OCAMLCPACKAGES) \
+ bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
-pp camlp4of -c $< -o $@
bitstring-objinfo: bitstring_objinfo.cmo bitstring.cma bitstring_persistent.cma
$(OCAMLFIND) ocamlc -I +camlp4 unix.cma dynlink.cma camlp4lib.cma \
- $(OCAMLCFLAGS) $(OCAMLCLIBS) \
+ $(OCAMLCFLAGS) $(OCAMLCLIBS) $(OCAMLCPACKAGES) \
bitstring.cma bitstring_persistent.cma \
$< -o $@
@@ -158,12 +159,13 @@ tests/test.bmpp: create_test_pattern
create_test_pattern: create_test_pattern.cmo
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -pp camlp4of \
- unix.cma -I +camlp4 dynlink.cma camlp4lib.cma \
+ unix.cma -I `ocamlfind query camlp4` dynlink.cma camlp4lib.cma \
$(OCAMLCLIBS) \
-I . bitstring.cma bitstring_persistent.cma $< -o $@
create_test_pattern.cmo: create_test_pattern.ml
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -pp camlp4of \
+ $(OCAMLCPACKAGES) \
unix.cma -I +camlp4 \
-I . -c $< -o $@

View file

@ -0,0 +1,84 @@
diff -rupN ocaml-bitstring-2.0.4.orig/camlp4.patch ocaml-bitstring-2.0.4/camlp4.patch
--- ocaml-bitstring-2.0.4.orig/camlp4.patch 1970-01-01 00:00:00.000000000 +0000
+++ ocaml-bitstring-2.0.4/camlp4.patch 2015-06-10 18:06:54.016000000 +0000
@@ -0,0 +1,31 @@
+--- Makefile.in 2015-06-10 20:05:26.603000000 +0200
++++ ../bs-old/Makefile.in 2013-05-14 17:42:32.000000000 +0200
+@@ -40,10 +40,10 @@
+ enable_coverage = @enable_coverage@
+
+ OCAMLCFLAGS = -g
+-OCAMLCPACKAGES = -package camlp4
++OCAMLCPACKAGES =
+ OCAMLCLIBS = -linkpkg
+ OCAMLOPTFLAGS =
+-OCAMLOPTPACKAGES = -package camlp4
++OCAMLOPTPACKAGES =
+ OCAMLOPTLIBS = -linkpkg
+
+ ifneq ($(enable_coverage),no)
+@@ -110,13 +110,12 @@
+ -I +camlp4 -pp camlp4of -c $<
+
+ pa_bitstring.cmo: pa_bitstring.ml bitstring.cma bitstring_persistent.cma
+- $(OCAMLFIND) ocamlc $(OCAMLCPACKAGES) \
+- bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
++ $(OCAMLFIND) ocamlc bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
+ -pp camlp4of -c $< -o $@
+
+ bitstring-objinfo: bitstring_objinfo.cmo bitstring.cma bitstring_persistent.cma
+ $(OCAMLFIND) ocamlc -I +camlp4 unix.cma dynlink.cma camlp4lib.cma \
+- $(OCAMLCPACKAGES) $(OCAMLCLIBS) \
++ $(OCAMLCLIBS) \
+ bitstring.cma bitstring_persistent.cma \
+ $< -o $@
+
diff -rupN ocaml-bitstring-2.0.4.orig/Makefile.in ocaml-bitstring-2.0.4/Makefile.in
--- ocaml-bitstring-2.0.4.orig/Makefile.in 2013-05-14 15:42:32.000000000 +0000
+++ ocaml-bitstring-2.0.4/Makefile.in 2015-06-25 20:05:52.759000000 +0000
@@ -40,10 +40,10 @@ pkg_extlib = @OCAML_PKG_extlib@
enable_coverage = @enable_coverage@
OCAMLCFLAGS = -g
-OCAMLCPACKAGES =
+OCAMLCPACKAGES = -package camlp4
OCAMLCLIBS = -linkpkg
OCAMLOPTFLAGS =
-OCAMLOPTPACKAGES =
+OCAMLOPTPACKAGES = -package camlp4
OCAMLOPTLIBS = -linkpkg
ifneq ($(enable_coverage),no)
@@ -110,12 +110,13 @@ bitstring_persistent.cmi: bitstring_pers
-I +camlp4 -pp camlp4of -c $<
pa_bitstring.cmo: pa_bitstring.ml bitstring.cma bitstring_persistent.cma
- $(OCAMLFIND) ocamlc bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
+ $(OCAMLFIND) ocamlc $(OCAMLCPACKAGES) \
+ bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
-pp camlp4of -c $< -o $@
bitstring-objinfo: bitstring_objinfo.cmo bitstring.cma bitstring_persistent.cma
$(OCAMLFIND) ocamlc -I +camlp4 unix.cma dynlink.cma camlp4lib.cma \
- $(OCAMLCLIBS) \
+ $(OCAMLCPACKAGES) $(OCAMLCLIBS) \
bitstring.cma bitstring_persistent.cma \
$< -o $@
@@ -158,13 +159,13 @@ tests/test.bmpp: create_test_pattern
create_test_pattern: create_test_pattern.cmo
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -pp camlp4of \
- unix.cma -I +camlp4 dynlink.cma camlp4lib.cma \
- $(OCAMLCLIBS) \
+ unix.cma -I `$(OCAMLFIND) query camlp4` dynlink.cma camlp4lib.cma \
+ $(OCAMLCLIBS) $(OCAMLCPACKAGES) \
-I . bitstring.cma bitstring_persistent.cma $< -o $@
create_test_pattern.cmo: create_test_pattern.ml
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -pp camlp4of \
- unix.cma -I +camlp4 \
+ unix.cma -I `$(OCAMLFIND) query camlp4` $(OCAMLCPACKAGES) \
-I . -c $< -o $@
# Coverage of tests.

View file

@ -0,0 +1,28 @@
{stdenv, fetchgit, buildOcaml, time, autoconf, automake}:
buildOcaml rec {
name = "bitstring";
version = "f1673f8";
src = fetchgit {
url = "https://code.google.com/p/bitstring/";
rev = "f1673f8";
sha256 = "1lh97qf1b7mq64pxkphr2w91ri5hfwg58cpjb2xd8a453c9jylw4";
};
patches = [ ./camlp4-git.patch ./meta.patch ];
buildInputs = [time autoconf automake];
doCheck = true;
createFindlibDestdir = true;
hasSharedObjects = true;
preConfigure = "./bootstrap; echo breakhash";
meta = with stdenv.lib; {
description = "This library adds Erlang-style bitstrings and matching over bitstrings as a syntax extension and library for OCaml.";
homepage = http://code.google.com/p/bitstring/;
license = licenses.lgpl21Plus;
maintainers = [ maintainers.maurer ];
};
}

View file

@ -0,0 +1,15 @@
diff -rupN ocaml-bitstring-2.0.4/META.in ocaml-bitstring-2.0.4.new/META.in
--- ocaml-bitstring-2.0.4/META.in 2013-05-14 17:42:32.000000000 +0200
+++ ocaml-bitstring-2.0.4.new/META.in 2015-06-11 17:26:11.674000000 +0200
@@ -15,8 +15,8 @@ package "persistent" (
package "syntax" (
version = "@PACKAGE_VERSION@"
- requires = "camlp4"
+ requires = "camlp4, bitstring.persistent, bitstring"
description = "Syntax extension: bitstring operators"
- archive(syntax,preprocessor) = "-parser o -parser op -printer p unix.cma bitstring.cma bitstring_persistent.cma pa_bitstring.cmo"
- archive(syntax,toploop) = "unix.cma bitstring.cma bitstring_persistent.cma pa_bitstring.cmo"
+ archive(syntax,preprocessor) = "-parser o -parser op -printer p pa_bitstring.cmo"
+ archive(syntax,toploop) = "pa_bitstring.cmo"
)

View file

@ -0,0 +1,24 @@
{stdenv, buildOcaml, fetchurl, herelib, camlp4}:
buildOcaml rec {
minimumSupportedOcamlVersion = "4.00";
name = "faillib";
version = "111.17.00";
src = fetchurl {
url = "https://github.com/janestreet/faillib/archive/${version}.tar.gz";
sha256 = "12dvaxkmgf7yzzvbadcyk1n17llgh6p8qr33867d21npaljy7l9v";
};
propagatedBuildInputs = [ camlp4 herelib ];
doCheck = true;
checkPhase = "make test";
meta = with stdenv.lib; {
homepage = https://ocaml.janestreet.com/;
description = "Library for dealing with failure in OCaml";
license = licenses.asl20;
maintainers = [ maintainers.maurer ];
};
}

View file

@ -0,0 +1,24 @@
{stdenv, fetchurl, ocaml, findlib, piqi, ulex, easy-format, xmlm, base64, camlp4}:
stdenv.mkDerivation rec {
version = "0.7.4";
name = "piqi-ocaml-${version}";
src = fetchurl {
url = "https://github.com/alavrik/piqi-ocaml/archive/v${version}.tar.gz";
sha256 = "064c74f031l847q6s1vilj77n7h7i84jn8c83yid9nha3dssaf7m";
};
buildInputs = [ocaml findlib piqi base64 camlp4];
createFindlibDestdir = true;
installPhase = "DESTDIR=$out make install";
meta = with stdenv.lib; {
homepage = http://piqi.org;
description = "Universal schema language and a collection of tools built around it. These are the ocaml bindings.";
license = licenses.asl20;
maintainers = [ maintainers.maurer ];
};
}

View file

@ -0,0 +1,30 @@
{stdenv, fetchurl, ocaml, findlib, camlp4, which, ulex, easy-format, ocaml_optcomp, xmlm, base64}:
stdenv.mkDerivation rec {
version = "0.6.12";
name = "piqi-${version}";
src = fetchurl {
url = "https://github.com/alavrik/piqi/archive/v${version}.tar.gz";
sha256 = "1ifnawnblvibf5rgp6gr4f20266dckfrlryikg1iiq3dx2wfl7f8";
};
buildInputs = [ocaml findlib camlp4 which ocaml_optcomp base64];
propagatedBuildInputs = [ulex xmlm easy-format];
patches = [ ./no-ocamlpath-override.patch ];
createFindlibDestdir = true;
installPhase = ''
make install;
make ocaml-install;
'';
meta = with stdenv.lib; {
homepage = http://piqi.org;
description = "Universal schema language and a collection of tools built around it.";
license = licenses.asl20;
maintainers = [ maintainers.maurer ];
};
}

View file

@ -0,0 +1,17 @@
diff -rupN piqi-0.6.12.orig/make/Makefile.ocaml piqi-0.6.12/make/Makefile.ocaml
--- piqi-0.6.12.orig/make/Makefile.ocaml 2015-03-13 13:35:19.000000000 +0100
+++ piqi-0.6.12/make/Makefile.ocaml 2015-06-10 21:19:57.231000000 +0200
@@ -1,13 +1,5 @@
OCAMLMAKEFILE := $(PIQI_ROOT)/make/OCamlMakefile
-
-OCAMLPATH := $(PIQI_BUILD)/lib/ocaml
-ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64))
-OCAMLPATH := $(shell cygpath -w $(OCAMLPATH))
-endif
-export OCAMLPATH
-
-
# make sure camlp4o produces pretty-printed text instead of AST
export CAMLP4_O = $(CAMLP4)o -printer o

View file

@ -0,0 +1,28 @@
{stdenv, fetchurl, ocaml, findlib}:
stdenv.mkDerivation rec {
version = "0.9.5";
name = "uuidm-${version}";
src = fetchurl {
url = "http://erratique.ch/software/uuidm/releases/uuidm-${version}.tbz";
sha256 = "03bgxs119bphv9ggg97nsl5m61s43ixgby05hhggv16iadx9zndm";
};
unpackCmd = "tar -xf $curSrc";
buildInputs = [ocaml findlib];
configurePhase = "ocaml setup.ml -configure --prefix $prefix";
buildPhase = "ocaml setup.ml -build";
installPhase = "ocaml setup.ml -install";
createFindlibDestdir = true;
meta = with stdenv.lib; {
description = "An OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.";
homepage = http://erratique.ch/software/uuidm;
license = licenses.bsd3;
platforms = ocaml.meta.platforms;
maintainers = [ maintainers.maurer ];
};
}

View file

@ -4213,6 +4213,14 @@ let
bolt = callPackage ../development/ocaml-modules/bolt { };
bitstring_2_0_4 = callPackage ../development/ocaml-modules/bitstring/2.0.4.nix { };
bitstring_git = callPackage ../development/ocaml-modules/bitstring { };
bitstring =
if lib.versionOlder "4.02" ocaml_version
then bitstring_git
else bitstring_2_0_4;
camlidl = callPackage ../development/tools/ocaml/camlidl { };
camlp4 =
@ -4318,6 +4326,8 @@ let
lwt = ocaml_lwt;
};
faillib = callPackage ../development/ocaml-modules/faillib { };
fieldslib = callPackage ../development/ocaml-modules/fieldslib { };
fileutils = callPackage ../development/ocaml-modules/fileutils { };
@ -4470,6 +4480,9 @@ let
ounit = callPackage ../development/ocaml-modules/ounit { };
piqi = callPackage ../development/ocaml-modules/piqi { };
piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
re2 = callPackage ../development/ocaml-modules/re2 { };
tyxml = callPackage ../development/ocaml-modules/tyxml { };
@ -4544,6 +4557,8 @@ let
utop = callPackage ../development/tools/ocaml/utop { };
uuidm = callPackage ../development/ocaml-modules/uuidm { };
sawja = callPackage ../development/ocaml-modules/sawja { };
uucd = callPackage ../development/ocaml-modules/uucd { };