beam-packages: drop erlang R18 R19 R20 and cuter

(cherry picked from commit f55c3e2f21073be564fed477847ad5bd649c9fb9)
This commit is contained in:
Thomas Depierre 2021-05-17 10:09:51 +02:00 committed by Raphael Megzari
parent 5bf359c593
commit 0894deca29
9 changed files with 14 additions and 165 deletions

View File

@ -8,9 +8,9 @@ In this document and related Nix expressions, we use the term, _BEAM_, to descri
All BEAM-related expressions are available via the top-level `beam` attribute, which includes: All BEAM-related expressions are available via the top-level `beam` attribute, which includes:
- `interpreters`: a set of compilers running on the BEAM, including multiple Erlang/OTP versions (`beam.interpreters.erlangR19`, etc), Elixir (`beam.interpreters.elixir`) and LFE (Lisp Flavoured Erlang) (`beam.interpreters.lfe`). - `interpreters`: a set of compilers running on the BEAM, including multiple Erlang/OTP versions (`beam.interpreters.erlangR22`, etc), Elixir (`beam.interpreters.elixir`) and LFE (Lisp Flavoured Erlang) (`beam.interpreters.lfe`).
- `packages`: a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. `beam.packages.erlangR19`. - `packages`: a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. `beam.packages.erlang22`.
The default Erlang compiler, defined by `beam.interpreters.erlang`, is aliased as `erlang`. The default BEAM package set is defined by `beam.packages.erlang` and aliased at the top level as `beamPackages`. The default Erlang compiler, defined by `beam.interpreters.erlang`, is aliased as `erlang`. The default BEAM package set is defined by `beam.packages.erlang` and aliased at the top level as `beamPackages`.

View File

@ -1244,6 +1244,14 @@ environment.systemPackages = [
Nixpkgs now contains <link xlink:href="https://github.com/NixOS/nixpkgs/pull/118232">automatically packaged GNOME Shell extensions</link> from the <link xlink:href="https://extensions.gnome.org/">GNOME Extensions</link> portal. You can find them, filed by their UUID, under <literal>gnome38Extensions</literal> attribute for GNOME 3.38 and under <literal>gnome40Extensions</literal> for GNOME 40. Finally, the <literal>gnomeExtensions</literal> attribute contains extensions for the latest GNOME Shell version in Nixpkgs, listed under a more human-friendly name. The unqualified attribute scope also contains manually packaged extensions. Note that the automatically packaged extensions are provided for convenience and are not checked or guaranteed to work. Nixpkgs now contains <link xlink:href="https://github.com/NixOS/nixpkgs/pull/118232">automatically packaged GNOME Shell extensions</link> from the <link xlink:href="https://extensions.gnome.org/">GNOME Extensions</link> portal. You can find them, filed by their UUID, under <literal>gnome38Extensions</literal> attribute for GNOME 3.38 and under <literal>gnome40Extensions</literal> for GNOME 40. Finally, the <literal>gnomeExtensions</literal> attribute contains extensions for the latest GNOME Shell version in Nixpkgs, listed under a more human-friendly name. The unqualified attribute scope also contains manually packaged extensions. Note that the automatically packaged extensions are provided for convenience and are not checked or guaranteed to work.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Erlang/OTP versions older than R21 got dropped. We also dropped the cuter package, as it was purely an example of how to build a package.
We also dropped <literal>lfe_1_2</literal> as it could not build with R21+.
Moving forward, we expect to only support 3 yearly releases of OTP.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View File

@ -73,7 +73,6 @@ let
# https://hexdocs.pm/elixir/compatibility-and-deprecations.html # https://hexdocs.pm/elixir/compatibility-and-deprecations.html
lfe = lfe_1_3; lfe = lfe_1_3;
lfe_1_2 = lib'.callLFE ../interpreters/lfe/1.2.nix { inherit erlang buildRebar3 buildHex; };
lfe_1_3 = lib'.callLFE ../interpreters/lfe/1.3.nix { inherit erlang buildRebar3 buildHex; }; lfe_1_3 = lib'.callLFE ../interpreters/lfe/1.3.nix { inherit erlang buildRebar3 buildHex; };
# Non hex packages. Examples how to build Rebar/Mix packages with and # Non hex packages. Examples how to build Rebar/Mix packages with and
@ -81,9 +80,6 @@ let
hex = callPackage ./hex { }; hex = callPackage ./hex { };
webdriver = callPackage ./webdriver { }; webdriver = callPackage ./webdriver { };
relxExe = callPackage ../tools/erlang/relx-exe { }; relxExe = callPackage ../tools/erlang/relx-exe { };
# An example of Erlang/C++ package.
cuter = callPackage ../tools/erlang/cuter { };
}; };
in in
makeExtensible packages makeExtensible packages

