From fc43239c56f1a6f1601bd518dba49114d4c12b32 Mon Sep 17 00:00:00 2001 From: Jirka Marsik Date: Wed, 29 Oct 2014 19:35:23 +0100 Subject: [PATCH 1/4] Added ocaml-otfm-0.2.0 --- .../ocaml-modules/otfm/default.nix | 47 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 49 insertions(+) create mode 100644 pkgs/development/ocaml-modules/otfm/default.nix diff --git a/pkgs/development/ocaml-modules/otfm/default.nix b/pkgs/development/ocaml-modules/otfm/default.nix new file mode 100644 index 000000000000..dbe9146d8501 --- /dev/null +++ b/pkgs/development/ocaml-modules/otfm/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, ocaml, findlib, opam, uutf }: + +let + inherit (stdenv.lib) getVersion versionAtLeast; + + pname = "otfm"; + version = "0.2.0"; + webpage = "http://erratique.ch/software/${pname}"; +in + +assert versionAtLeast (getVersion ocaml) "4.01.0"; + +stdenv.mkDerivation rec { + + name = "ocaml-${pname}-${version}"; + + src = fetchurl { + url = "${webpage}/releases/${pname}-${version}.tbz"; + sha256 = "1wgi9plf98gd7x3b7fzjxds089sivsap97bl1bw2lj73nxwnyb9c"; + }; + + buildInputs = [ ocaml findlib opam uutf ]; + + createFindlibDestdir = true; + + unpackCmd = "tar xjf $src"; + + buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true"; + + installPhase = '' + opam-installer --script --prefix=$out ${pname}.install | sh + ln -s $out/lib/${pname} $out/lib/ocaml/${getVersion ocaml}/site-lib/${pname} + ''; + + meta = with stdenv.lib; { + description = "OpenType font decoder for OCaml"; + longDescription = '' + Otfm is an in-memory decoder for the OpenType font data format. It + provides low-level access to font tables and functions to decode some + of them. + ''; + homepage = "${webpage}"; + platforms = ocaml.meta.platforms; + license = licenses.bsd3; + maintainers = [ maintainers.jirkamarsik ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4343f147a479..9c28ec83c85c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3605,6 +3605,8 @@ let ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { }; + otfm = callPackage ../development/ocaml-modules/otfm { }; + ounit = callPackage ../development/ocaml-modules/ounit { }; tyxml = callPackage ../development/ocaml-modules/tyxml { }; From d48dd17c5e66c6f869a49431fb20785719d307ca Mon Sep 17 00:00:00 2001 From: Jirka Marsik Date: Wed, 29 Oct 2014 20:15:39 +0100 Subject: [PATCH 2/4] Added gg-0.9.0 --- pkgs/development/ocaml-modules/gg/default.nix | 48 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 50 insertions(+) create mode 100644 pkgs/development/ocaml-modules/gg/default.nix diff --git a/pkgs/development/ocaml-modules/gg/default.nix b/pkgs/development/ocaml-modules/gg/default.nix new file mode 100644 index 000000000000..a40d4ae79784 --- /dev/null +++ b/pkgs/development/ocaml-modules/gg/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl, ocaml, findlib, opam }: + +let + inherit (stdenv.lib) getVersion versionAtLeast; + + pname = "gg"; + version = "0.9.0"; + webpage = "http://erratique.ch/software/${pname}"; +in + +assert versionAtLeast (getVersion ocaml) "4.01.0"; + +stdenv.mkDerivation rec { + + name = "ocaml-${pname}-${version}"; + + src = fetchurl { + url = "${webpage}/releases/${pname}-${version}.tbz"; + sha256 = "055pza6jbjjj7wgzf7pbn0ccxw76i8w5b2bcnaz8b9m4x6jaa6gh"; + }; + + buildInputs = [ ocaml findlib opam ]; + + createFindlibDestdir = true; + + unpackCmd = "tar xjf $src"; + + buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true"; + + installPhase = '' + opam-installer --script --prefix=$out ${pname}.install | sh + ln -s $out/lib/${pname} $out/lib/ocaml/${getVersion ocaml}/site-lib/${pname} + ''; + + meta = with stdenv.lib; { + description = "Basic types for computer graphics in OCaml"; + longDescription = '' + Gg is an OCaml module providing basic types for computer graphics. It + defines types and functions for floats, vectors, points, sizes, + matrices, quaternions, axis aligned boxes, colors, color spaces, and + raster data. + ''; + homepage = "${webpage}"; + platforms = ocaml.meta.platforms; + license = licenses.bsd3; + maintainers = [ maintainers.jirkamarsik ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9c28ec83c85c..d36099eb5bf6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3527,6 +3527,8 @@ let patoline = callPackage ../tools/typesetting/patoline { }; + gg = callPackage ../development/ocaml-modules/gg { }; + gmetadom = callPackage ../development/ocaml-modules/gmetadom { }; js_of_ocaml = callPackage ../development/tools/ocaml/js_of_ocaml { }; From 0832152742242d846fab63772adbe88cd5b28f92 Mon Sep 17 00:00:00 2001 From: Jirka Marsik Date: Wed, 29 Oct 2014 20:50:27 +0100 Subject: [PATCH 3/4] ocaml-uutf as propagatedBuildInput of ocaml-otfm --- pkgs/development/ocaml-modules/otfm/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/ocaml-modules/otfm/default.nix b/pkgs/development/ocaml-modules/otfm/default.nix index dbe9146d8501..5a118c0bcd89 100644 --- a/pkgs/development/ocaml-modules/otfm/default.nix +++ b/pkgs/development/ocaml-modules/otfm/default.nix @@ -19,7 +19,9 @@ stdenv.mkDerivation rec { sha256 = "1wgi9plf98gd7x3b7fzjxds089sivsap97bl1bw2lj73nxwnyb9c"; }; - buildInputs = [ ocaml findlib opam uutf ]; + buildInputs = [ ocaml findlib opam ]; + + propagatedBuildInputs = [ uutf ]; createFindlibDestdir = true; From d9f0e1688301910d333528b84d46a6adae2f05a6 Mon Sep 17 00:00:00 2001 From: Jirka Marsik Date: Wed, 29 Oct 2014 21:15:50 +0100 Subject: [PATCH 4/4] Added ocaml-vg-0.8.1 --- pkgs/development/ocaml-modules/vg/default.nix | 62 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/development/ocaml-modules/vg/default.nix diff --git a/pkgs/development/ocaml-modules/vg/default.nix b/pkgs/development/ocaml-modules/vg/default.nix new file mode 100644 index 000000000000..bfff4c68cef9 --- /dev/null +++ b/pkgs/development/ocaml-modules/vg/default.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchurl, ocaml, findlib, opam, gg, uutf, otfm, js_of_ocaml, + pdfBackend ? true, # depends on uutf and otfm + htmlcBackend ? true # depends on js_of_ocaml +}: + +let + inherit (stdenv.lib) getVersion optionals versionAtLeast; + + pname = "vg"; + version = "0.8.1"; + webpage = "http://erratique.ch/software/${pname}"; +in + +assert versionAtLeast (getVersion ocaml) "4.01.0"; + +stdenv.mkDerivation rec { + + name = "ocaml-${pname}-${version}"; + + src = fetchurl { + url = "${webpage}/releases/${pname}-${version}.tbz"; + sha256 = "1cdcvsr5z8845ndilnrz7p4n6yn4gv2p91z2mgi4vrailcmn5vzd"; + }; + + buildInputs = [ ocaml findlib opam ]; + + propagatedBuildInputs = [ gg ] + ++ optionals pdfBackend [ uutf otfm ] + ++ optionals htmlcBackend [ js_of_ocaml ]; + + createFindlibDestdir = true; + + unpackCmd = "tar xjf $src"; + + buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true" + + (if pdfBackend then " uutf=true otfm=true" + else " uutf=false otfm=false") + + (if htmlcBackend then " jsoo=true" + else " jsoo=false"); + + installPhase = '' + opam-installer --script --prefix=$out ${pname}.install | sh + ln -s $out/lib/${pname} $out/lib/ocaml/${getVersion ocaml}/site-lib/${pname} + ''; + + meta = with stdenv.lib; { + description = "Declarative 2D vector graphics for OCaml"; + longDescription = '' + Vg is an OCaml module for declarative 2D vector graphics. In Vg, images + are values that denote functions mapping points of the cartesian plane + to colors. The module provides combinators to define and compose these + values. + + Renderers for PDF, SVG and the HTML canvas are distributed with the + module. An API allows to implement new renderers. + ''; + homepage = "${webpage}"; + platforms = ocaml.meta.platforms; + license = licenses.bsd3; + maintainers = [ maintainers.jirkamarsik ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d36099eb5bf6..7c8c8599c6af 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3657,6 +3657,9 @@ let uucd = callPackage ../development/ocaml-modules/uucd { }; uunf = callPackage ../development/ocaml-modules/uunf { }; uutf = callPackage ../development/ocaml-modules/uutf { }; + + vg = callPackage ../development/ocaml-modules/vg { }; + xmlm = callPackage ../development/ocaml-modules/xmlm { }; yojson = callPackage ../development/ocaml-modules/yojson { };