M gnu-system.am => gnu-system.am +1 -0
@@ 407,6 407,7 @@ dist_patch_DATA = \
gnu/packages/patches/doxygen-tmake.patch \
gnu/packages/patches/duplicity-piped-password.patch \
gnu/packages/patches/duplicity-test_selection-tmp.patch \
+ gnu/packages/patches/emacs-exec-path.patch \
gnu/packages/patches/eudev-rules-directory.patch \
gnu/packages/patches/findutils-absolute-paths.patch \
gnu/packages/patches/flashrom-use-libftdi1.patch \
M gnu/packages/emacs.scm => gnu/packages/emacs.scm +2 -1
@@ 64,7 64,8 @@
version ".tar.xz"))
(sha256
(base32
- "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))))
+ "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))
+ (patches (list (search-patch "emacs-exec-path.patch")))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:phases (alist-cons-before
A gnu/packages/patches/emacs-exec-path.patch => gnu/packages/patches/emacs-exec-path.patch +18 -0
@@ 0,0 1,18 @@
+Do not capture the build-time value of $PATH in the 'emacs' executable
+since this can noticeably increase the size of the closure of Emacs
+with things like GCC being referenced.
+
+--- a/lisp/loadup.el
++++ b/lisp/loadup.el
+@@ -64,6 +64,11 @@
+ (expand-file-name "textmodes" dir)
+ (expand-file-name "vc" dir)))))
+
++;; Reset 'exec-path' so we don't capture the build-time $PATH in the
++;; 'emacs' executable.
++(setq-default exec-path nil)
++(setq exec-path nil)
++
+ (if (eq t purify-flag)
+ ;; Hash consing saved around 11% of pure space in my tests.
+ (setq purify-flag (make-hash-table :test 'equal :size 70000)))