summary refs log tree commit diff
path: root/pkgs/development/interpreters/elixir/generic-builder.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/elixir/generic-builder.nix')
-rw-r--r--pkgs/development/interpreters/elixir/generic-builder.nix105
1 files changed, 53 insertions, 52 deletions
diff --git a/pkgs/development/interpreters/elixir/generic-builder.nix b/pkgs/development/interpreters/elixir/generic-builder.nix
index 54b046beaab..646fd70ff8f 100644
--- a/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -1,5 +1,14 @@
-{ pkgs, stdenv, fetchFromGitHub, erlang, rebar, makeWrapper,
-  coreutils, curl, bash, debugInfo ? false }:
+{ pkgs
+, lib
+, stdenv
+, fetchFromGitHub
+, erlang
+, makeWrapper
+, coreutils
+, curl
+, bash
+, debugInfo ? false
+}:
 
 { baseName ? "elixir"
 , version
@@ -10,69 +19,61 @@
 } @ args:
 
 let
-  inherit (stdenv.lib) getVersion versionAtLeast optional;
+  inherit (lib) getVersion versionAtLeast optional;
 
 in
-  assert versionAtLeast (getVersion erlang) minimumOTPVersion;
+assert versionAtLeast (getVersion erlang) minimumOTPVersion;
 
-  stdenv.mkDerivation ({
-    name = "${baseName}-${version}";
+stdenv.mkDerivation ({
+  name = "${baseName}-${version}";
 
-    inherit src version;
+  inherit src version debugInfo;
 
-    buildInputs = [ erlang rebar makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ erlang ];
 
-    LANG = "C.UTF-8";
-    LC_TYPE = "C.UTF-8";
+  LANG = "C.UTF-8";
+  LC_TYPE = "C.UTF-8";
 
-    setupHook = ./setup-hook.sh;
+  buildFlags = optional debugInfo "ERL_COMPILER_OPTIONS=debug_info";
 
-    inherit debugInfo;
+  preBuild = ''
+    patchShebangs lib/elixir/generate_app.escript || true
 
-    buildFlags = optional debugInfo "ERL_COMPILER_OPTIONS=debug_info";
+    substituteInPlace Makefile \
+      --replace "/usr/local" $out
+  '';
 
-    preBuild = ''
-      # The build process uses ./rebar. Link it to the nixpkgs rebar
-      rm -vf rebar
-      ln -s ${rebar}/bin/rebar rebar
+  postFixup = ''
+    # Elixir binaries are shell scripts which run erl. Add some stuff
+    # to PATH so the scripts can run without problems.
 
-      patchShebangs lib/elixir/generate_app.escript || true
+    for f in $out/bin/*; do
+     b=$(basename $f)
+      if [ "$b" = mix ]; then continue; fi
+      wrapProgram $f \
+        --prefix PATH ":" "${lib.makeBinPath [ erlang coreutils curl bash ]}"
+    done
 
-      substituteInPlace Makefile \
-        --replace "/usr/local" $out
-    '';
-
-    postFixup = ''
-      # Elixir binaries are shell scripts which run erl. Add some stuff
-      # to PATH so the scripts can run without problems.
+    substituteInPlace $out/bin/mix \
+          --replace "/usr/bin/env elixir" "${coreutils}/bin/env elixir"
+  '';
 
-      for f in $out/bin/*; do
-       b=$(basename $f)
-        if [ "$b" = mix ]; then continue; fi
-        wrapProgram $f \
-          --prefix PATH ":" "${stdenv.lib.makeBinPath [ erlang coreutils curl bash ]}" \
-          --set CURL_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt
-      done
+  pos = builtins.unsafeGetAttrPos "sha256" args;
+  meta = with lib; {
+    homepage = "https://elixir-lang.org/";
+    description = "A functional, meta-programming aware language built on top of the Erlang VM";
 
-      substituteInPlace $out/bin/mix \
-            --replace "/usr/bin/env elixir" "${coreutils}/bin/env elixir"
+    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.
     '';
 
-    pos = builtins.unsafeGetAttrPos "sha256" args;
-    meta = with stdenv.lib; {
-      homepage = "https://elixir-lang.org/";
-      description = "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.
-      '';
-
-      license = licenses.epl10;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ havvy couchemar ankhers filalex77 ];
-    };
-  })
+    license = licenses.epl10;
+    platforms = platforms.unix;
+    maintainers = teams.beam.members;
+  };
+})