Commit Graph

16 Commits

Author SHA1 Message Date
Eric Merritt
d541d0e640 erlang support: seperate hex and rebar3 support
Building Hex packages is a superset of building with rebar3. There is no
need to force folks that use rebar3 but not hex to build with hex. This
commit seperates the rebar3 specific bits and the hex specific bits into
seperate functions that can be used independently.
2016-01-14 14:37:35 -08:00
Eric Merritt
474e417891 erlang support: allow nix-shell to work correctly
This changes build-hex.nix so that the buildHex and related functions
work correctly in a nix-shell.
2016-01-14 14:36:47 -08:00
Gleb Peregud
d7e17c2e71 Add shell env to buildHex packages.
This adds erlangPackages.${name}.env, which is usable to launch a shell
with the package and it's dependencies like this:

    nix-shell -A erlangPackages.lager.env

This required:

1) refactoring buildHex to become a fixed-point function,
2) moves output of a package into $out/${name},
3) introduces erlEnv (buildEnv, which links in package and it's deps
   into one directory - a super-simple plagiarization of
   haskellPackages.compiler.ghcWithPackages) and
4) shell function producing a un-buildable derivation to be used by
   nix-shell
2015-12-19 00:07:54 +01:00
Gleb Peregud
4ba1a51b7f Move registry to rebar3, since it needs it itself to be bootstrapped.
This makes rebar3 build a bit more hermetic. Next stage is to pull in
rebar3 plugins dependencies for bootstrap to pick up.
2015-12-15 14:05:19 +01:00
Gleb Peregud
033902d269 Refactor fetchHex out of buildHex.
This will allow to reuse this code to fetch rebar3's dependencies to
ensure it's hermetic build.
2015-12-15 14:01:38 +01:00
Gleb Peregud
acaf2c179e Allow specifying meta for buildHex and buildErlang.
Adds "meta" for meck package as a test.
2015-12-15 14:01:38 +01:00
Gleb Peregud
2a7e77cac5 Move registrySnapshot into it's own file for easier automation. 2015-12-15 14:01:37 +01:00
Gleb Peregud
7e57b20abc Add rebar3-pc to plugin deps automatically if compilePorts is enabled 2015-12-15 14:01:37 +01:00
Gleb Peregud
13a1ab440c Replace deprecated uniqList with unique function 2015-12-15 14:01:37 +01:00
Gleb Peregud
5d3680d265 Fetch hex.pm registry snapshot with external github repo.
This allows to avoid fetching registry file from S3 at build time,
making the build hermetic and much faster. Automatic tools will be used
to update said external repo content when Hex packages are
imported/update.
2015-12-15 14:01:37 +01:00
Gleb Peregud
3a9110b15c Add support for rebar3 plugins to buildHex.
Allow specifying pluginDeps for buildHex listing rebar3 plugins which
are required for given package to be built by rebar3.
2015-12-15 14:01:37 +01:00
Gleb Peregud
eac25eaf69 Simplify patch and move pc compile call into buildPhase 2015-12-15 14:01:37 +01:00
Gleb Peregud
406b974420 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.
2015-12-15 14:01:36 +01:00
Gleb Peregud
2251a942fc Add support for Hex package name
There are some packages on Hex which have custom hex-specific names, but
inside there's a base project name.

Remove most packages andadd ibrowse, meck, jiffy
2015-12-15 14:01:36 +01:00
Gleb Peregud
6dcbe059e1 Automagically download files from hex.pm tarball S3 repo 2015-12-15 14:01:36 +01:00
Gleb Peregud
a05e2dbe65 Add few erlang modules 2015-12-15 14:01:21 +01:00