diff --git a/app-shells/dash/dash-0.5.10.ebuild b/app-shells/dash/dash-0.5.10-r1.ebuild similarity index 95% rename from app-shells/dash/dash-0.5.10.ebuild rename to app-shells/dash/dash-0.5.10-r1.ebuild index 72821681d9b7b..97e4202bc4d1a 100644 --- a/app-shells/dash/dash-0.5.10.ebuild +++ b/app-shells/dash/dash-0.5.10-r1.ebuild @@ -27,7 +27,10 @@ DEPEND="${RDEPEND} virtual/pkgconfig libedit? ( static? ( dev-libs/libedit[static-libs] ) )" -PATCHES=( "${FILESDIR}"/${PN}-0.5.9.1-format-security.patch ) +PATCHES=( + "${FILESDIR}"/${PN}-0.5.9.1-format-security.patch + "${FILESDIR}"/${P}-subshells.patch +) src_prepare() { if [[ -n "${DEB_PATCH}" ]] ; then diff --git a/app-shells/dash/files/dash-0.5.10-subshells.patch b/app-shells/dash/files/dash-0.5.10-subshells.patch new file mode 100644 index 0000000000000..5943db11e6973 --- /dev/null +++ b/app-shells/dash/files/dash-0.5.10-subshells.patch @@ -0,0 +1,16 @@ +https://bugs.gentoo.org/655320 +https://patchwork.kernel.org/patch/10382199/ + +--- dash-0.5.10/src/jobs.c ++++ dash-0.5.10/src/jobs.c +@@ -975,8 +975,8 @@ + int st; + + TRACE(("waitforjob(%%%d) called\n", jp ? jobno(jp) : 0)); +- while ((jp && jp->state == JOBRUNNING) || gotsigchld) +- dowait(DOWAIT_BLOCK, jp); ++ while (jp ? jp->state == JOBRUNNING : gotsigchld) ++ dowait(jp ? DOWAIT_BLOCK : DOWAIT_NORMAL, jp); + if (!jp) + return exitstatus; + st = getstatus(jp);