From 406b974420a4faec0b2fb819b1be8344c02b76c8 Mon Sep 17 00:00:00 2001 From: Gleb Peregud Date: Thu, 10 Dec 2015 22:39:42 +0100 Subject: [PATCH] Add "compilePorts" enabling rebar3 "pc" plugin If compilePorts is enabled plugin "pc" is added to the rebar.config during postPatch. This makes rebar3 compile download the plugin, hence added TODO. --- pkgs/development/erlang-modules/build-hex.nix | 13 +++++++++++++ pkgs/development/erlang-modules/default.nix | 1 + pkgs/development/erlang-modules/hex/esqlite.nix | 8 ++++++++ 3 files changed, 22 insertions(+) create mode 100644 pkgs/development/erlang-modules/hex/esqlite.nix diff --git a/pkgs/development/erlang-modules/build-hex.nix b/pkgs/development/erlang-modules/build-hex.nix index d9191baeb81..d5c71f882ff 100644 --- a/pkgs/development/erlang-modules/build-hex.nix +++ b/pkgs/development/erlang-modules/build-hex.nix @@ -4,6 +4,7 @@ , hexPkg ? name , buildInputs ? [], erlangDeps ? [] , postPatch ? "" +, compilePorts ? false , ... }@attrs: with stdenv.lib; @@ -18,6 +19,16 @@ stdenv.mkDerivation (attrs // { if [ -e "src/${name}.app.src" ]; then sed -i -e 's/{ *vsn *,[^}]*}/{vsn, "${version}"}/' "src/${name}.app.src" fi + + # TODO: figure out how to provide 'pc' plugin hermetically + ${if compilePorts then '' + echo "{plugins, [pc]}. + {provider_hooks, + [{post, + [{compile, {pc, compile}}, + {clean, {pc, clean}}]}]}." >> rebar.config + '' else ''''} + ${postPatch} ''; @@ -43,6 +54,8 @@ stdenv.mkDerivation (attrs // { runHook postConfigure ''; + # TODO: figure out how to provide rebar3 a static registry snapshot to make + # this hermetic buildPhase = '' runHook preBuild HOME=. rebar3 update diff --git a/pkgs/development/erlang-modules/default.nix b/pkgs/development/erlang-modules/default.nix index 87447220bb7..8bcf0ddb6a1 100644 --- a/pkgs/development/erlang-modules/default.nix +++ b/pkgs/development/erlang-modules/default.nix @@ -7,6 +7,7 @@ let buildErlang = callPackage ./build-erlang.nix {}; buildHex = callPackage ./build-hex.nix {}; + esqlite = callPackage ./hex/esqlite.nix {}; goldrush = callPackage ./hex/goldrush.nix {}; ibrowse = callPackage ./hex/ibrowse.nix {}; jiffy = callPackage ./hex/jiffy.nix {}; diff --git a/pkgs/development/erlang-modules/hex/esqlite.nix b/pkgs/development/erlang-modules/hex/esqlite.nix new file mode 100644 index 00000000000..af7a1266712 --- /dev/null +++ b/pkgs/development/erlang-modules/hex/esqlite.nix @@ -0,0 +1,8 @@ +{ buildHex }: + +buildHex { + name = "esqlite"; + version = "0.2.1"; + sha256 = "1296fn1lz4lz4zqzn4dwc3flgkh0i6n4sydg501faabfbv8d3wkr"; + compilePorts = true; +}