From 15245c4a0eb62b0e1bcbac5063391e0d57a53799 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 4 Jul 2012 08:09:21 +0200 Subject: [PATCH] lbu: do not use xargs xargs will execute the command twice if the buffer becomes long enough. This will break tar. We also use -z instead of piping via gzip while here. ref #1240 --- lbu.in | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/lbu.in b/lbu.in index 67ad578..3fa157e 100644 --- a/lbu.in +++ b/lbu.in @@ -281,10 +281,6 @@ _gen_filelist() { apk audit --backup --quiet --recursive } -_gen_filelist_0() { - _gen_filelist | tr '\n' '\0' -} - cmd_package() { local pkg="$1" local rc=0 @@ -311,7 +307,7 @@ cmd_package() { tmppkg="$tmpdir/$(basename $pkg)" - local tar_create="tar -c --no-recursion" + local tar_create="tar -c --no-recursion -T -" cd "${ROOT:-/}" # remove old package.list @@ -325,19 +321,17 @@ cmd_package() { echo "Archiving the following files:" >&2 # we dont want to mess the tar output with the # password prompt. Lets get the tar output first. - _gen_filelist_0 | xargs -0 $tar_create -v > /dev/null + _gen_filelist | $tar_create -v > /dev/null rc=$? fi if [ $rc -eq 0 ]; then if [ -z "$ENCRYPTION" ]; then - _gen_filelist_0 | xargs -0 $tar_create \ - | gzip -c >"$tmppkg" + _gen_filelist | $tar_create -z >"$tmppkg" rc=$? else set -- enc "-$ENCRYPTION" -salt [ -n "$PASSWORD" ] && set -- "$@" -pass pass:"$PASSWORD" - _gen_filelist_0 | xargs -0 $tar_create \ - | gzip -c \ + _gen_filelist | $tar_create -z \ | $OPENSSL "$@" > "$tmppkg" rc=$? fi -- 1.7.11.1