Accepting request 199721 from shells
- Make vmbalance awk script more clear for small vm page sizes - Extend patch ksh93-fdstatus.dif to solve bnc#835885 - Modify patch ksh93-builtin.dif to reduce timeouts of pty utility OBS-URL: https://build.opensuse.org/request/show/199721 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ksh?expand=0&rev=95
This commit is contained in:
commit
9a366d155e
11
ksh.changes
11
ksh.changes
@ -1,3 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 19 08:43:37 UTC 2013 - werner@suse.de
|
||||||
|
|
||||||
|
- Make vmbalance awk script more clear for small vm page sizes
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 18 11:09:34 UTC 2013 - werner@suse.de
|
||||||
|
|
||||||
|
- Extend patch ksh93-fdstatus.dif to solve bnc#835885
|
||||||
|
- Modify patch ksh93-builtin.dif to reduce timeouts of pty utility
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Aug 13 09:59:45 UTC 2013 - dmueller@suse.com
|
Tue Aug 13 09:59:45 UTC 2013 - dmueller@suse.com
|
||||||
|
|
||||||
|
7
ksh.spec
7
ksh.spec
@ -245,6 +245,9 @@ fi
|
|||||||
test -s $fd -a ! -c $fd && break || true
|
test -s $fd -a ! -c $fd && break || true
|
||||||
done
|
done
|
||||||
set -- $(readlink $fd)
|
set -- $(readlink $fd)
|
||||||
|
grep pts /proc/mounts
|
||||||
|
ls -ld /dev/ptmx
|
||||||
|
ls -ld /dev/pts
|
||||||
exec ./sigexec $SHELL ${1+"$@"}
|
exec ./sigexec $SHELL ${1+"$@"}
|
||||||
fi
|
fi
|
||||||
IGNORED=0x$(ps --no-headers -o ignored $$)
|
IGNORED=0x$(ps --no-headers -o ignored $$)
|
||||||
@ -530,7 +533,7 @@ fi
|
|||||||
typeset -i failed=0
|
typeset -i failed=0
|
||||||
ln -sf ${root}/lib ${test}/../
|
ln -sf ${root}/lib ${test}/../
|
||||||
sed -ri '/^L[[:blank:]]/a \t 8000' pty.sh
|
sed -ri '/^L[[:blank:]]/a \t 8000' pty.sh
|
||||||
sed -ri 's/(SECONDS[[:blank:]]*>[[:blank:]]*)([[:digit:]]+)/\18/p' signal.sh
|
sed -ri 's/(SECONDS[[:blank:]]*>[[:blank:]]*)([[:digit:]]+)/\18/' signal.sh
|
||||||
unset ${!LESS*}
|
unset ${!LESS*}
|
||||||
${SHELL} shtests
|
${SHELL} shtests
|
||||||
exec 3> ${TMPDIR:-/tmp}/log
|
exec 3> ${TMPDIR:-/tmp}/log
|
||||||
@ -662,7 +665,7 @@ fi
|
|||||||
ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/ksh.1ast.gz
|
ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/ksh.1ast.gz
|
||||||
ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz
|
ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz
|
||||||
%else
|
%else
|
||||||
install -m 0644 man/man1/sh.1ast %{buildroot}%{_mandir}/man1/ksh.1ast
|
install -m 0644 man/man1/sh.1 %{buildroot}%{_mandir}/man1/ksh.1ast
|
||||||
ln -sf ../man1/ksh.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz
|
ln -sf ../man1/ksh.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz
|
||||||
%endif
|
%endif
|
||||||
install -m 0644 man/man1/shcomp.1ast %{buildroot}%{_mandir}/man1/shcomp.1ast
|
install -m 0644 man/man1/shcomp.1ast %{buildroot}%{_mandir}/man1/shcomp.1ast
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- src/cmd/builtin/pty.c
|
--- src/cmd/builtin/pty.c
|
||||||
+++ src/cmd/builtin/pty.c 2013-02-01 15:59:52.697952156 +0000
|
+++ src/cmd/builtin/pty.c 2013-02-01 15:59:52.697952156 +0000
|
||||||
@@ -216,6 +216,12 @@ mkpty(int* master, int* slave)
|
@@ -216,13 +216,19 @@ mkpty(int* master, int* slave)
|
||||||
#if !_lib_openpty
|
#if !_lib_openpty
|
||||||
char* sname;
|
char* sname;
|
||||||
#endif
|
#endif
|
||||||
@ -13,6 +13,24 @@
|
|||||||
/*
|
/*
|
||||||
* some systems hang hard during the handshake
|
* some systems hang hard during the handshake
|
||||||
* if you know why then please let us know
|
* if you know why then please let us know
|
||||||
|
*/
|
||||||
|
|
||||||
|
- alarm(4);
|
||||||
|
- if (tcgetattr(STDERR_FILENO, &tty) >= 0)
|
||||||
|
+ alarm(6);
|
||||||
|
+ if (tcgetattr(sffileno(sfstderr), &tty) >= 0)
|
||||||
|
ttyp = &tty;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@@ -230,7 +236,7 @@ mkpty(int* master, int* slave)
|
||||||
|
error(-1, "unable to get standard error terminal attributes");
|
||||||
|
}
|
||||||
|
#ifdef TIOCGWINSZ
|
||||||
|
- if (ioctl(STDERR_FILENO, TIOCGWINSZ, &win) >= 0)
|
||||||
|
+ if (ioctl(sffileno(sfstderr), TIOCGWINSZ, &win) >= 0)
|
||||||
|
winp = &win;
|
||||||
|
else
|
||||||
|
{
|
||||||
@@ -238,6 +244,12 @@ mkpty(int* master, int* slave)
|
@@ -238,6 +244,12 @@ mkpty(int* master, int* slave)
|
||||||
error(-1, "unable to get standard error window size");
|
error(-1, "unable to get standard error window size");
|
||||||
}
|
}
|
||||||
@ -36,6 +54,87 @@
|
|||||||
alarm(0);
|
alarm(0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -317,9 +332,13 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
|
||||||
|
char* s;
|
||||||
|
Sfio_t* ip;
|
||||||
|
Sfio_t* sps[2];
|
||||||
|
+ struct stat dst;
|
||||||
|
+ struct stat fst;
|
||||||
|
|
||||||
|
ip = sfstdin;
|
||||||
|
- for (;;)
|
||||||
|
+ if (!fstat(sffileno(ip), &dst) && !stat("/dev/null", &fst) && dst.st_dev == fst.st_dev && dst.st_ino == fst.st_ino)
|
||||||
|
+ ip = 0;
|
||||||
|
+ do
|
||||||
|
{
|
||||||
|
i = 0;
|
||||||
|
t = timeout;
|
||||||
|
@@ -336,39 +355,39 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
|
||||||
|
{
|
||||||
|
if (n < 0)
|
||||||
|
error(ERROR_SYSTEM|2, "poll failed");
|
||||||
|
- if (t < 0)
|
||||||
|
- break;
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
- else
|
||||||
|
- for (i = 0; i < n; i++)
|
||||||
|
+ for (i = t = 0; i < n; i++)
|
||||||
|
+ {
|
||||||
|
+ if (!(sfvalue(sps[i]) & SF_READ))
|
||||||
|
+ /*skip*/;
|
||||||
|
+ else if (sps[i] == mp)
|
||||||
|
{
|
||||||
|
- if (!(sfvalue(sps[i]) & SF_READ))
|
||||||
|
- /*skip*/;
|
||||||
|
- else if (sps[i] == mp)
|
||||||
|
+ t++;
|
||||||
|
+ if (!(s = (char*)sfreserve(mp, SF_UNBOUND, -1)))
|
||||||
|
{
|
||||||
|
- if (!(s = (char*)sfreserve(mp, SF_UNBOUND, -1)))
|
||||||
|
- {
|
||||||
|
- sfclose(mp);
|
||||||
|
- mp = 0;
|
||||||
|
- }
|
||||||
|
- else if ((r = sfvalue(mp)) > 0 && (sfwrite(sfstdout, s, r) != r || sfsync(sfstdout)))
|
||||||
|
- {
|
||||||
|
- error(ERROR_SYSTEM|2, "output write failed");
|
||||||
|
- goto done;
|
||||||
|
- }
|
||||||
|
+ sfclose(mp);
|
||||||
|
+ mp = 0;
|
||||||
|
}
|
||||||
|
- else
|
||||||
|
+ else if ((r = sfvalue(mp)) > 0 && (sfwrite(sfstdout, s, r) != r || sfsync(sfstdout)))
|
||||||
|
{
|
||||||
|
- if (!(s = sfgetr(ip, '\n', 1)))
|
||||||
|
- ip = 0;
|
||||||
|
- else if (sfputr(mp, s, '\r') < 0 || sfsync(mp))
|
||||||
|
- {
|
||||||
|
- error(ERROR_SYSTEM|2, "write failed");
|
||||||
|
- goto done;
|
||||||
|
- }
|
||||||
|
+ error(ERROR_SYSTEM|2, "output write failed");
|
||||||
|
+ goto done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ t++;
|
||||||
|
+ if (!(s = sfgetr(ip, '\n', 1)))
|
||||||
|
+ ip = 0;
|
||||||
|
+ else if (sfputr(mp, s, '\r') < 0 || sfsync(mp))
|
||||||
|
+ {
|
||||||
|
+ error(ERROR_SYSTEM|2, "write failed");
|
||||||
|
+ goto done;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ } while (t);
|
||||||
|
done:
|
||||||
|
if (mp)
|
||||||
|
sfclose(mp);
|
||||||
--- src/cmd/builtin/what.c
|
--- src/cmd/builtin/what.c
|
||||||
+++ src/cmd/builtin/what.c 2012-02-13 11:02:18.645933606 +0000
|
+++ src/cmd/builtin/what.c 2012-02-13 11:02:18.645933606 +0000
|
||||||
@@ -68,7 +68,7 @@ static struct
|
@@ -68,7 +68,7 @@ static struct
|
||||||
|
1845
ksh93-fdstatus.dif
1845
ksh93-fdstatus.dif
File diff suppressed because it is too large
Load Diff
@ -318,6 +318,15 @@
|
|||||||
fi
|
fi
|
||||||
")
|
")
|
||||||
got=$*
|
got=$*
|
||||||
|
@@ -336,7 +336,7 @@ then LC_ALL=en_US.UTF-8
|
||||||
|
[[ $(print -r -- "$x") == $'hello\u[20ac]\xee world' ]] || err_exit '%q with unicode and non-unicode not working'
|
||||||
|
if [[ $(whence od) ]]
|
||||||
|
then got='68 65 6c 6c 6f e2 82 ac ee 20 77 6f 72 6c 64 0a'
|
||||||
|
- [[ $(print -r -- "$x" | od -An -tx1) == "$got" ]] || err_exit "incorrect string from printf %q"
|
||||||
|
+ [[ $(print -r -- "$x" | od -An -tx1) =~ "$got" ]] || err_exit "incorrect string from printf %q"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
--- src/cmd/ksh93/tests/options.sh
|
--- src/cmd/ksh93/tests/options.sh
|
||||||
+++ src/cmd/ksh93/tests/options.sh 2012-01-16 16:50:59.000000000 +0000
|
+++ src/cmd/ksh93/tests/options.sh 2012-01-16 16:50:59.000000000 +0000
|
||||||
@@ -510,7 +510,7 @@ z=$($SHELL 2>&1 -uc 'print ${X2345678901
|
@@ -510,7 +510,7 @@ z=$($SHELL 2>&1 -uc 'print ${X2345678901
|
||||||
|
@ -14,6 +14,8 @@ BEGIN {
|
|||||||
sum=0
|
sum=0
|
||||||
allocs=0
|
allocs=0
|
||||||
frees=0
|
frees=0
|
||||||
|
left=0
|
||||||
|
peak=0
|
||||||
}
|
}
|
||||||
/^execve/ {
|
/^execve/ {
|
||||||
if (FNR == 1) {
|
if (FNR == 1) {
|
||||||
@ -29,6 +31,8 @@ BEGIN {
|
|||||||
} else {
|
} else {
|
||||||
sum+=$4
|
sum+=$4
|
||||||
allocs++
|
allocs++
|
||||||
|
if (peak < sum)
|
||||||
|
peak = sum
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/^munmap(2|64)?\(/ {
|
/^munmap(2|64)?\(/ {
|
||||||
@ -38,5 +42,6 @@ BEGIN {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
END {
|
END {
|
||||||
print script ": " sum " bytes with " allocs " chunks allocated and " frees " chunks freed" > "/dev/fd/3"
|
left=allocs-frees
|
||||||
|
print script ": " sum " bytes summed up, " peak " peak value, " left " chunks left over, " allocs " allocated, and " frees " freed" > "/dev/fd/3"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user