summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-shells')
-rw-r--r--app-shells/dash/Manifest1
-rw-r--r--app-shells/dash/dash-0.5.10.1.ebuild (renamed from app-shells/dash/dash-0.5.10-r2.ebuild)1
-rw-r--r--app-shells/dash/files/dash-0.5.10-jobs.patch88
3 files changed, 1 insertions, 89 deletions
diff --git a/app-shells/dash/Manifest b/app-shells/dash/Manifest
index ee7a784a8a9a..c6b2df6dc225 100644
--- a/app-shells/dash/Manifest
+++ b/app-shells/dash/Manifest
@@ -1,2 +1,3 @@
+DIST dash-0.5.10.1.tar.gz 225253 BLAKE2B 55dbdca7f01d19656e002d6e210bcae920619e2e88d4d174a3e08cbbc40bf867ece3f24ce9690ec64f95b1f0995ab35cabc08381ac031a33b55282cec0b09e73 SHA512 7ca3bbcf8bac84d359cde710a9ab393f05cf8522e969a2c110d2e71620e53f349387128045e68738dc621afe0b48f43ae3d32851187f2ae02d49b3e2575ffa6b
DIST dash-0.5.10.tar.gz 225242 BLAKE2B c21b04aea58599c4a487ec7325bc1ffac2fb4b9be911e07cb0da3fd62eb15b5eb8d30857fad6cbc01fa36a948ac5e5e226566b42d4f9507f709e4d6636cf84f6 SHA512 47383284faf2cbdf65471b72196bdcea46efb8b01041fdc7685a811ae125ba77e5af653939255bda20bd3d56a13f838d85e0003549dcede6b75a37625816cb30
DIST dash-0.5.9.1.tar.gz 225217 BLAKE2B a80aa00ea5418d00b03c9ded21ef5c3a28d599059d1ac2f20082867b71ece6afac2f0bce9bc09946450c7618ad2c7f95df63b3d519a7f56552a291d09e44a71b SHA512 d56a043b8fab4693d3f70cceb531c37174e7ded4acd5549e53048d7ce29125ff21d7e758f51a4a73e06250d051e246467039989275838c19a2579edea3f72b7d
diff --git a/app-shells/dash/dash-0.5.10-r2.ebuild b/app-shells/dash/dash-0.5.10.1.ebuild
index b268b07aea01..d51383e2eb19 100644
--- a/app-shells/dash/dash-0.5.10-r2.ebuild
+++ b/app-shells/dash/dash-0.5.10.1.ebuild
@@ -29,7 +29,6 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}"/${PN}-0.5.9.1-format-security.patch
- "${FILESDIR}"/${P}-jobs.patch
)
src_prepare() {
diff --git a/app-shells/dash/files/dash-0.5.10-jobs.patch b/app-shells/dash/files/dash-0.5.10-jobs.patch
deleted file mode 100644
index a4c83d88dcb8..000000000000
--- a/app-shells/dash/files/dash-0.5.10-jobs.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 9e5cd41d9605e4caaac3aacdc0482f6ee220a298 Mon Sep 17 00:00:00 2001
-From: Herbert Xu <herbert@gondor.apana.org.au>
-Date: Mon, 7 May 2018 00:40:34 +0800
-Subject: jobs - Do not block when waiting on SIGCHLD
-
-Because of the nature of SIGCHLD, the process may have already been
-waited on and therefore we must be prepared for the case that wait
-may block. So ensure that it doesn't by using WNOHANG.
-
-Furthermore, multiple jobs may have exited when gotsigchld is set.
-Therefore we need to wait until there are no zombies left.
-
-Lastly, waitforjob needs to be called with interrupts off and
-the original patch broke that.
-
-Fixes: 03876c0743a5 ("eval: Reap zombies after built-in...")
-Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
----
- src/eval.c | 12 ++++--------
- src/jobs.c | 13 ++++++++++---
- 2 files changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/src/eval.c b/src/eval.c
-index a27d657..39c4e41 100644
---- a/src/eval.c
-+++ b/src/eval.c
-@@ -859,10 +859,8 @@ bail:
- if (!(flags & EV_EXIT) || have_traps()) {
- INTOFF;
- jp = makejob(cmd, 1);
-- if (forkshell(jp, cmd, FORK_FG) != 0) {
-- INTON;
-+ if (forkshell(jp, cmd, FORK_FG) != 0)
- break;
-- }
- FORCEINTON;
- }
- listsetvar(varlist.list, VEXPORT|VSTACK);
-@@ -875,11 +873,8 @@ bail:
- if (execcmd && argc > 1)
- listsetvar(varlist.list, VEXPORT);
- }
-- if (evalbltin(cmdentry.u.cmd, argc, argv, flags)) {
-- if (exception == EXERROR && spclbltin <= 0) {
-- FORCEINTON;
-- break;
-- }
-+ if (evalbltin(cmdentry.u.cmd, argc, argv, flags) &&
-+ !(exception == EXERROR && spclbltin <= 0)) {
- raise:
- longjmp(handler->loc, 1);
- }
-@@ -892,6 +887,7 @@ raise:
- }
-
- status = waitforjob(jp);
-+ FORCEINTON;
-
- out:
- if (cmd->ncmd.redirect)
-diff --git a/src/jobs.c b/src/jobs.c
-index 1a97c54..606d603 100644
---- a/src/jobs.c
-+++ b/src/jobs.c
-@@ -975,10 +975,17 @@ waitforjob(struct job *jp)
- int st;
-
- TRACE(("waitforjob(%%%d) called\n", jp ? jobno(jp) : 0));
-- while ((jp && jp->state == JOBRUNNING) || gotsigchld)
-- dowait(DOWAIT_BLOCK, jp);
-- if (!jp)
-+ if (!jp) {
-+ int pid = gotsigchld;
-+
-+ while (pid > 0)
-+ pid = dowait(DOWAIT_NORMAL, NULL);
-+
- return exitstatus;
-+ }
-+
-+ while (jp->state == JOBRUNNING)
-+ dowait(DOWAIT_BLOCK, jp);
- st = getstatus(jp);
- #if JOBS
- if (jp->jobctl) {
---
-cgit v1.1
-