rebar3: 3.6.1 -> 3.9.0
Remove hermetic patch (make it compatible with the upstream) (Mostly) eliminate the need for hex package registry
This commit is contained in:
@@ -23,12 +23,8 @@ let
|
||||
hexRegistrySnapshot = callPackage ./hex-registry-snapshot.nix { };
|
||||
|
||||
rebar = callPackage ../tools/build-managers/rebar { };
|
||||
rebar3-open = callPackage ../tools/build-managers/rebar3 {
|
||||
hermeticRebar3 = false;
|
||||
};
|
||||
rebar3 = callPackage ../tools/build-managers/rebar3 {
|
||||
hermeticRebar3 = true;
|
||||
};
|
||||
rebar3-open = callPackage ../tools/build-managers/rebar3 { };
|
||||
rebar3 = callPackage ../tools/build-managers/rebar3 { };
|
||||
|
||||
# rebar3 port compiler plugin is required by buildRebar3
|
||||
pc_1_6_0 = callPackage ./pc {};
|
||||
@@ -36,6 +32,9 @@ let
|
||||
|
||||
fetchHex = callPackage ./fetch-hex.nix { };
|
||||
|
||||
fetchRebar3Deps = callPackage ./fetch-rebar-deps.nix { };
|
||||
rebar3Relx = callPackage ./rebar3-release.nix { };
|
||||
|
||||
buildRebar3 = callPackage ./build-rebar3.nix {};
|
||||
buildHex = callPackage ./build-hex.nix {};
|
||||
buildErlangMk = callPackage ./build-erlang-mk.nix {};
|
||||
@@ -75,25 +74,6 @@ let
|
||||
lfe = lfe_1_2;
|
||||
lfe_1_2 = lib.callLFE ../interpreters/lfe/1.2.nix { inherit erlang buildRebar3 buildHex; };
|
||||
|
||||
# We list all base hex packages for beam tooling explicitly to ensure
|
||||
# tha the tooling does not break during hex-packages.nix updates.
|
||||
erlware_commons_1_0_0 = buildHex {
|
||||
name = "erlware_commons";
|
||||
version = "1.0.0";
|
||||
sha256 = "0wkphbrjk19lxdwndy92v058qwcaz13bcgdzp33h21aa7vminzx7";
|
||||
beamDeps = [ cf_0_2_2 ];
|
||||
};
|
||||
cf_0_2_2 = buildHex {
|
||||
name = "cf";
|
||||
version = "0.2.2";
|
||||
sha256 = "08cvy7skn5d2k4manlx5k3anqgjdvajjhc5jwxbaszxw34q3na28";
|
||||
};
|
||||
getopt_0_8_2 = buildHex {
|
||||
name = "getopt";
|
||||
version = "0.8.2";
|
||||
sha256 = "1xw30h59zbw957cyjd8n50hf9y09jnv9dyry6x3avfwzcyrnsvkk";
|
||||
};
|
||||
|
||||
# Non hex packages. Examples how to build Rebar/Mix packages with and
|
||||
# without helper functions buildRebar3 and buildMix.
|
||||
hex = callPackage ./hex {};
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
{ stdenv, rebar3, curl }:
|
||||
|
||||
{ name, version, sha256, src
|
||||
, meta ? {}
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
name = "rebar-deps-${name}-${version}";
|
||||
|
||||
phases = [ "downloadPhase" "installPhase" ];
|
||||
|
||||
downloadPhase = ''
|
||||
cp ${src} .
|
||||
HOME='.' DEBUG=1 ${rebar3}/bin/rebar3 get-deps
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/_checkouts"
|
||||
for i in ./_build/default/lib/* ; do
|
||||
echo "$i"
|
||||
cp -R "$i" "$out/_checkouts"
|
||||
done
|
||||
'';
|
||||
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = sha256;
|
||||
|
||||
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
|
||||
})
|
||||
@@ -0,0 +1,85 @@
|
||||
{ stdenv, writeText, erlang, rebar3, openssl, libyaml,
|
||||
pc, lib }:
|
||||
|
||||
{ name, version
|
||||
, src
|
||||
, checkouts ? null
|
||||
, releaseType
|
||||
, buildInputs ? []
|
||||
, setupHook ? null
|
||||
, profile ? "default"
|
||||
, installPhase ? null
|
||||
, buildPhase ? null
|
||||
, configurePhase ? null
|
||||
, meta ? {}
|
||||
, enableDebugInfo ? false
|
||||
, ... }@attrs:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "debug-info";
|
||||
|
||||
shell = drv: stdenv.mkDerivation {
|
||||
name = "interactive-shell-${drv.name}";
|
||||
buildInputs = [ drv ];
|
||||
};
|
||||
|
||||
customPhases = filterAttrs
|
||||
(_: v: v != null)
|
||||
{ inherit setupHook configurePhase buildPhase installPhase; };
|
||||
|
||||
pkg = self: stdenv.mkDerivation (attrs // {
|
||||
|
||||
name = "${name}-${version}";
|
||||
inherit version;
|
||||
|
||||
buildInputs = buildInputs ++ [ erlang rebar3 openssl ];
|
||||
propagatedBuildInputs = [checkouts];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
inherit src;
|
||||
|
||||
setupHook = writeText "setupHook.sh" ''
|
||||
addToSearchPath ERL_LIBS "$1/lib/erlang/lib/"
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
${if checkouts != null then
|
||||
''cp --no-preserve=all -R ${checkouts}/_checkouts .''
|
||||
else
|
||||
''''}
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
HOME=. DEBUG=1 rebar3 as ${profile} ${if releaseType == "escript"
|
||||
then '' escriptize''
|
||||
else '' release''}
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
dir=${if releaseType == "escript"
|
||||
then ''bin''
|
||||
else ''rel''}
|
||||
mkdir -p "$out/$dir"
|
||||
cp -R --preserve=mode "_build/${profile}/$dir" "$out"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
inherit (erlang.meta) platforms;
|
||||
} // meta;
|
||||
|
||||
passthru = {
|
||||
packageName = name;
|
||||
env = shell self;
|
||||
};
|
||||
} // customPhases);
|
||||
in
|
||||
fix pkg
|
||||
Reference in New Issue
Block a user