Xavier wrote:
On Wed, Oct 21, 2009 at 10:01 PM, Cedric Staniewski <cedric@gmx.ca> wrote:
Ray Rashif wrote:
2009/10/22 Xavier <shiningxc@gmail.com>
On Wed, Oct 21, 2009 at 7:38 PM, Cedric Staniewski <cedric@gmx.ca> 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=545eac145d77c6671...
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