git: 6ff48ecff7f5 - main - Mk/Scripts/qa.sh: Turn off pipefail when piping to grep -q
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 19 Nov 2021 21:16:53 UTC
The branch main has been updated by jrm:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6ff48ecff7f5a179e16ee4aaf6e7affac69bb93e
commit 6ff48ecff7f5a179e16ee4aaf6e7affac69bb93e
Author: Joseph Mingrone <jrm@FreeBSD.org>
AuthorDate: 2021-07-17 15:55:13 +0000
Commit: Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2021-11-19 21:13:26 +0000
Mk/Scripts/qa.sh: Turn off pipefail when piping to grep -q
The pipeline
readelf -d "${dep_file}" | grep -q SONAME
can fail because grep -q closes the output early resulting sigpipe being
sent to readelf. Other possible solutions are to turn off pipefail for
the file or remove the -q grep argument.
Credit to ashish@ for the detective work to discover the root cause of
this.
Differential Revision: https://reviews.freebsd.org/D31211
Reviewed by: emaste
Approved by: bapt (portmgr) mat (portmgr)
---
Mk/Scripts/qa.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Mk/Scripts/qa.sh b/Mk/Scripts/qa.sh
index 13548ddb38c7..9caf01581b47 100644
--- a/Mk/Scripts/qa.sh
+++ b/Mk/Scripts/qa.sh
@@ -663,9 +663,13 @@ proxydeps() {
# Check that the .so we need has a SONAME
if [ "${dep_file_pkg}" != "${PKGORIGIN}" ]; then
+ # When grep -q finds a match it will close the pipe immediately.
+ # This may cause the test to fail when pipefail is turned on.
+ set +o pipefail
if ! readelf -d "${dep_file}" | grep -q SONAME; then
err "${file} is linked to ${dep_file} which does not have a SONAME. ${dep_file_pkg} needs to be fixed."
fi
+ set -o pipefail
fi
# If we don't already depend on it, and we don't provide it