View File

@ -1,34 +0,0 @@
{ mkDerivation, fetchpatch }:
let
rmAndPwdPatch = fetchpatch {
url = "https://github.com/erlang/otp/commit/98b8650d22e94a5ff839170833f691294f6276d0.patch";
sha256 = "0zjs7as83prgq4d5gaw2cmnajnsprdk8cjl5kklknx0pc2b3hfg5";
};
envAndCpPatch = fetchpatch {
url = "https://github.com/erlang/otp/commit/9f9841eb7327c9fe73e84e197fd2965a97b639cf.patch";
sha256 = "00fx5wc88ki3z71z5q4xzi9h3whhjw1zblpn09w995ygn07m9qhm";
};
makeOrderingPatch = fetchpatch {
url = "https://github.com/erlang/otp/commit/2f1a37f1011ff9d129bc35a6efa0ab937a2aa0e9.patch";
sha256 = "0xfa6hzxh9d7qllkyidcgh57xrrx11w65y7s1hyg52alm06l6b9n";
};
makeParallelInstallPatch = fetchpatch {
url ="https://github.com/erlang/otp/commit/de8fe86f67591dd992bae33f7451523dab36e5bd.patch";
sha256 = "1cj9fjhdng6yllajjm3gkk04ag9bwyb3n70hrb5nk6c292v8a45c";
};
in mkDerivation {
version = "18.3.4.11";
sha256 = "190xbv77v5x2g8xkzdg9bpwa1ylkc18d03ag2a0frcwcv76x53k1";
patches = [
rmAndPwdPatch
envAndCpPatch
makeOrderingPatch
makeParallelInstallPatch
];
}

View File

@ -1,19 +0,0 @@
{ mkDerivation, fetchpatch }:
mkDerivation {
version = "19.3.6.13";
sha256 = "1zbg54p7pdr8bjyrxvi7vs41vgamqa8lsynnm6ac6845q0xwpwid";
patches = [
# macOS 10.13 crypto fix from OTP-20.1.2
(fetchpatch {
name = "darwin-crypto.patch";
url = "https://github.com/erlang/otp/commit/882c90f72ba4e298aa5a7796661c28053c540a96.patch";
sha256 = "1gggzpm8ssamz6975z7px0g8qq5i4jqw81j846ikg49c5cxvi0hi";
})
];
prePatch = ''
substituteInPlace configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
'';
}

View File

@ -1,10 +0,0 @@
{ mkDerivation }:
mkDerivation {
version = "20.3.8.26";
sha256 = "062405s59hkdkmw2dryq0qc1k03jsncj7yqisgj35x9sqpzm4w7a";
prePatch = ''
substituteInPlace configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
'';
}

View File

@ -1,46 +0,0 @@
{ lib, stdenv, autoreconfHook, which, writeText, makeWrapper, fetchFromGitHub, erlang
, z3, python }:
stdenv.mkDerivation rec {
pname = "cuter";
version = "0.1";
src = fetchFromGitHub {
owner = "aggelgian";
repo = "cuter";
rev = "v${version}";
sha256 = "1ax1pj6ji4w2mg3p0nh2lzmg3n9mgfxk4cf07pll51yrcfpfrnfv";
};
setupHook = writeText "setupHook.sh" ''
addToSearchPath ERL_LIBS "$1/lib/erlang/lib/"
'';
nativeBuildInputs = [ autoreconfHook makeWrapper which ];
buildInputs = [ python python.pkgs.setuptools z3.python erlang ];
buildFlags = [ "PWD=$(out)/lib/erlang/lib/cuter-${version}" "cuter_target" ];
configurePhase = ''
autoconf
./configure --prefix $out
'';
installPhase = ''
mkdir -p "$out/lib/erlang/lib/cuter-${version}"
mkdir -p "$out/bin"
cp -r * "$out/lib/erlang/lib/cuter-${version}"
cp cuter "$out/bin/cuter"
wrapProgram $out/bin/cuter \
--prefix PATH : "${python}/bin" \
--suffix PYTHONPATH : "${z3}/${python.sitePackages}" \
--suffix ERL_LIBS : "$out/lib/erlang/lib"
'';
meta = {
description = "A concolic testing tool for the Erlang functional programming language";
license = lib.licenses.gpl3;
homepage = "https://github.com/aggelgian/cuter";
maintainers = with lib.maintainers; [ ericbmerritt ];
platforms = with lib.platforms; unix;
};
}

