emacs-builds
emacs-builds copied to clipboard
Curious case of macOS dictation working and not
I thought this would interest you and perhaps we can get to the bottom of this together. This has come up on both reddit and bug-gnu-emacs.
macOS dictation* works fine on Caldwell's 29.4 build but not on his 30.1 build. (*) press control twice or fn-I have mine mapped to fn.
Dictation does not work on either @jimeh 29.4 or 30.1 build. I'm trying to dig into this but I don't see the Emacs source code that would prevent dictation but there may be macOS build tool chain, or black-magic embedded application permissions issues, or something else I'm not an expert with.
I diffed the code David's 29.4 to official and they are identical. When I build from scratch in my environment, dictation does not work. Looking at it a little, it surely looks like a toolchain issue at first glance.
David's builds are here. Would you lend a hand? At least look at his 29.4 working one?
https://emacsformacosx.com/builds
-Stephane
Interesting, I'm on mobile atm, but first thought if it's not related to Emacs source code changes, is that it might be to do with macOS code signing entitlements.
Here's the code responsible for generating the entitlements config file for signing in my builds: https://github.com/jimeh/build-emacs-for-macos/blob/v0.6.57/pkg/sign/entitlements.go#L13-L19
Could be, but I checked Caldwell's two builds, the 29 that works and the 30 that doesn't. codesign reports the identical minimal entitlements. His 30 doesn't accept dictation with the same entitlements.
<dict><key>com.apple.security.cs.disable-library-validation</key><true/></dict>
I was able to hack Caldwell's build scripts to work sufficiently to create an unsigned 29.4 binary (hence no entitlements or notarizing) in a dmg image. When run from the dmg image (not using the launcher), it accepts dictation. When run from the build area src/emacs -Q, it does not. The identical build process for 30.1 does not accept dictation in either src/emacs or dmg forms. Still no idea why one works and not the other.
I've downgraded to 29.4 to keep this functionality. If there's anywhere else this issue is being tracked, please let me know.
Any idea when this will get fixed? I'm the meantime, could someone please help me understand how I can use this repo to downgrade?