From 7ef2bbcf984b4131ba12db524fa32abbe3dacd6f Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Tue, 29 Sep 2026 11:28:19 -0400 Subject: [PATCH] beamPackages.mixReleaseSetupHook: restore postFixup behavior and maintain perms By moving to preFixup we exposed a bug where permissions, critically execute bit, were not maintained. This caused our logic to do the initial stripping of erlang store paths. Restore the original behavior by running these as postFixup, and also fix the bug by maintaining perms if we do indeed strip here. --- .../development/beam-modules/hooks/mix-release-setup-hook.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/beam-modules/hooks/mix-release-setup-hook.sh b/pkgs/development/beam-modules/hooks/mix-release-setup-hook.sh index 81bd142fcc70..5057a1debade 100644 --- a/pkgs/development/beam-modules/hooks/mix-release-setup-hook.sh +++ b/pkgs/development/beam-modules/hooks/mix-release-setup-hook.sh @@ -54,6 +54,7 @@ mixReleaseRemoveErlangReferences() { # use bbe to substitute strings in binary files, because using substituteInPlace # on binaries will raise errors bbe -e "s|${erlang}/lib/erlang|$out|" -o "$file".tmp "$file" + chmod --reference="$file" "$file".tmp rm -f "$file" mv "$file".tmp "$file" done @@ -75,11 +76,11 @@ mixReleaseStripDebugHook() { } if [ -z "${dontMixReleaseFixup-}" ]; then - preFixupHooks+=(mixReleaseFixupHook) + postFixupHooks+=(mixReleaseFixupHook) fi if [ -n "${removeCookie-1}" ]; then - preFixupHooks+=(mixReleaseRemoveCookieHook) + postFixupHooks+=(mixReleaseRemoveCookieHook) fi if [ -n "${stripDebug-}" ]; then