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

Jan Steffens jan.steffens at gmail.com
Thu Mar 24 08:30:15 EDT 2011


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>
---
 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=$!
+
 		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