git: 6af95e9e48b0 - main - Mk/Scripts/qa.sh: Bogus 'xx doesn't have a SONAME' messages are printed by stage-qa for some shared libraries

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 09 Jul 2022 14:52:36 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6af95e9e48b065580cbac3f329e73c2b83e7f02d

commit 6af95e9e48b065580cbac3f329e73c2b83e7f02d
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-07-09 14:50:47 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-07-09 14:52:33 +0000

    Mk/Scripts/qa.sh: Bogus 'xx doesn't have a SONAME' messages are printed by stage-qa for some shared libraries
    
    Reason: 'grep -q SONAME' ends before it drains the pipe, pipe fails
    when the remaining output is too long, and 'set -o pipefail'
    causes the whole command to fail when it is supposed to succeed.
    
    Remedy: Please apply the attached patch fix-SONAME.patch, or
    alternatively remove 'set -o pipefail' from qa.sh
    
    PR:             259992
    Approved by:    tcberner@ (as portmgr)
---
 Mk/Scripts/qa.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Mk/Scripts/qa.sh b/Mk/Scripts/qa.sh
index 20d1e296dd5c..dd0f3440c299 100644
--- a/Mk/Scripts/qa.sh
+++ b/Mk/Scripts/qa.sh
@@ -673,7 +673,7 @@ proxydeps() {
 					# 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
+					if ! readelf -d "${dep_file}" | grep SONAME > /dev/null; 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
@@ -724,7 +724,7 @@ sonames() {
 		[ -z "${f}" ] && continue
 		# Ignore symlinks
 		[ -f "${f}" -a ! -L "${f}" ] || continue
-		if ! readelf -d ${f} | grep -q SONAME; then
+		if ! readelf -d ${f} | grep SONAME > /dev/null; then
 			warn "${f} doesn't have a SONAME."
 			warn "pkg(8) will not register it as being provided by the port."
 			warn "If another port depend on it, pkg will not be able to know where it comes from."