bug#81526: 30.2; Emacs.app lacks class-based TCC usage-description keys, crashing subprocesses that touch privacy-gated frameworks
Eli Zaretskii <[email protected]> Sat, 01 Aug 2026 09:33:04 +0300
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <[email protected]> |
> Cc: [email protected], Boris <[email protected]>, > Alan Third <[email protected]>, JD Smith <[email protected]> > From: Stéphane Marks <[email protected]> > Date: Fri, 31 Jul 2026 19:55:44 +0200 > > > ## Suggested fix > > > > Add the missing class-based usage-description keys to `nextstep/templates/ > > Info.plist.in`, alongside > > the file-access keys already there. `NSAppleEventsUsageDescription` and > > the `*Folder*` / > > `*RemovableVolumes*` keys are already present and must not be duplicated; > > on master > > `NSSpeechRecognitionUsageDescription` is present too. Minimum useful set > > to add: > > > > - `NSPhotoLibraryUsageDescription`, `NSPhotoLibraryAddUsageDescription` > > - `NSCameraUsageDescription` > > - `NSMicrophoneUsageDescription` > > - `NSContactsUsageDescription` > > - `NSCalendarsUsageDescription`, `NSCalendarsFullAccessUsageDescription` > > - `NSRemindersUsageDescription`, `NSRemindersFullAccessUsageDescription` > > - `NSLocationUsageDescription`, `NSLocationWhenInUseUsageDescription` > > - `NSLocalNetworkUsageDescription` > > - `NSBluetoothAlwaysUsageDescription` > > - `NSSystemAdministrationUsageDescription` > > - `NSSpeechRecognitionUsageDescription` — **on the emacs-30 branch only**; > > master already has it > > > > That master already added `NSSpeechRecognitionUsageDescription` to this > > same template suggests the > > general approach is already considered acceptable upstream; this report > > just asks for the rest of the > > class-based services to be covered too. > > > > The `*FullAccess*` variants are the macOS 14+ replacements for the older > > Calendars/Reminders keys; > > declaring both keeps older systems working. Shouldn't these changes be left to the end user of Emacs instead? Why should the upstream project second-guess what kind of security will the Emacs process have when run on the end-user's platform?