Merge pull request #811 from the-kenny/erlang-elixir

Update erlang to R16B1, add elixir and rebar
This commit is contained in:
Evgeny Egorochkin 2013-08-13 21:56:04 -07:00
commit 2d056f9307
4 changed files with 126 additions and 1 deletions

View file

@ -0,0 +1,37 @@
{ stdenv, fetchurl, erlang, rebar }:
stdenv.mkDerivation {
name = "elixir-0.10.1";
src = fetchurl {
url = "https://github.com/elixir-lang/elixir/archive/v0.10.1.tar.gz";
sha256 = "0gfr2bz3mw7ag9z2wb2g22n2vlyrp8dwy78fj9zi52kzl5w3vc3w";
};
buildInputs = [ erlang rebar ];
preBuild = ''
substituteInPlace rebar \
--replace "/usr/bin/env escript" ${erlang}/bin/escript
substituteInPlace Makefile \
--replace '$(shell echo `pwd`/rebar)' ${rebar}/bin/rebar \
--replace "/usr/local" $out
'';
meta = {
homepage = "http://elixir-lang.org/";
description = "Elixir is a functional, meta-programming aware language built on top of the Erlang VM.";
longDescription = ''
Elixir is a functional, meta-programming
aware language built on top of the Erlang VM. It is a dynamic
language with flexible syntax and macro support that leverages
Erlang's abilities to build concurrent, distributed and
fault-tolerant applications with hot code upgrades.p
'';
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.the-kenny ];
};
}

View file

@ -0,0 +1,47 @@
{ stdenv, fetchurl, perl, gnum4, ncurses, openssl
, wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }:
assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
let version = "16B01"; in
stdenv.mkDerivation {
name = "erlang-" + version;
src = fetchurl {
url = "http://www.erlang.org/download/otp_src_R16B01.tar.gz";
sha256 = "1h5b2mil79z307mc7ammi38qnd8f50n3sv5vyl4d1gcfgg08nf6s";
};
buildInputs =
[ perl gnum4 ncurses openssl
] ++ stdenv.lib.optional wxSupport [ mesa wxGTK xlibs.libX11 ];
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
preConfigure = ''
export HOME=$PWD/../
sed -e s@/bin/pwd@pwd@g -i otp_build
'';
configureFlags = "--with-ssl=${openssl}";
meta = {
homepage = "http://www.erlang.org/";
description = "Programming language used for massively scalable soft real-time systems";
longDescription = ''
Erlang is a programming language used to build massively scalable
soft real-time systems with requirements on high availability.
Some of its uses are in telecoms, banking, e-commerce, computer
telephony and instant messaging. Erlang's runtime system has
built-in support for concurrency, distribution and fault
tolerance.
'';
platforms = stdenv.lib.platforms.linux;
# Note: Maintainer of prev. erlang version was simons. If he wants
# to continue maintaining erlang I'm totally ok with that.
maintainers = [ stdenv.lib.maintainers.the-kenny ];
};
}

View file

@ -0,0 +1,36 @@
{ stdenv, fetchurl, erlang }:
stdenv.mkDerivation {
name = "rebar-2.1.0-pre";
src = fetchurl {
url = "https://github.com/basho/rebar/archive/2.1.0-pre.tar.gz";
sha256 = "0dsbk9ssvk1hx9275900dg4bz79kpwcid4gsz09ziiwzv0jjbrjn";
};
buildInputs = [ erlang ];
buildPhase = "escript bootstrap";
installPhase = ''
mkdir -p $out/bin
cp rebar $out/bin/rebar
'';
meta = {
homepage = "https://github.com/rebar/rebar";
description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases.";
longDescription = ''
rebar is a self-contained Erlang script, so it's easy to
distribute or even embed directly in a project. Where possible,
rebar uses standard Erlang/OTP conventions for project
structures, thus minimizing the amount of build configuration
work. rebar also provides dependency management, enabling
application writers to easily re-use common libraries from a
variety of locations (git, hg, etc).
'';
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.the-kenny ];
};
}

View file

@ -3042,7 +3042,12 @@ let
erlangR14B04 = callPackage ../development/interpreters/erlang/R14B04.nix { };
erlangR15B03 = callPackage ../development/interpreters/erlang/R15B03.nix { };
erlang = erlangR15B03;
erlangR16B01 = callPackage ../development/interpreters/erlang/R16B01.nix { };
erlang = erlangR16B01;
rebar = callPackage ../development/tools/build-managers/rebar { };
elixir = callPackage ../development/interpreters/elixir { };
groovy = callPackage ../development/interpreters/groovy { };