diff --git a/pkgs/development/ocaml-modules/bitstring/camlp4-git.patch b/pkgs/development/ocaml-modules/bitstring/camlp4-git.patch new file mode 100644 index 000000000000..24d2e362dfac --- /dev/null +++ b/pkgs/development/ocaml-modules/bitstring/camlp4-git.patch @@ -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 $@ + diff --git a/pkgs/development/ocaml-modules/bitstring/default.nix b/pkgs/development/ocaml-modules/bitstring/default.nix new file mode 100644 index 000000000000..2dc1b515c033 --- /dev/null +++ b/pkgs/development/ocaml-modules/bitstring/default.nix @@ -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 ./srcdir.patch ]; + + buildInputs = [time autoconf automake]; + doCheck = true; + + createFindlibDestdir = true; + hasSharedObjects = true; + + preConfigure = "./bootstrap"; + + 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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f694349f9a3d..11f2783eabf9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4976,7 +4976,13 @@ in bolt = callPackage ../development/ocaml-modules/bolt { }; - bitstring = callPackage ../development/ocaml-modules/bitstring/2.0.4.nix { }; + 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 { };