[pacman-dev] [PATCH 09/10] makepkg: Clear ERR trap before trying to restore it

Allan McRae allan at archlinux.org
Mon Jun 4 11:05:11 UTC 2018


On 04/06/18 18:47, Jan Alexander Steffens wrote:
> The ERR trap is not inherited by functions unless the "errtrace" option
> is set. So in the current situation, makepkg's internal functions are
> supposed to do manual error checking. Bad returns from function calls at
> the top level will trigger the trap, though.
> 

Is there any point to the restoretrap variable then?

A

> On Mon, Jun 4, 2018 at 9:59 AM Allan McRae <allan at archlinux.org
> <mailto:allan at archlinux.org>> wrote:
> 
>     On 01/06/18 02:24, Jan Alexander Steffens (heftig) wrote:
>     > $restoretrap is empty if the trap was not set. This caused the trap
>     > handler to remain and override later exit codes.
> 
>     How is this ever unset? We set the error trap early in makepkg:
> 
>     trap 'trap_exit USR1 "$(gettext "An unknown error has occurred.
>     Exiting...")"' ERR
> 
> 
>     > ---
>     >  scripts/makepkg.sh.in <http://makepkg.sh.in> | 1 +
>     >  1 file changed, 1 insertion(+)
>     >
>     > diff --git a/scripts/makepkg.sh.in <http://makepkg.sh.in>
>     b/scripts/makepkg.sh.in <http://makepkg.sh.in>
>     > index ed0ceaec..3a3f4c30 100644
>     > --- a/scripts/makepkg.sh.in <http://makepkg.sh.in>
>     > +++ b/scripts/makepkg.sh.in <http://makepkg.sh.in>
>     > @@ -432,6 +432,7 @@ run_function_safe() {
>>     >       run_function "$1"
>>     > +     trap - ERR
>     >       eval "$restoretrap"
>     >       eval "$restoreset"
>     >       eval "$restoreshopt"
>     >
> 


More information about the pacman-dev mailing list