pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/55168: 2020Q1 textproc/source-highlight check-portability failures



>Number:         55168
>Category:       pkg
>Synopsis:       2020Q1 textproc/source-highlight check-portability failures
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Apr 12 15:15:00 +0000 2020
>Originator:     Izumi Tsutsui
>Release:        NetBSD 9.0 + pkgsrc-2020Q1
>Organization:
>Environment:
System: NetBSD optiplex 9.0 NetBSD 9.0 (GENERIC) #0: Fri Feb 14 00:06:28 UTC 2020  mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/amd64/compile/GENERIC amd64
Architecture: maybe all
Machine: all
>Description:
pkgsrc-2020Q1 textproc/source-highlight build fails:
---
:
=> Adding run-time search paths to pkg-config files.
=> Checking for portability problems in extracted files
ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] lib/tests/valgrind_test.sh.in:62:     if test "$?" == "0"; then
ERROR: [check-portability.awk] lib/tests/valgrind_test.sh.in:72:     if test "$?" == "0"; then
ERROR: [check-portability.awk] lib/tests/valgrind_test.sh.in:81:     if test "x${tmp_err}" == "x"; then

Explanation:
===========================================================================
The "test" command, as well as the "[" command, are not required to know
the "==" operator. Only a few implementations like bash and some
versions of ksh support it.

When you run "test foo == foo" on a platform that does not support the
"==" operator, the result will be "false" instead of "true". This can
lead to unexpected behavior.

There are two ways to fix this error message. If the file that contains
the "test ==" is needed for building the package, you should create a
patch for it, replacing the "==" operator with "=". If the file is not
needed, add its name to the CHECK_PORTABILITY_SKIP variable in the
package Makefile.
===========================================================================

ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] tests/valgrind_suppressions.sh.in:58:     if test "$?" == "0"; then
ERROR: [check-portability.awk] tests/valgrind_suppressions.sh.in:68:     if test "$?" == "0"; then
ERROR: [check-portability.awk] tests/valgrind_suppressions.sh.in:77:     if test "x${tmp_err}" == "x"; then

Explanation:
===========================================================================
The "test" command, as well as the "[" command, are not required to know
the "==" operator. Only a few implementations like bash and some
versions of ksh support it.

When you run "test foo == foo" on a platform that does not support the
"==" operator, the result will be "false" instead of "true". This can
lead to unexpected behavior.

There are two ways to fix this error message. If the file that contains
the "test ==" is needed for building the package, you should create a
patch for it, replacing the "==" operator with "=". If the file is not
needed, add its name to the CHECK_PORTABILITY_SKIP variable in the
package Makefile.
===========================================================================

ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] tests/valgrind_tests.sh.in:55:     if test "$?" == "0"; then
ERROR: [check-portability.awk] tests/valgrind_tests.sh.in:65:     if test "$?" == "0"; then
ERROR: [check-portability.awk] tests/valgrind_tests.sh.in:74:     if test "x${tmp_err}" == "x"; then

Explanation:
===========================================================================
The "test" command, as well as the "[" command, are not required to know
the "==" operator. Only a few implementations like bash and some
versions of ksh support it.

When you run "test foo == foo" on a platform that does not support the
"==" operator, the result will be "false" instead of "true". This can
lead to unexpected behavior.

There are two ways to fix this error message. If the file that contains
the "test ==" is needed for building the package, you should create a
patch for it, replacing the "==" operator with "=". If the file is not
needed, add its name to the CHECK_PORTABILITY_SKIP variable in the
package Makefile.
===========================================================================

ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] tests/valgrind_test.sh.in:62:     if test "$?" == "0"; then
ERROR: [check-portability.awk] tests/valgrind_test.sh.in:72:     if test "$?" == "0"; then
ERROR: [check-portability.awk] tests/valgrind_test.sh.in:81:     if test "x${tmp_err}" == "x"; then

Explanation:
===========================================================================
The "test" command, as well as the "[" command, are not required to know
the "==" operator. Only a few implementations like bash and some
versions of ksh support it.

When you run "test foo == foo" on a platform that does not support the
"==" operator, the result will be "false" instead of "true". This can
lead to unexpected behavior.

There are two ways to fix this error message. If the file that contains
the "test ==" is needed for building the package, you should create a
patch for it, replacing the "==" operator with "=". If the file is not
needed, add its name to the CHECK_PORTABILITY_SKIP variable in the
package Makefile.
===========================================================================

*** Error code 1

Stop.
make[3]: stopped in /usr/pkgsrc/textproc/source-highlight
*** Error code 1
---

>How-To-Repeat:
"make package" in pkgsrc/textproc/source-highlight as above.

>Fix:
Fix all usage of '=='?
(Some of them are not caught by check-portability.awk ?)

---
% grep -R 'if.*test.*==' .
./lib/tests/valgrind_test.sh.in:    if test ! -x "$1" -o "$1" == `basename $0`; then
./lib/tests/valgrind_test.sh.in:    if test "$?" == "0"; then
./lib/tests/valgrind_test.sh.in:    if test "$?" == "0"; then
./lib/tests/valgrind_test.sh.in:    if test "x${tmp_err}" == "x"; then
./tests/valgrind_suppressions.sh.in:    if test ! -x "$1" -o "$1" == `basename $0`; then
./tests/valgrind_suppressions.sh.in:    if test "$?" == "0"; then
./tests/valgrind_suppressions.sh.in:    if test "$?" == "0"; then
./tests/valgrind_suppressions.sh.in:    if test "x${tmp_err}" == "x"; then
./tests/valgrind_tests.sh.in:    if test ! -x "$1" -o "$1" == `basename $0`; then
./tests/valgrind_tests.sh.in:    if test "$?" == "0"; then
./tests/valgrind_tests.sh.in:    if test "$?" == "0"; then
./tests/valgrind_tests.sh.in:    if test "x${tmp_err}" == "x"; then
./tests/valgrind_test.sh.in:    if test ! -x "$1" -o "$1" == `basename $0`; then
./tests/valgrind_test.sh.in:    if test "$?" == "0"; then
./tests/valgrind_test.sh.in:    if test "$?" == "0"; then
./tests/valgrind_test.sh.in:    if test "x${tmp_err}" == "x"; then
%  grep -R 'if.* \[.*==.*\]' .
./completion/source-highlight:    if [[ "${cur}" == -* || ${COMP_CWORD} -eq 1 ]] ; then
./lib/tests/valgrind_test.sh.in:    if [[ $1 == *.sh ]]; then
./tests/valgrind_suppressions.sh.in:    if [[ $1 == *.sh ]]; then
./tests/valgrind_tests.sh.in:    if [[ $1 == *.sh ]]; then
./tests/valgrind_test.sh.in:    if [[ $1 == *.sh ]]; then
% 

---
Izumi Tsutsui



Home | Main Index | Thread Index | Old Index