summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorAndrey Pavlov <couchemar@yandex.ru>2015-06-26 09:59:11 +0300
committerRok Garbas <rok@garbas.si>2015-06-26 16:15:14 +0200
commit550663247375914d43179dbd605beffdb0c79ee4 (patch)
tree3050e5a868c425057f38ce8e53f4f4063655aced /pkgs/development
parent449c14d20b838ffac64ab7d71d126d2a5d317e49 (diff)
downloadnixlib-550663247375914d43179dbd605beffdb0c79ee4.tar
nixlib-550663247375914d43179dbd605beffdb0c79ee4.tar.gz
nixlib-550663247375914d43179dbd605beffdb0c79ee4.tar.bz2
nixlib-550663247375914d43179dbd605beffdb0c79ee4.tar.lz
nixlib-550663247375914d43179dbd605beffdb0c79ee4.tar.xz
nixlib-550663247375914d43179dbd605beffdb0c79ee4.tar.zst
nixlib-550663247375914d43179dbd605beffdb0c79ee4.zip
erlang: add Erlang R18, closes #8515
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/interpreters/erlang/R18.nix87
1 files changed, 87 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/erlang/R18.nix b/pkgs/development/interpreters/erlang/R18.nix
new file mode 100644
index 000000000000..9bc36ee47dec
--- /dev/null
+++ b/pkgs/development/interpreters/erlang/R18.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, perl, gnum4, ncurses, openssl
+, gnused, gawk, makeWrapper
+, odbcSupport ? false, unixODBC ? null
+, wxSupport ? true, mesa ? null, wxGTK ? null, xlibs ? null, wxmac ? null
+, javacSupport ? false, openjdk ? null
+, enableHipe ? true
+}:
+
+assert wxSupport -> (if stdenv.isDarwin
+  then wxmac != null
+  else mesa != null && wxGTK != null && xlibs != null);
+
+assert odbcSupport -> unixODBC != null;
+assert javacSupport ->  openjdk != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}"
+  + "${optionalString javacSupport "-javac"}";
+  version = "18.0";
+
+  src = fetchurl {
+    url = "http://www.erlang.org/download/otp_src_${version}.tar.gz";
+    sha256 = "1ahi865ii3iqzd00yyn3nrxjb9qa2by9d7ixssvqw8ag9firvdm0";
+  };
+
+  buildInputs =
+    [ perl gnum4 ncurses openssl makeWrapper
+    ] ++ optional wxSupport (if stdenv.isDarwin then [ wxmac ] else [ mesa wxGTK xlibs.libX11 ])
+      ++ optional odbcSupport [ unixODBC ]
+      ++ optional javacSupport [ openjdk ];
+
+  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}"
+  ] ++ optional enableHipe "--enable-hipe"
+    ++ optional wxSupport "--enable-wx"
+    ++ optional odbcSupport "--with-odbc=${unixODBC}"
+    ++ optional javacSupport "--with-javac"
+    ++ optional stdenv.isDarwin "--enable-darwin-64bit";
+
+  postInstall = let
+    manpages = fetchurl {
+      url = "http://www.erlang.org/download/otp_doc_man_${version}.tar.gz";
+      sha256 = "0wsnp7sp21ydinwkg3rkazyrs382pdzwra9apikkhs70dv1hwkz4";
+    };
+  in ''
+    ln -s $out/lib/erlang/lib/erl_interface*/bin/erl_call $out/bin/erl_call
+    tar xf "${manpages}" -C "$out/lib/erlang"
+    for i in "$out"/lib/erlang/man/man[0-9]/*.[0-9]; do
+      prefix="''${i%/*}"
+      ensureDir "$out/share/man/''${prefix##*/}"
+      ln -s "$i" "$out/share/man/''${prefix##*/}/''${i##*/}erl"
+    done
+  '';
+
+  # Some erlang bin/ scripts run sed and awk
+  postFixup = ''
+    wrapProgram $out/lib/erlang/bin/erl --prefix PATH ":" "${gnused}/bin/"
+    wrapProgram $out/lib/erlang/bin/start_erl --prefix PATH ":" "${gnused}/bin/:${gawk}/bin"
+  '';
+
+  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 = platforms.unix;
+    maintainers = with maintainers; [ the-kenny sjmackenzie couchemar ];
+    license = licenses.asl20;
+  };
+}