aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2020-05-24 14:02:06 -0700
committerZac Medico <zmedico@gentoo.org>2020-05-24 16:43:01 -0700
commit5508bf7a6db59149bbc9ad2ff45fb0329fb83644 (patch)
tree2fe368d52e55ba428947d43dae30e5d76b8ec485 /bin
parentDefault BINPKG_COMPRESSION to zstd (bug 715108) (diff)
downloadportage-5508bf7a6db59149bbc9ad2ff45fb0329fb83644.tar.gz
portage-5508bf7a6db59149bbc9ad2ff45fb0329fb83644.tar.bz2
portage-5508bf7a6db59149bbc9ad2ff45fb0329fb83644.zip
ecompress: ignore docompress -x files in precompressed QA check (bug 721516)
Ignore files passed to docompress -x in the QA check for precompressed files. Bug: https://bugs.gentoo.org/721516 Signed-off-by: Zac Medico <zmedico@gentoo.org>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/ecompress16
1 files changed, 14 insertions, 2 deletions
diff --git a/bin/ecompress b/bin/ecompress
index dfa1a0b44..2d74ed07a 100755
--- a/bin/ecompress
+++ b/bin/ecompress
@@ -19,16 +19,28 @@ while [[ $# -gt 0 ]] ; do
shift
skip_dirs=()
+ skip_files=()
for skip; do
if [[ -d ${ED%/}/${skip#/} ]]; then
skip_dirs+=( "${ED%/}/${skip#/}" )
else
rm -f "${ED%/}/${skip#/}.ecompress" || die
+ skip_files+=("${ED%/}/${skip#/}")
fi
done
if [[ ${#skip_dirs[@]} -gt 0 ]]; then
- find "${skip_dirs[@]}" -name '*.ecompress' -delete || die
+ while read -r -d ''; do
+ skip_files+=(${REPLY#.ecompress})
+ done < <(find "${skip_dirs[@]}" -name '*.ecompress' -print0 -delete || die)
+ fi
+
+ if [[ ${#skip_files[@]} -gt 0 && -s ${T}/.ecompress_had_precompressed ]]; then
+ sed_args=()
+ for f in "${skip_files[@]}"; do
+ sed_args+=(-e "s|^${f}\$||")
+ done
+ sed "${sed_args[@]}" -e '/^$/d' -i "${T}/.ecompress_had_precompressed" || die
fi
exit 0
@@ -176,7 +188,7 @@ find "${ED}" -name '*.ecompress' -delete -print0 |
___parallel_xargs -0 "${PORTAGE_BIN_PATH}"/ecompress-file
ret=${?}
-if [[ -f ${T}/.ecompress_had_precompressed ]]; then
+if [[ -s ${T}/.ecompress_had_precompressed ]]; then
eqawarn "One or more compressed files were found in docompress-ed directories."
eqawarn "Please fix the ebuild not to install compressed files (manpages,"
eqawarn "documentation) when automatic compression is used:"