From 4cbd60698daf648979fe8ad924602e87dcdefde1 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 21 Mar 2020 23:16:08 -0400 Subject: gnu: emacs: Patch references to /bin/sh. When attempting to run ert-runner in the build side environment where /bin/sh doesn't exist as part of the emacs-elpy test suite, Emacs was throwing the error "Searching for program: No such file or directory, /bin/sh". This is because the default shell when SHELL is not set was "/bin/sh", as can be seen in callproc.c: sh = getenv ("SHELL"); Vshell_file_name = build_string (sh ? sh : "/bin/sh"); Thus, patch the occurrences of "/bin/sh" in the source files of Emacs to refer to their correct store location. * gnu/packages/emacs.scm (emacs)[phases]{patch-program-file-names}: Add phase. --- gnu/packages/emacs.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3be3ff0188..de19998a41 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -131,6 +131,16 @@ "--disable-build-details") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-program-file-names + (lambda _ + (substitute* '("src/callproc.c" + "lisp/term.el" + "lisp/htmlfontify.el" + "lisp/textmodes/artist.el" + "lisp/progmodes/sh-script.el") + (("\"/bin/sh\"") + (format "~s" (which "sh")))) + #t)) (add-before 'configure 'fix-/bin/pwd (lambda _ ;; Use `pwd', not `/bin/pwd'. -- cgit v1.2.3