This adds changes to the rebar3 expression that patch rebar3 to force it
to be hermetic. Now, by default, rebar3 literally can't download
anything. A 'rebar3-open' expression was added for those folks whe want
the normal rebar3.
To successfully build rebar packages, it needs to be provided with
rebar3 plugins used to build it. This change passes them to env
variable. From there rebar3-nix-bootstrap takes them and symlinks into
_build/default/plugins.
This commit adds 187 packages from Hex.pm and documents 100 more that
could not be imported for various reasons. The packages where generated
by hex2nix.
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.
The buildErlang function is broken and and leads Engineers down a wrong
path. For vanilla erlang that doesn't user rebar3, its better to simply
use `stdenv.mkDerivation` along with a set setupHook then the existing
functionality.
This commit moves all the hex based packages to a single namespace. It
also moves all the packages to a single file. This is in preparation
for the move to a system to generate the hex packages from the hex
package store.
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
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.
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