[Python-checkins] gh-100220: Fix error handling in make rules (GH-100328)

zware webhook-mailer at python.org
Fri Apr 7 14:24:07 EDT 2023


https://github.com/python/cpython/commit/a90863c993157ae65e040476cf46abd73ae54b4a
commit: a90863c993157ae65e040476cf46abd73ae54b4a
branch: main
author: Michał Górny <mgorny at gentoo.org>
committer: zware <zachary.ware at gmail.com>
date: 2023-04-07T13:23:59-05:00
summary:

gh-100220: Fix error handling in make rules (GH-100328)

Set `SHELL = /bin/sh -e` to ensure that complex recipes fail on the first error rather than incorrectly reporting success.

Co-authored-by: Zachary Ware <zach at python.org>

files:
A Misc/NEWS.d/next/Build/2022-12-18-07-24-44.gh-issue-100220.BgSV7C.rst
M Makefile.pre.in

diff --git a/Makefile.pre.in b/Makefile.pre.in
index 1c1bddcad824..fefa5d4e8147 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -59,7 +59,7 @@ DSYMUTIL_PATH=  @DSYMUTIL_PATH@
 GNULD=		@GNULD@
 
 # Shell used by make (some versions default to the login shell, which is bad)
-SHELL=		/bin/sh
+SHELL=		/bin/sh -e
 
 # Use this to make a link between python$(VERSION) and python in $(BINDIR)
 LN=		@LN@
diff --git a/Misc/NEWS.d/next/Build/2022-12-18-07-24-44.gh-issue-100220.BgSV7C.rst b/Misc/NEWS.d/next/Build/2022-12-18-07-24-44.gh-issue-100220.BgSV7C.rst
new file mode 100644
index 000000000000..7135317cd06f
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2022-12-18-07-24-44.gh-issue-100220.BgSV7C.rst
@@ -0,0 +1,4 @@
+Changed the default value of the ``SHELL`` Makefile variable from ``/bin/sh``
+to ``/bin/sh -e`` to ensure that complex recipes correctly fail after an error.
+Previously, ``make install`` could fail to install some files and yet return
+a successful result.



More information about the Python-checkins mailing list