diff options
author | Justin Wood <justin.k.wood@gmail.com> | 2017-06-22 20:34:32 -0400 |
---|---|---|
committer | Justin Wood <justin.k.wood@gmail.com> | 2017-06-26 23:13:58 -0400 |
commit | 019afb0c806301e03de764a77dcc11fcbc3fd77a (patch) | |
tree | fd0005a2500af4dd5259767df3b17cc625977842 | |
parent | 32705450944254f3f49b09671efaadca31ed8a48 (diff) | |
download | nixlib-019afb0c806301e03de764a77dcc11fcbc3fd77a.tar nixlib-019afb0c806301e03de764a77dcc11fcbc3fd77a.tar.gz nixlib-019afb0c806301e03de764a77dcc11fcbc3fd77a.tar.bz2 nixlib-019afb0c806301e03de764a77dcc11fcbc3fd77a.tar.lz nixlib-019afb0c806301e03de764a77dcc11fcbc3fd77a.tar.xz nixlib-019afb0c806301e03de764a77dcc11fcbc3fd77a.tar.zst nixlib-019afb0c806301e03de764a77dcc11fcbc3fd77a.zip |
Generalize building of Elixir interpreter
-rw-r--r-- | lib/maintainers.nix | 1 | ||||
-rw-r--r-- | pkgs/development/beam-modules/default.nix | 13 | ||||
-rw-r--r-- | pkgs/development/beam-modules/lib.nix | 8 | ||||
-rw-r--r-- | pkgs/development/interpreters/elixir/1.3.nix | 6 | ||||
-rw-r--r-- | pkgs/development/interpreters/elixir/1.4.nix | 6 | ||||
-rw-r--r-- | pkgs/development/interpreters/elixir/generic-builder.nix (renamed from pkgs/development/interpreters/elixir/default.nix) | 33 | ||||
-rw-r--r-- | pkgs/top-level/beam-packages.nix | 3 |
7 files changed, 50 insertions, 20 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 328a5d772db3..2c56949229bd 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -42,6 +42,7 @@ andrewrk = "Andrew Kelley <superjoe30@gmail.com>"; andsild = "Anders Sildnes <andsild@gmail.com>"; aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>"; + ankhers = "Justin Wood <justin.k.wood@gmail.com>"; antono = "Antono Vasiljev <self@antono.info>"; apeschar = "Albert Peschar <albert@peschar.net>"; apeyroux = "Alexandre Peyroux <alex@px.io>"; diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix index d1a2a785a9c9..26cba333c23d 100644 --- a/pkgs/development/beam-modules/default.nix +++ b/pkgs/development/beam-modules/default.nix @@ -37,9 +37,16 @@ let buildMix = callPackage ./build-mix.nix {}; # BEAM-based languages. - elixir = if versionAtLeast (lib.getVersion erlang) "18" - then callPackage ../interpreters/elixir { debugInfo = true; } - else throw "Elixir requires at least Erlang/OTP R18."; + elixir = defaultScope.elixir-1_4; + + elixir-1_4 = if versionAtLeast (lib.getVersion erlang) "18" + then lib.callElixir ../interpreters/elixir/1.4.nix { debugInfo = true; } + else throw "Elixir requires at least Erlang/OTP R18."; + + elixir-1_3 = if versionAtLeast (lib.getVersion erlang) "18" + then lib.callElixir ../interpreters/elixir/1.3.nix { debugInfo = true; } + else throw "Elixir requires at least Erlang/OTP R18."; + lfe = callPackage ../interpreters/lfe { }; # Non hex packages diff --git a/pkgs/development/beam-modules/lib.nix b/pkgs/development/beam-modules/lib.nix index 009bfb4975b6..9d7a4bbd34ed 100644 --- a/pkgs/development/beam-modules/lib.nix +++ b/pkgs/development/beam-modules/lib.nix @@ -43,4 +43,12 @@ rec { mkDerivation = pkgs.makeOverridable builder; }; + callElixir = drv: args: + let + builder = callPackage ../../development/interpreters/elixir/generic-builder.nix args; + in + callPackage drv { + mkDerivation = pkgs.makeOverridable builder; + }; + } diff --git a/pkgs/development/interpreters/elixir/1.3.nix b/pkgs/development/interpreters/elixir/1.3.nix new file mode 100644 index 000000000000..90d81ee0120b --- /dev/null +++ b/pkgs/development/interpreters/elixir/1.3.nix @@ -0,0 +1,6 @@ +{ mkDerivation }: + +mkDerivation rec { + version = "1.3.4"; + sha256 = "01qqv1ghvfadcwcr5p88w8j217cgaf094pmpqllij3l0q1yg104l"; +} diff --git a/pkgs/development/interpreters/elixir/1.4.nix b/pkgs/development/interpreters/elixir/1.4.nix new file mode 100644 index 000000000000..2729c9942208 --- /dev/null +++ b/pkgs/development/interpreters/elixir/1.4.nix @@ -0,0 +1,6 @@ +{ mkDerivation }: + +mkDerivation rec { + version = "1.4.5"; + sha256 = "18ivcxmh5bak13k3rjy7jjzin57rgb2nffhwnqb2wl7bpi8mrarw"; +} diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/generic-builder.nix index 0e77b2af2524..60f044e16d0f 100644 --- a/pkgs/development/interpreters/elixir/default.nix +++ b/pkgs/development/interpreters/elixir/generic-builder.nix @@ -1,21 +1,20 @@ -{ stdenv, fetchFromGitHub, erlang, rebar, makeWrapper, coreutils, curl, bash, - debugInfo ? false }: - -stdenv.mkDerivation rec { - name = "elixir-${version}"; - version = "1.4.4"; - - src = fetchFromGitHub { - owner = "elixir-lang"; - repo = "elixir"; - rev = "v${version}"; - sha256 = "0m51cirkv1dahw4z2jlmz58cwmpy0dya88myx4wykq0v5bh1xbq8"; - }; +{ pkgs, stdenv, fetchFromGitHub, erlang, rebar, makeWrapper, coreutils, curl +, bash, debugInfo ? false }: + +{ baseName ? "elixir" +, version +, sha256 ? null +, rev ? "v${version}" +, src ? fetchFromGitHub { inherit rev sha256; owner = "elixir-lang"; repo = "elixir"; } +}: + +stdenv.mkDerivation ({ + name = "${baseName}-${version}"; + + inherit src version; buildInputs = [ erlang rebar makeWrapper ]; - # Elixir expects that UTF-8 locale to be set (see https://github.com/elixir-lang/elixir/issues/3548). - # In other cases there is warnings during compilation. LANG = "en_US.UTF-8"; LC_TYPE = "en_US.UTF-8"; @@ -66,6 +65,6 @@ stdenv.mkDerivation rec { license = licenses.epl10; platforms = platforms.unix; - maintainers = with maintainers; [ the-kenny havvy couchemar ]; + maintainers = with maintainers; [ the-kenny havvy couchemar ankhers ]; }; -} +}) diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix index acdbea673328..877feaee8710 100644 --- a/pkgs/top-level/beam-packages.nix +++ b/pkgs/top-level/beam-packages.nix @@ -57,6 +57,9 @@ rec { # access for example elixir built with different version of Erlang, use # `beam.packages.erlangR19.elixir`. elixir = packages.erlang.elixir; + elixir-1_4 = packages.erlang.elixir-1_4; + elixir-1_3 = packages.erlang.elixir-1_3; + lfe = packages.erlang.lfe; }; |