estack.eclass: Properly restore shopt options.
authorUlrich Müller <ulm@gentoo.org>
Sat, 23 Nov 2019 10:18:18 +0000 (11:18 +0100)
committerUlrich Müller <ulm@gentoo.org>
Tue, 26 Nov 2019 19:23:19 +0000 (20:23 +0100)
commitd2cb9490dbee48a32f196d1aa80d7356a99d9fd8
treefcb073c0e19c78a4a1f0fc67472a9e16c33c19c4
parent6d5c34e98f909f136a4fe410571c4cd3f817cc77
estack.eclass: Properly restore shopt options.

Calling "eshopts_push; eshopts_pop" makes Portage report a QA issue:
* QA Notice: Global shell options changed and were not restored while calling 'src_prepare'

This is caused by some side effect in bash, by which disabling
the "posix" option (even if it was already disabled before) in a
non-interactive shell also disables the "expand_aliases" option.
Work around the problem by always saving and restoring both "set -o"
and "shopt" option sets.

Also fix "estack_push -s" which should not execute shopt when called
without further parameters.

Closes: https://bugs.gentoo.org/662586
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
eclass/estack.eclass