From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-004 Signed-off-by: Pascal de Bruijn BASH PATCH REPORT ================= Bash-Release: 5.0 Patch-ID: bash50-004 Bug-Reported-by: Daniel Kahn Gillmor Bug-Reference-ID: <87lg0g8aiw.fsf@fifthhorseman.net> Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-04/msg00076.html Bug-Description: In bash-5.0, the `wait' builtin without arguments waits for all children of the shell. This includes children it `inherited' at shell invocation time. This patch modifies the behavior to not wait for these inherited children, some of which might be long-lived. Patch (apply with `patch -p0'): *** ../bash-5.0-patched/jobs.c 2018-12-06 11:44:34.000000000 -0500 --- b/jobs.c 2019-04-12 15:15:10.000000000 -0400 *************** *** 2489,2496 **** wait_procsubs (); reap_procsubs (); ! #if 1 /* We don't want to wait indefinitely if we have stopped children. */ - /* XXX - should add a loop that goes through the list of process - substitutions and waits for each proc in turn before this code. */ if (any_stopped == 0) { --- 2490,2495 ---- wait_procsubs (); reap_procsubs (); ! #if 0 /* We don't want to wait indefinitely if we have stopped children. */ if (any_stopped == 0) { *** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- b/patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 3 #endif /* _PATCHLEVEL_H_ */ --- 26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 4 #endif /* _PATCHLEVEL_H_ */