The st variable is set at the top of this shell script, and then here is a pipeline where it tries to update it in the subshell. But since setting variables in a subshell doesn't propagate back up, it doesn't actually work. Have the final subshell in the pipeline manage its own exit status and exit with that so that the final status of the pipeline is the right value.
* lib/am/python.am: Fix final subshell exit status passing. --- lib/am/python.am | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/am/python.am b/lib/am/python.am index 8c302090aae8..e5e9dfe3bd42 100644 --- a/lib/am/python.am +++ b/lib/am/python.am @@ -118,9 +118,11 @@ uninstall-%DIR%PYTHON: ## into account. Avoid exceeding the command-line length limit. dir='$(DESTDIR)$(%NDIR%dir)'; \ echo "$$py_files" | $(am__pep3147_tweak) | $(am__base_list) | \ - while read files; do \ - $(am__uninstall_files_from_dir) || st=$$?; \ - done || exit $$?; \ + ( sst=0; \ + while read files; do \ + $(am__uninstall_files_from_dir) || sst=$$?; \ + done; \ + exit $$sst ) || st=$$?; \ exit $$st endif %?INSTALL% -- 2.34.1