From 3bd78d130a5419a6530a7d30e271569e501870fb Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sat, 27 Nov 2021 01:23:45 +0000 Subject: [PATCH] feat(native-comp): no longer require gcc homebrew formula This finally makes Emacs.app with native-comp fully self-contained, no longer requiring the GCC Homebrew formula to be installed when loading *.eln files that link against /usr/local/lib/gcc/11/libgcc_s.1.dylib. By adding the signing entitlement com.apple.security.cs.allow-dyld-environment-variables, which allows dynamic library loading to be controlled via DYLD_* environment variables. It seems the lack of this was preventing Emacs from loading the bundled libgcc_s.1.dylib file from Contents/Frameworks. Fixes #53 --- pkg/sign/entitlements.go | 1 + pkg/sign/entitlements_test.go | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/pkg/sign/entitlements.go b/pkg/sign/entitlements.go index 7941d20..169ab30 100644 --- a/pkg/sign/entitlements.go +++ b/pkg/sign/entitlements.go @@ -14,6 +14,7 @@ var DefaultEmacsEntitlements = []string{ "com.apple.security.cs.allow-jit", "com.apple.security.network.client", "com.apple.security.cs.disable-library-validation", + "com.apple.security.cs.allow-dyld-environment-variables", "com.apple.security.automation.apple-events", } diff --git a/pkg/sign/entitlements_test.go b/pkg/sign/entitlements_test.go index b0d5fae..1cb4600 100644 --- a/pkg/sign/entitlements_test.go +++ b/pkg/sign/entitlements_test.go @@ -50,6 +50,7 @@ var entitlementsTestCases = []struct { "com.apple.security.cs.allow-jit", "com.apple.security.network.client", "com.apple.security.cs.disable-library-validation", + "com.apple.security.cs.allow-dyld-environment-variables", "com.apple.security.automation.apple-events", }, //nolint:lll @@ -64,6 +65,8 @@ var entitlementsTestCases = []struct { com.apple.security.cs.disable-library-validation + com.apple.security.cs.allow-dyld-environment-variables + com.apple.security.automation.apple-events @@ -78,6 +81,7 @@ func TestDefaultEmacsEntitlements(t *testing.T) { "com.apple.security.cs.allow-jit", "com.apple.security.network.client", "com.apple.security.cs.disable-library-validation", + "com.apple.security.cs.allow-dyld-environment-variables", "com.apple.security.automation.apple-events", }, DefaultEmacsEntitlements,