Subject: pkg/35467: net/speedtouch contains "test ==" portability bug
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <kre@munnari.OZ.AU>
List: pkgsrc-bugs
Date: 01/23/2007 10:25:00
>Number:         35467
>Category:       pkg
>Synopsis:       net/speedtouch contains "test ==" portability bug
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 23 10:25:00 +0000 2007
>Originator:     Robert Elz
>Release:        NetBSD 3.99.15   (pkgsrc current inthin last half day)
>Organization:
	Prince of Songkla University
>Environment:
System: NetBSD jade.coe.psu.ac.th 3.99.15 NetBSD 3.99.15 (GENERIC-1.696-20060125) #8: Wed Jan 25 04:59:39 ICT 2006 kre@jade.coe.psu.ac.th:/usr/obj/current/kernels/JADE_ASUS i386
Architecture: i386
Machine: i386
>Description:
	net/speedtouch uses [ xx == yy ] (many times).

>How-To-Repeat:
	Build net/speedtouch with PKG_DEVELOPER set (as for example
	happens by default using pkg_comp) and expect to see ...

=> Checking for portability problems in extracted files
ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd: if [ $PERSISTA == "Y" ] || [ $PERSISTA == "y" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd: if [ $PERSISTA == "Y" ] || [ $PERSISTA == "y" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd: if [ $DNSPEERA == "Y" ] || [ $DNSPEERA == "y" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd: if [ $DNSPEERA == "Y" ] || [ $DNSPEERA == "y" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd: if [ $DEFA == "Y" ] || [ $DEFA == "y" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd: if [ $DEFA == "Y" ] || [ $DEFA == "y" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd: if [ $DEBUGA == "Y" ] || [ $DEBUGA =="y" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd:   if [ $ANSWER == "n" ] || [ $ANSWER == "N" ] ; then
ERROR: [check-portability.awk] doc-linux/adsl-conf-pppd:   if [ $ANSWER == "n" ] || [ $ANSWER == "N" ] ; then

Explanation:
===========================================================================
The "test" command, as well as the "[" command, are not required to know
[... rest deleted here ...]
===========================================================================

ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] src/speedtouch-setup.in:   if [ $ANSWER == "n" ] || [ $ANSWER == "N" ] ; then
ERROR: [check-portability.awk] src/speedtouch-setup.in:   if [ $ANSWER == "n" ] || [ $ANSWER == "N" ] ; then
ERROR: [check-portability.awk] src/speedtouch-setup.in:   if [ $ANSWER == "n" ] || [ $ANSWER == "N" ] ; then
ERROR: [check-portability.awk] src/speedtouch-setup.in:   if [ $ANSWER == "n" ] || [ $ANSWER == "N" ] ; then

Explanation:
[... deleted again ...]

ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] src/speedtouch-start.in: if [ "${PPPD_PEER}" == "" ]; then

Explanation:
[... deleted again ...]


*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/net/speedtouch
*** Error code 1


>Fix:
	Patch the ones that matter to use '=' instead of '==', that probably
	includes src/speedtouch-setup.in and src/speedtouch-start.in
	but I'd guess perhaps not doc-linux/adsl-conf-pppd which can
	probably be fixed by just excluding it from the check (but I
	am guessing, and patching these things hsould be pretty easy...)

	If anyone who cares is reading this, fixing check-portability.awk
	so it only issues that lengthy explanation for the problem
	(if it is really needed at all) once per package would be kind
	of useful (have it copy the explanation from a file, then remove
	the file when it has been written once - or something).