These are required for emacs 27 and above and the nix-community emacs
overlay are adding these via overrides.
Add these already on emacs 26 to be forwards compatible and require
less overrides in the overlay.
@the-kenny did a good job in the past and is set as maintainer in many package,
however since 2017-2018 he stopped contributing. To create less confusion
in pull requests when people try to request his feedback, I removed him as
maintainer from all packages.
NixOS 19.03 has hunspell 1.7.0 which is incompatible with emacs 26.1.
This issue has been fixed in upstream and we should drop this patch
after emacs is updated too.
Tramp checks for a running `gvfsd-fuse` process to figure out whether to enable
gvfs-based. Its `tramp-compat-process-running-p` function uses
`/proc/<pid>/comm` to check for the name of running process(es). In Nix, the
gvfsd processes are launched via wrappers and the name of `gvfsd-fuse` in
`comm` in Linux is `.gvfsd-fuse-wra` (truncated to 15 characters) which
means the process is not detected and `tramp-gvfs-enabled` ends up with
`nil` even when gvfs is available.
This patch adds `.gvfsd-fuse-wrapped` to the list of process names to check when
determining the value of `tramp-gvfs-enabled`.
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_CFNotificationCenterGetLocalCenter", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_NSDefaultRunLoopMode", referenced from:
_ns_send_appdefined in nsterm.o
-[EmacsApp run] in nsterm.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in nsimage.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in macfont.o
"_OBJC_CLASS_$_NSLocale", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSMutableSet", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table8 in nsterm.o
GCC_except_table1 in nsselect.o
ld: symbol(s) not found for architecture x86_64
This reduces the closure size of Emacs from 575 to 279 MiB. Dumping
Emacs had a chance of leaking parts of the environment (such as $PATH)
into the dumped executable. This hopefully fixes it. (It's a bit hard
to tell since the effect is not deterministic.)
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00211.html
> This is an emergency release to fix a security vulnerability in Emacs.
>
> Enriched Text mode has its support for decoding 'x-display' disabled.
> This feature allows saving 'display' properties as part of text.
> Emacs 'display' properties support evaluation of arbitrary Lisp forms
> as part of instantiating the property, so decoding 'x-display' is
> vulnerable to executing arbitrary malicious Lisp code included in the
> text (e.g., sent as part of an email message).