[pacman-dev] [PATCH] Make log redirection saner

Allan McRae allan at archlinux.org
Thu Mar 24 21:22:21 EDT 2011


On 25/03/11 05:07, Dan McGee wrote:
> On Thu, Mar 24, 2011 at 7:30 AM, Jan Steffens<jan.steffens at gmail.com>  wrote:
>> My main motivation was to remove the "sync", which can stall for
>> minutes on a busy machine (FS#23378). I also cleaned up the redirection.
>>
>> Signed-off-by: Jan Steffens<jan.steffens at gmail.com>
> Fine with the patch, but can I ask how rigorous the testing is this
> has gone through? I'd want to be relatively certain we don't regress
> here since this will land on maint.
>

I have tested this against all situations I can remember that the 
original logpipe stuff was supposed to have fixed.  Unless I am missing 
something, this is good to go with the minor change I show below. 
Version with that change is on my working-maint branch.

>> ---
>>   scripts/makepkg.sh.in |   11 +++++------
>>   1 files changed, 5 insertions(+), 6 deletions(-)
>>
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index 5742c49..0b3891e 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -794,15 +794,14 @@ run_function() {
>>                 # ensure overridden package variables survive tee with split packages
>>                 logpipe=$(mktemp -u "$startdir/logpipe.XXXXXXXX")
>>                 mkfifo "$logpipe"
>> -               exec 3>&1
>> -               tee "$BUILDLOG"<  "$logpipe"&
>> -               exec 1>"$logpipe" 2>"$logpipe"
>> +               tee "$BUILDLOG"<  "$logpipe"&  teepid=$!

put these on separate lines and make teepid local.

tee "$BUILDLOG" < "$logpipe" &
local teepid=$!

>>                 restoretrap=$(trap -p ERR)
>>                 trap 'error_function $pkgfunc' ERR
>> -               $pkgfunc 2>&1
>> +               $pkgfunc&>"$logpipe"
>>                 eval $restoretrap
>> -               sync
>> -               exec 1>&3 2>&3 3>&-
>> +
>> +               wait $teepid
>>                 rm "$logpipe"
>>         else
>>                 restoretrap=$(trap -p ERR)
>> --
>> 1.7.4.1
>>
>>
>>
>



More information about the pacman-dev mailing list