From 99bf9bf07ab20aececb2a951f770786afcadc1d4 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Thu, 14 Jan 2016 07:07:13 -0800 Subject: [PATCH 01/12] rebar3-nix-boostrap: init at 0.0.1 --- .../erlang/rebar3-nix-bootstrap/default.nix | 22 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix diff --git a/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix b/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix new file mode 100644 index 00000000000..347ec1d8bb6 --- /dev/null +++ b/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix @@ -0,0 +1,22 @@ +{stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "rebar3-nix-bootstrap"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "erlang-nix"; + repo = "rebar3-nix-bootstrap"; + rev = "${version}"; + sha256 = "0xyj7j59dmxyl5nhhsmb0r1pihmk0s4k02ga1rfgm30rij6n7431"; + }; + + installFlags = "PREFIX=$(out)"; + + meta = { + description = "Shim command to help bootstrap a rebar3 project on Nix"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/erl-nix/rebar3-nix-bootstrap"; + maintainers = with stdenv.lib.maintainers; [ ericbmerritt ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8a07b7d2a98..7cf73f4243e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5095,6 +5095,7 @@ let rebar = callPackage ../development/tools/build-managers/rebar { }; rebar3 = callPackage ../development/tools/build-managers/rebar3 { }; + rebar3-nix-bootstrap = callPackage ../development/tools/erlang/rebar3-nix-bootstrap { }; fetchHex = callPackage ../development/tools/build-managers/rebar3/fetch-hex.nix { }; erlangPackages = callPackage ../development/erlang-modules { }; From a0309d871cb45edae137b803482eccb039bf97b4 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Fri, 1 Jan 2016 20:07:46 -0800 Subject: [PATCH 02/12] move callPackage into the export set for 'Erlang' This allows us to have a callPackages that includes erlang packages --- pkgs/development/erlang-modules/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/erlang-modules/default.nix b/pkgs/development/erlang-modules/default.nix index 84590e12a1c..d941353f202 100644 --- a/pkgs/development/erlang-modules/default.nix +++ b/pkgs/development/erlang-modules/default.nix @@ -1,9 +1,10 @@ { pkgs }: #? import {} }: let - callPackage = pkgs.lib.callPackageWith (pkgs // self); self = rec { + callPackage = pkgs.lib.callPackageWith (pkgs // self); + buildErlang = callPackage ./build-erlang.nix {}; buildHex = callPackage ./build-hex.nix {}; From 474e4178914719556b7ae9c3ed7084bb82d31b77 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sun, 10 Jan 2016 14:48:44 -0800 Subject: [PATCH 03/12] 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. --- pkgs/development/erlang-modules/build-hex.nix | 68 +++++++------------ .../tools/build-managers/rebar3/default.nix | 21 +++--- .../rebar3/registrySnapshot.nix | 27 ++++++-- 3 files changed, 54 insertions(+), 62 deletions(-) diff --git a/pkgs/development/erlang-modules/build-hex.nix b/pkgs/development/erlang-modules/build-hex.nix index 7ba8fab9bd2..42a4bc9c238 100644 --- a/pkgs/development/erlang-modules/build-hex.nix +++ b/pkgs/development/erlang-modules/build-hex.nix @@ -1,7 +1,9 @@ -{ stdenv, erlang, rebar3, openssl, libyaml, fetchHex, fetchFromGitHub, +{ stdenv, writeText, erlang, rebar3, openssl, libyaml, fetchHex, fetchFromGitHub, rebar3-pc, buildEnv }: -{ name, version, sha256 +{ name, version, sha256 ? false +, src ? null +, setupHook ? null , hexPkg ? name , buildInputs ? [], erlangDeps ? [], pluginDeps ? [] , postPatch ? "" @@ -13,64 +15,40 @@ with stdenv.lib; let plugins = pluginDeps ++ (if compilePorts then [rebar3-pc] else []); - getDeps = drv: [drv] ++ (map getDeps drv.erlangDeps); - recursiveDeps = unique (flatten (map getDeps erlangDeps)); - recursivePluginsDeps = unique (flatten (map getDeps plugins)); - erlEnv = drv: buildEnv { - name = "erlang-env-${drv.name}"; - paths = [ drv ] ++ recursiveDeps; - ignoreCollisions = false; - meta = drv.meta; - }; - shell = drv: let - drvEnv = erlEnv drv; - in stdenv.mkDerivation { - name = "interactive-shell-${drv.name}"; - nativeBuildInputs = [ erlang drvEnv ]; - shellHook = '' - export ERL_LIBS="${drvEnv}"; - ''; - }; + shell = drv: stdenv.mkDerivation { + name = "interactive-shell-${drv.name}"; + buildInputs = [ drv ]; + }; + pkg = self: stdenv.mkDerivation (attrs // { + name = "${name}-${version}"; + inherit version; buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ]; + propagatedBuildInputs = erlangDeps ++ plugins; - src = fetchHex { + src = if src == null then fetchHex { pkg = hexPkg; inherit version; inherit sha256; - }; + } else src; + + setupHook = if setupHook == null + then writeText "setupHook.sh" '' + addToSearchPath ERL_LIBS "$1/lib/erlang/lib/" + '' + else setupHook; postPatch = '' rm -f rebar rebar3 - if [ -e "src/${name}.app.src" ]; then - sed -i -e 's/{ *vsn *,[^}]*}/{vsn, "${version}"}/' "src/${name}.app.src" - fi - - ${if compilePorts then '' - echo "{plugins, [pc]}." >> rebar.config - '' else ''''} - - ${rebar3.setupRegistry} - - ${postPatch} ''; configurePhase = '' runHook preConfigure - ${concatMapStrings (dep: '' - header "linking erlang dependency ${dep}" - ln -s "${dep}/${dep.name}" "_build/default/lib/${dep.name}" - stopNest - '') recursiveDeps} - ${concatMapStrings (dep: '' - header "linking rebar3 plugins ${dep}" - ln -s "${dep}/${dep.name}" "_build/default/plugins/${dep.name}" - stopNest - '') recursivePluginsDeps} + rebar3-nix-bootstrap runHook postConfigure ''; @@ -85,11 +63,11 @@ let installPhase = '' runHook preInstall - mkdir -p "$out/${name}" + mkdir -p "$out/lib/erlang/lib/${name}-${version}" for reldir in src ebin priv include; do fd="_build/default/lib/${name}/$reldir" [ -d "$fd" ] || continue - cp -Hrt "$out/${name}" "$fd" + cp -Hrt "$out/lib/erlang/lib/${name}-${version}" "$fd" success=1 done runHook postInstall diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix index c4e256d5873..5ee9ecbcef8 100644 --- a/pkgs/development/tools/build-managers/rebar3/default.nix +++ b/pkgs/development/tools/build-managers/rebar3/default.nix @@ -1,13 +1,11 @@ -{ stdenv, fetchurl, fetchHex, erlang, tree, fetchFromGitHub }: +{ stdenv, writeText, callPackage, fetchurl, + fetchHex, erlang, rebar3-nix-bootstrap, tree, fetchFromGitHub }: let version = "3.0.0-beta.4"; - registrySnapshot = import ./registrySnapshot.nix { inherit fetchFromGitHub; }; - setupRegistry = '' - mkdir -p _build/default/{lib,plugins,packages}/ ./.cache/rebar3/hex/default/ - zcat ${registrySnapshot}/registry.ets.gz > .cache/rebar3/hex/default/registry - ''; + registrySnapshot = callPackage ./registrySnapshot.nix { }; + # TODO: all these below probably should go into nixpkgs.erlangModules.sources.* # {erlware_commons, "0.16.0"}, erlware_commons = fetchHex { @@ -73,6 +71,7 @@ let in stdenv.mkDerivation { name = "rebar3-${version}"; + inherit version; src = fetchurl { url = "https://github.com/rebar/rebar3/archive/${version}.tar.gz"; @@ -81,14 +80,14 @@ stdenv.mkDerivation { patches = [ ./hermetic-bootstrap.patch ]; - buildInputs = [ erlang - tree - ]; - inherit setupRegistry; + buildInputs = [ erlang tree ]; + propagatedBuildInputs = [ registrySnapshot rebar3-nix-bootstrap ]; + postPatch = '' echo postPatch - ${setupRegistry} + rebar3-nix-bootstrap registry-only + echo "$ERL_LIBS" mkdir -p _build/default/lib/ cp --no-preserve=mode -R ${erlware_commons} _build/default/lib/erlware_commons cp --no-preserve=mode -R ${providers} _build/default/lib/providers diff --git a/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix b/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix index 8e9c2a292fd..29d36e3cccc 100644 --- a/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix +++ b/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix @@ -1,8 +1,23 @@ -{ fetchFromGitHub }: +{stdenv, writeText, fetchFromGitHub }: -fetchFromGitHub { - owner = "gleber"; - repo = "hex-pm-registry-snapshots"; - rev = "329ae2b"; - sha256 = "1rs3z8psfvy10mzlfvkdzbflgikcnq08r38kfi0f8p5wvi8f8hmh"; +stdenv.mkDerivation rec { + name = "hex-registry"; + rev = "329ae2b"; + version = "0.0.0+build.${rev}"; + + src = fetchFromGitHub { + owner = "gleber"; + repo = "hex-pm-registry-snapshots"; + inherit rev; + sha256 = "1rs3z8psfvy10mzlfvkdzbflgikcnq08r38kfi0f8p5wvi8f8hmh"; + }; + + installPhase = '' + mkdir -p "$out/var/hex" + zcat "registry.ets.gz" > "$out/var/hex/registry.ets" + ''; + + setupHook = writeText "setupHook.sh" '' + export HEX_REGISTRY_SNAPSHOT="$1/var/hex/registry.ets" + ''; } From 10fd4dff99d4e8f59d32c1b7f47b778831f9c620 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sun, 10 Jan 2016 15:11:07 -0800 Subject: [PATCH 04/12] 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. --- pkgs/development/erlang-modules/default.nix | 15 +--- .../erlang-modules/hex-packages.nix | 73 +++++++++++++++++++ .../erlang-modules/hex/esqlite.nix | 8 -- .../erlang-modules/hex/goldrush.nix | 7 -- .../erlang-modules/hex/ibrowse.nix | 8 -- pkgs/development/erlang-modules/hex/jiffy.nix | 8 -- pkgs/development/erlang-modules/hex/lager.nix | 8 -- pkgs/development/erlang-modules/hex/meck.nix | 13 ---- .../erlang-modules/hex/rebar3-pc.nix | 7 -- 9 files changed, 76 insertions(+), 71 deletions(-) create mode 100644 pkgs/development/erlang-modules/hex-packages.nix delete mode 100644 pkgs/development/erlang-modules/hex/esqlite.nix delete mode 100644 pkgs/development/erlang-modules/hex/goldrush.nix delete mode 100644 pkgs/development/erlang-modules/hex/ibrowse.nix delete mode 100644 pkgs/development/erlang-modules/hex/jiffy.nix delete mode 100644 pkgs/development/erlang-modules/hex/lager.nix delete mode 100644 pkgs/development/erlang-modules/hex/meck.nix delete mode 100644 pkgs/development/erlang-modules/hex/rebar3-pc.nix diff --git a/pkgs/development/erlang-modules/default.nix b/pkgs/development/erlang-modules/default.nix index d941353f202..53d54a77a60 100644 --- a/pkgs/development/erlang-modules/default.nix +++ b/pkgs/development/erlang-modules/default.nix @@ -1,19 +1,10 @@ { pkgs }: #? import {} }: let - self = rec { - callPackage = pkgs.lib.callPackageWith (pkgs // self); - + hex = import ./hex-packages.nix { callPackage = self.callPackage; }; + callPackage = pkgs.lib.callPackageWith (pkgs // self // hex); buildErlang = callPackage ./build-erlang.nix {}; buildHex = callPackage ./build-hex.nix {}; - - rebar3-pc = callPackage ./hex/rebar3-pc.nix {}; - esqlite = callPackage ./hex/esqlite.nix {}; - goldrush = callPackage ./hex/goldrush.nix {}; - ibrowse = callPackage ./hex/ibrowse.nix {}; - jiffy = callPackage ./hex/jiffy.nix {}; - lager = callPackage ./hex/lager.nix {}; - meck = callPackage ./hex/meck.nix {}; }; -in self +in self // self.hex diff --git a/pkgs/development/erlang-modules/hex-packages.nix b/pkgs/development/erlang-modules/hex-packages.nix new file mode 100644 index 00000000000..fe260f015aa --- /dev/null +++ b/pkgs/development/erlang-modules/hex-packages.nix @@ -0,0 +1,73 @@ +/* hex.nix is an auto-generated file -- DO NOT EDIT! */ +{ callPackage }: + +let + self = rec { + + esqlite = callPackage + ({ buildHex, rebar3-pc }: + buildHex { + name = "esqlite"; + version = "0.2.1"; + sha256 = "1296fn1lz4lz4zqzn4dwc3flgkh0i6n4sydg501faabfbv8d3wkr"; + compilePort = true; + }) {}; + + ibrowse = callPackage + ({ buildHex, meck }: + buildHex { + name = "ibrowse"; + version = "4.2.2"; + sha256 = "1bn0645n95j5zypdsns1w4kgd3q9lz8fj898hg355j5w89scn05q"; + erlangDeps = [ meck ]; + }) {}; + + meck = callPackage + ({ stdenv, buildHex }: + buildHex { + name = "meck"; + version = "0.8.3"; + sha256 = "1dh2rhks1xly4f49x89vbhsk8fgwkx5zqp0n98mnng8rs1rkigak"; + + meta = { + description = "A mocking framework for Erlang"; + homepage = "https://github.com/eproxus/meck"; + license = stdenv.lib.licenses.apsl20; + }; + }) {}; + + goldrush = callPackage + ({ buildHex, fetchurl }: + buildHex { + name = "goldrush"; + version = "0.1.7"; + sha256 = "1zjgbarclhh10cpgvfxikn9p2ay63rajq96q1sbz9r9w6v6p8jm9"; + }) {}; + + jiffy = callPackage + ({ buildHex }: + buildHex { + name = "jiffy"; + version = "0.14.5"; + hexPkg = "barrel_jiffy"; + sha256 = "0iqz8bp0f672c5rfy5dpw9agv2708wzldd00ngbsffglpinlr1wa"; + }) {}; + + lager = callPackage + ({ buildHex, goldrush }: + buildHex { + name = "lager"; + version = "3.0.2"; + sha256 = "0051zj6wfmmvxjn9q0nw8wic13nhbrkyy50cg1lcpdh17qiknzsj"; + erlangDeps = [ goldrush ]; + }) {}; + + rebar3-pc = callPackage + ({ buildHex, goldrush }: + buildHex { + name = "pc"; + version = "1.1.0"; + sha256 = "1br5xfl4b2z70b6a2ccxppn64jvkqgpmy4y9v81kxzb91z0ss9ma"; + }) {}; + }; +in self diff --git a/pkgs/development/erlang-modules/hex/esqlite.nix b/pkgs/development/erlang-modules/hex/esqlite.nix deleted file mode 100644 index 1fc3a2e91dc..00000000000 --- a/pkgs/development/erlang-modules/hex/esqlite.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ buildHex, rebar3-pc }: - -buildHex { - name = "esqlite"; - version = "0.2.1"; - sha256 = "1296fn1lz4lz4zqzn4dwc3flgkh0i6n4sydg501faabfbv8d3wkr"; - compilePorts = true; -} diff --git a/pkgs/development/erlang-modules/hex/goldrush.nix b/pkgs/development/erlang-modules/hex/goldrush.nix deleted file mode 100644 index ddff7f6cc56..00000000000 --- a/pkgs/development/erlang-modules/hex/goldrush.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ buildHex, fetchurl }: - -buildHex { - name = "goldrush"; - version = "0.1.7"; - sha256 = "1zjgbarclhh10cpgvfxikn9p2ay63rajq96q1sbz9r9w6v6p8jm9"; -} diff --git a/pkgs/development/erlang-modules/hex/ibrowse.nix b/pkgs/development/erlang-modules/hex/ibrowse.nix deleted file mode 100644 index 6ed189eb39d..00000000000 --- a/pkgs/development/erlang-modules/hex/ibrowse.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ buildHex }: - -buildHex { - name = "ibrowse"; - version = "4.2.2"; - sha256 = "1bn0645n95j5zypdsns1w4kgd3q9lz8fj898hg355j5w89scn05q"; -} - diff --git a/pkgs/development/erlang-modules/hex/jiffy.nix b/pkgs/development/erlang-modules/hex/jiffy.nix deleted file mode 100644 index b9f92c888a4..00000000000 --- a/pkgs/development/erlang-modules/hex/jiffy.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ buildHex }: - -buildHex { - name = "jiffy"; - version = "0.14.5"; - hexPkg = "barrel_jiffy"; - sha256 = "0iqz8bp0f672c5rfy5dpw9agv2708wzldd00ngbsffglpinlr1wa"; -} diff --git a/pkgs/development/erlang-modules/hex/lager.nix b/pkgs/development/erlang-modules/hex/lager.nix deleted file mode 100644 index acfefd5757c..00000000000 --- a/pkgs/development/erlang-modules/hex/lager.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ buildHex, goldrush }: - -buildHex { - name = "lager"; - version = "3.0.2"; - sha256 = "0051zj6wfmmvxjn9q0nw8wic13nhbrkyy50cg1lcpdh17qiknzsj"; - erlangDeps = [ goldrush ]; -} diff --git a/pkgs/development/erlang-modules/hex/meck.nix b/pkgs/development/erlang-modules/hex/meck.nix deleted file mode 100644 index 5af8a15a908..00000000000 --- a/pkgs/development/erlang-modules/hex/meck.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ stdenv, buildHex }: - -buildHex { - name = "meck"; - version = "0.8.3"; - sha256 = "1dh2rhks1xly4f49x89vbhsk8fgwkx5zqp0n98mnng8rs1rkigak"; - - meta = { - description = "A mocking framework for Erlang"; - homepage = "https://github.com/eproxus/meck"; - license = stdenv.lib.licenses.apsl20; - }; -} diff --git a/pkgs/development/erlang-modules/hex/rebar3-pc.nix b/pkgs/development/erlang-modules/hex/rebar3-pc.nix deleted file mode 100644 index 5bc45d3e3ab..00000000000 --- a/pkgs/development/erlang-modules/hex/rebar3-pc.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ buildHex, goldrush }: - -buildHex { - name = "pc"; - version = "1.1.0"; - sha256 = "1br5xfl4b2z70b6a2ccxppn64jvkqgpmy4y9v81kxzb91z0ss9ma"; -} From b509dadbf157316b88641cd5d64a23ab524f486f Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sun, 10 Jan 2016 15:16:53 -0800 Subject: [PATCH 05/12] 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. --- .../erlang-modules/build-erlang.nix | 68 ------------------- pkgs/development/erlang-modules/default.nix | 1 - 2 files changed, 69 deletions(-) delete mode 100644 pkgs/development/erlang-modules/build-erlang.nix diff --git a/pkgs/development/erlang-modules/build-erlang.nix b/pkgs/development/erlang-modules/build-erlang.nix deleted file mode 100644 index e662166741a..00000000000 --- a/pkgs/development/erlang-modules/build-erlang.nix +++ /dev/null @@ -1,68 +0,0 @@ -# This file is not used not tested at this time, build-hex.nix is the currently -# main vehicle of bringing Erlang packages in. - -{ stdenv, erlang, rebar, openssl, libyaml }: - -{ name, version -, buildInputs ? [], erlangDeps ? [] -, postPatch ? "" -, meta ? {} -, ... }@attrs: - -with stdenv.lib; - -stdenv.mkDerivation (attrs // { - name = "${name}-${version}"; - - buildInputs = buildInputs ++ [ erlang rebar openssl libyaml ]; - - postPatch = '' - rm -f rebar - if [ -e "src/${name}.app.src" ]; then - sed -i -e 's/{ *vsn *,[^}]*}/{vsn, "${version}"}/' "src/${name}.app.src" - fi - ${postPatch} - ''; - - configurePhase = let - getDeps = drv: [drv] ++ (map getDeps drv.erlangDeps); - recursiveDeps = uniqList { - inputList = flatten (map getDeps erlangDeps); - }; - in '' - runHook preConfigure - ${concatMapStrings (dep: '' - header "linking erlang dependency ${dep}" - mkdir deps - ln -s "${dep}" "deps/${dep.packageName}" - stopNest - '') recursiveDeps} - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - rebar compile - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - for reldir in src ebin priv include; do - [ -e "$reldir" ] || continue - mkdir "$out" - cp -rt "$out" "$reldir" - success=1 - done - runHook postInstall - ''; - - meta = { - inherit (erlang.meta) platforms; - } // meta; - - passthru = { - packageName = name; - inherit erlangDeps; - }; -}) diff --git a/pkgs/development/erlang-modules/default.nix b/pkgs/development/erlang-modules/default.nix index 53d54a77a60..4180ddc8121 100644 --- a/pkgs/development/erlang-modules/default.nix +++ b/pkgs/development/erlang-modules/default.nix @@ -4,7 +4,6 @@ let self = rec { hex = import ./hex-packages.nix { callPackage = self.callPackage; }; callPackage = pkgs.lib.callPackageWith (pkgs // self // hex); - buildErlang = callPackage ./build-erlang.nix {}; buildHex = callPackage ./build-hex.nix {}; }; in self // self.hex From d541d0e6403e3a11417a729b211eebce22db0c61 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sun, 10 Jan 2016 15:25:45 -0800 Subject: [PATCH 06/12] 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. --- pkgs/development/erlang-modules/build-hex.nix | 76 +---------------- .../erlang-modules/build-rebar3.nix | 82 +++++++++++++++++++ pkgs/development/erlang-modules/default.nix | 2 + 3 files changed, 88 insertions(+), 72 deletions(-) create mode 100644 pkgs/development/erlang-modules/build-rebar3.nix diff --git a/pkgs/development/erlang-modules/build-hex.nix b/pkgs/development/erlang-modules/build-hex.nix index 42a4bc9c238..ff6e47e5a80 100644 --- a/pkgs/development/erlang-modules/build-hex.nix +++ b/pkgs/development/erlang-modules/build-hex.nix @@ -1,86 +1,18 @@ -{ stdenv, writeText, erlang, rebar3, openssl, libyaml, fetchHex, fetchFromGitHub, - rebar3-pc, buildEnv }: +{ stdenv, buildRebar3, fetchHex }: -{ name, version, sha256 ? false -, src ? null -, setupHook ? null +{ name, version, sha256 , hexPkg ? name -, buildInputs ? [], erlangDeps ? [], pluginDeps ? [] -, postPatch ? "" -, compilePorts ? false -, meta ? {} , ... }@attrs: with stdenv.lib; let - plugins = pluginDeps ++ (if compilePorts then [rebar3-pc] else []); + pkg = self: buildRebar3 (attrs // { - - shell = drv: stdenv.mkDerivation { - name = "interactive-shell-${drv.name}"; - buildInputs = [ drv ]; - }; - - pkg = self: stdenv.mkDerivation (attrs // { - - name = "${name}-${version}"; - inherit version; - - buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ]; - propagatedBuildInputs = erlangDeps ++ plugins; - - src = if src == null then fetchHex { + src = fetchHex { pkg = hexPkg; inherit version; inherit sha256; - } else src; - - setupHook = if setupHook == null - then writeText "setupHook.sh" '' - addToSearchPath ERL_LIBS "$1/lib/erlang/lib/" - '' - else setupHook; - - postPatch = '' - rm -f rebar rebar3 - ''; - - configurePhase = '' - runHook preConfigure - rebar3-nix-bootstrap - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - HOME=. rebar3 compile - ${if compilePorts then '' - HOME=. rebar3 pc compile - '' else ''''} - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - mkdir -p "$out/lib/erlang/lib/${name}-${version}" - for reldir in src ebin priv include; do - fd="_build/default/lib/${name}/$reldir" - [ -d "$fd" ] || continue - cp -Hrt "$out/lib/erlang/lib/${name}-${version}" "$fd" - success=1 - done - runHook postInstall - ''; - - meta = { - inherit (erlang.meta) platforms; - } // meta; - - passthru = { - packageName = name; - env = shell self; - inherit erlangDeps; }; }); in diff --git a/pkgs/development/erlang-modules/build-rebar3.nix b/pkgs/development/erlang-modules/build-rebar3.nix new file mode 100644 index 00000000000..3600f4aab6e --- /dev/null +++ b/pkgs/development/erlang-modules/build-rebar3.nix @@ -0,0 +1,82 @@ +{ stdenv, writeText, erlang, rebar3, openssl, libyaml, fetchHex, fetchFromGitHub, + rebar3-pc, buildEnv }: + +{ name, version +, src +, setupHook ? null +, buildInputs ? [], erlangDeps ? [], pluginDeps ? [] +, postPatch ? "" +, compilePorts ? false +, meta ? {} +, ... }@attrs: + +with stdenv.lib; + +let + plugins = pluginDeps ++ (if compilePorts then [rebar3-pc] else []); + + + shell = drv: stdenv.mkDerivation { + name = "interactive-shell-${drv.name}"; + buildInputs = [ drv ]; + }; + + pkg = self: stdenv.mkDerivation (attrs // { + + name = "${name}-${version}"; + inherit version; + + buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ]; + propagatedBuildInputs = erlangDeps ++ plugins; + + inherit src; + + setupHook = if setupHook == null + then writeText "setupHook.sh" '' + addToSearchPath ERL_LIBS "$1/lib/erlang/lib/" + '' + else setupHook; + + postPatch = '' + rm -f rebar rebar3 + ''; + + configurePhase = '' + runHook preConfigure + rebar3-nix-bootstrap + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + HOME=. rebar3 compile + ${if compilePorts then '' + HOME=. rebar3 pc compile + '' else ''''} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p "$out/lib/erlang/lib/${name}-${version}" + for reldir in src ebin priv include; do + fd="_build/default/lib/${name}/$reldir" + [ -d "$fd" ] || continue + cp -Hrt "$out/lib/erlang/lib/${name}-${version}" "$fd" + success=1 + done + runHook postInstall + ''; + + meta = { + inherit (erlang.meta) platforms; + } // meta; + + passthru = { + packageName = name; + env = shell self; + inherit erlangDeps; + }; + }); +in + fix pkg diff --git a/pkgs/development/erlang-modules/default.nix b/pkgs/development/erlang-modules/default.nix index 4180ddc8121..fc5e6bad1f6 100644 --- a/pkgs/development/erlang-modules/default.nix +++ b/pkgs/development/erlang-modules/default.nix @@ -4,6 +4,8 @@ let self = rec { hex = import ./hex-packages.nix { callPackage = self.callPackage; }; callPackage = pkgs.lib.callPackageWith (pkgs // self // hex); + + buildRebar3 = callPackage ./build-rebar3.nix {}; buildHex = callPackage ./build-hex.nix {}; }; in self // self.hex From b1719f9fcc618ba91c8812b838f5ca4fa12efb7f Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sat, 9 Jan 2016 15:42:28 -0800 Subject: [PATCH 07/12] 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. --- .../erlang-modules/build-rebar3.nix | 4 +- pkgs/development/erlang-modules/default.nix | 4 +- .../erlang-modules/hex-packages.nix | 3854 ++++++++++++++++- 3 files changed, 3798 insertions(+), 64 deletions(-) diff --git a/pkgs/development/erlang-modules/build-rebar3.nix b/pkgs/development/erlang-modules/build-rebar3.nix index 3600f4aab6e..16e663d14b9 100644 --- a/pkgs/development/erlang-modules/build-rebar3.nix +++ b/pkgs/development/erlang-modules/build-rebar3.nix @@ -1,5 +1,5 @@ { stdenv, writeText, erlang, rebar3, openssl, libyaml, fetchHex, fetchFromGitHub, - rebar3-pc, buildEnv }: + pc, buildEnv }: { name, version , src @@ -13,7 +13,7 @@ with stdenv.lib; let - plugins = pluginDeps ++ (if compilePorts then [rebar3-pc] else []); + plugins = pluginDeps ++ (if compilePorts then [pc] else []); shell = drv: stdenv.mkDerivation { diff --git a/pkgs/development/erlang-modules/default.nix b/pkgs/development/erlang-modules/default.nix index fc5e6bad1f6..7f096016ddb 100644 --- a/pkgs/development/erlang-modules/default.nix +++ b/pkgs/development/erlang-modules/default.nix @@ -1,8 +1,8 @@ -{ pkgs }: #? import {} }: +{ stdenv, pkgs }: #? import {} }: let self = rec { - hex = import ./hex-packages.nix { callPackage = self.callPackage; }; + hex = import ./hex-packages.nix { stdenv = stdenv; callPackage = self.callPackage; }; callPackage = pkgs.lib.callPackageWith (pkgs // self // hex); buildRebar3 = callPackage ./build-rebar3.nix {}; diff --git a/pkgs/development/erlang-modules/hex-packages.nix b/pkgs/development/erlang-modules/hex-packages.nix index fe260f015aa..9a165503b79 100644 --- a/pkgs/development/erlang-modules/hex-packages.nix +++ b/pkgs/development/erlang-modules/hex-packages.nix @@ -1,73 +1,3807 @@ -/* hex.nix is an auto-generated file -- DO NOT EDIT! */ -{ callPackage }: +/* hex-packages.nix is an auto-generated file -- DO NOT EDIT! +* +* Unbuildable Packages: +* +* active_0_9_0 +* conferl_0_0_1 +* db_0_9_0 +* ekstat_0_2_2 +* erltrace_0_1_4 +* escalus_2_6_4 +* fqc_0_1_5 +* - libsnarlmatch_0_1_5 +* - rankmatcher_0_1_2 +* fqc_0_1_7 +* hash_ring_ex_1_1_2 +* gpb_3_18_10 +* gpb_3_18_8 +* - rebar_protobuffs_0_1_0 +* jose_1_4_2 +* jsxn_0_2_1 +* kvs_2_1_0 +* lager_2_1_1 +* - dqe_0_1_22 +* - ensq_0_1_6 +* - eplugin_0_1_4 +* - fifo_utils_0_1_18 +* - lager_watchdog_0_1_10 +* - mdns_client_0_1_7 +* - mdns_client_lib_0_1_33 +* lasp_0_0_3 +* libleofs_0_1_2 +* ezmq_0_2_0 +* mad_0_9_0 +* hackney_1_4_8 +* mmath_0_1_15 +* - ddb_client_0_1_17 +* - folsom_ddb_0_1_20 +* - dproto_0_1_12 +* - mstore_0_1_9 +* mmath_0_1_16 +* n2o_2_3_0 +* nodefinder_1_4_0 +* - cloudi_core_1_4_0_rc_4 +* - cloudi_service_db_cassandra_1_3_3 +* - cloudi_service_db_elasticsearch_1_3_3 +* - cloudi_service_db_riak_1_3_3 +* nodefinder_1_5_1 +* - cloudi_core_1_5_1 +* - cloudi_service_api_requests_1_5_1 +* - cloudi_service_db_1_5_1 +* - cloudi_service_db_cassandra_cql_1_5_1 +* - cloudi_service_db_couchdb_1_5_1 +* - cloudi_service_db_http_elli_1_5_1 +* - cloudi_service_db_memcached_1_5_1 +* - cloudi_service_db_mysql_1_5_1 +* - cloudi_service_db_pgsql_1_5_1 +* - cloudi_service_db_tokyotyrant_1_5_0 +* - cloudi_service_filesystem_1_5_1 +* - cloudi_service_http_client_1_5_1 +* - cloudi_service_http_cowboy_1_5_1 +* - cloudi_service_http_rest_1_5_1 +* - cloudi_service_map_reduce_1_5_1 +* - cloudi_service_monitoring_1_5_1 +* - cloudi_service_queue_1_5_1 +* - cloudi_service_quorum_1_5_1 +* - cloudi_service_router_1_5_1 +* - cloudi_service_tcp_1_5_1 +* - cloudi_service_timers_1_5_1 +* - cloudi_service_udp_1_5_1 +* - cloudi_service_validate_1_5_1 +* - cloudi_service_zeromq_1_5_1 +* - service_1_5_1 +* fast_yaml_1_0_1 +* parse_trans_2_9_0 +* pooler_1_4_0 +* protobuffs_0_8_2 +* - rebar3_protobuffs_0_2_0 +* - riak_pb_2_1_0 +* - riakc_2_1_1 +* locker_1_0_8 +* cowboy_1_0_4 +* - cet_0_2_0 +* amqp_client_3_5_6 +* rebar3_abnfc_plugin_0_1_0 +* rebar3_eqc_0_0_8 +* rebar3_exunit_0_1_1 +* rebar3_proper_0_5_0 +* rebar3_yang_plugin_0_2_1 +* hackney_1_1_0 +* - erlastic_search_1_1_1 +* hackney_1_3_1 +* - craterl_0_2_3 +* hackney_1_3_2 +* - epubnub_0_1_0 +* cpg_1_4_0 +* cpg_1_5_1 +* uuid_erl_1_4_0 +* uuid_erl_1_5_1 +* ucol_nif_1_1_5 +* katipo_0_2_4 +* xref_runner_0_2_4 +*/ +{ stdenv, callPackage }: let self = rec { - esqlite = callPackage - ({ buildHex, rebar3-pc }: - buildHex { - name = "esqlite"; - version = "0.2.1"; - sha256 = "1296fn1lz4lz4zqzn4dwc3flgkh0i6n4sydg501faabfbv8d3wkr"; - compilePort = true; - }) {}; + aws_http_0_2_4 = callPackage + ( + { buildHex, barrel_jiffy_0_14_4, lhttpc_1_3_0 }: + buildHex { + name = "aws_http"; + version = "0.2.4"; + sha256 = + "96065da0d348a8e47e01531cfa720615e15a21c1bd4e5c82decf56026cde128f"; - ibrowse = callPackage - ({ buildHex, meck }: - buildHex { - name = "ibrowse"; - version = "4.2.2"; - sha256 = "1bn0645n95j5zypdsns1w4kgd3q9lz8fj898hg355j5w89scn05q"; - erlangDeps = [ meck ]; - }) {}; + erlangDeps = [ barrel_jiffy_0_14_4 lhttpc_1_3_0 ]; - meck = callPackage - ({ stdenv, buildHex }: - buildHex { - name = "meck"; - version = "0.8.3"; - sha256 = "1dh2rhks1xly4f49x89vbhsk8fgwkx5zqp0n98mnng8rs1rkigak"; + meta = { + description = "Amazon AWS HTTP helpers"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/anha0825/erl_aws_http"; + }; + } + ) {}; - meta = { - description = "A mocking framework for Erlang"; - homepage = "https://github.com/eproxus/meck"; - license = stdenv.lib.licenses.apsl20; - }; - }) {}; + aws_http = aws_http_0_2_4; - goldrush = callPackage - ({ buildHex, fetchurl }: - buildHex { - name = "goldrush"; - version = "0.1.7"; - sha256 = "1zjgbarclhh10cpgvfxikn9p2ay63rajq96q1sbz9r9w6v6p8jm9"; - }) {}; + backoff_1_1_3 = callPackage + ( + { buildHex }: + buildHex { + name = "backoff"; + version = "1.1.3"; + sha256 = + "30cead738d20e4c8d36cd37857dd5e23aeba57cb868bf64766d47d371422bdff"; - jiffy = callPackage - ({ buildHex }: - buildHex { - name = "jiffy"; - version = "0.14.5"; - hexPkg = "barrel_jiffy"; - sha256 = "0iqz8bp0f672c5rfy5dpw9agv2708wzldd00ngbsffglpinlr1wa"; - }) {}; + meta = { + description = "Exponential backoffs library"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/ferd/backoff"; + }; + } + ) {}; - lager = callPackage - ({ buildHex, goldrush }: - buildHex { - name = "lager"; - version = "3.0.2"; - sha256 = "0051zj6wfmmvxjn9q0nw8wic13nhbrkyy50cg1lcpdh17qiknzsj"; - erlangDeps = [ goldrush ]; - }) {}; + backoff = backoff_1_1_3; + + barrel_ibrowse_4_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "barrel_ibrowse"; + version = "4.2.0"; + sha256 = + "58bd9e45932c10fd3d0ceb5c4e47952c3243ea300b388192761ac20be197b2ca"; + + meta = { + description = "Erlang HTTP client application"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/barrel-db/ibrowse"; + }; + } + ) {}; + + barrel_ibrowse = barrel_ibrowse_4_2_0; + + barrel_jiffy_0_14_4 = callPackage + ( + { buildHex }: + buildHex { + name = "barrel_jiffy"; + version = "0.14.4"; + sha256 = + "3b730d6a18e988b8411f449bbb5df3637eb7bea864302924581b2391dd6b6e71"; + compilePort = true; + + meta = { + description = "JSON Decoder/Encoder."; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/barrel-db/jiffy"; + }; + } + ) {}; + + barrel_jiffy_0_14_5 = callPackage + ( + { buildHex }: + buildHex { + name = "barrel_jiffy"; + version = "0.14.5"; + sha256 = + "8a874c6dbcf439a7d7b300b4463f47e088fd54e2b715ef7261e21807ee421f47"; + compilePort = true; + + meta = { + description = "JSON Decoder/Encoder."; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/barrel-db/jiffy"; + }; + } + ) {}; + + barrel_jiffy = barrel_jiffy_0_14_5; + + barrel_oauth_1_6_0 = callPackage + ( + { buildHex }: + buildHex { + name = "barrel_oauth"; + version = "1.6.0"; + sha256 = + "b2a800b771d45f32a9a55d416054b3bdfab3a925b62e8000f2c08b719390d4dd"; + + meta = { + description = "An Erlang OAuth 1.0 implementation"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/barrel-db/erlang-oauth"; + }; + } + ) {}; + + barrel_oauth = barrel_oauth_1_6_0; + + base16_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "base16"; + version = "1.0.0"; + sha256 = + "02afd0827e61a7b07093873e063575ca3a2b07520567c7f8cec7c5d42f052d76"; + + meta = { + description = "Base16 encoding and decoding"; + license = with stdenv.lib.licenses; [ bsd3 free ]; + homepage = "https://github.com/goj/base16"; + }; + } + ) {}; + + base16 = base16_1_0_0; + + base64url_0_0_1 = callPackage + ( + { buildHex }: + buildHex { + name = "base64url"; + version = "0.0.1"; + sha256 = + "fab09b20e3f5db886725544cbcf875b8e73ec93363954eb8a1a9ed834aa8c1f9"; + + meta = { + description = "URL safe base64-compatible codec"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/dvv/base64url"; + }; + } + ) {}; + + base64url = base64url_0_0_1; + + bbmustache_1_0_4 = callPackage + ( + { buildHex }: + buildHex { + name = "bbmustache"; + version = "1.0.4"; + sha256 = + "03b0d47db66e86df993896dce7578d7e4aae5f84636809b45fa8a3e34ee59b12"; + + meta = { + description = + "Binary pattern match Based Mustache template engine for Erlang/OTP"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/soranoba/bbmustache"; + }; + } + ) {}; + + bbmustache_1_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "bbmustache"; + version = "1.1.0"; + sha256 = + "aa22469836bb8a9928ad741bdd2038d49116228bfbe0c2d6c792e1bdd4b256d9"; + + meta = { + description = + "Binary pattern match Based Mustache template engine for Erlang/OTP"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/soranoba/bbmustache"; + }; + } + ) {}; + + bbmustache = bbmustache_1_1_0; + + bear_0_8_3 = callPackage + ( + { buildHex }: + buildHex { + name = "bear"; + version = "0.8.3"; + sha256 = + "0a04ce4702e00e0a43c0fcdd63e38c9c7d64dceb32b27ffed261709e7c3861ad"; + + meta = { + description = "Statistics functions for Erlang"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/puzza007/bear"; + }; + } + ) {}; + + bear = bear_0_8_3; + + bstr_0_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "bstr"; + version = "0.3.0"; + sha256 = + "0fb4e05619663d48dabcd21023915741277ba392f2a5710dde7ab6034760284d"; + + meta = { + description = "Erlang library that uses binaries as strings"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/jcomellas/bstr"; + }; + } + ) {}; + + bstr = bstr_0_3_0; + + cache_tab_1_0_1 = callPackage + ( + { buildHex, p1_utils_1_0_1 }: + buildHex { + name = "cache_tab"; + version = "1.0.1"; + sha256 = + "717a91101e03535ab65e4a9ce028ae3f0ddfb4ce0fd4144bf8816082c6dc2933"; + + erlangDeps = [ p1_utils_1_0_1 ]; + + meta = { + description = "In-memory cache Erlang / Elixir library"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/processone/cache_tab"; + }; + } + ) {}; + + cache_tab = cache_tab_1_0_1; + + certifi_0_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "certifi"; + version = "0.1.1"; + sha256 = + "e6d1dda48fad1b1c5b454c8402e2ac375ae12bf85a9910decaf791f330a7de29"; + + meta = { + description = "An OTP library"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/certifi/erlang-certifi"; + }; + } + ) {}; + + certifi_0_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "certifi"; + version = "0.3.0"; + sha256 = + "42ae85fe91c038a634a5fb8d0c77f4fc581914c508f087c7138e9366a1517f6a"; + + meta = { + description = "An OTP library"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/certifi/erlang-certifi"; + }; + } + ) {}; + + certifi = certifi_0_3_0; + + cf_0_1_2 = callPackage + ( + { buildHex }: + buildHex { + name = "cf"; + version = "0.1.2"; + sha256 = + "c86f56bca74dd3616057b28574d920973fe665ecb064aa458dc6a2447f3f4924"; + + meta = { + description = "Terminal colour helper"; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + cf_0_2_1 = callPackage + ( + { buildHex }: + buildHex { + name = "cf"; + version = "0.2.1"; + sha256 = + "baee9aa7ec2dfa3cb4486b67211177caa293f876780f0b313b45718edef6a0a5"; + + meta = { + description = "Terminal colour helper"; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + cf = cf_0_2_1; + + cmark_0_6_2 = callPackage + ( + { buildHex }: + buildHex { + name = "cmark"; + version = "0.6.2"; + sha256 = + "c17bbc354864cc8dfd352c772eb1655a5c67718c76d76df0aaf6179a833c76ef"; + compilePort = true; + + meta = { + longDescription = ''Elixir NIF for cmark (C), a parser library + following the CommonMark spec, a compatible + implementation of Markdown.''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/asaaki/cmark.ex"; + }; + } + ) {}; + + cmark = cmark_0_6_2; + + comeonin_2_0_1 = callPackage + ( + { buildHex }: + buildHex { + name = "comeonin"; + version = "2.0.1"; + sha256 = + "7f7468625058ab1b817c00efa473d8117b0113a73a429f25cf663d5e2416572f"; + compilePort = true; + + meta = { + description = + "Password hashing (bcrypt, pbkdf2_sha512) library for Elixir."; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/elixircnx/comeonin"; + }; + } + ) {}; + + comeonin = comeonin_2_0_1; + + couchbeam_1_2_1 = callPackage + ( + { buildHex, hackney_1_4_4, jsx_2_8_0 }: + buildHex { + name = "couchbeam"; + version = "1.2.1"; + sha256 = + "ed19f0412aa0539ecf622ac8ade1ca0e316f424e3334ad015a3fb8db19e91194"; + + erlangDeps = [ hackney_1_4_4 jsx_2_8_0 ]; + + meta = { + description = "Erlang CouchDB client"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + couchbeam = couchbeam_1_2_1; + + cowlib_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "cowlib"; + version = "1.0.0"; + sha256 = + "4dacd60356177ec8cf93dbff399de17435b613f3318202614d3d5acbccee1474"; + + meta = { + description = "Support library for manipulating Web protocols."; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/ninenines/cowlib"; + }; + } + ) {}; + + cowlib_1_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "cowlib"; + version = "1.0.2"; + sha256 = + "db622da03aa039e6366ab953e31186cc8190d32905e33788a1acb22744e6abd2"; + + meta = { + description = "Support library for manipulating Web protocols."; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/ninenines/cowlib"; + }; + } + ) {}; + + cowlib_1_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "cowlib"; + version = "1.3.0"; + sha256 = + "2b1ac020ec92e7a59cb7322779870c2d3adc7c904ecb3b9fa406f04dc9816b73"; + + meta = { + description = "Support library for manipulating Web protocols."; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/ninenines/cowlib"; + }; + } + ) {}; + + cowlib = cowlib_1_3_0; + + crc_0_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "crc"; + version = "0.3.0"; + sha256 = + "23d7cb6a18cca461f46f5a0f341c74fd0a680cdae62460687f1a24f0a7faabd4"; + + meta = { + description = + "A library used to calculate CRC checksums for binary data"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/TattdCodeMonkey/crc"; + }; + } + ) {}; + + crc = crc_0_3_0; + + crypto_rsassa_pss_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "crypto_rsassa_pss"; + version = "1.0.0"; + sha256 = + "d8f48874dbef940a8954126249499714e702d8ae0a8f23230a6c2f4a92833313"; + + meta = { + description = + "RSASSA-PSS Public Key Cryptographic Signature Algorithm for Erlang"; + license = stdenv.lib.licenses.free; + homepage = + "https://github.com/potatosalad/erlang-crypto_rsassa_pss"; + }; + } + ) {}; + + crypto_rsassa_pss = crypto_rsassa_pss_1_0_0; + + cth_readable_1_2_0 = callPackage + ( + { buildHex, cf_0_2_1 }: + buildHex { + name = "cth_readable"; + version = "1.2.0"; + sha256 = + "41dee2a37e0f266c590b3ea9542ca664e84ebc781a3949115eba658afc08026d"; + + erlangDeps = [ cf_0_2_1 ]; + + meta = { + description = "Common Test hooks for more readable logs"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/ferd/cth_readable"; + }; + } + ) {}; + + cth_readable = cth_readable_1_2_0; + + cucumberl_0_0_6 = callPackage + ( + { buildHex }: + buildHex { + name = "cucumberl"; + version = "0.0.6"; + sha256 = + "3b9ea813997fd8c1e3d2b004e89288496dc21d2e5027f432e5900569d2c61cf3"; + + meta = { + description = "A pure-erlang implementation of Cucumber."; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/ericbmerritt/cucumberl"; + }; + } + ) {}; + + cucumberl = cucumberl_0_0_6; + + denrei_0_2_3 = callPackage + ( + { buildHex }: + buildHex { + name = "denrei"; + version = "0.2.3"; + sha256 = + "bc0e8cf7e085dda6027df83ef5d63c41b93988bcd7f3db7c68e4dad3cd599744"; + + meta = { + description = "Denrei - a lightweight Erlang messaging system."; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + denrei = denrei_0_2_3; + + detergent_0_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "detergent"; + version = "0.3.0"; + sha256 = + "510cfb5d35b4b344762f074b73c8696b4bdde654ea046b3365cf92760ae33362"; + + meta = { + description = "An emulsifying Erlang SOAP library"; + license = with stdenv.lib.licenses; [ unlicense bsd3 ]; + homepage = "https://github.com/devinus/detergent"; + }; + } + ) {}; + + detergent = detergent_0_3_0; + + dflow_0_1_5 = callPackage + ( + { buildHex }: + buildHex { + name = "dflow"; + version = "0.1.5"; + sha256 = + "f08e73f22d4c620ef5f358a0b40f8fe3b91219ca3922fbdbe7e42f1cb58f737e"; + + meta = { + description = "Pipelined flow processing engine"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/dalmatinerdb/dflow"; + }; + } + ) {}; + + dflow = dflow_0_1_5; + + discount_0_7_0 = callPackage + ( + { buildHex }: + buildHex { + name = "discount"; + version = "0.7.0"; + sha256 = + "a37b7890620f93aa2fae06eee364cd906991588bc8897e659f51634179519c97"; + + meta = { + description = "Elixir NIF for discount, a Markdown parser"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/asaaki/discount.ex"; + }; + } + ) {}; + + discount = discount_0_7_0; + + dynamic_compile_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "dynamic_compile"; + version = "1.0.0"; + sha256 = + "eb73d8e9a6334914f79c15ee8214acad9659c42222d49beda3e8b6f6789a980a"; + + meta = { + description = + "compile and load erlang modules from string input"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/okeuday/dynamic_compile"; + }; + } + ) {}; + + dynamic_compile = dynamic_compile_1_0_0; + + econfig_0_7_1 = callPackage + ( + { buildHex }: + buildHex { + name = "econfig"; + version = "0.7.1"; + sha256 = + "b11d68e3d288b5cb4bd34e668e03176c4ea42790c09f1f449cdbd46a649ea7f3"; + + meta = { + description = "simple Erlang config handler using INI files"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/benoitc/econfig"; + }; + } + ) {}; + + econfig = econfig_0_7_1; + + edown_0_7_0 = callPackage + ( + { buildHex }: + buildHex { + name = "edown"; + version = "0.7.0"; + sha256 = + "6d7365a7854cd724e8d1fd005f5faa4444eae6a87eb6df9b789b6e7f6f09110a"; + + meta = { + description = "Markdown generated from Edoc."; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/uwiger/edown"; + }; + } + ) {}; + + edown = edown_0_7_0; + + elixir_ale_0_4_1 = callPackage + ( + { buildHex }: + buildHex { + name = "elixir_ale"; + version = "0.4.1"; + sha256 = + "2ee5c6989a8005a0ab8f1aea0b4f89b5feae75be78a70bade6627c3624c59c46"; + + meta = { + description = + "Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI."; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/fhunleth/elixir_ale"; + }; + } + ) {}; + + elixir_ale = elixir_ale_0_4_1; + + elli_1_0_4 = callPackage + ( + { buildHex }: + buildHex { + name = "elli"; + version = "1.0.4"; + sha256 = + "87641b9c069b1372dac4e1bdda795076ea3142af78aac0d63896a38079e89e8e"; + + meta = { + description = + "Fast and robust web server for building high-throughput, low-latency apps"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + elli = elli_1_0_4; + + enotify_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "enotify"; + version = "0.1.0"; + sha256 = + "8e48da763ce15bfd75cc857ddfe5011b03189d597f47bcdd8acc6fbbe8e6b6f4"; + compilePort = true; + + meta = { + description = "Filesystem listener"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/tsloughter/enotify"; + }; + } + ) {}; + + enotify = enotify_0_1_0; + + eper_0_94_0 = callPackage + ( + { buildHex }: + buildHex { + name = "eper"; + version = "0.94.0"; + sha256 = + "8d853792fa61a7fd068fe9c113a8a44bc839e11ad70cb8d5d2884566e3bede39"; + + meta = { + longDescription = ''Erlang Performance and Debugging Tools sherk + - a profiler, similar to Linux oprofile or MacOs + shark gperf - a graphical performance monitor; + shows CPU, memory and network usage dtop - + similar to unix top redbug- similar to the OTP + dbg application, but safer, better etc.''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/massemanet/eper"; + }; + } + ) {}; + + eper = eper_0_94_0; + + epgsql_3_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "epgsql"; + version = "3.1.1"; + sha256 = + "4b3f478ad090aed7200b2a8c9f2d5ef45c3aaa167be896b5237bba4b40f461d8"; + + meta = { + description = "PostgreSQL Client"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/epgsql/epgsql"; + }; + } + ) {}; + + epgsql = epgsql_3_1_1; + + episcina_1_1_0 = callPackage + ( + { buildHex, gproc_0_3_1 }: + buildHex { + name = "episcina"; + version = "1.1.0"; + sha256 = + "16238717bfbc8cb226342f6b098bb1fafb48c7547265a10ad3e6e83899abc46f"; + + erlangDeps = [ gproc_0_3_1 ]; + + meta = { + description = "Erlang Connection Pool"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + episcina = episcina_1_1_0; + + eql_0_1_2 = callPackage + ( + { buildHex }: + buildHex { + name = "eql"; + version = "0.1.2"; + sha256 = + "3b1a85c491d44262802058c0de97a2c90678d5d45851b88a076b1a45a8d6d4b3"; + + meta = { + description = "Erlang with SQL"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/artemeff/eql"; + }; + } + ) {}; + + eql = eql_0_1_2; + + eredis_1_0_8 = callPackage + ( + { buildHex }: + buildHex { + name = "eredis"; + version = "1.0.8"; + sha256 = + "f303533e72129b264a2d8217c4ddc977c7527ff4b8a6a55f92f62b7fcc099334"; + + meta = { + description = "Erlang Redis client"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/wooga/eredis"; + }; + } + ) {}; + + eredis = eredis_1_0_8; + + erlang_lua_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "erlang_lua"; + version = "0.1.0"; + sha256 = + "4376a57f86e43ae1d687dca8b6c7c7f692b95d30091a9550636328358026e6eb"; + compilePort = true; + + meta = { + longDescription = ''Erlang-lua hex package, using Erlang's Port + and C Node to run Lua VM as an external Node''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/rtraschke/erlang-lua"; + }; + } + ) {}; + + erlang_lua = erlang_lua_0_1_0; + + erlang_term_1_4_0 = callPackage + ( + { buildHex }: + buildHex { + name = "erlang_term"; + version = "1.4.0"; + sha256 = + "1a4d491dbd13b7a714815af10fc658948a5a440de23755a32b741ca07d8ba592"; + + meta = { + description = "Provide the in-memory size of Erlang terms"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/erlang_term"; + }; + } + ) {}; + + erlang_term_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "erlang_term"; + version = "1.5.1"; + sha256 = + "88bae81a80306e82fd3fc43e2d8228049e666f3cfe4627687832cd7edb878e06"; + + meta = { + description = "Provide the in-memory size of Erlang terms"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/erlang_term"; + }; + } + ) {}; + + erlang_term = erlang_term_1_5_1; + + erlang_version_0_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "erlang_version"; + version = "0.2.0"; + sha256 = + "74daddba65a247ec57913e5de8f243af42bbbc3d6a0c411a1252da81c09ae661"; + + meta = { + description = "Retrieve Erlang/OTP version like `18.1'"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/sapporo-beam/erlang_version"; + }; + } + ) {}; + + erlang_version = erlang_version_0_2_0; + + erlaudio_0_2_3 = callPackage + ( + { buildHex }: + buildHex { + name = "erlaudio"; + version = "0.2.3"; + sha256 = + "cb9efb0ce80faae003ab39f8cc2d3fccbb4bd1c8f5f525aea392f28662517032"; + compilePort = true; + + meta = { + description = "Erlang audio bindings to portaudio"; + license = stdenv.lib.licenses.apsl20; + homepage = "https://github.com/asonge/erlaudio"; + }; + } + ) {}; + + erlaudio = erlaudio_0_2_3; + + erlcloud_0_11_0 = callPackage + ( + { buildHex, jsx_2_6_2, lhttpc_1_3_0, meck_0_8_3 }: + buildHex { + name = "erlcloud"; + version = "0.11.0"; + sha256 = + "ca9876dab57ed8fb5fb75ab6ce11e59a346387d357d7a038a2e18d1d31a30716"; + + erlangDeps = [ jsx_2_6_2 lhttpc_1_3_0 meck_0_8_3 ]; + + meta = { + description = "Cloud Computing library for erlang"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/gleber/erlcloud"; + }; + } + ) {}; + + erlcloud_0_12_0 = callPackage + ( + { buildHex, jsx_2_7_2, lhttpc_1_3_0, meck_0_8_3 }: + buildHex { + name = "erlcloud"; + version = "0.12.0"; + sha256 = + "2ff2631a4e405a645cedf2713ec66728023e93ac80ed47035554a7d6205d412d"; + + erlangDeps = [ jsx_2_7_2 lhttpc_1_3_0 meck_0_8_3 ]; + + meta = { + description = "Cloud Computing library for erlang"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/gleber/erlcloud"; + }; + } + ) {}; + + erlcloud = erlcloud_0_12_0; + + erldn_1_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "erldn"; + version = "1.0.2"; + sha256 = + "51a721f1aac9c5fcc6abb0fa156a97ac8e033ee7cbee1624345ec6e47dfe0aa0"; + + meta = { + description = "An edn parser for the Erlang platform. +"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/marianoguerra/erldn"; + }; + } + ) {}; + + erldn = erldn_1_0_2; + + erlexec_1_0_1 = callPackage + ( + { buildHex }: + buildHex { + name = "erlexec"; + version = "1.0.1"; + sha256 = + "eb1e11f16288db4ea35af08503eabf1250d5540c1e8bd35ba04312f5f703e14f"; + compilePort = true; + + meta = { + description = "OS Process Manager"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/saleyn/erlexec"; + }; + } + ) {}; + + erlexec = erlexec_1_0_1; + + erlsh_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "erlsh"; + version = "0.1.0"; + sha256 = + "94ef1492dd59fef211f01ffd40c47b6e51c0f59e2a3d0739366e4890961332d9"; + compilePort = true; + + meta = { + longDescription = ''Family of functions and ports involving + interacting with the system shell, paths and + external programs.''; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + erlsh = erlsh_0_1_0; + + erlsom_1_2_1 = callPackage + ( + { buildHex }: + buildHex { + name = "erlsom"; + version = "1.2.1"; + sha256 = + "e8f4d1d83583df7d1db8346aa30b82a6599b93fcc4b2d9165007e02ed40e7cae"; + + meta = { + description = "erlsom XSD parser"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + erlsom = erlsom_1_2_1; + + erlware_commons_0_18_0 = callPackage + ( + { buildHex, cf_0_2_1 }: + buildHex { + name = "erlware_commons"; + version = "0.18.0"; + sha256 = + "e71dda7cd5dcf34c9d07255d49c67e1d229dd230c101fdb996820bcdb5b03c49"; + + erlangDeps = [ cf_0_2_1 ]; + + meta = { + description = "Additional standard library for Erlang"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/erlware/erlware_commons"; + }; + } + ) {}; + + erlware_commons = erlware_commons_0_18_0; + + erlzk_0_6_1 = callPackage + ( + { buildHex }: + buildHex { + name = "erlzk"; + version = "0.6.1"; + sha256 = + "6bba045ad0b7beb566825b463ada2464929655ce01e291022c1efed81a674759"; + + meta = { + description = "A Pure Erlang ZooKeeper Client (no C dependency)"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/huaban/erlzk"; + }; + } + ) {}; + + erlzk = erlzk_0_6_1; + + esel_0_1_2 = callPackage + ( + { buildHex }: + buildHex { + name = "esel"; + version = "0.1.2"; + sha256 = + "874d1775c86d27d9e88486a37351ffc09f826ef062c8ea211e65d08e103f946c"; + + meta = { + description = "An wrapper around openssl"; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + esel = esel_0_1_2; + + esqlite_0_2_1 = callPackage + ( + { buildHex }: + buildHex { + name = "esqlite"; + version = "0.2.1"; + sha256 = + "79f2d1d05e6e29e50228af794dac8900ce47dd60bc11fbf1279f924f83752689"; + compilePort = true; + + meta = { + description = "A Sqlite3 NIF"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/mmzeeman/esqlite"; + }; + } + ) {}; + + esqlite = esqlite_0_2_1; + + eunit_formatters_0_3_1 = callPackage + ( + { buildHex }: + buildHex { + name = "eunit_formatters"; + version = "0.3.1"; + sha256 = + "64a40741429b7aff149c605d5a6135a48046af394a7282074e6003b3b56ae931"; + + meta = { + description = "Better output for eunit suites"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/seancribbs/eunit_formatters"; + }; + } + ) {}; + + eunit_formatters = eunit_formatters_0_3_1; + + ex_bitcask_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "ex_bitcask"; + version = "0.1.0"; + sha256 = + "dc771229aae3c07c31a5523303f0c4dbe3c700d5025a09dfcca9cc357222c463"; + compilePort = true; + + meta = { + longDescription = ''Elixir wrapper of Basho's Bitcask Key/Value + store. Bitcask as a Log-Structured Hash Table + for Fast Key/Value Data. ''; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/JonGretar/ExBitcask"; + }; + } + ) {}; + + ex_bitcask = ex_bitcask_0_1_0; + + exec_1_0_1 = callPackage + ( + { buildHex }: + buildHex { + name = "exec"; + version = "1.0.1"; + sha256 = + "87c7ef2dea2bb503bb0eec8cb34776172999aecc6e12d90f7629796a7a3ccb1f"; + compilePort = true; + + meta = { + description = "OS Process Manager"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/saleyn/erlexec"; + }; + } + ) {}; + + exec = exec_1_0_1; + + exmerl_0_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "exmerl"; + version = "0.1.1"; + sha256 = + "4bb5d6c1863c5e381b460416c9b517a211db9abd9abf0f32c99b07e128b842aa"; + + meta = { + description = + "An Elixir wrapper for parsing XML through the xmerl_* suite of modules +"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/pwoolcoc/exmerl"; + }; + } + ) {}; + + exmerl = exmerl_0_1_1; + + fast_xml_1_1_2 = callPackage + ( + { buildHex, p1_utils_1_0_1 }: + buildHex { + name = "fast_xml"; + version = "1.1.2"; + sha256 = + "becac16805254bc8399558f0eb5d3ed733a1e3c0c511d9c7e95244f43626f9bf"; + compilePort = true; + erlangDeps = [ p1_utils_1_0_1 ]; + + meta = { + description = "Fast Expat based Erlang XML parsing library"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/processone/fast_xml"; + }; + } + ) {}; + + fast_xml = fast_xml_1_1_2; + + feeder_2_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "feeder"; + version = "2.0.0"; + sha256 = + "9780c5f032d3480cf7d9fd71d3f0c5f73211e0d3a8d9cdabcb1327b3a4ff758e"; + + meta = { + description = "Stream parse RSS and Atom formatted XML feeds. +"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/michaelnisi/feeder"; + }; + } + ) {}; + + feeder = feeder_2_0_0; + + fn_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "fn"; + version = "1.0.0"; + sha256 = + "1433b353c8739bb28ac0d6826c9f6a05033f158e8c8195faf01a863668b3bbc7"; + + meta = { + description = "More functional Erlang"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/artemeff/fn"; + }; + } + ) {}; + + fn = fn_1_0_0; + + folsom_0_8_3 = callPackage + ( + { buildHex, bear_0_8_3 }: + buildHex { + name = "folsom"; + version = "0.8.3"; + sha256 = + "afaa1ea4cd2a10a32242ac5d76fa7b17e98d202883859136b791d9a383b26820"; + + erlangDeps = [ bear_0_8_3 ]; + + meta = { + description = "Erlang based metrics system"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + folsom = folsom_0_8_3; + + folsomite_1_2_8 = callPackage + ( + { buildHex, folsom_0_8_3 }: + buildHex { + name = "folsomite"; + version = "1.2.8"; + sha256 = + "9ce64603cdffb8ad55e950142146b3fe05533020906a81aa9c2f524635d813dc"; + + erlangDeps = [ folsom_0_8_3 ]; + + meta = { + description = "Blow up your Graphite server with Folsom metrics"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + folsomite = folsomite_1_2_8; + + fs_0_9_2 = callPackage + ( + { buildHex }: + buildHex { + name = "fs"; + version = "0.9.2"; + sha256 = + "9a00246e8af58cdf465ae7c48fd6fd7ba2e43300413dfcc25447ecd3bf76f0c1"; + compilePort = true; + + meta = { + description = "Erlang FileSystem Listener"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/synrc/fs"; + }; + } + ) {}; + + fs = fs_0_9_2; + + fuse_2_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "fuse"; + version = "2.0.0"; + sha256 = + "e2c55c0629ce418974165a65b342e54527333303d7e9c1f0493679144c9698cb"; + + meta = { + description = "A Circuit breaker implementation for Erlang"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + fuse = fuse_2_0_0; + + gen_listener_tcp_0_3_2 = callPackage + ( + { buildHex }: + buildHex { + name = "gen_listener_tcp"; + version = "0.3.2"; + sha256 = + "b3c3fbc525ba2b32d947b06811d38470d5b0abe2ca81b623192a71539ed22336"; + + meta = { + description = "Generic TCP Server"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/travelping/gen_listener_tcp"; + }; + } + ) {}; + + gen_listener_tcp = gen_listener_tcp_0_3_2; + + gen_smtp_0_9_0 = callPackage + ( + { buildHex }: + buildHex { + name = "gen_smtp"; + version = "0.9.0"; + sha256 = + "5a05f23a7cbe0c6242d290b445c6bbc0c287e3d0e09d3fcdc6bcd2c8973b6688"; + + meta = { + longDescription = ''A generic Erlang SMTP server framework that + can be extended via callback modules in the OTP + style. ''; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/Vagabond/gen_smtp"; + }; + } + ) {}; + + gen_smtp = gen_smtp_0_9_0; + + getopt_0_8_2 = callPackage + ( + { buildHex }: + buildHex { + name = "getopt"; + version = "0.8.2"; + sha256 = + "736e6db3679fbbad46373efb96b69509f8e420281635e9d92989af9f0a0483f7"; + + meta = { + description = "Command-line options parser for Erlang"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/jcomellas/getopt"; + }; + } + ) {}; + + getopt = getopt_0_8_2; + + goldrush_0_1_7 = callPackage + ( + { buildHex }: + buildHex { + name = "goldrush"; + version = "0.1.7"; + sha256 = + "a94a74cd363ce5f4970ed8242c551ec62b71939db1bbfd2e030142cab25a4ffe"; + + meta = { + description = + "Small, Fast event processing and monitoring for Erlang/OTP applications. +"; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/DeadZen/goldrush"; + }; + } + ) {}; + + goldrush = goldrush_0_1_7; + + gproc_0_3_1 = callPackage + ( + { buildHex }: + buildHex { + name = "gproc"; + version = "0.3.1"; + sha256 = + "3c449925a5cbf57cc40d13c6c282bc1080b5ed3bad97e1acdbe969fd63a65fce"; + + meta = { + longDescription = ''Gproc is a process dictionary for Erlang, + which provides a number of useful features + beyond what the built-in dictionary has: * Use + any term as a process alias * Register a process + under several aliases * Non-unique properties + can be registered simultaneously by many + processes * QLC and match specification + interface for efficient queries on the + dictionary * Await registration, let's you wait + until a process registers itself * Atomically + give away registered names and properties to + another process * Counters, and aggregated + counters, which automatically maintain the total + of all counters with a given name * Global + registry, with all the above functions applied + to a network of nodes''; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/uwiger/gproc"; + }; + } + ) {}; + + gproc_0_5_0 = callPackage + ( + { buildHex }: + buildHex { + name = "gproc"; + version = "0.5.0"; + sha256 = + "5bc0fa4e999a6665b92ce57a7f12d7e9d1c26bfc39b0f657994be05cd3818b18"; + + meta = { + longDescription = ''Gproc is a process dictionary for Erlang, + which provides a number of useful features + beyond what the built-in dictionary has: * Use + any term as a process alias * Register a process + under several aliases * Non-unique properties + can be registered simultaneously by many + processes * QLC and match specification + interface for efficient queries on the + dictionary * Await registration, let's you wait + until a process registers itself * Atomically + give away registered names and properties to + another process * Counters, and aggregated + counters, which automatically maintain the total + of all counters with a given name * Global + registry, with all the above functions applied + to a network of nodes''; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/uwiger/gproc"; + }; + } + ) {}; + + gproc = gproc_0_5_0; + + gurka_0_1_7 = callPackage + ( + { buildHex }: + buildHex { + name = "gurka"; + version = "0.1.7"; + sha256 = + "b46c96446f46a53411a3b45d126ec19e724178818206ca1d2dd16abff28df6b5"; + + meta = { + description = "Erlang implementation of Cucumber"; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + gurka = gurka_0_1_7; + + hackney_1_4_4 = callPackage + ( + { + buildHex, + certifi_0_1_1, + idna_1_0_2, + mimerl_1_0_0, + ssl_verify_hostname_1_0_5 + }: + buildHex { + name = "hackney"; + version = "1.4.4"; + sha256 = + "c8ab2436556d6bce7e85a85adec67f6abeb8c7508668a3e29750be3c4bf4e3a8"; + + erlangDeps = [ + certifi_0_1_1 + idna_1_0_2 + mimerl_1_0_0 + ssl_verify_hostname_1_0_5 + ]; + + meta = { + description = "simple HTTP client"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/benoitc/hackney"; + }; + } + ) {}; + + hamcrest_0_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "hamcrest"; + version = "0.1.1"; + sha256 = + "5207b83e8d3168b9cbbeb3b4c4d83817a38a05f55478510e9c4db83ef83fa0ca"; + + meta = { + description = "Erlang port of Hamcrest"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/hyperthunk/hamcrest-erlang"; + }; + } + ) {}; + + hamcrest = hamcrest_0_1_1; + + hlc_2_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "hlc"; + version = "2.0.0"; + sha256 = + "460ac04654e920e068d1fd17aec1f78b1879cc42ac7f3def7497f0d1cc5056ad"; + + meta = { + description = "hybrid logical clock"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/barrel-db/hlc"; + }; + } + ) {}; + + hlc = hlc_2_0_0; + + hooks_1_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "hooks"; + version = "1.1.1"; + sha256 = + "6834ad3a2a624a5ffd49e9cb146ff49ded423b67f31905b122d24128c72c5c85"; + + meta = { + description = "generic plugin & hook system"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/barrel-db/hooks"; + }; + } + ) {}; + + hooks = hooks_1_1_1; + + http_signature_1_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "http_signature"; + version = "1.1.0"; + sha256 = + "3e6036d9c29289ed0e35dd6f41821dec9061ce20aad3c4d35dcbae8c84eb3baa"; + + meta = { + description = + "Erlang and Elixir implementations of Joyent's HTTP Signature Scheme."; + license = stdenv.lib.licenses.free; + homepage = + "https://github.com/potatosalad/erlang-http_signature"; + }; + } + ) {}; + + http_signature = http_signature_1_1_0; + + ibrowse_4_2_2 = callPackage + ( + { buildHex }: + buildHex { + name = "ibrowse"; + version = "4.2.2"; + sha256 = + "b800cb7442bcc852c6832821e9d0a7098ff626e1415bddaeff4596640b31c0ae"; + + meta = { + description = "Erlang HTTP client application"; + license = with stdenv.lib.licenses; [ free bsd3 ]; + homepage = "https://github.com/cmullaparthi/ibrowse"; + }; + } + ) {}; + + ibrowse = ibrowse_4_2_2; + + idna_1_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "idna"; + version = "1.0.2"; + sha256 = + "a5d645e307aa4f67efe31682f720b7eaf431ab148b3d6fb66cbaf6314499610f"; + + meta = { + description = "A pure Erlang IDNA implementation"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/benoitc/erlang-idna"; + }; + } + ) {}; + + idna_1_0_3 = callPackage + ( + { buildHex }: + buildHex { + name = "idna"; + version = "1.0.3"; + sha256 = + "357d489a51112db4f216034406834f9172b3c0ff5a12f83fb28b25ca271541d1"; + + meta = { + description = "A pure Erlang IDNA implementation"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/benoitc/erlang-idna"; + }; + } + ) {}; + + idna = idna_1_0_3; + + inaka_aleppo_0_9_5 = callPackage + ( + { buildHex }: + buildHex { + name = "inaka_aleppo"; + version = "0.9.5"; + sha256 = + "58e65aa708a0aae828ad8072f521edca8ce19fc3373223180a348a27a3722eb4"; + + meta = { + description = "Aleppo: ALternative Erlang Pre-ProcessOr"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/inaka/aleppo"; + }; + } + ) {}; + + inaka_aleppo = inaka_aleppo_0_9_5; + + inaka_mixer_0_1_5 = callPackage + ( + { buildHex }: + buildHex { + name = "inaka_mixer"; + version = "0.1.5"; + sha256 = + "37af35b1c17a94a0cb643cba23cba2ca68d6fe51c3ad8337629d4c3c017cc912"; + + meta = { + description = "Mix in public functions from external modules"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/inaka/mixer"; + }; + } + ) {}; + + inaka_mixer = inaka_mixer_0_1_5; + + jc_1_0_4 = callPackage + ( + { buildHex }: + buildHex { + name = "jc"; + version = "1.0.4"; + sha256 = + "8bcfe202084109fc80fcf521e630466fc53cbb909aff4283bed43252664023df"; + + meta = { + description = "A simple, distributed, in-memory caching system"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/jr0senblum/jc"; + }; + } + ) {}; + + jc = jc_1_0_4; + + jsone_1_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "jsone"; + version = "1.2.0"; + sha256 = + "a60e74284d3a923cde65c00a39dd4542fd7da7c22e8385c0378ad419c54b2e08"; + + meta = { + description = "Erlang JSON Library"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/sile/jsone"; + }; + } + ) {}; + + jsone = jsone_1_2_0; + + jsx_1_4_5 = callPackage + ( + { buildHex }: + buildHex { + name = "jsx"; + version = "1.4.5"; + sha256 = + "ff5115611c5dd789cebe3addc07d18b86340f701c52ad063caba6fe8da3a489b"; + + meta = { + longDescription = ''an erlang application for consuming, + producing and manipulating json. inspired by + yajl''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/talentdeficit/jsx"; + }; + } + ) {}; + + jsx_2_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "jsx"; + version = "2.2.0"; + sha256 = + "d0bbc1ef47fd2fed84e28faed66918cf9eceed03b7ded48a23076e716fdbc84f"; + + meta = { + longDescription = ''an erlang application for consuming, + producing and manipulating json. inspired by + yajl''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/talentdeficit/jsx"; + }; + } + ) {}; + + jsx_2_6_2 = callPackage + ( + { buildHex }: + buildHex { + name = "jsx"; + version = "2.6.2"; + sha256 = + "6bfccb6461cc3c7d5cc63f3e69ffeb2f1f8de50eca5980065311c056a69a907f"; + + meta = { + longDescription = ''an erlang application for consuming, + producing and manipulating json. inspired by + yajl''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/talentdeficit/jsx"; + }; + } + ) {}; + + jsx_2_7_1 = callPackage + ( + { buildHex }: + buildHex { + name = "jsx"; + version = "2.7.1"; + sha256 = + "52d0e8bda0c8624bc59c3119236eb49bb66289702ea3d59ad76fd2a56cdf9089"; + + meta = { + longDescription = ''an erlang application for consuming, + producing and manipulating json. inspired by + yajl''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/talentdeficit/jsx"; + }; + } + ) {}; + + jsx_2_7_2 = callPackage + ( + { buildHex }: + buildHex { + name = "jsx"; + version = "2.7.2"; + sha256 = + "36ca4772c09d69efc9e069aec7327cbd57d53d56c9a2777d8fb3bf3c1eab6df3"; + + meta = { + longDescription = ''an erlang application for consuming, + producing and manipulating json. inspired by + yajl''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/talentdeficit/jsx"; + }; + } + ) {}; + + jsx_2_8_0 = callPackage + ( + { buildHex }: + buildHex { + name = "jsx"; + version = "2.8.0"; + sha256 = + "a8ba15d5bac2c48b2be1224a0542ad794538d79e2cc16841a4e24ca75f0f8378"; + + meta = { + longDescription = ''an erlang application for consuming, + producing and manipulating json. inspired by + yajl''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/talentdeficit/jsx"; + }; + } + ) {}; + + jsx = jsx_2_8_0; + + jsxd_0_1_10 = callPackage + ( + { buildHex }: + buildHex { + name = "jsxd"; + version = "0.1.10"; + sha256 = + "f71a8238f08a1dee130e8959ff5343524891fa6531392667a5b911cead5f5082"; + + meta = { + description = + "jsx data structire traversing and modification library."; + license = stdenv.lib.licenses.cddl; + homepage = "https://github.com/Licenser/jsxd"; + }; + } + ) {}; + + jsxd = jsxd_0_1_10; + + jwalk_1_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "jwalk"; + version = "1.1.0"; + sha256 = + "10c150910ba3539583887cb2b5c3f70d602138471e6f6b5c22498aa18ed654e1"; + + meta = { + longDescription = ''Helper module for working with Erlang + proplist, map, EEP-18 and mochijson-style + representations of JSON''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/jr0senblum/jwalk"; + }; + } + ) {}; + + jwalk = jwalk_1_1_0; + + jwt_0_1_1 = callPackage + ( + { buildHex, base64url_0_0_1, jsx_2_8_0 }: + buildHex { + name = "jwt"; + version = "0.1.1"; + sha256 = + "abcff4a2a42af2b7b7bdf55eeb2b73ce2e3bef760750004e74bc5835d64d2188"; + + erlangDeps = [ base64url_0_0_1 jsx_2_8_0 ]; + + meta = { + description = "Erlang JWT library"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/artemeff/jwt"; + }; + } + ) {}; + + jwt = jwt_0_1_1; + + key2value_1_4_0 = callPackage + ( + { buildHex }: + buildHex { + name = "key2value"; + version = "1.4.0"; + sha256 = + "ad63453fcf54ab853581b78c6d2df56be41ea691ba4bc05920264c19f35a0ded"; + + meta = { + description = "Erlang 2-way Map"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/key2value"; + }; + } + ) {}; + + key2value_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "key2value"; + version = "1.5.1"; + sha256 = + "2a40464b9f8ef62e8828d869ac8d2bf9135b4956d29ba4eb044e8522b2d35ffa"; + + meta = { + description = "Erlang 2-way Map"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/key2value"; + }; + } + ) {}; + + key2value = key2value_1_5_1; + + keys1value_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "keys1value"; + version = "1.5.1"; + sha256 = + "2385132be0903c170fe21e54a0c3e746a604777b66ee458bb6e5f25650d3354f"; + + meta = { + description = "Erlang Set Associative Map For Key Lists"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/keys1value"; + }; + } + ) {}; + + keys1value = keys1value_1_5_1; + + lager_3_0_1 = callPackage + ( + { buildHex, goldrush_0_1_7 }: + buildHex { + name = "lager"; + version = "3.0.1"; + sha256 = + "d32c9233105b72dc5c1f6a8fe9a33cc205ecccc359c4449950060cee5a329e35"; + + erlangDeps = [ goldrush_0_1_7 ]; + + meta = { + description = "Erlang logging framework"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/basho/lager"; + }; + } + ) {}; + + lager_3_0_2 = callPackage + ( + { buildHex, goldrush_0_1_7 }: + buildHex { + name = "lager"; + version = "3.0.2"; + sha256 = + "527f3b233e01b6cb68780c14ef675ed08ec02247dc029cacecbb56c78dfca100"; + + erlangDeps = [ goldrush_0_1_7 ]; + + meta = { + description = "Erlang logging framework"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/basho/lager"; + }; + } + ) {}; + + lager = lager_3_0_2; + + + lhttpc_1_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "lhttpc"; + version = "1.3.0"; + sha256 = + "ddd2bd4b85159bc987c954b14877168e6a3c3e516105702189776e97c50296a4"; + + meta = { + description = "Lightweight HTTP/1.1 client"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/talko/lhttpc"; + }; + } + ) {}; + + lhttpc = lhttpc_1_3_0; + + libsnarlmatch_0_1_7 = callPackage + ( + { buildHex }: + buildHex { + name = "libsnarlmatch"; + version = "0.1.7"; + sha256 = + "72e9bcf7968e75774393778146ac6596116f1c60136dd607ad249183684ee380"; + + meta = { + description = "permission matcher library"; + license = stdenv.lib.licenses.cddl; + homepage = "https://github.com/project-fifo/libsnarlmatch"; + }; + } + ) {}; + + libsnarlmatch = libsnarlmatch_0_1_7; + + lru_1_3_1 = callPackage + ( + { buildHex }: + buildHex { + name = "lru"; + version = "1.3.1"; + sha256 = + "cd6ac15c383d58cd2933df9cb918617b24b12b6e5fb24d94c4c8f200fd93f619"; + + meta = { + description = "implements a fixed-size LRU cache"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/barrel-db/erlang-lru"; + }; + } + ) {}; + + lru = lru_1_3_1; + + lz4_0_2_2 = callPackage + ( + { buildHex }: + buildHex { + name = "lz4"; + version = "0.2.2"; + sha256 = + "a59522221e7cdfe3792bf8b3bb21cfe7ac657790e5826201fa2c5d0bc7484a2d"; + compilePort = true; + + meta = { + description = "LZ4 bindings for Erlang"; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/szktty/erlang-lz4.git"; + }; + } + ) {}; + + lz4 = lz4_0_2_2; + + mcrypt_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "mcrypt"; + version = "0.1.0"; + sha256 = + "508a35ba255190f80309dcabf9c81c88b86b9ec13af180627ad51b8e5cf2a4cd"; + compilePort = true; + + meta = { + description = "NIF wrapper around libmcrypt."; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/system76/elixir-mcrypt"; + }; + } + ) {}; + + mcrypt = mcrypt_0_1_0; + + mdns_server_0_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "mdns_server"; + version = "0.2.0"; + sha256 = + "bc9465880e15e57033960ab6820258b87134bef69032210c67e53e3718e289d0"; + + meta = { + description = "mDNS service discovery server"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/Licenser/erlang-mdns-server"; + }; + } + ) {}; + + mdns_server = mdns_server_0_2_0; + + mdns_server_lib_0_2_3 = callPackage + ( + { buildHex, lager_3_0_2, mdns_server_0_2_0, ranch_1_1_0 }: + buildHex { + name = "mdns_server_lib"; + version = "0.2.3"; + sha256 = + "078775ccea5d768095716ca6bd82f657601203352495d9726f4cc080c8c07695"; + + erlangDeps = [ lager_3_0_2 mdns_server_0_2_0 ranch_1_1_0 ]; + + meta = { + description = + "server side for mdns client server implementation"; + license = stdenv.lib.licenses.cddl; + homepage = "https://github.com/Licenser/mdns_server_lib"; + }; + } + ) {}; + + mdns_server_lib = mdns_server_lib_0_2_3; + + meck_0_8_3 = callPackage + ( + { buildHex }: + buildHex { + name = "meck"; + version = "0.8.3"; + sha256 = + "53bd3873d0193d6b2b4a165cfc4b9ffc3934355c3ba19e88239ef6a027cc02b6"; + + meta = { + description = "A mocking framework for Erlang"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/eproxus/meck"; + }; + } + ) {}; + + meck_0_8_4 = callPackage + ( + { buildHex }: + buildHex { + name = "meck"; + version = "0.8.4"; + sha256 = + "2cdfbd0edd8f62b3d2061efc03c0e490282dd2ea6de44e15d2006e83f4f8eead"; + + meta = { + description = "A mocking framework for Erlang"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/eproxus/meck"; + }; + } + ) {}; + + meck = meck_0_8_4; + + metrics_0_2_1 = callPackage + ( + { buildHex }: + buildHex { + name = "metrics"; + version = "0.2.1"; + sha256 = + "1cccc3534fa5a7861a3dcc0414afba00a616937e82c95d6172a523a5d2e97c03"; + + meta = { + description = + "A generic interface to different metrics systems in Erlang."; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/benoitc/erlang-metrics"; + }; + } + ) {}; + + metrics = metrics_0_2_1; + + mimerl_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "mimerl"; + version = "1.0.0"; + sha256 = + "a30b01104a29bd3a363db8646e4ce0f7980f9ecd23a98707c46c3ced918c41b4"; + + meta = { + description = "Library to handle mimetypes"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/benoitc/mimerl"; + }; + } + ) {}; + + mimerl_1_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "mimerl"; + version = "1.0.2"; + sha256 = + "7a4c8e1115a2732a67d7624e28cf6c9f30c66711a9e92928e745c255887ba465"; + + meta = { + description = "Library to handle mimetypes"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/benoitc/mimerl"; + }; + } + ) {}; + + mimerl_1_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "mimerl"; + version = "1.1.0"; + sha256 = + "def0f1922a5dcdeeee6e4f41139b364e7f0f40239774b528a0986b12bcb42ddc"; + + meta = { + description = "Library to handle mimetypes"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/benoitc/mimerl"; + }; + } + ) {}; + + mimerl = mimerl_1_1_0; + + mochiweb_2_12_2 = callPackage + ( + { buildHex }: + buildHex { + name = "mochiweb"; + version = "2.12.2"; + sha256 = + "d3e681d4054b74a96cf2efcd09e94157ab83a5f55ddc4ce69f90b8144673bd7a"; + + meta = { + description = + "MochiWeb is an Erlang library for building lightweight HTTP servers. +"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/mochi/mochiweb"; + }; + } + ) {}; + + mochiweb = mochiweb_2_12_2; + + mtx_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "mtx"; + version = "1.0.0"; + sha256 = + "3bdcb209fe3cdfc5a6b5b95f619ecd123b7ee1d9203ace2178c8ff73be5bb90f"; + + meta = { + description = "Metrics Client"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/synrc/mtx"; + }; + } + ) {}; + + mtx = mtx_1_0_0; + + nacl_0_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "nacl"; + version = "0.3.0"; + sha256 = + "83a626d0ddd17a9c9528aa57a79e0e19746a42def007bc48c4984f0905098a7b"; + compilePort = true; + + meta = { + description = "Erlang-NaCl hex package"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/tonyg/erlang-nacl"; + }; + } + ) {}; + + nacl = nacl_0_3_0; + + neotoma_1_7_3 = callPackage + ( + { buildHex }: + buildHex { + name = "neotoma"; + version = "1.7.3"; + sha256 = + "2da322b9b1567ffa0706a7f30f6bbbde70835ae44a1050615f4b4a3d436e0f28"; + + meta = { + description = "PEG/Packrat toolkit and parser-generator."; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/seancribbs/neotoma"; + }; + } + ) {}; + + neotoma = neotoma_1_7_3; + + observer_cli_1_0_3 = callPackage + ( + { buildHex, recon_2_2_1 }: + buildHex { + name = "observer_cli"; + version = "1.0.3"; + sha256 = + "18e5d9aa5412ec063cf9719bcfe73bf990c5fed5c9a3c8422c2b5d9529fc8b0d"; + + erlangDeps = [ recon_2_2_1 ]; + + meta = { + description = "Visualize Erlang Nodes On The Command Line"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/zhongwencool/observer_cli"; + }; + } + ) {}; + + observer_cli = observer_cli_1_0_3; + + p1_stringprep_1_0_0 = callPackage + ( + { buildHex, p1_utils_1_0_1 }: + buildHex { + name = "p1_stringprep"; + version = "1.0.0"; + sha256 = + "2a9ce90acb64089f0a34cc592690b398830a5b6fd3c8a84689af5d2feb85d876"; + compilePort = true; + erlangDeps = [ p1_utils_1_0_1 ]; + + meta = { + description = "Fast Stringprep Erlang / Elixir implementation"; + license = with stdenv.lib.licenses; [ asl20 free ]; + homepage = "https://github.com/processone/stringprep"; + }; + } + ) {}; + + p1_stringprep = p1_stringprep_1_0_0; + + p1_utils_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "p1_utils"; + version = "1.0.0"; + sha256 = + "b2c6316286b071f2f667fb1c59b44fe0c996917515fa93374a4a3264affc5105"; + + meta = { + description = "Erlang utility modules from ProcessOne"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/processone/p1_utils"; + }; + } + ) {}; + + p1_utils_1_0_1 = callPackage + ( + { buildHex }: + buildHex { + name = "p1_utils"; + version = "1.0.1"; + sha256 = + "8e19478439c3ef05229fbd4fb65ff2e4aee02458a9c2b86a103a7f1384b76fdb"; + + meta = { + description = "Erlang utility modules from ProcessOne"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/processone/p1_utils"; + }; + } + ) {}; + + p1_utils_1_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "p1_utils"; + version = "1.0.2"; + sha256 = + "c4b770fd925f2fc6c301a1e27f1bfb77aff3fff8d0951cc56c06bef9835af918"; + + meta = { + description = "Erlang utility modules from ProcessOne"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/processone/p1_utils"; + }; + } + ) {}; + + p1_utils_1_0_3 = callPackage + ( + { buildHex }: + buildHex { + name = "p1_utils"; + version = "1.0.3"; + sha256 = + "6bf7dc7108eee70e036ea745faf5f55b4354e267f14371ea13338f58ce402d5e"; + + meta = { + description = "Erlang utility modules from ProcessOne"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/processone/p1_utils"; + }; + } + ) {}; + + p1_utils = p1_utils_1_0_3; + + p1_xml_1_1_1 = callPackage + ( + { buildHex, p1_utils_1_0_0 }: + buildHex { + name = "p1_xml"; + version = "1.1.1"; + sha256 = + "ab68956163cc5ff8c749c503507a36c543841259e78c58a2bbe0ebe76a0b7ce3"; + compilePort = true; + erlangDeps = [ p1_utils_1_0_0 ]; + + meta = { + description = + "XML parsing library. Now obsolete. Use fast_xml instead"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/processone/xml"; + }; + } + ) {}; + + p1_xml = p1_xml_1_1_1; + + pc_1_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "pc"; + version = "1.2.0"; + sha256 = + "ef0f59d26a25af0a5247ef1a06d28d8300f8624647b02dc521ac79a7eceb8883"; + + meta = { + description = "a rebar3 port compiler for native code"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/blt/port_compiler"; + }; + } + ) {}; + + pc = pc_1_2_0; + + picosat_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "picosat"; + version = "0.1.0"; + sha256 = + "d9bfa31240906306a6dae6bdd6fb1cb452e9462a391efa63017b17b2877cab51"; + compilePort = true; + + meta = { + description = "Erlang bindings for PicoSAT"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/tsloughter/picosat"; + }; + } + ) {}; + + picosat = picosat_0_1_0; + + png_0_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "png"; + version = "0.1.1"; + sha256 = + "f8d4a17c118dcc16bb18d0fda6e26947001f9312bc6c061d2236b424fc3dd9ea"; + + meta = { + longDescription = ''A pure Erlang library for creating PNG + images. It can currently create 8 and 16 bit + RGB, RGB with alpha, indexed, grayscale and + grayscale with alpha images.''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/yuce/png"; + }; + } + ) {}; + + png = png_0_1_1; + + poolboy_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "poolboy"; + version = "1.5.1"; + sha256 = + "8f7168911120e13419e086e78d20e4d1a6776f1eee2411ac9f790af10813389f"; + + meta = { + description = "A hunky Erlang worker pool factory"; + license = with stdenv.lib.licenses; [ unlicense asl20 ]; + homepage = "https://github.com/devinus/poolboy"; + }; + } + ) {}; + + poolboy = poolboy_1_5_1; + + pooler_1_5_0 = callPackage + ( + { buildHex }: + buildHex { + name = "pooler"; + version = "1.5.0"; + sha256 = + "f493b4b947967fa4250dd1f96e86a5440ecab51da114d2c256cced58ad991908"; + + meta = { + description = "An OTP Process Pool Application"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/seth/pooler"; + }; + } + ) {}; + + pooler = pooler_1_5_0; + + pot_0_9_3 = callPackage + ( + { buildHex }: + buildHex { + name = "pot"; + version = "0.9.3"; + sha256 = + "752d2605c15605cd455cb3514b1ce329309eb61dfa88397dce49772dac9ad581"; + + meta = { + description = "One Time Passwords for Erlang"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + pot = pot_0_9_3; + + pqueue_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "pqueue"; + version = "1.5.1"; + sha256 = + "7ba01afe6b50ea4b239fa770f9e2c2db4871b3927ac44aea180d1fd52601b317"; + + meta = { + description = "Erlang Priority Queue Implementation"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/pqueue"; + }; + } + ) {}; + + pqueue = pqueue_1_5_1; + + proper_1_1_1_beta = callPackage + ( + { buildHex }: + buildHex { + name = "proper"; + version = "1.1.1-beta"; + sha256 = + "bde5c0fef0f8d804a7c06aab4f293d19f42149e5880b3412b75efa608e86d342"; + + meta = { + description = + "QuickCheck-inspired property-based testing tool for Erlang."; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/manopapad/proper"; + }; + } + ) {}; + + proper = proper_1_1_1_beta; + + providers_1_6_0 = callPackage + ( + { buildHex, getopt_0_8_2 }: + buildHex { + name = "providers"; + version = "1.6.0"; + sha256 = + "0f6876529a613d34224de8c61d3660388eb981142360f2699486d8536050ce2f"; + + erlangDeps = [ getopt_0_8_2 ]; + + meta = { + description = "Providers provider."; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/tsloughter/providers"; + }; + } + ) {}; + + providers = providers_1_6_0; + + quickrand_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "quickrand"; + version = "1.5.1"; + sha256 = + "0b3dcc6ddb23319c1f6a5ed143778864b8ad2f0ebd693a2d121cf5ae0c4db507"; + + meta = { + longDescription = ''Quick Random Number Generation: Provides a + simple interface to call efficient random number + generation functions based on the context. + Proper random number seeding is enforced.''; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/quickrand"; + }; + } + ) {}; + + quickrand = quickrand_1_5_1; + + quintana_0_2_0 = callPackage + ( + { buildHex, folsom_0_8_3 }: + buildHex { + name = "quintana"; + version = "0.2.0"; + sha256 = + "0646fe332ca3415ca6b0b273b4a5689ec902b9f9004ca62229ded00bd5f64cda"; + + erlangDeps = [ folsom_0_8_3 ]; + + meta = { + description = "Wrapper around some Folsom functions"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + quintana_0_2_1 = callPackage + ( + { buildHex, folsom_0_8_3 }: + buildHex { + name = "quintana"; + version = "0.2.1"; + sha256 = + "d4683eb33c71f6cab3b17b896b4fa9180f17a0a8b086440bfe0c5675182f0194"; + + erlangDeps = [ folsom_0_8_3 ]; + + meta = { + description = "Wrapper around some Folsom functions"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + quintana = quintana_0_2_1; + + rabbit_common_3_5_6 = callPackage + ( + { buildHex }: + buildHex { + name = "rabbit_common"; + version = "3.5.6"; + sha256 = + "9335ab3ebc4e8e140d7bc9b1b0e7ee99c0aa87d0a746b704184121ba35c04f1c"; + + meta = { + longDescription = ''Includes modules which are a runtime + dependency of the RabbitMQ/AMQP Erlang client + and are common to the RabbitMQ server.''; + license = stdenv.lib.licenses.mpl11; + homepage = "https://github.com/jbrisbin/rabbit_common"; + }; + } + ) {}; + + rabbit_common = rabbit_common_3_5_6; + + ranch_1_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "ranch"; + version = "1.1.0"; + sha256 = + "98ade939e63e6567da5dec5bc5bd93cbdc53d53f8b1aa998adec60dc4057f048"; + + meta = { + description = "Socket acceptor pool for TCP protocols."; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/ninenines/ranch"; + }; + } + ) {}; + + ranch_1_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "ranch"; + version = "1.2.0"; + sha256 = + "82bbb48cdad151000f7ad600d7a29afd972df409fde600bbc9b1ed4fdc08c399"; + + meta = { + description = "Socket acceptor pool for TCP protocols."; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/ninenines/ranch"; + }; + } + ) {}; + + ranch = ranch_1_2_0; + + ratx_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "ratx"; + version = "0.1.0"; + sha256 = + "fbf933ff32fdc127200880f5b567820bf03504ade1bd697ffbc0535dbafc23d6"; + + meta = { + description = + "Rate limiter and overload protection for erlang and elixir applications. +"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/liveforeverx/ratx"; + }; + } + ) {}; + + ratx = ratx_0_1_0; + + rebar3_asn1_compiler_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar3_asn1_compiler"; + version = "1.0.0"; + sha256 = + "25ec1d5c97393195650ac8c7a06a267a886a1479950ee047c43b5228c07b30b9"; + + meta = { + description = "Compile ASN.1 modules with Rebar3"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/pyykkis/rebar3_asn1_compiler"; + }; + } + ) {}; + + rebar3_asn1_compiler = rebar3_asn1_compiler_1_0_0; + + rebar3_auto_0_3_0 = callPackage + ( + { buildHex, enotify_0_1_0 }: + buildHex { + name = "rebar3_auto"; + version = "0.3.0"; + sha256 = + "9fcca62411b0b7680426bd911002c0769690aef3838829583ffa4547fd5038b5"; + + erlangDeps = [ enotify_0_1_0 ]; + + meta = { + description = "Rebar3 plugin for auto compiling on changes"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/tsloughter/rebar3_auto"; + }; + } + ) {}; + + rebar3_auto = rebar3_auto_0_3_0; + + rebar3_diameter_compiler_0_3_1 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar3_diameter_compiler"; + version = "0.3.1"; + sha256 = + "c5965e3810ccf9ef9ba9185a81fe569ef6e9f3a9e546e99c5e900736b0c39274"; + + meta = { + description = "Compile diameter .dia files"; + license = stdenv.lib.licenses.mit; + homepage = + "https://github.com/carlosedp/rebar3_diameter_compiler"; + }; + } + ) {}; + + rebar3_diameter_compiler = rebar3_diameter_compiler_0_3_1; + + rebar3_hex_1_12_0 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar3_hex"; + version = "1.12.0"; + sha256 = + "45467e93ae8d776c6038fdaeaffbc55d8f2f097f300a54dab9b81c6d1cf21f73"; + + meta = { + description = "Hex.pm plugin for rebar3"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/tsloughter/rebar3_hex"; + }; + } + ) {}; + + rebar3_hex = rebar3_hex_1_12_0; + + rebar3_idl_compiler_0_3_0 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar3_idl_compiler"; + version = "0.3.0"; + sha256 = + "31ba95205c40b990cb3c49abb397abc47b4d5f9c402db83f9daebbc44e69789d"; + + meta = { + description = "Rebar3 IDL Compiler"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/sebastiw/rebar3_idl_compiler"; + }; + } + ) {}; + + rebar3_idl_compiler = rebar3_idl_compiler_0_3_0; + + rebar3_live_0_1_3 = callPackage + ( + { buildHex, enotify_0_1_0 }: + buildHex { + name = "rebar3_live"; + version = "0.1.3"; + sha256 = + "d9ee2ff022fc73ac94f206c13ff8aa7591a536704f49c4cbacabf37d181a4391"; + + erlangDeps = [ enotify_0_1_0 ]; + + meta = { + description = "Rebar3 live plugin"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/pvmart/rebar3_live"; + }; + } + ) {}; + + rebar3_live = rebar3_live_0_1_3; + + rebar3_neotoma_plugin_0_2_0 = callPackage + ( + { buildHex, neotoma_1_7_3 }: + buildHex { + name = "rebar3_neotoma_plugin"; + version = "0.2.0"; + sha256 = + "c0ebbdb08c017cac90c7d3310a9bd4a5088a46abd4e2fef9e9a9805a657396b8"; + + erlangDeps = [ neotoma_1_7_3 ]; + + meta = { + description = "Neotoma rebar plugin"; + license = stdenv.lib.licenses.free; + homepage = + "https://github.com/zamotivator/rebar3_neotoma_plugin"; + }; + } + ) {}; + + rebar3_neotoma_plugin = rebar3_neotoma_plugin_0_2_0; + + rebar3_proper_plugin_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar3_proper_plugin"; + version = "0.1.0"; + sha256 = + "7071555afb623e73a2c572de6d4379f9c197b44e68608944eb2835617faed10d"; + + meta = { + description = "A rebar plugin"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + rebar3_proper_plugin = rebar3_proper_plugin_0_1_0; + + rebar3_run_0_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar3_run"; + version = "0.2.0"; + sha256 = + "321e0647893957d1bb05a88d940a8a3b9129097d63529e13f815c4857bf29497"; + compilePort = true; + + meta = { + description = "A rebar plugin"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/tsloughter/rebar3_run"; + }; + } + ) {}; + + rebar3_run = rebar3_run_0_2_0; + + rebar_alias_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar_alias"; + version = "0.1.0"; + sha256 = + "59fb42b39964af3a29ebe94c11247f618dd4d5e4e1a69cfaffabbed03ccff70f"; + + meta = { + description = "A rebar plugin"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + rebar_alias = rebar_alias_0_1_0; + + rebar_erl_vsn_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "rebar_erl_vsn"; + version = "0.1.0"; + sha256 = + "7cf1e2e85a80785a4e4e1529a2c837dbd2d540214cf791214e56f931e5e9865d"; + + meta = { + description = "defines for erlang versions"; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + rebar_erl_vsn = rebar_erl_vsn_0_1_0; + + recon_2_2_1 = callPackage + ( + { buildHex }: + buildHex { + name = "recon"; + version = "2.2.1"; + sha256 = + "6c548ad0f4916495a78977674a251847869f85b5125b7c2a44da3178955adfd1"; + + meta = { + longDescription = ''Recon wants to be a set of tools usable in + production to diagnose Erlang problems or + inspect production environment safely.''; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/ferd/recon"; + }; + } + ) {}; + + recon = recon_2_2_1; + + redo_2_0_1 = callPackage + ( + { buildHex }: + buildHex { + name = "redo"; + version = "2.0.1"; + sha256 = + "f7b2be8c825ec34413c54d8f302cc935ce4ecac8421ae3914c5dadd816dcb1e6"; + + meta = { + description = "Pipelined Redis Erlang Driver"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/heroku/redo"; + }; + } + ) {}; + + redo = redo_2_0_1; + + relflow_1_0_4 = callPackage + ( + { buildHex }: + buildHex { + name = "relflow"; + version = "1.0.4"; + sha256 = + "e6d9652ed7511aea18fa012d5abc19301acd8cbe81a44a159391086a5be12e1f"; + + meta = { + description = "Rebar3 release workflow plugin"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + relflow = relflow_1_0_4; + + reltool_util_1_4_0 = callPackage + ( + { buildHex }: + buildHex { + name = "reltool_util"; + version = "1.4.0"; + sha256 = + "a625874976fffe8ab56d4b5b7d5fd37620a2692462bbe24ae003ab13052ef0d3"; + + meta = { + description = "Erlang reltool utility functionality application"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/reltool_util"; + }; + } + ) {}; + + reltool_util_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "reltool_util"; + version = "1.5.1"; + sha256 = + "746e16871afdcf85d8a115389193c8d660d0df1d26d6ac700590e0ad252646b1"; + + meta = { + description = "Erlang reltool utility functionality application"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/reltool_util"; + }; + } + ) {}; + + reltool_util = reltool_util_1_5_1; + + relx_3_11_0 = callPackage + ( + { + buildHex, + bbmustache_1_0_4, + cf_0_2_1, + erlware_commons_0_18_0, + getopt_0_8_2, + providers_1_6_0 + }: + buildHex { + name = "relx"; + version = "3.11.0"; + sha256 = + "cf212af96003417ff710e0c9df46034ae14c880a74919df91563e4f149d5c798"; + + erlangDeps = [ + bbmustache_1_0_4 + cf_0_2_1 + erlware_commons_0_18_0 + getopt_0_8_2 + providers_1_6_0 + ]; + + meta = { + description = "Release assembler for Erlang/OTP Releases"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/erlware/relx"; + }; + } + ) {}; + + relx = relx_3_11_0; + + reup_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "reup"; + version = "0.1.0"; + sha256 = + "949a672190119f8b24160167e3685fdd5397474f98dc875ccfd31378ebd68506"; + + meta = { + description = + "dev watcher that auto compiles and reloads modules"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + reup = reup_0_1_0; + + savory_0_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "savory"; + version = "0.0.2"; + sha256 = + "a45ef32a6f45092e1328bc1eb47bda3c8f992afe863aaa73c455f31b0c8591b9"; + + meta = { + longDescription = ''An Elixir implementation of Freza's salt_nif + which interfaces with libsodium, a wrapper for + the cryptographic primitive libary NaCl. ''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/electricFeel/savory"; + }; + } + ) {}; + + savory = savory_0_0_2; + + sbroker_0_7_0 = callPackage + ( + { buildHex }: + buildHex { + name = "sbroker"; + version = "0.7.0"; + sha256 = + "5bc0bfd79896fd5b92072a71fa4a1e120f4110f2cf9562a0b9dd2fcfe9e5cfd2"; + + meta = { + description = + "Process broker for dispatching with backpressure and load shedding"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/fishcakez/sbroker"; + }; + } + ) {}; + + sbroker = sbroker_0_7_0; + + serial_0_1_2 = callPackage + ( + { buildHex }: + buildHex { + name = "serial"; + version = "0.1.2"; + sha256 = + "c0aed287f565b7ce1e1091a6a3dd08fd99bf0884c81b53ecf978c502ef652231"; + + meta = { + description = "Serial communication through Elixir ports"; + license = stdenv.lib.licenses.isc; + homepage = "https://github.com/bitgamma/elixir_serial"; + }; + } + ) {}; + + serial = serial_0_1_2; + + sfmt_0_10_1 = callPackage + ( + { buildHex }: + buildHex { + name = "sfmt"; + version = "0.10.1"; + sha256 = + "5f9d8206762306743986a3f35602bb40b35bcff68752a8ae12519c0b7c25fab2"; + compilePort = true; + + meta = { + description = + "SIMD-oriented Fast Mersenne Twister (SFMT) for Erlang. +"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/jj1bdx/sfmt-erlang/"; + }; + } + ) {}; + + sfmt = sfmt_0_10_1; + + sidejob_2_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "sidejob"; + version = "2.0.0"; + sha256 = + "19fea24060a1d0d37e78480fbd79d6b95e07f445aad725f7124a23194641c743"; + + meta = { + longDescription = ''sidejob is an Erlang library that implements + a parallel, capacity-limited request pool. In + sidejob, these pools are called resources. A + resource is managed by multiple gen_server like + processes which can be sent calls and casts + using sidejob:call or sidejob:cast respectively. + This library was originally written to support + process bounding in Riak using the + sidejob_supervisor behavior. In Riak, this is + used to limit the number of concurrent get/put + FSMs that can be active, failing client requests + with {error, overload} if the limit is ever hit. + The purpose being to provide a fail-safe + mechanism during extreme overload scenarios. ''; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/basho/sidejob"; + }; + } + ) {}; + + sidejob = sidejob_2_0_0; + + siphash_2_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "siphash"; + version = "2.1.1"; + sha256 = + "69f2a3b8acac101f7894ea80c15b29dbf7dfa55ea2800731cd5d04621cc22eee"; + compilePort = true; + + meta = { + description = "Elixir implementation of the SipHash hash family"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/zackehh/siphash-elixir"; + }; + } + ) {}; + + siphash = siphash_2_1_1; + + slp_0_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "slp"; + version = "0.0.2"; + sha256 = + "27e5f7330c7ce631f16e3ec5781b31cbb2247d2bcdeab1e979a66dcc4397bd77"; + + meta = { + longDescription = ''An Elixir application for using the Service + Location Protocol. SLP is a commonly used + service discovery protocol.''; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/stuart/elixir_slp"; + }; + } + ) {}; + + slp = slp_0_0_2; + + smurf_0_1_3 = callPackage + ( + { buildHex }: + buildHex { + name = "smurf"; + version = "0.1.3"; + sha256 = + "5ed8e18ec8eea0647e7e938ce15cc76e59497d0a259cea15124520a48f0d6be6"; + + meta = { + description = "SMF interfacing library for erlang"; + license = stdenv.lib.licenses.cddl; + homepage = "https://github.com/project-fifo/smurf"; + }; + } + ) {}; + + smurf = smurf_0_1_3; + + snappy_1_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "snappy"; + version = "1.1.1"; + sha256 = + "7faed3ec6bcac363c2a6f09b4f000a12c8166b42b3bf70228d532f8afcfbcb6a"; + compilePort = true; + + meta = { + description = + "snappy compressor/decompressor Erlang NIF wrapper"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/barrel-db/snappy"; + }; + } + ) {}; + + snappy = snappy_1_1_1; + + ssl_verify_hostname_1_0_5 = callPackage + ( + { buildHex }: + buildHex { + name = "ssl_verify_hostname"; + version = "1.0.5"; + sha256 = + "f2cb11e6144e10ab39d1e14bf9fb2437b690979c70bf5428e9dc4bfaf1dfeabf"; + + meta = { + description = "Hostname verification library for Erlang"; + license = stdenv.lib.licenses.mit; + homepage = + "https://github.com/deadtrickster/ssl_verify_hostname.erl"; + }; + } + ) {}; + + ssl_verify_hostname_1_0_6 = callPackage + ( + { buildHex }: + buildHex { + name = "ssl_verify_hostname"; + version = "1.0.6"; + sha256 = + "72b2fc8a8e23d77eed4441137fefa491bbf4a6dc52e9c0045f3f8e92e66243b5"; + + meta = { + description = "Hostname verification library for Erlang"; + license = stdenv.lib.licenses.mit; + homepage = + "https://github.com/deadtrickster/ssl_verify_hostname.erl"; + }; + } + ) {}; + + ssl_verify_hostname = ssl_verify_hostname_1_0_6; + + strftimerl_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "strftimerl"; + version = "0.1.0"; + sha256 = + "8c372b282b31f3de24ed1281d4974087421fc44a27d0f31b285ad97a9e6bb616"; + + meta = { + description = "strftime formatting in erlang"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/gmr/strftimerl"; + }; + } + ) {}; + + strftimerl = strftimerl_0_1_0; + + supool_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "supool"; + version = "1.5.1"; + sha256 = + "c191d63ff19ae177bf4cfba02303ae4552d8b48ec4133e24053e037513dfae09"; + + meta = { + description = "Erlang Process Pool as a Supervisor"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/supool"; + }; + } + ) {}; + + supool = supool_1_5_1; + + syslog_1_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "syslog"; + version = "1.0.2"; + sha256 = + "ca158a84afe482f77cb4668383a6108f1e9190fcdf3035858f426b91b2021bf6"; + compilePort = true; + + meta = { + description = + "Erlang port driver for interacting with syslog via syslog"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/Vagabond/erlang-syslog"; + }; + } + ) {}; + + syslog = syslog_1_0_2; + + tea_crypto_1_0_0 = callPackage + ( + { buildHex }: + buildHex { + name = "tea_crypto"; + version = "1.0.0"; + sha256 = + "0e7e60d0afe79f0624faa8a358a3a00c912cfa548f3632383927abca4db29cc6"; + + meta = { + description = "A TEA implementation in Erlang. +"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/keichan34/tea_crypto"; + }; + } + ) {}; + + tea_crypto = tea_crypto_1_0_0; + + termcap_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "termcap"; + version = "0.1.0"; + sha256 = + "8c5167d68759bd1cd020eeaf5fd94153430fd19fa5a5fdeeb0b3129f0aba2a21"; + + meta = { + description = "Pure erlang termcap library"; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + termcap = termcap_0_1_0; + + tinymt_0_2_0 = callPackage + ( + { buildHex }: + buildHex { + name = "tinymt"; + version = "0.2.0"; + sha256 = + "1ab2b2bd4e02ccf3f83ca6b2429c41110adaf2068c727d37a2e27a0207eccfe0"; + + meta = { + description = "Tiny Mersenne Twister (TinyMT) for Erlang +"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/jj1bdx/tinymt-erlang/"; + }; + } + ) {}; + + tinymt = tinymt_0_2_0; + + trie_1_5_0 = callPackage + ( + { buildHex }: + buildHex { + name = "trie"; + version = "1.5.0"; + sha256 = + "613981536e33f58d92e44bd31801376f71deee0e57c63372fe8ab5fbbc37f7dc"; + + meta = { + description = "Erlang Trie Implementation"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/trie"; + }; + } + ) {}; + + trie_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "trie"; + version = "1.5.1"; + sha256 = + "4b845dccfca8962b90584e98d270e2ff43e2e181bb046c4aae0e0f457679f98d"; + + meta = { + description = "Erlang Trie Implementation"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/trie"; + }; + } + ) {}; + + trie = trie_1_5_1; + + tsuru_1_0_2 = callPackage + ( + { buildHex }: + buildHex { + name = "tsuru"; + version = "1.0.2"; + sha256 = + "b586ad8d47799a086e4225494f5e3cf4e306ca255a173a4b48fe51d542cefb6b"; + + meta = { + description = + "A collection of useful tools for Erlang applications"; + license = stdenv.lib.licenses.mit; + }; + } + ) {}; + + tsuru = tsuru_1_0_2; + + ui_0_1_1 = callPackage + ( + { buildHex }: + buildHex { + name = "ui"; + version = "0.1.1"; + sha256 = + "492da59ca39055c0dfc794a2ebd564adb9ed635402c7b46659981f32aa9d94c1"; + + meta = { + description = "An OTP application"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + ui = ui_0_1_1; + + uri_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "uri"; + version = "0.1.0"; + sha256 = + "3833c3b5745fc0822df86c3a3591219048026fea8a535223b440d26029218996"; + + meta = { + description = "URI Parsing/Encoding Library"; + license = stdenv.lib.licenses.free; + }; + } + ) {}; + + uri = uri_0_1_0; + + varpool_1_5_1 = callPackage + ( + { buildHex }: + buildHex { + name = "varpool"; + version = "1.5.1"; + sha256 = + "ff6059bdcd0efad606e8c54ee623cfeaef59778c18e343dd772e84d99d188e26"; + + meta = { + description = "Erlang Process Pools as a Local Variable"; + license = stdenv.lib.licenses.bsd3; + homepage = "https://github.com/okeuday/varpool"; + }; + } + ) {}; + + varpool = varpool_1_5_1; + + weber_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "weber"; + version = "0.1.0"; + sha256 = + "742c45b3c99e207dd0aeccb818edd2ace4af10699c96fbcee0ce2f692dc5fe12"; + + meta = { + description = "weber - is Elixir MVC web framework."; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/elixir-web/weber"; + }; + } + ) {}; + + weber = weber_0_1_0; + + websocket_client_1_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "websocket_client"; + version = "1.1.0"; + sha256 = + "21c3d0df073634f2ca349af5b54a61755d637d6390c34d8d57c064f68ca92acd"; + + meta = { + description = "Erlang websocket client"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/sanmiguel/websocket_client"; + }; + } + ) {}; + + websocket_client = websocket_client_1_1_0; + + worker_pool_1_0_4 = callPackage + ( + { buildHex }: + buildHex { + name = "worker_pool"; + version = "1.0.4"; + sha256 = + "7854a3b94e9624728db3a0475d00e7d0728adf3bf2ee3802bbf8ca10356d6f64"; + + meta = { + description = "Erlang Worker Pool"; + license = stdenv.lib.licenses.free; + homepage = "https://github.com/inaka/worker_pool"; + }; + } + ) {}; + + worker_pool = worker_pool_1_0_4; + + wpa_supplicant_0_1_0 = callPackage + ( + { buildHex }: + buildHex { + name = "wpa_supplicant"; + version = "0.1.0"; + sha256 = + "8a73ca51203401755d42ba636918106540aa3723006dab344dc8a7ec8fa2f3d5"; + + meta = { + longDescription = ''Elixir interface to the wpa_supplicant + daemon. The wpa_supplicant provides application + support for scanning for access points, managing + Wi-Fi connections, and handling all of the + security and other parameters associated with + Wi-Fi. ''; + license = with stdenv.lib.licenses; [ asl20 free ]; + homepage = "https://github.com/fhunleth/wpa_supplicant.ex"; + }; + } + ) {}; + + wpa_supplicant = wpa_supplicant_0_1_0; + + zipper_0_1_4 = callPackage + ( + { buildHex }: + buildHex { + name = "zipper"; + version = "0.1.4"; + sha256 = + "0037f29a5c5a96a9db49e9131f1071a48fcbd5959b74f1d8b6d22945a7ac46b9"; + + meta = { + description = "Generic Zipper Implementation for Erlang"; + license = stdenv.lib.licenses.asl20; + homepage = "https://github.com/inaka/zipper"; + }; + } + ) {}; + + zipper = zipper_0_1_4; - rebar3-pc = callPackage - ({ buildHex, goldrush }: - buildHex { - name = "pc"; - version = "1.1.0"; - sha256 = "1br5xfl4b2z70b6a2ccxppn64jvkqgpmy4y9v81kxzb91z0ss9ma"; - }) {}; }; in self From 4ed5836dd3c6e60d6931350cfb6cb85d514c52b0 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sun, 10 Jan 2016 17:51:23 -0800 Subject: [PATCH 08/12] hex2nix: init at 0.0.2 --- .../tools/erlang/hex2nix/default.nix | 23 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 24 insertions(+) create mode 100644 pkgs/development/tools/erlang/hex2nix/default.nix diff --git a/pkgs/development/tools/erlang/hex2nix/default.nix b/pkgs/development/tools/erlang/hex2nix/default.nix new file mode 100644 index 00000000000..8bb8f68e3a4 --- /dev/null +++ b/pkgs/development/tools/erlang/hex2nix/default.nix @@ -0,0 +1,23 @@ +{stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons, getopt }: + +buildRebar3 rec { + name = "hex2nix"; + version = "0.0.2"; + + src = fetchFromGitHub { + owner = "erlang-nix"; + repo = "hex2nix"; + rev = "${version}"; + sha256 = "18gkq5fkdiwq5zj98cz4kqxbpzjkpqcplpsw987drxwdbvq4hkwm"; + }; + + erlangDeps = [ ibrowse jsx erlware_commons getopt ]; + + DEBUG=1; + + installPhase = '' + runHook preInstall + make PREFIX=$out install + runHook postInstall + ''; + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7cf73f4243e..0e194ced337 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5099,6 +5099,7 @@ let fetchHex = callPackage ../development/tools/build-managers/rebar3/fetch-hex.nix { }; erlangPackages = callPackage ../development/erlang-modules { }; + hex2nix = erlangPackages.callPackage ../development/tools/erlang/hex2nix { }; elixir = callPackage ../development/interpreters/elixir { }; From 6a493a2b43741d04e71ddaa2617afb9dca7d9426 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sun, 10 Jan 2016 17:51:43 -0800 Subject: [PATCH 09/12] erlang support: Add minimal documentation to nix This commit adds some very minimial documentation to the Nix manual. Hopefully, its enough to get someone started and serve as a first footstep for future documentation writers --- doc/erlang-users-guide.xml | 288 +++++++++++++++++++++++++++++++++++++ doc/manual.xml | 1 + 2 files changed, 289 insertions(+) create mode 100644 doc/erlang-users-guide.xml diff --git a/doc/erlang-users-guide.xml b/doc/erlang-users-guide.xml new file mode 100644 index 00000000000..778d6e709b1 --- /dev/null +++ b/doc/erlang-users-guide.xml @@ -0,0 +1,288 @@ + + +User's Guide to the Erlang Infrastructure + +
+ How to install Erlang packages + + Erlang packages are not registered in the top level simply because + they are not relevant to the vast majority of Nix users. They are + installable using the erlangPackages attribute set. + + You can list the avialable packages in the + erlangPackages with the following command: + + + +$ nix-env -f "<nixpkgs>" -qaP -A erlangPackages +erlangPackages.esqlite esqlite-0.2.1 +erlangPackages.goldrush goldrush-0.1.7 +erlangPackages.ibrowse ibrowse-4.2.2 +erlangPackages.jiffy jiffy-0.14.5 +erlangPackages.lager lager-3.0.2 +erlangPackages.meck meck-0.8.3 +erlangPackages.rebar3-pc pc-1.1.0 + + + To install any of those packages into your profile, refer to them by + their attribute path (first column): + + +$ nix-env -f "<nixpkgs>" -iA erlangPackages.ibrowse + + + The attribute path of any Erlang packages corresponds to the name + of that particular package in Hex or its OTP Application/Release name. + +
+
+ Packaging Erlang Applications +
+ Rebar3 Packages + + There is a Nix functional called + buildRebar3. We use this function to make a + derivation that understands how to build the rebar3 project. For + example, the epression we use to build the hex2nix + project follows. + + +{stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons }: + +buildRebar3 rec { + name = "hex2nix"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "ericbmerritt"; + repo = "hex2nix"; + rev = "${version}"; + sha256 = "1w7xjidz1l5yjmhlplfx7kphmnpvqm67w99hd2m7kdixwdxq0zqg"; + }; + + erlangDeps = [ ibrowse jsx erlware_commons ]; +} + + + The only visible difference between this derivation and + something like stdenv.mkDerivation is that we + have added erlangDeps to the derivation. If + you add your Erlang dependencies here they will be correctly + handled by the system. + + + If your package needs to compile native code via Rebar's port + compilation mechenism. You should add compilePort = + true; to the derivation. + +
+ +
+ Hex Packages + + Hex packages are based on Rebar packages. In fact, at the moment + we can only compile Hex packages that are buildable with + Rebar3. Packages that use Mix and other build systems are not + supported. That being said, we know a lot more about Hex and can + do more for you. + + +{ buildHex }: + buildHex { + name = "esqlite"; + version = "0.2.1"; + sha256 = "1296fn1lz4lz4zqzn4dwc3flgkh0i6n4sydg501faabfbv8d3wkr"; + compilePort = true; +} + + + For Hex packages you need to provide the name, the version, and + the Sha 256 digest of the package and use + buildHex to build it. Obviously, the package + needs to have already been published to Hex. + +
+
+
+ How to develop +
+ Accessing an Environment + + Often, all you want to do is be able to access a valid + environment that contains a specific package and its + dependencies. we can do that with the env + part of a derivation. For example, lets say we want to access an + erlang repl with ibrowse loaded up. We could do the following. + + + ~/w/nixpkgs ❯❯❯ nix-shell -A erlangPackages.ibrowse.env --run "erl" + Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] + + Eshell V7.0 (abort with ^G) + 1> m(ibrowse). + Module: ibrowse + MD5: 3b3e0137d0cbb28070146978a3392945 + Compiled: January 10 2016, 23:34 + Object file: /nix/store/g1rlf65rdgjs4abbyj4grp37ry7ywivj-ibrowse-4.2.2/lib/erlang/lib/ibrowse-4.2.2/ebin/ibrowse.beam + Compiler options: [{outdir,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/ebin"}, + debug_info,debug_info,nowarn_shadow_vars, + warn_unused_import,warn_unused_vars,warnings_as_errors, + {i,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/include"}] + Exports: + add_config/1 send_req_direct/7 + all_trace_off/0 set_dest/3 + code_change/3 set_max_attempts/3 + get_config_value/1 set_max_pipeline_size/3 + get_config_value/2 set_max_sessions/3 + get_metrics/0 show_dest_status/0 + get_metrics/2 show_dest_status/1 + handle_call/3 show_dest_status/2 + handle_cast/2 spawn_link_worker_process/1 + handle_info/2 spawn_link_worker_process/2 + init/1 spawn_worker_process/1 + module_info/0 spawn_worker_process/2 + module_info/1 start/0 + rescan_config/0 start_link/0 + rescan_config/1 stop/0 + send_req/3 stop_worker_process/1 + send_req/4 stream_close/1 + send_req/5 stream_next/1 + send_req/6 terminate/2 + send_req_direct/4 trace_off/0 + send_req_direct/5 trace_off/2 + send_req_direct/6 trace_on/0 + trace_on/2 + ok + 2> + + + Notice the -A erlangPackages.ibrowse.env.That + is the key to this functionality. + +
+
+ Creating a Shell + + Getting access to an environment often isn't enough to do real + development. Many times we need to create a + shell.nix file and do our development inside + of the environment specified by that file. This file looks a lot + like the packageing described above. The main difference is that + src points to project root and we call the + package directly. + + +{ pkgs ? import "<nixpkgs"> {} }: + +with pkgs; + +let + + f = { buildHex, ibrowse, jsx, erlware_commons }: + buildHex { + name = "hex2nix"; + version = "0.1.0"; + src = ./.; + erlangDeps = [ ibrowse jsx erlware_commons ]; + }; + drv = erlangPackages.callPackage f {}; + +in + drv + +
+ Building in a shell + + Unfortunatly for us users of Nix, Rebar isn't very cooperative + with us from the standpoint of building a hermetic + environment. When building the rebar3 support we had to do some + sneaky things to get it not to go out and pull packages on its + own. Also unfortunately, you have to do some of the same things + when building a project inside of a Nix shell. + + + + Run rebar3-nix-bootstrap every time + dependencies change + + + Set Home to the current directory. + + + + If you do these two things then Rebar will be happy with you. I + codify these into a makefile. Forunately, rebar3-nix-bootstrap + is idempotent and fairly quick. so you can run it as often as + you like. + + +# ============================================================================= +# Rules +# ============================================================================= +.PHONY= all test clean repl shell build test analyze bootstrap + +all: test + +clean: + rm -rf _build + rm -rf .cache + +repl: + nix-shell --run "erl" + +shell: + nix-shell --run "bash" + +bootstrap: + nix-shell --pure --run "rebar3-nix-bootstrap" + +build: bootstrap + nix-shell --pure --run "HOME=$(CURDIR) rebar3 compile" + +analyze: bootstrap + nix-shell --pure --run "HOME=$(CURDIR) rebar3 do compile,dialyzer" + +test: bootstrap + nix-shell --pure --run "HOME=$(CURDIR) rebar3 do compile,dialyzer,eunit" + + + + If you add the shell.nix as described and + user rebar as follows things should simply work. + +
+
+
+
+ Generating Packages from Hex with Hex2Nix + + Updating the Hex packages requires the use of the + hex2nix tool. Given the path to the Erlang + modules (usually + pkgs/development/erlang-modules). It will + happily dump a file called + hex-packages.nix. That file will contain all + the packages that use a recognized build system in Hex. However, + it can't know whether or not all those packages are buildable. + + + To make life easier for our users, it makes good sense to go + ahead and attempt to build all those packages and remove the + ones that don't build. To do that, simply run the command (in + the root of your nixpkgs repository). that follows. + + +$ nix-build -A erlangPackages + + + That will build every package in + erlangPackages. Then you can go through and + manually remove the ones that fail. Hopefully, someone will + improve hex2nix in the future to automate + that. + +
+
diff --git a/doc/manual.xml b/doc/manual.xml index b4c35d1a379..2b4f47aff1c 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -20,6 +20,7 @@ + From acf4bfd585d2a566864dce2a051d2888bd472fa1 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Sun, 10 Jan 2016 18:39:37 -0800 Subject: [PATCH 10/12] erlang support: overridable allow installPhase This commit allows the installPhase of buildRebar3 to be overridden by the user. --- pkgs/development/erlang-modules/build-rebar3.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/erlang-modules/build-rebar3.nix b/pkgs/development/erlang-modules/build-rebar3.nix index 16e663d14b9..6ad82b62158 100644 --- a/pkgs/development/erlang-modules/build-rebar3.nix +++ b/pkgs/development/erlang-modules/build-rebar3.nix @@ -7,6 +7,7 @@ , buildInputs ? [], erlangDeps ? [], pluginDeps ? [] , postPatch ? "" , compilePorts ? false +, installPhase ? null , meta ? {} , ... }@attrs: @@ -56,7 +57,8 @@ let runHook postBuild ''; - installPhase = '' + installPhase = if installPhase == null + then '' runHook preInstall mkdir -p "$out/lib/erlang/lib/${name}-${version}" for reldir in src ebin priv include; do @@ -66,7 +68,8 @@ let success=1 done runHook postInstall - ''; + '' + else installPhase; meta = { inherit (erlang.meta) platforms; From e8933f6a4e53d903520e6e44cd7518997b18e16f Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Fri, 15 Jan 2016 08:16:46 -0800 Subject: [PATCH 11/12] webdriver: init at 0.0.0+build.18.7ceaf1f --- pkgs/development/erlang-modules/default.nix | 3 ++ .../erlang-modules/webdriver/default.nix | 40 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/erlang-modules/webdriver/default.nix diff --git a/pkgs/development/erlang-modules/default.nix b/pkgs/development/erlang-modules/default.nix index 7f096016ddb..f3adf18df0c 100644 --- a/pkgs/development/erlang-modules/default.nix +++ b/pkgs/development/erlang-modules/default.nix @@ -7,5 +7,8 @@ let buildRebar3 = callPackage ./build-rebar3.nix {}; buildHex = callPackage ./build-hex.nix {}; + + ## Non hex packages + webdriver = callPackage ./webdriver {}; }; in self // self.hex diff --git a/pkgs/development/erlang-modules/webdriver/default.nix b/pkgs/development/erlang-modules/webdriver/default.nix new file mode 100644 index 00000000000..bf84ac286ba --- /dev/null +++ b/pkgs/development/erlang-modules/webdriver/default.nix @@ -0,0 +1,40 @@ +{stdenv, fetchFromGitHub, writeText, erlang }: + +let + shell = drv: stdenv.mkDerivation { + name = "interactive-shell-${drv.name}"; + buildInputs = [ drv ]; + }; + + pkg = self: stdenv.mkDerivation rec { + name = "webdriver"; + version = "0.0.0+build.18.7ceaf1f"; + + src = fetchFromGitHub { + owner = "Quviq"; + repo = "webdrv"; + rev = "7ceaf1f67d834e841ca0133b4bf899a9fa2db6bb"; + sha256 = "1pq6pmlr6xb4hv2fvmlrvzd8c70kdcidlgjv4p8n9pwvkif0cb87"; + }; + + setupHook = writeText "setupHook.sh" '' + addToSearchPath ERL_LIBS "$1/lib/erlang/lib/" + ''; + + buildInputs = [ erlang ]; + + installFlags = "PREFIX=$(out)/lib/erlang/lib"; + + meta = { + description = "WebDriver implementation in Erlang"; + license = stdenv.lib.licenses.mit; + homepage = "https://github.com/Quviq/webdrv"; + maintainers = with stdenv.lib.maintainers; [ ericbmerritt ]; + }; + + passthru = { + env = shell self; + }; + +}; +in stdenv.lib.fix pkg From 24a9dcd12f610f7d9309918c00f6ffb58da69dd6 Mon Sep 17 00:00:00 2001 From: Eric Merritt Date: Fri, 15 Jan 2016 09:07:06 -0800 Subject: [PATCH 12/12] rebar3: refactor Move registrySnapshot to the erlang-nix github organization --- .../tools/build-managers/rebar3/registrySnapshot.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix b/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix index 29d36e3cccc..378fb382f95 100644 --- a/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix +++ b/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { version = "0.0.0+build.${rev}"; src = fetchFromGitHub { - owner = "gleber"; + owner = "erlang-nix"; repo = "hex-pm-registry-snapshots"; inherit rev; sha256 = "1rs3z8psfvy10mzlfvkdzbflgikcnq08r38kfi0f8p5wvi8f8hmh";