Commit graph

26 commits

Author SHA1 Message Date
Gleb Peregud
73c8aa49e4 Update hex-packages.nix with hermetic rebar3.
This made some packages not build, because rebar3 tries to download
`rebar3_hex` for them.
2016-01-19 12:58:43 +01:00
Gleb Peregud
28fc526f16 Update Erlang hex.pm packages at 2016-01-19.
This is a first fully automatic build.
2016-01-19 12:36:52 +01:00
Eric Merritt
8021b5241c rebar3: refactor to make hermetic
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.
2016-01-18 08:19:15 -08:00
Gleb Peregud
ed4373e8b7 Pass buildPlugins to rebar3-nix-bootstrap.
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.
2016-01-17 21:59:27 +01:00
Eric Merritt
e8933f6a4e webdriver: init at 0.0.0+build.18.7ceaf1f 2016-01-15 08:17:33 -08:00
Eric Merritt
acf4bfd585 erlang support: overridable allow installPhase
This commit allows the installPhase of buildRebar3 to be overridden by
the user.
2016-01-15 08:17:33 -08:00
Eric Merritt
b1719f9fcc erlang support: Add 187 packages pulled from Hex
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.
2016-01-14 14:37:56 -08:00
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
b509dadbf1 erlang support: remove broken buildErlang function
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.
2016-01-14 14:37:21 -08:00
Eric Merritt
10fd4dff99 erlang support: move hex packages to hex namespace
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.
2016-01-14 14:37:07 -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
Eric Merritt
a0309d871c move callPackage into the export set for 'Erlang'
This allows us to have a callPackages that includes erlang packages
2016-01-14 14:35:03 -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