| 1 | # "grep" through a log file, and print a cause string to stdout
|
| 2 | #
|
| 3 | # Invoked from aports/regtest-html.sh
|
| 4 |
|
| 5 | BEGIN {
|
| 6 | patterns["makedepends"] = "ERROR: No such package: .makedepends"
|
| 7 | # e.g. xkeyboard-config flakiness
|
| 8 | patterns["fetch-failed"] = ": fetch failed"
|
| 9 |
|
| 10 | # we can add the bug number like #2338
|
| 11 | patterns["#2338"] = "\\@-D" # variant after attempted glob fix
|
| 12 | # three backslashes is \\\-D
|
| 13 | patterns[50] = "\\\\\\-D"
|
| 14 |
|
| 15 | # This is a different pattern, so we use cause "##2338" to distinguish it
|
| 16 | # from "#2338". It links to the same bug.
|
| 17 | patterns["##2338"] = "\\@(cd" # variant after attempted glob fix
|
| 18 | # \\\(cd
|
| 19 | patterns[51] = "\\\\\\(cd"
|
| 20 |
|
| 21 | patterns[2] = "cannot create executable"
|
| 22 |
|
| 23 | patterns[3] = "cannot compile programs"
|
| 24 |
|
| 25 | # abuild, ifupdown-ng, ...
|
| 26 | patterns["#2416"] = "test case names with"
|
| 27 | # jemalloc appears to be the same root cause
|
| 28 | patterns["##2416"] = "jemalloc/internal/private_namespace.h: No such file or directory"
|
| 29 |
|
| 30 | # e2fsprogs - not sure how to narrow this down more?
|
| 31 | patterns["#2413"] = "382 tests succeeded 1 tests failed"
|
| 32 |
|
| 33 | patterns[5] = "PHDR segment not covered"
|
| 34 |
|
| 35 | # OSH string
|
| 36 | patterns[6] = "error applying redirect:"
|
| 37 |
|
| 38 | # parsing error
|
| 39 | patterns["#2337"] = "(((grep"
|
| 40 | #patterns["##2337"] = "Parser expected Id.Arith_RParen, got Id.Word_Compound"
|
| 41 |
|
| 42 | # postfix
|
| 43 | # gzip
|
| 44 | patterns["##2337"] = "Unexpected token after arithmetic expression"
|
| 45 |
|
| 46 | # kea package: suspicious
|
| 47 | # oh this also fails with 124 though
|
| 48 | patterns[8] = "find a separator character in"
|
| 49 |
|
| 50 | # esh package: OSH string
|
| 51 | # One case is definitely related to the linked issue, but multiple tests are failing.
|
| 52 | # For the other test cases: I am not sure these are real bugs: it might be that esh
|
| 53 | # expects and exact code string?
|
| 54 | patterns["#2547"] = "Undefined variable 'OPTARG'"
|
| 55 |
|
| 56 | # crosstool-ng - $[] is not being treated identical to $(())
|
| 57 | patterns["#2566"] = "Undefined variable 'pkg_nforks'"
|
| 58 |
|
| 59 | # bmake - oils ... syntax may conflict
|
| 60 | patterns["#2464"] = "<not found: ...>"
|
| 61 |
|
| 62 | # mawk, openvpn: trap 0
|
| 63 | patterns["#2339"] = "requires a signal or hook name"
|
| 64 |
|
| 65 | # pkgconf
|
| 66 | patterns[11] = " with multiple files"
|
| 67 |
|
| 68 | # xz
|
| 69 | # musl libc error - with glibc, we get a parsing error
|
| 70 | patterns["#2336"] = "Extended glob won"
|
| 71 |
|
| 72 | # sqlite
|
| 73 | patterns[13] = "No working C compiler"
|
| 74 |
|
| 75 | # sfic
|
| 76 | patterns["#2411"] = "terminate called after throwing an instance of"
|
| 77 |
|
| 78 | # screen
|
| 79 | patterns["#2364"] = "mkdir: unrecognized option: /" # changed 2025-08-04-rootbld
|
| 80 | patterns["##2364"] = "mkdir: invalid option --"
|
| 81 |
|
| 82 | # make
|
| 83 | patterns["#2335"] = "oils I/O error"
|
| 84 | # patch is the same ulimit bug, but the "invalid argument" EINVAL string
|
| 85 | # occurs in test-suite.log
|
| 86 | patterns["##2335"] = "patch: check failed"
|
| 87 |
|
| 88 | # sqsh
|
| 89 | patterns["#2409"] = "(test) Unexpected trailing word"
|
| 90 |
|
| 91 | # xz
|
| 92 | # note: with glibc, a different string will appear
|
| 93 | patterns["#2336"] = "Extended glob won't work without FNM_EXTMATCH support in libc"
|
| 94 |
|
| 95 | # lua-*
|
| 96 | # umask with symbolic input not implemented yet
|
| 97 | patterns["#2484"] = "umask with symbolic input isn't implemented"
|
| 98 |
|
| 99 | # tclx
|
| 100 | patterns["#2557"] = "oils: Invalid applet "
|
| 101 |
|
| 102 | # shunit2
|
| 103 | patterns["#2561"] = "assert message was not generated"
|
| 104 |
|
| 105 | # ifupdown-ng
|
| 106 | patterns["#2546"] = "Fail: regexp local "
|
| 107 |
|
| 108 | # py3-adblock
|
| 109 | patterns["#2562"] = "Invalid descriptor"
|
| 110 |
|
| 111 | # makepasswd
|
| 112 | patterns["#2579"] = "Usage: docbook.sh"
|
| 113 |
|
| 114 | #
|
| 115 | # BUGS that only occur with OSH as BUSYBOX ASH
|
| 116 | #
|
| 117 |
|
| 118 | # heimdal, perl
|
| 119 | patterns["#2424"] = "Found uncompressed man pages:"
|
| 120 |
|
| 121 | # nginx
|
| 122 | patterns["#2425"] = "'cd' got too many arguments"
|
| 123 |
|
| 124 | # xcb-util-render-util
|
| 125 | patterns["#2552"] = "/home/udu/aports/community/xcb-util-renderutil/APKBUILD:16: Unexpected word while parsing compound command"
|
| 126 |
|
| 127 | # py3-userpath
|
| 128 | patterns["#2563"] = "Exception: Unable to find "
|
| 129 |
|
| 130 | #
|
| 131 | # BUGS that only occur with OSH as BASH
|
| 132 | #
|
| 133 |
|
| 134 | # chrony and x42-plugins
|
| 135 | patterns["#2426"] = "In expressions, remove $ and use"
|
| 136 |
|
| 137 | # shorewall - BAD version detection - fixed
|
| 138 | #patterns["#2427"] = "ERROR: This program requires Bash 4.0 or later"
|
| 139 |
|
| 140 | # gdbm
|
| 141 | patterns["#2429"] = "ERROR: gdbm: check failed"
|
| 142 |
|
| 143 | # shorewall
|
| 144 | patterns["#2438"] = "Assoc array keys must be strings"
|
| 145 |
|
| 146 | # zfs
|
| 147 | patterns["#2441"] = "Token starting at column"
|
| 148 |
|
| 149 | # 2025-10-26: demo for updating cause.awk, already fixed
|
| 150 | patterns["#2477"] = "printf expected an integer, got"
|
| 151 |
|
| 152 | # mdev-conf
|
| 153 | patterns["#2500"] = "readlink disk/by-label/EFI"
|
| 154 |
|
| 155 | # zeitgeist
|
| 156 | patterns["#2528"] = "Unexpected argument to 'exit'"
|
| 157 |
|
| 158 | # dircproxy
|
| 159 | patterns["#2535"] = "fatal: Pat Sub op expected Str, BashArray, or BashAssoc, got Int"
|
| 160 |
|
| 161 | # jq
|
| 162 | patterns["#2540"] = "FAIL: tests/shtest"
|
| 163 | # gphoto2
|
| 164 | patterns["##2540"] = "[Makefile:461: check-recursive] Error 1"
|
| 165 |
|
| 166 |
|
| 167 | # libidn
|
| 168 | patterns["#2523"] = "ERROR: libidn2: check failed"
|
| 169 |
|
| 170 | # R, rkward
|
| 171 | patterns["#2560"] = "fatal: Assignment builtin expected NAME=value"
|
| 172 |
|
| 173 | found = 0
|
| 174 | }
|
| 175 | {
|
| 176 | for (i in patterns) {
|
| 177 | # search for the line
|
| 178 | if (index($0, patterns[i]) > 0) {
|
| 179 | print i
|
| 180 | found = 1
|
| 181 |
|
| 182 | # just print the first one, not every occurrence
|
| 183 | nextfile
|
| 184 | }
|
| 185 | }
|
| 186 | }
|
| 187 |
|
| 188 | END {
|
| 189 | if (!found) {
|
| 190 | print "unknown" # no cause assigned
|
| 191 | }
|
| 192 | }
|