New ocaml packages:

- ocaml-cairo
- camlimages
- dypgen
- patoline
wip/yesman
Christophe Raffalli 11 years ago
parent 43faad8063
commit 270d929089
  1. 43
      pkgs/development/ocaml-modules/camlimages/default.nix
  2. 33
      pkgs/development/ocaml-modules/dypgen/default.nix
  3. 117
      pkgs/development/ocaml-modules/lablgl/Makefile.config.patch
  4. 45
      pkgs/development/ocaml-modules/lablgl/default.nix
  5. 16
      pkgs/development/ocaml-modules/ocaml-cairo/META.patch
  6. 44
      pkgs/development/ocaml-modules/ocaml-cairo/default.nix
  7. 51
      pkgs/tools/typesetting/patoline/default.nix
  8. 10
      pkgs/top-level/all-packages.nix

@ -0,0 +1,43 @@
{stdenv, fetchurl, omake, ocaml, omake_rc1, libtiff, libjpeg, libpng_apng, giflib, findlib, libXpm, freetype, graphicsmagick, ghostscript }:
let
ocaml_version = (builtins.parseDrvName ocaml.name).version;
pname = "camlimages";
version = "4.0.1";
in
stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl {
url = "https://bitbucket.org/camlspotter/camlimages/get/v4.0.1.tar.gz";
sha256 = "b40237c1505487049799a7af296eb3996b3fa08eab94415546f46d61355747c4";
};
buildInputs = [ocaml omake_rc1 findlib graphicsmagick ghostscript ];
propagatedbuildInputs = [libtiff libjpeg libpng_apng giflib freetype libXpm ];
createFindlibDestdir = true;
preConfigure = ''
rm ./configure
'';
buildPhase = ''
omake
'';
installPhase = ''
omake install
'';
#makeFlags = "BINDIR=$(out)/bin MANDIR=$(out)/usr/share/man/man1 DYPGENLIBDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib";
meta = {
homepage = http://cristal.inria.fr/camlimages;
description = "Image manipulation library";
license = "GnuGPLV2";
# maintainers = [ stdenv.lib.maintainers.roconnor ];
};
}

@ -0,0 +1,33 @@
{stdenv, fetchurl, ocaml, findlib}:
let
ocaml_version = (builtins.parseDrvName ocaml.name).version;
pname = "dypgen";
version = "20120619-1";
in
stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl {
url = "http://dypgen.free.fr/dypgen-20120619-1.tar.bz2";
sha256 = "ecb53d6e469e9ec4d57ee6323ff498d45b78883ae13618492488e7c5151fdd97";
};
buildInputs = [ocaml findlib];
createFindlibDestdir = true;
buildPhase = ''
make
'';
makeFlags = "BINDIR=$(out)/bin MANDIR=$(out)/usr/share/man/man1 DYPGENLIBDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib";
meta = {
homepage = http://dypgen.free.fr;
description = "Dypgen GLR self extensible parser generator";
license = "CeCILL-B_V1";
# maintainers = [ stdenv.lib.maintainers.roconnor ];
};
}