View File

@ -12030,7 +12030,7 @@ in
beam_nox = callPackage ./beam-packages.nix { wxSupport = false; }; beam_nox = callPackage ./beam-packages.nix { wxSupport = false; };
inherit (beam.interpreters) inherit (beam.interpreters)
erlang erlangR24 erlangR23 erlangR22 erlangR21 erlangR20 erlangR19 erlangR18 erlang erlangR24 erlangR23 erlangR22 erlangR21
erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02 erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7
elixir_ls; elixir_ls;
@ -12043,8 +12043,6 @@ in
fetchHex beamPackages fetchHex beamPackages
relxExe; relxExe;
inherit (beam.packages.erlangR19) cuter lfe_1_2;
inherit (beam.packages.erlangR21) lfe lfe_1_3; inherit (beam.packages.erlangR21) lfe lfe_1_3;
groovy = callPackage ../development/interpreters/groovy { }; groovy = callPackage ../development/interpreters/groovy { };
@ -19870,7 +19868,7 @@ in
xwayland = callPackage ../servers/x11/xorg/xwayland.nix { }; xwayland = callPackage ../servers/x11/xorg/xwayland.nix { };
yaws = callPackage ../servers/http/yaws { yaws = callPackage ../servers/http/yaws {
erlang = erlangR18; erlang = erlangR21;
}; };
youtrack = callPackage ../servers/jetbrains/youtrack.nix { }; youtrack = callPackage ../servers/jetbrains/youtrack.nix { };

View File

@ -1,4 +1,4 @@
{ callPackage, wxGTK30, openssl_1_0_2, buildPackages, wxSupport ? true }: { callPackage, wxGTK30, buildPackages, wxSupport ? true }:
rec { rec {
lib = callPackage ../development/beam-modules/lib.nix { }; lib = callPackage ../development/beam-modules/lib.nix { };
@ -72,47 +72,6 @@ rec {
odbcSupport = true; odbcSupport = true;
}; };
# R20
erlangR20 = lib.callErlang ../development/interpreters/erlang/R20.nix {
wxGTK = wxGTK30;
autoconf = buildPackages.autoconf269;
inherit wxSupport;
};
erlangR20_odbc = erlangR20.override { odbcSupport = true; };
erlangR20_javac = erlangR20.override { javacSupport = true; };
erlangR20_odbc_javac = erlangR20.override {
javacSupport = true;
odbcSupport = true;
};
# R19
erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
wxGTK = wxGTK30;
openssl = openssl_1_0_2;
autoconf = buildPackages.autoconf269;
inherit wxSupport;
};
erlangR19_odbc = erlangR19.override { odbcSupport = true; };
erlangR19_javac = erlangR19.override { javacSupport = true; };
erlangR19_odbc_javac = erlangR19.override {
javacSupport = true;
odbcSupport = true;
};
# R18
erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
wxGTK = wxGTK30;
openssl = openssl_1_0_2;
autoconf = buildPackages.autoconf269;
inherit wxSupport;
};
erlangR18_odbc = erlangR18.override { odbcSupport = true; };
erlangR18_javac = erlangR18.override { javacSupport = true; };
erlangR18_odbc_javac = erlangR18.override {
javacSupport = true;
odbcSupport = true;
};
# Basho fork, using custom builder. # Basho fork, using custom builder.
erlang_basho_R16B02 = erlang_basho_R16B02 =
lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix { lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
@ -128,7 +87,7 @@ rec {
inherit (packages.erlang) inherit (packages.erlang)
elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_ls; elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_ls;
inherit (packages.erlang) lfe lfe_1_2 lfe_1_3; inherit (packages.erlang) lfe lfe_1_3;
}; };
# Helper function to generate package set with a specific Erlang version. # Helper function to generate package set with a specific Erlang version.
@ -145,8 +104,5 @@ rec {
erlangR23 = packagesWith interpreters.erlangR23; erlangR23 = packagesWith interpreters.erlangR23;
erlangR22 = packagesWith interpreters.erlangR22; erlangR22 = packagesWith interpreters.erlangR22;
erlangR21 = packagesWith interpreters.erlangR21; erlangR21 = packagesWith interpreters.erlangR21;
erlangR20 = packagesWith interpreters.erlangR20;
erlangR19 = packagesWith interpreters.erlangR19;
erlangR18 = packagesWith interpreters.erlangR18;
}; };
} }