From 270d929089d1299d4022f12f05f2710fcb69d10d Mon Sep 17 00:00:00 2001 From: Christophe Raffalli Date: Tue, 4 Jun 2013 20:49:10 +0200 Subject: New ocaml packages: - ocaml-cairo - camlimages - dypgen - patoline --- .../ocaml-modules/camlimages/default.nix | 43 ++++++++ pkgs/development/ocaml-modules/dypgen/default.nix | 33 ++++++ .../ocaml-modules/lablgl/Makefile.config.patch | 117 +++++++++++++++++++++ pkgs/development/ocaml-modules/lablgl/default.nix | 45 ++++++++ .../ocaml-modules/ocaml-cairo/META.patch | 16 +++ .../ocaml-modules/ocaml-cairo/default.nix | 44 ++++++++ pkgs/tools/typesetting/patoline/default.nix | 51 +++++++++ pkgs/top-level/all-packages.nix | 10 ++ 8 files changed, 359 insertions(+) create mode 100644 pkgs/development/ocaml-modules/camlimages/default.nix create mode 100644 pkgs/development/ocaml-modules/dypgen/default.nix create mode 100644 pkgs/development/ocaml-modules/lablgl/Makefile.config.patch create mode 100644 pkgs/development/ocaml-modules/lablgl/default.nix create mode 100644 pkgs/development/ocaml-modules/ocaml-cairo/META.patch create mode 100644 pkgs/development/ocaml-modules/ocaml-cairo/default.nix create mode 100644 pkgs/tools/typesetting/patoline/default.nix (limited to 'pkgs') diff --git a/pkgs/development/ocaml-modules/camlimages/default.nix b/pkgs/development/ocaml-modules/camlimages/default.nix new file mode 100644 index 000000000000..00168d46c3f1 --- /dev/null +++ b/pkgs/development/ocaml-modules/camlimages/default.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 ]; + }; +} diff --git a/pkgs/development/ocaml-modules/dypgen/default.nix b/pkgs/development/ocaml-modules/dypgen/default.nix new file mode 100644 index 000000000000..73f543f5b626 --- /dev/null +++ b/pkgs/development/ocaml-modules/dypgen/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/ocaml-modules/lablgl/Makefile.config.patch b/pkgs/development/ocaml-modules/lablgl/Makefile.config.patch new file mode 100644 index 000000000000..c896978f57ea --- /dev/null +++ b/pkgs/development/ocaml-modules/lablgl/Makefile.config.patch @@ -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" ++) ++ diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix new file mode 100644 index 000000000000..a739e4a7146b --- /dev/null +++ b/pkgs/development/ocaml-modules/lablgl/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/ocaml-modules/ocaml-cairo/META.patch b/pkgs/development/ocaml-modules/ocaml-cairo/META.patch new file mode 100644 index 000000000000..ba6e5927b00a --- /dev/null +++ b/pkgs/development/ocaml-modules/ocaml-cairo/META.patch @@ -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" ++) diff --git a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix new file mode 100644 index 000000000000..8f19847680b6 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/tools/typesetting/patoline/default.nix b/pkgs/tools/typesetting/patoline/default.nix new file mode 100644 index 000000000000..a39105c83145 --- /dev/null +++ b/pkgs/tools/typesetting/patoline/default.nix @@ -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"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4bc2875b8f14..a066fc19ffb8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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; }; -- cgit 1.4.1