@ -0,0 +1,117 @@
diff -Naur lablGL.ori/Makefile.config lablGL/Makefile.config
--- lablGL.ori/Makefile.config 1970-01-01 01:00:00.000000000 +0100
+++ lablGL/Makefile.config 2013-06-02 08:13:10.000000000 +0200
@@ -0,0 +1,63 @@
+# LablGL and Togl configuration file
+#
+# Please have a look at the config/Makefile in the Objective Caml distribution,
+# or at the labltklink script to get the information needed here
+#
+
+##### Adjust these always
+
+# Uncomment if you have the fast ".opt" compilers
+#CAMLC = ocamlc.opt
+#CAMLOPT = ocamlopt.opt
+
+# Where to put the lablgl script
+BINDIR = @BINDIR@
+
+# Where to find X headers
+XINCLUDES = @XINCLUDES@
+# X libs (for broken RTLD_GLOBAL: e.g. FreeBSD 4.0)
+#XLIBS = -L/usr/X11R6/lib -lXext -lXmu -lX11 -lXi
+
+# Where to find Tcl/Tk headers
+# This must the same version as for LablTk
+TKINCLUDES = @TKINCLUDES@
+# Tcl/Tk libs (for broken RTLD_GLOBAL: e.g. FreeBSD 4.0)
+#TKLIBS = -L/usr/local/lib -ltk84 -ltcl84
+
+# Where to find OpenGL/Mesa/Glut headers and libraries
+GLINCLUDES =
+GLLIBS = -lGL -lGLU
+GLUTLIBS = -lglut
+# The following libraries may be required (try to add them one at a time)
+#GLLIBS = -lGL -lGLU -lXmu -lXext -lXi -lcipher -lpthread
+
+# How to index a library after installing (ranlib required on MacOSX)
+RANLIB = :
+#RANLIB = ranlib
+
+##### Uncomment these for windows
+#TKLIBS = tk83.lib tcl83.lib gdi32.lib user32.lib
+#GLLIBS = opengl32.lib glu32.lib
+#TOOLCHAIN = msvc
+#XA = .lib
+#XB = .bat
+#XE = .exe
+#XO = .obj
+#XS = .dll
+
+##### Adjust these if non standard
+
+# The Objective Caml library directory
+#LIBDIR = `ocamlc -where`
+
+# Where to put dlls (if dynamic loading available)
+DLLDIR = @DLLDIR@
+
+# Where to put LablGL (standard)
+INSTALLDIR = @INSTALLDIR@
+
+# Where is Togl (default)
+#TOGLDIR = Togl
+
+# C Compiler options
+#COPTS = -c -O
diff -Naur lablGL.ori/META lablGL/META
--- lablGL.ori/META 1970-01-01 01:00:00.000000000 +0100
+++ lablGL/META 2013-06-02 22:00:59.000000000 +0200
@@ -0,0 +1,21 @@
+description = "Bindings for OpenGL graphics engines"
+version = "1.04-1"
+archive(byte) = "lablgl.cma"
+archive(native) = "lablgl.cmxa"
+
+#package "togl" (
+# description = "OpenGL widget for labltk"
+# version = "1.01"
+# requires = "lablgl, labltk"
+# archive(byte) = "togl.cma"
+# archive(native) = "togl.cmxa"
+#)
+
+package "glut" (
+ description = "Platform-independent OpenGL window"
+ version = "1.01"
+ requires = "lablgl"
+ archive(byte) = "lablglut.cma"
+ archive(native) = "lablglut.cmxa"
+)
+
diff -Naur lablGL.ori/META~ lablGL/META~
--- lablGL.ori/META~ 1970-01-01 01:00:00.000000000 +0100
+++ lablGL/META~ 2013-06-02 21:59:17.000000000 +0200
@@ -0,0 +1,21 @@
+description = "Bindings for OpenGL graphics engines"
+version = "1.04-1"
+archive(byte) = "lablgl.cma"
+archive(native) = "lablgl.cmxa"
+
+#package "togl" (
+# description = "OpenGL widget for labltk"
+# version = "1.01"
+# requires = "lablGL, labltk"
+# archive(byte) = "togl.cma"
+# archive(native) = "togl.cmxa"
+#)
+
+package "glut" (
+ description = "Platform-independent OpenGL window"
+ version = "1.01"
+ requires = "lablGL"
+ archive(byte) = "lablglut.cma"
+ archive(native) = "lablglut.cmxa"
+)
+

@ -0,0 +1,45 @@
{stdenv, fetchurl, ocaml, lablgtk, findlib, mesa, freeglut } :
let
ocaml_version = (builtins.parseDrvName ocaml.name).version;
pname = "lablgl";
version = "1.04-1";
in
stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl {
url = "http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/dist/lablgl-20120306.tar.gz";
sha256 = "1w5di2n38h7fkrf668zphnramygwl7ybjhrmww3pi9jcf9apa09r";
};
buildInputs = [ocaml findlib lablgtk mesa freeglut ];
patches = [ ./Makefile.config.patch ];
preConfigure = ''
substituteInPlace Makefile.config \
--subst-var-by BINDIR $out/bin \
--subst-var-by INSTALLDIR $out/lib/ocaml/${ocaml_version}/site-lib/lablgl \
--subst-var-by DLLDIR $out/lib/ocaml/${ocaml_version}/site-lib/lablgl/stublibs \
--subst-var-by TKINCLUDES "" \
--subst-var-by XINCLUDES ""
'';
createFindlibDestdir = true;
#makeFlags = "BINDIR=$(out)/bin MANDIR=$(out)/usr/share/man/man1 DYPGENLIBDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib";
buildFlags = "lib libopt glut glutopt";
postInstall = ''
cp ./META $out/lib/ocaml/${ocaml_version}/site-lib/lablgl
'';
meta = {
homepage = http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgl.html;
description = "OpenGL bindings for ocaml";
license = "GnuGPLV2";
# maintainers = [ stdenv.lib.maintainers.roconnor ];
};
}

