~ruther/guix-local

1bef37ee2e0a6ba9048eb8087651c8dbd2c6c796 — Ludovic Courtès 11 years ago 8214b7f
gnu: emacs: Do not keep references to the entries of the build-time $PATH.

This reduces the number of references of the output from 54 to 31,
removing references notably to gcc, expat, glib:bin, ld-wrapper-0,
texinfo, pkg-config, make, gawk, binutils, etc.

Reported by David Thompson.

* gnu/packages/patches/emacs-exec-path.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/emacs.scm (emacs)[source]: Use it.
3 files changed, 21 insertions(+), 1 deletions(-)

M gnu-system.am
M gnu/packages/emacs.scm
A gnu/packages/patches/emacs-exec-path.patch
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)))