diff options
author | Eric Bailey <yurrriq@users.noreply.github.com> | 2016-07-22 18:07:41 -0500 |
---|---|---|
committer | Rok Garbas <rok@garbas.si> | 2016-07-23 01:07:41 +0200 |
commit | e6e873beca9211f084a7e878a0c2fdc2b6b28ece (patch) | |
tree | fa8e42915b1cbbf384d4bb1b85dac8227d38ed43 /pkgs/development/interpreters | |
parent | e434ce8f49060dc265772a99d5c6067145230429 (diff) | |
download | nixlib-e6e873beca9211f084a7e878a0c2fdc2b6b28ece.tar nixlib-e6e873beca9211f084a7e878a0c2fdc2b6b28ece.tar.gz nixlib-e6e873beca9211f084a7e878a0c2fdc2b6b28ece.tar.bz2 nixlib-e6e873beca9211f084a7e878a0c2fdc2b6b28ece.tar.lz nixlib-e6e873beca9211f084a7e878a0c2fdc2b6b28ece.tar.xz nixlib-e6e873beca9211f084a7e878a0c2fdc2b6b28ece.tar.zst nixlib-e6e873beca9211f084a7e878a0c2fdc2b6b28ece.zip |
erlangR19: init at 19.0.2 (#17123)
Add R19.nix, based on @binarin's R18.nix. N.B. erlang/otp#1023 obviated the need for `rmAndPwdPatch` in R19.
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r-- | pkgs/development/interpreters/erlang/R19.nix | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/erlang/R19.nix b/pkgs/development/interpreters/erlang/R19.nix new file mode 100644 index 000000000000..8eac077a1109 --- /dev/null +++ b/pkgs/development/interpreters/erlang/R19.nix @@ -0,0 +1,100 @@ +{ stdenv, fetchurl, fetchFromGitHub, perl, gnum4, ncurses, openssl +, gnused, gawk, autoconf, libxslt, libxml2, makeWrapper +, Carbon, Cocoa +, odbcSupport ? false, unixODBC ? null +, wxSupport ? true, mesa ? null, wxGTK ? null, xorg ? null, wxmac ? null +, javacSupport ? false, openjdk ? null +, enableHipe ? true +, enableDebugInfo ? false +}: + +assert wxSupport -> (if stdenv.isDarwin + then wxmac != null + else mesa != null && wxGTK != null && xorg != 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 = "19.0.2"; + + # Minor OTP releases are not always released as tarbals at + # http://erlang.org/download/ So we have to download from + # github. And for the same reason we can't use a prebuilt manpages + # tarball and need to build manpages ourselves. + src = fetchFromGitHub { + owner = "erlang"; + repo = "otp"; + rev = "OTP-${version}"; + sha256 = "1vsykghhzpgmc42jwj48crl11zzzpvrqvh2lk8lxfqbflzflxm6j"; + }; + + buildInputs = + [ perl gnum4 ncurses openssl autoconf libxslt libxml2 makeWrapper + ] ++ optionals wxSupport (if stdenv.isDarwin then [ wxmac ] else [ mesa wxGTK xorg.libX11 ]) + ++ optional odbcSupport unixODBC + ++ optional javacSupport openjdk + ++ stdenv.lib.optionals stdenv.isDarwin [ Carbon Cocoa ]; + + debugInfo = enableDebugInfo; + + envAndCpPatch = fetchurl { + url = "https://github.com/binarin/otp/commit/9f9841eb7327c9fe73e84e197fd2965a97b639cf.patch"; + sha256 = "10h5348p6g279b4q01i5jdqlljww5chcvrx5b4b0dv79pk0p0m9f"; + }; + + patches = [ + envAndCpPatch + ]; + + preConfigure = '' + ./otp_build autoconf + ''; + + configureFlags= [ + "--with-ssl=${openssl.dev}" + ] ++ optional enableHipe "--enable-hipe" + ++ optional wxSupport "--enable-wx" + ++ optional odbcSupport "--with-odbc=${unixODBC}" + ++ optional javacSupport "--with-javac" + ++ optional stdenv.isDarwin "--enable-darwin-64bit"; + + # install-docs will generate and install manpages and html docs + # (PDFs are generated only when fop is available). + installTargets = "install install-docs"; + + postInstall = '' + ln -s $out/lib/erlang/lib/erl_interface*/bin/erl_call $out/bin/erl_call + ''; + + # 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" + ''; + + setupHook = ./setup-hook.sh; + + meta = { + homepage = "http://www.erlang.org/"; + downloadPage = "http://www.erlang.org/download.html"; + 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; + }; +} |