Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Hadrien Lacour <hadrien.lacour@××××××.net>
Subject: [gentoo-portage-dev] [PATCH] revdep-rebuild.sh: use awk instead of gawk
Date: Sat, 31 Mar 2018 20:48:27
Message-Id: 20180331204606.13909-1-zmedico@gentoo.org
1 From: Hadrien Lacour <hadrien.lacour@××××××.net>
2
3 ---
4 bin/revdep-rebuild.sh | 28 +++++++++++++++++++---------
5 1 file changed, 19 insertions(+), 9 deletions(-)
6
7 diff --git a/bin/revdep-rebuild.sh b/bin/revdep-rebuild.sh
8 index 633701e..5fecf97 100755
9 --- a/bin/revdep-rebuild.sh
10 +++ b/bin/revdep-rebuild.sh
11 @@ -235,9 +235,19 @@ countdown() {
12 # Replace whitespace with linebreaks, normalize repeated '/' chars, and sort -u
13 # (If any libs have whitespace in their filenames, someone needs punishment.)
14 clean_var() {
15 - gawk 'BEGIN {RS="[[:space:]]"}
16 - /-\*/ {exit}
17 - /[^[:space:]]/ {gsub(/\/\/+/, "/"); print}' | sort -u
18 + awk '
19 + BEGIN {FS = "[[:space:]]"}
20 +
21 + {
22 + for(i = 1; i <= NF; ++i) {
23 + if($i ~ /-\*/)
24 + exit
25 + else if($i){
26 + gsub(/\/\/+/, "/", $i)
27 + print $i
28 + }
29 + }
30 + }' | sort -u
31 }
32 ##
33 # Exit and optionally output to sterr
34 @@ -805,8 +815,8 @@ main_checks() {
35 # Look for symbol not defined errors
36 if grep -vF "${LD_LIBRARY_MASK:=$'\a'}" <<< "$ldd_output" |
37 grep -q -E 'symbol .* not defined'; then
38 - message=$(gawk '/symbol .* not defined/ {NF--; print $0}' <<< "$ldd_output")
39 - broken_lib=$(gawk '/symbol .* not defined/ {print $NF}' <<< "$ldd_output" | \
40 + message=$(awk '/symbol .* not defined/ {ORS = FS; for(i = 1; i < NF; ++i) print $i; printf "\n"}' <<< "$ldd_output")
41 + broken_lib=$(awk '/symbol .* not defined/ {print $NF}' <<< "$ldd_output" | \
42 sed 's/[()]//g')
43 echo "obj $broken_lib" >> "$BROKEN_FILE"
44 echo_v " broken $broken_lib ($message)"
45 @@ -820,7 +830,7 @@ main_checks() {
46 *)
47 if grep -vF "${LD_LIBRARY_MASK:=$'\a'}" <<< "$ldd_output" |
48 grep -q -F 'undefined symbol:'; then
49 - message=$(gawk '/undefined symbol:/ {print $3}' <<< "$ldd_output")
50 + message=$(awk '/undefined symbol:/ {print $3}' <<< "$ldd_output")
51 message="${message//$'\n'/ }"
52 echo "obj $target_file" >> "$BROKEN_FILE"
53 echo_v " broken $target_file (undefined symbols(s): $message)"
54 @@ -835,7 +845,7 @@ main_checks() {
55 la_broken=""
56 la_lib=""
57 for depend in $(
58 - gawk -F"[=']" '/^dependency_libs/{
59 + awk -F"[=']" '/^dependency_libs/{
60 print $3
61 }' "$target_file"
62 ); do
63 @@ -876,7 +886,7 @@ main_checks() {
64 done < <(
65 # Regexify LD_LIBRARY_MASK. Exclude it from the search.
66 LD_LIBRARY_MASK="${LD_LIBRARY_MASK//$'\n'/|}"
67 - gawk -v ldmask="(${LD_LIBRARY_MASK//./\\\\.})" '
68 + awk -v ldmask="(${LD_LIBRARY_MASK//./\\\\.})" '
69 /no version information available/ && $0 !~ ldmask {
70 gsub(/[()]/, "", $NF)
71 if (seen[$NF]++) next
72 @@ -1068,7 +1078,7 @@ show_unowned_files() {
73 ewarn "The broken files are:"
74 while read filename junk; do
75 [[ $junk = *none* ]] && ewarn " $filename"
76 - done < "$OWNERS_FILE" | gawk '!s[$0]++' # (omit dupes)
77 + done < "$OWNERS_FILE" | awk '!s[$0]++' # (omit dupes)
78 fi
79 }
80
81 --
82 2.13.6