emacs: Clear the environment while dumping

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.)
This commit is contained in:
Eelco Dolstra 2017-09-25 19:10:21 +02:00
parent 8036ee50aa
commit cf599d3f99
No known key found for this signature in database
GPG Key ID: 8170B4726D7198DE
2 changed files with 20 additions and 1 deletions

View File

@ -0,0 +1,15 @@
Dump temacs in an empty environment to prevent -dev paths from ending
up in the dumped image.
diff -ru -x '*~' emacs-25.3/src/Makefile.in emacs-25.3-new/src/Makefile.in
--- emacs-25.3/src/Makefile.in 2017-04-14 17:02:47.000000000 +0200
+++ emacs-25.3-new/src/Makefile.in 2017-09-25 19:03:02.173861038 +0200
@@ -532,7 +532,7 @@
ifeq ($(CANNOT_DUMP),yes)
ln -f temacs$(EXEEXT) $@
else
- LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
+ env -i LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
ifneq ($(PAXCTL_dumped),)
$(PAXCTL_dumped) $@
endif

View File

@ -34,7 +34,11 @@ stdenv.mkDerivation rec {
sha256 = "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5";
};
patches = (lib.optional stdenv.isDarwin ./at-fdcwd.patch);
enableParallelBuilding = true;
patches =
[ ./clean-env.patch ]
++ lib.optional stdenv.isDarwin ./at-fdcwd.patch;
nativeBuildInputs = [ pkgconfig ]
++ lib.optionals srcRepo [ autoconf automake texinfo ]