Xavier wrote: > On Wed, Oct 21, 2009 at 10:01 PM, Cedric Staniewski <[email protected]> wrote: >> Ray Rashif wrote: >>> 2009/10/22 Xavier <[email protected]> >>> >>>> On Wed, Oct 21, 2009 at 7:38 PM, Cedric Staniewski <[email protected]> wrote: >>>>> - eval $dlcmd || return $? >>>>> + eval $dlcmd >>>>> + local ret=$? >>>>> + if [ $ret -gt 0 ]; then >>>>> + [ ! -s "$dlfile" ] && rm -f -- "$dlfile" >>>>> + return $ret >>>>> + fi >>>>> >>>> I don't understand, I cannot get it to work. >>>> It looks like when "eval $dlcmd" fails, nothing else is run in that >>>> function. >>>> >>>> I added a echo statement, but I still only see that message at the end : >>>> ==> ERROR: An unknown error has occurred. Exiting... >>>> >>> looks like there is no return to handle (fail but no reason given), so >>> makepkg traps that. >> That's odd. I patched makepkg from pacman 3.3.2 to test the patch, so I did >> not notice this. >> But this bug (or is it intended?) already exists in master. You can remove >> the "|| return $?" part from the eval line, add echos and it fails just >> before the second echo. >> >> > > The issue reminded me of the following patch : > http://projects.archlinux.org/?p=pacman.git;a=commitdiff;h=545eac145d77c66714ec88a88056ac3827c9b240 > > But it seems errexit is only enabled for build and package functions, > so this should not affect sources download.
Already found the responsible change. It's 'set -E' from the patch you mentioned. There are three possible solutions I see: - remove set -E - add some code to dlcmd to handle the error code in the subshell - try to get rid of eval so that the code is not executed in a subshell anymore