@ -0,0 +1,16 @@
diff -Naur cairo-ocaml-1.2.0.ori/META cairo-ocaml-1.2.0/META
--- cairo-ocaml-1.2.0.ori/META 1970-01-01 01:00:00.000000000 +0100
+++ cairo-ocaml-1.2.0/META 2013-06-04 03:31:32.000000000 +0200
@@ -0,0 +1,12 @@
+name = "cairo-ocaml"
+description = "Bindings to the cairo library."
+version = "@VERSION@"
+archive(byte) = "cairo.cma"
+archive(native) = "cairo.cmxa"
+requires = "bigarray"
+
+package "lablgtk2" (
+ requires = "cairo lablgtk2"
+ archive(byte) = "cairo_lablgtk.cma"
+ archive(native) = "cairo_lablgtk.cmxa"
+)

@ -0,0 +1,44 @@
{stdenv, fetchurl, automake, ocaml, autoconf, gnum4, pkgconfig, freetype, lablgtk, unzip, cairo, findlib, gdk_pixbuf, glib, gtk, pango }:
let
ocaml_version = (builtins.parseDrvName ocaml.name).version;
pname = "ocaml-cairo";
version = "1.2.0";
in
stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl {
url = "http://cgit.freedesktop.org/cairo-ocaml/snapshot/cairo-ocaml-${version}.zip";
sha256 = "2d59678e322c331e3f4bc02a77240fce4a0917acb0d3ae75953a6ac62d70a125";
};
patches = [ ./META.patch ];
buildInputs = [ocaml automake gnum4 autoconf unzip pkgconfig findlib freetype lablgtk cairo gdk_pixbuf gtk pango ];
createFindlibDestdir = true;
preConfigure = ''
aclocal -I support
autoconf
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE `pkg-config --cflags cairo gdk-pixbuf glib gtk+ pango`"
export LABLGTKDIR=${lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2
cp ${lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2/pango.ml ./src
cp ${lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2/gaux.ml ./src
'';
postInstall = ''
cp META $out/lib/ocaml/${ocaml_version}/site-lib/cairo/
'';
makeFlags = "INSTALLDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib/cairo";
meta = {
homepage = http://cairographics.org/cairo-ocaml;
description = "ocaml bindings for cairo library";
license = "GnuGPLV2";
# maintainers = [ stdenv.lib.maintainers.roconnor ];
};
}

@ -0,0 +1,51 @@
{ stdenv, fetchurl, ncurses, mesa, freeglut, libzip,
ocaml, findlib, camomile,
dypgen, ocaml_sqlite3, camlzip,
lablgtk, camlimages, ocaml_cairo,
lablgl, ocamlnet, cryptokit,
ocaml_pcre }:
let
ocaml_version = (builtins.parseDrvName ocaml.name).version;
in
stdenv.mkDerivation {
name = "patoline-0.1";
src = fetchurl {
url = "http://lama.univ-savoie.fr/patoline/patoline-0.1.tar.bz";
sha256 = "c5ac8dcb87ceecaf11876bd0dd425bd0f04d43265adc2cbcb1f1e82a78846d49";
};
createFindlibDestdir = true;
buildInputs = [ ocaml findlib dypgen camomile ocaml_sqlite3 camlzip
lablgtk camlimages ocaml_cairo
lablgl ocamlnet cryptokit
ocaml_pcre ncurses mesa freeglut libzip ];
propagatedbuildInputs = [ camomile
dypgen ocaml_sqlite3 camlzip
lablgtk camlimages ocaml_cairo
lablgl ocamlnet cryptokit
ocaml_pcre ncurses mesa freeglut libzip ];
buildPhase = ''
ocaml configure.ml \
--prefix $out \
--ocaml-libs $out/lib/ocaml/${ocaml_version}/site-lib \
--ocamlfind-dir $out/lib/ocaml/${ocaml_version}/site-lib \
--fonts-dir $out/share/patoline/fonts \
--grammars-dir $out/share/patoline/grammars \
--hyphen-dir $out/share/patoline/hyphen
make
'';
meta = {
homepage = http://patoline.com;
description = "Patoline ocaml based typesetting system";
};
}

@ -2699,12 +2699,22 @@ let
camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { };
camomile = callPackage ../development/ocaml-modules/camomile { };
camlimages = callPackage ../development/ocaml-modules/camlimages { };
ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
findlib = callPackage ../development/tools/ocaml/findlib { };
dypgen = callPackage ../development/ocaml-modules/dypgen { };
patoline = callPackage ../tools/typesetting/patoline { };
gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
lablgl = callPackage ../development/ocaml-modules/lablgl { };
lablgtk = callPackage ../development/ocaml-modules/lablgtk {
inherit (gnome) libgnomecanvas libglade gtksourceview;
};

Loading…
Cancel
Save