From e32b26c222f05b1d28f38ba3057973a5454e2df2 Mon Sep 17 00:00:00 2001 From: Moritz Ulrich Date: Wed, 7 Aug 2013 15:38:51 +0200 Subject: [PATCH 1/4] Add erlang R16B1 Signed-off-by: Moritz Ulrich --- .../interpreters/erlang/R16B01.nix | 45 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/interpreters/erlang/R16B01.nix diff --git a/pkgs/development/interpreters/erlang/R16B01.nix b/pkgs/development/interpreters/erlang/R16B01.nix new file mode 100644 index 000000000000..7f41a2258593 --- /dev/null +++ b/pkgs/development/interpreters/erlang/R16B01.nix @@ -0,0 +1,45 @@ +{ 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; + maintainers = [ stdenv.lib.maintainers.simons ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8b36b2f1595f..4b7162866e7d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3032,7 +3032,8 @@ 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; groovy = callPackage ../development/interpreters/groovy { }; From ceb96b73124ddd996066525c5133b4ceb60e4fa0 Mon Sep 17 00:00:00 2001 From: Moritz Ulrich Date: Wed, 7 Aug 2013 16:06:11 +0200 Subject: [PATCH 2/4] Package elixir and rebar. Signed-off-by: Moritz Ulrich --- .../interpreters/elixir/default.nix | 20 +++++++++++++++++++ .../tools/build-managers/rebar/default.nix | 18 +++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++++ 3 files changed, 42 insertions(+) create mode 100644 pkgs/development/interpreters/elixir/default.nix create mode 100644 pkgs/development/tools/build-managers/rebar/default.nix diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix new file mode 100644 index 000000000000..a368e99ff384 --- /dev/null +++ b/pkgs/development/interpreters/elixir/default.nix @@ -0,0 +1,20 @@ +{ 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 + ''; +} diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix new file mode 100644 index 000000000000..9f9e73a03d86 --- /dev/null +++ b/pkgs/development/tools/build-managers/rebar/default.nix @@ -0,0 +1,18 @@ +{ 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 + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4b7162866e7d..530b49f35a1b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3035,6 +3035,10 @@ let 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 { }; guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { }; From dbfcdc9066df81257097985ec7eff318dc6c803f Mon Sep 17 00:00:00 2001 From: Moritz Ulrich Date: Wed, 7 Aug 2013 16:09:08 +0200 Subject: [PATCH 3/4] Add meta for elixir & rebar. Signed-off-by: Moritz Ulrich --- .../development/interpreters/elixir/default.nix | 15 +++++++++++++++ .../tools/build-managers/rebar/default.nix | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix index a368e99ff384..760182406d53 100644 --- a/pkgs/development/interpreters/elixir/default.nix +++ b/pkgs/development/interpreters/elixir/default.nix @@ -17,4 +17,19 @@ stdenv.mkDerivation { --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; + }; } diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix index 9f9e73a03d86..bb230304496b 100644 --- a/pkgs/development/tools/build-managers/rebar/default.nix +++ b/pkgs/development/tools/build-managers/rebar/default.nix @@ -15,4 +15,21 @@ stdenv.mkDerivation { 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; + }; } From 31083cd226cb4663983858fc773d67ef30637372 Mon Sep 17 00:00:00 2001 From: Moritz Ulrich Date: Fri, 9 Aug 2013 16:31:13 +0200 Subject: [PATCH 4/4] Add myself as a maintainer to erlang R16B1 and elixir. Signed-off-by: Moritz Ulrich --- pkgs/development/interpreters/elixir/default.nix | 2 ++ pkgs/development/interpreters/erlang/R16B01.nix | 4 +++- pkgs/development/tools/build-managers/rebar/default.nix | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix index 760182406d53..ffa4402a72a7 100644 --- a/pkgs/development/interpreters/elixir/default.nix +++ b/pkgs/development/interpreters/elixir/default.nix @@ -31,5 +31,7 @@ stdenv.mkDerivation { ''; platforms = stdenv.lib.platforms.linux; + + maintainers = [ stdenv.lib.maintainers.the-kenny ]; }; } diff --git a/pkgs/development/interpreters/erlang/R16B01.nix b/pkgs/development/interpreters/erlang/R16B01.nix index 7f41a2258593..902af75d4949 100644 --- a/pkgs/development/interpreters/erlang/R16B01.nix +++ b/pkgs/development/interpreters/erlang/R16B01.nix @@ -40,6 +40,8 @@ stdenv.mkDerivation { ''; platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.simons ]; + # 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 ]; }; } diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix index bb230304496b..68eacf8d2ea4 100644 --- a/pkgs/development/tools/build-managers/rebar/default.nix +++ b/pkgs/development/tools/build-managers/rebar/default.nix @@ -31,5 +31,6 @@ stdenv.mkDerivation { ''; platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.the-kenny ]; }; }