From 6636dfa845f0290cc8fb7c8c59e9e33d12ef2269 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sun, 4 Dec 2016 11:13:32 +0000 Subject: [PATCH] ocamlPackages.ocb-stubblr: init at 0.1.0 --- .../ocaml-modules/ocb-stubblr/default.nix | 26 +++++++++++++++++++ .../ocb-stubblr/pkg-config.patch | 25 ++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 3 files changed, 53 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ocb-stubblr/default.nix create mode 100644 pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch diff --git a/pkgs/development/ocaml-modules/ocb-stubblr/default.nix b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix new file mode 100644 index 00000000000..bb4b24cec67 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, opam, topkg, astring }: + +stdenv.mkDerivation { + name = "ocaml${ocaml.version}-ocb-stubblr-0.1.0"; + src = fetchzip { + url = http://github.com/pqwy/ocb-stubblr/releases/download/v0.1.0/ocb-stubblr-0.1.0.tbz; + name = "src.tar.bz"; + sha256 = "0hpds1lkq4j8wgslv7hnirgfrjmqi36h5rarpw9mwf24gfp5ays2"; + }; + + patches = [ ./pkg-config.patch ]; + + buildInputs = [ ocaml findlib ocamlbuild opam topkg ]; + + propagatedBuildInputs = [ astring ]; + + inherit (topkg) buildPhase installPhase; + + meta = { + description = "OCamlbuild plugin for C stubs"; + homepage = https://github.com/pqwy/ocb-stubblr; + license = stdenv.lib.licenses.isc; + inherit (ocaml.meta) platforms; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + }; +} diff --git a/pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch b/pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch new file mode 100644 index 00000000000..d86b3f8da9f --- /dev/null +++ b/pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch @@ -0,0 +1,25 @@ +--- a/src/ocb_stubblr.ml 1970-01-01 00:00:01.000000000 +0000 ++++ b/src/ocb_stubblr.ml 2016-12-04 11:10:10.000000000 +0000 +@@ -31,20 +31,9 @@ + + (* XXX Would be nice to move pkg-config results to a build artefact. *) + +- let opam_prefix = +- let cmd = "opam config var prefix" in +- lazy ( try run_and_read cmd with Failure _ -> +- error_msgf "error running opam") +- +- let var = "PKG_CONFIG_PATH" +- +- let path () = +- Lazy.force opam_prefix / "lib" / "pkgconfig" :: +- (try [Sys.getenv var] with Not_found -> []) |> String.concat ~sep:":" +- + let run ~flags package = +- let cmd = strf "%s=%s pkg-config %s %s 2>/dev/null" +- var (path ()) package (String.concat ~sep:" " flags) in ++ let cmd = strf "pkg-config %s %s 2>/dev/null" ++ package (String.concat ~sep:" " flags) in + try `Res (run_and_read cmd) with Failure _ -> `Nonexistent + end + diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 91e349eede9..583cbab0b34 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -414,6 +414,8 @@ let minimal = false; }; + ocb-stubblr = callPackage ../development/ocaml-modules/ocb-stubblr { }; + ocurl = callPackage ../development/ocaml-modules/ocurl { }; pa_ounit = callPackage ../development/ocaml-modules/pa_ounit { };