about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYt <raphael@megzari.com>2024-04-14 12:01:36 +0000
committerGitHub <noreply@github.com>2024-04-14 12:01:36 +0000
commit038cdc993aa71cebbadd30563ca3aa3bc9094e6f (patch)
tree3bf46d384bdcb701218a76f6692f2cf3390c1469
parent2a963398e3622a244b490b03c30aabdb2a7a1ee1 (diff)
parent92b656e0446a2622d35ebde15962088b925903c7 (diff)
Merge pull request #303750 from chiroptical/add-erlang_27-rc2
erlang_27: init at 27-rc2
-rw-r--r--pkgs/development/interpreters/erlang/27-rc2.nix6
-rw-r--r--pkgs/development/interpreters/erlang/generic-builder.nix16
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/beam-packages.nix9
4 files changed, 32 insertions, 1 deletions
diff --git a/pkgs/development/interpreters/erlang/27-rc2.nix b/pkgs/development/interpreters/erlang/27-rc2.nix
new file mode 100644
index 0000000000000..a9b6fa05e5186
--- /dev/null
+++ b/pkgs/development/interpreters/erlang/27-rc2.nix
@@ -0,0 +1,6 @@
+{ mkDerivation }:
+
+mkDerivation {
+  version = "27.0-rc2";
+  sha256 = "sha256-o+uqQMlrh7wJQbiecMnn3/tv6nqSJh7unOj0A95mMb0=";
+}
diff --git a/pkgs/development/interpreters/erlang/generic-builder.nix b/pkgs/development/interpreters/erlang/generic-builder.nix
index 6e9373b4a5636..32d1466f326e4 100644
--- a/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -18,9 +18,11 @@
 , libGLU ? null
 , wxGTK ? null
 , xorg ? null
+, exdoc ? null
 , parallelBuild ? false
 , systemd
 , wxSupport ? true
+, exdocSupport ? false
 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd # systemd support in epmd
   # updateScript deps
 , writeScript
@@ -77,6 +79,7 @@ else libGL != null && libGLU != null && wxGTK != null && xorg != null);
 
 assert odbcSupport -> unixODBC != null;
 assert javacSupport -> openjdk11 != null;
+assert exdocSupport -> exdoc != null;
 
 let
   inherit (lib) optional optionals optionalAttrs optionalString;
@@ -114,8 +117,21 @@ stdenv.mkDerivation ({
     ${postPatch}
   '';
 
+  # For OTP 27+ we need ex_doc to build the documentation
+  # When exdocSupport is enabled, grab the raw ex_doc executable from the exdoc
+  # derivation. Next, patch the first line to use the escript that will be
+  # built during the build phase of this derivation. Finally, building the
+  # documentation requires the erlang-logo.png asset.
   preConfigure = ''
     ./otp_build autoconf
+  '' + optionalString exdocSupport ''
+    mkdir -p $out/bin
+    cp ${exdoc}/bin/.ex_doc-wrapped $out/bin/ex_doc
+    sed -i "1 s:^.*$:#!$out/bin/escript:" $out/bin/ex_doc
+    export EX_DOC=$out/bin/ex_doc
+
+    mkdir -p $out/lib/erlang/system/doc/assets
+    cp $src/system/doc/assets/erlang-logo.png $out/lib/erlang/system/doc/assets
   '';
 
   configureFlags = [ "--with-ssl=${lib.getOutput "out" opensslPackage}" ]
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 89ebe1cc405db..8cc63ee912fae 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17364,7 +17364,7 @@ with pkgs;
   };
 
   inherit (beam.interpreters)
-    erlang erlang_26 erlang_25 erlang_24
+    erlang erlang_27-rc2 erlang_26 erlang_25 erlang_24
     erlang_odbc erlang_javac erlang_odbc_javac
     elixir elixir_1_16 elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10
     elixir-ls;
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index 06015d614e208..8dbc9e1c07087 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -41,6 +41,15 @@ in
 
     # Standard Erlang versions, using the generic builder.
 
+    erlang_27-rc2 = self.beamLib.callErlang ../development/interpreters/erlang/27-rc2.nix {
+      wxGTK = wxGTK32;
+      parallelBuild = true;
+      autoconf = buildPackages.autoconf269;
+      exdocSupport = true;
+      exdoc = self.packages.erlang_26.ex_doc;
+      inherit wxSupport systemdSupport;
+    };
+
     erlang_26 = self.beamLib.callErlang ../development/interpreters/erlang/26.nix {
       wxGTK = wxGTK32;
       parallelBuild = true;