summaryrefslogtreecommitdiffstats
path: root/pkgs/development/beam-modules
diff options
context:
space:
mode:
authorKerstin <kerstin@erictapen.name>2023-05-16 10:50:34 +0200
committerGitHub <noreply@github.com>2023-05-16 10:50:34 +0200
commit872987d040303394aef2fdba5ea5a3ee93e66e67 (patch)
tree0d2283a20f17a6f8ba0a510c0487fe008c21e5b5 /pkgs/development/beam-modules
parentc8f6370f7daf435d51d137dcbd80c7ebad1f21f2 (diff)
beam/mixRelease: default stripDebug to false due frequent runtime errors (#232107)
This flag appears to cause issues in 3 out 4 users of mixRelease in Nixpkgs, plus Mobilizon, which isn't merged yet. It might be safer to set it to fals for now, as the runtime error messages produced by it are quite cryptic.
Diffstat (limited to 'pkgs/development/beam-modules')
-rw-r--r--pkgs/development/beam-modules/elixir-ls/default.nix2
-rw-r--r--pkgs/development/beam-modules/mix-release.nix11
2 files changed, 12 insertions, 1 deletions
diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix
index 885b6eec49af..8573b4b7ca16 100644
--- a/pkgs/development/beam-modules/elixir-ls/default.nix
+++ b/pkgs/development/beam-modules/elixir-ls/default.nix
@@ -16,6 +16,8 @@ in
mixRelease {
inherit pname version src elixir;
+ stripDebug = true;
+
mixFodDeps = fetchMixDeps {
pname = "mix-deps-${pname}";
inherit src version elixir;
diff --git a/pkgs/development/beam-modules/mix-release.nix b/pkgs/development/beam-modules/mix-release.nix
index 1a926148d599..1d40da27ecba 100644
--- a/pkgs/development/beam-modules/mix-release.nix
+++ b/pkgs/development/beam-modules/mix-release.nix
@@ -9,16 +9,25 @@
, enableDebugInfo ? false
, mixEnv ? "prod"
, compileFlags ? [ ]
+
# mix fixed output derivation dependencies
, mixFodDeps ? null
+
# mix dependencies generated by mix2nix
# this assumes each dependency is built by buildMix or buildRebar3
# each dependency needs to have a setup hook to add the lib path to $ERL_LIBS
# this is how mix will find dependencies
, mixNixDeps ? { }
+
, elixir ? inputs.elixir
, hex ? inputs.hex.override { inherit elixir; }
-, stripDebug ? true
+
+# This reduces closure size, but can lead to some hard to understand runtime
+# errors, so use with caution. See e.g.
+# https://github.com/whitfin/cachex/issues/205
+# https://framagit.org/framasoft/mobilizon/-/issues/1169
+, stripDebug ? false
+
, ...
}@attrs:
let