From f8bdabaafa614b56125ee4c2c4df8a31db088f13 Mon Sep 17 00:00:00 2001 From: Stewart Mackenzie Date: Thu, 29 Jan 2015 08:30:17 +0000 Subject: [PATCH] Problem: erlang in nixpkgs doesn't support jinterface + no hipe Solution: * Every Erlang programmer expects Hipe to be enabled; So it's now enabled by default * Java support is very often needed, many expect it by default. So I've added top-level support for erlang-javac and erlang-javac-odbc --- pkgs/development/interpreters/erlang/R17.nix | 15 ++++++++++----- pkgs/top-level/all-packages.nix | 4 ++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pkgs/development/interpreters/erlang/R17.nix b/pkgs/development/interpreters/erlang/R17.nix index 667e513769b..2e17ebea5ea 100644 --- a/pkgs/development/interpreters/erlang/R17.nix +++ b/pkgs/development/interpreters/erlang/R17.nix @@ -1,15 +1,19 @@ { stdenv, fetchurl, perl, gnum4, ncurses, openssl , gnused, gawk, makeWrapper , odbcSupport ? false, unixODBC ? null -, wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }: +, wxSupport ? true, mesa ? null, wxGTK ? null, xlibs ? null +, javacSupport ? false, openjdk ? null +, enableHipe ? true}: assert wxSupport -> 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"}"; + name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}" + + "${optionalString javacSupport "-javac"}"; version = "17.4"; src = fetchurl { @@ -20,7 +24,8 @@ stdenv.mkDerivation rec { buildInputs = [ perl gnum4 ncurses openssl makeWrapper ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ] - ++ optional odbcSupport [ unixODBC ]; + ++ optional odbcSupport [ unixODBC ] + ++ optional javacSupport [ openjdk ]; patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure ''; @@ -29,7 +34,7 @@ stdenv.mkDerivation rec { sed -e s@/bin/pwd@pwd@g -i otp_build ''; - configureFlags= "--with-ssl=${openssl} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}"; + configureFlags= "--with-ssl=${openssl} ${optionalString enableHipe "--enable-hipe"} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"} ${optionalString javacSupport "--with-javac"}"; postInstall = let manpages = fetchurl { @@ -68,6 +73,6 @@ stdenv.mkDerivation rec { platforms = platforms.unix; # Note: Maintainer of prev. erlang version was simons. If he wants # to continue maintaining erlang I'm totally ok with that. - maintainers = [ maintainers.the-kenny ]; + maintainers = [ maintainers.the-kenny maintainers.sjmackenzie ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 08a6ba9e5f8..f139754ce58 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4161,8 +4161,12 @@ let erlangR16_odbc = callPackage ../development/interpreters/erlang/R16.nix { odbcSupport = true; }; erlangR17 = callPackage ../development/interpreters/erlang/R17.nix { }; erlangR17_odbc = callPackage ../development/interpreters/erlang/R17.nix { odbcSupport = true; }; + erlangR17_javac = callPackage ../development/interpreters/erlang/R17.nix { javacSupport = true; }; + erlangR17_odbc_javac = callPackage ../development/interpreters/erlang/R17.nix { javacSupport = true; odbcSupport = true; }; erlang = erlangR17; erlang_odbc = erlangR17_odbc; + erlang_javac = erlangR17_javac; + erlang_odbc_javac = erlangR17_odbc_javac; rebar = callPackage ../development/tools/build-managers/rebar { };