nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 beam,
4 callPackage,
5 stdenv,
6 wxSupport ? true,
7 systemd,
8 systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd,
9 __splicedPackages,
10}:
11
12let
13 self = beam;
14
15 pkgs = __splicedPackages;
16 callErlang =
17 drv: args:
18 let
19 genericBuilder =
20 versionArgs: import ../development/interpreters/erlang/generic-builder.nix (versionArgs // args);
21 in
22 pkgs.callPackage (import drv genericBuilder) { };
23in
24
25{
26 latestVersion = "erlang_28";
27
28 # Each
29 interpreters = {
30
31 erlang = self.interpreters.${self.latestVersion};
32
33 # Standard Erlang versions, using the generic builder.
34 #
35 # Three versions are supported according to https://github.com/erlang/otp/security
36
37 erlang_28 = callErlang ../development/interpreters/erlang/28.nix {
38 inherit wxSupport systemdSupport;
39 };
40
41 erlang_27 = callErlang ../development/interpreters/erlang/27.nix {
42 inherit wxSupport systemdSupport;
43 };
44
45 erlang_26 = callErlang ../development/interpreters/erlang/26.nix {
46 inherit wxSupport systemdSupport;
47 };
48
49 # Other Beam languages. These are built with `beam.interpreters.erlang`. To
50 # access for example elixir built with different version of Erlang, use
51 # `beam.packages.erlang_27.elixir`.
52 inherit (self.packages.erlang)
53 elixir
54 elixir_1_20
55 elixir_1_19
56 elixir_1_18
57 elixir_1_17
58 elixir_1_16
59 elixir_1_15
60 elixir-ls
61 lfe
62 ;
63 };
64
65 # Helper function to generate package set with a specific Erlang version.
66 packagesWith = erlang: callPackage ../development/beam-modules { inherit erlang; };
67
68 # Each field in this tuple represents all Beam packages in nixpkgs built with
69 # appropriate Erlang/OTP version.
70 packages = {
71 erlang = self.packages.${self.latestVersion};
72 erlang_28 = self.packagesWith self.interpreters.erlang_28;
73 erlang_27 = self.packagesWith self.interpreters.erlang_27;
74 erlang_26 = self.packagesWith self.interpreters.erlang_26;
75 };
76}