Failing builds report for openssh-SNAP-20161221

Nelson H. F. Beebe beebe at math.utah.edu
Fri Dec 23 04:44:09 AEDT 2016


I reported yesterday on this list about 55 successful builds for
openssh-SNAP-20161221 (repackaged locally as openssh-20161221) in our
test lab of 125+ Unix(-like) systems.

Today, I've gone through the 68 logs of failures.  If a single
long-time openssh developer wants to look at those logs in detail,
please contact me offline; the logs contain machine details that I
will not disclose on public lists.

Here, I'll just summarize the common problems that appear repeatedly
across many different systems.  Fixing any single one of them would
likely lead to successful builds on several more systems.

--------------------------------------------------------------------------------

(1) The test suite output needs to be revised to show clear
     indications of success and failure; with just one log to look at,
     which most developers likely have, the current situation is
     somewhat tolerable.

     However, with large-scale automated testing, as I'm doing, it is
     impractical to read hundreds of lines of dense test output in
     logs from each of 125+ systems.  [I just ran "wc -l" on the
     157 logs that I have so far: 252,552 lines, equivalent to about
     16 detective novels of 300 pages of 50 lines/page.]

     Many GNU packages have adopted a validation-suite output style
     that prefixes test names with "PASS" or "FAIL", followed by a
     summary of counts of passes and failures.  Some even report a
     lovely conclusion "ALL TESTS PASSED!", which is then easy to grep
     for in logs to identify successful builds and validations.

     The current openssh report of "all tests passed" at the end of a
     log is hard to spot by eye, though grep, of course, has no
     difficulty.

--------------------------------------------------------------------------------

(2) Please consider adding a Makefile "check" target equivalent to
    your "tests" target; the former is a GNU standard that is widely
    adopted by thousands of other open-source packages.  That way, the
    standard recipe

	./configure && make all check install

    could work almost everywhere.

--------------------------------------------------------------------------------

(3) Wrong macro argument count:

/usr/bin/cc -std=c99 -I/usr/uumath/include -I/usr/local/include
    -I/include -Qunused-arguments -Wunknown-warning-option -Wall
    -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security
    -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result
    -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset
    -fstack-protector-all -I. -I.. -I. -I./..  -I/include -DHAVE_CONFIG_H
    -c arc4random.c
In file included from arc4random.c:27:
In file included from ../includes.h:174:
In file included from ../entropy.h:28:
In file included from ../buffer.h:24:
In file included from ../sshbuf.h:23:
/usr/include/stdio.h:222:44: error: too many arguments provided to function-like macro invocation
                __attribute__((__bounded__ (__size__,1,3,2)));
                                                         ^
../defines.h:519:10: note: macro '__bounded__' defined here
# define __bounded__(x, y, z)

--------------------------------------------------------------------------------

(4) openssh macro expands to invalid code:

    /usr/uumath/ashare/sys/developerstudio12.5/bin/cc
	-I/usr/uumath/include -I/include -I. -I.. -I. -I./..  -I/include
	-DHAVE_CONFIG_H -c arc4random.c
    "/usr/include/iso/stdlib_iso.h", line 130: syntax error before or at: 1
    cc: acomp failed for arc4random.c

That comes from the expansion of this line in that system header file:

	extern int mblen(const char *, size_t);

The erroneous code

	extern int  ( 1 );

is produced by this openssh code:

	% grep -n mblen openbsd-compat.h
	230:# define mblen(x, y)        (1)

--------------------------------------------------------------------------------

(5) Several systems reported

	checking OpenSSL library version... configure: error: OpenSSL
	>= 0.9.8f required (have "0090802f (OpenSSL 0.9.8e-fips-rhel5
	01 Jul 2008)")

or
	checking whether OpenSSL's headers match the library... no
	configure: error: Your OpenSSL headers do not match your
		library. Check config.log for details.  If you are
		sure your installation is consistent, you can disable
		the check by running "./configure
		--without-openssl-header-check".  Also see
		contrib/findssl.sh for help identifying header/library
		mismatches.

I don't propose to install openssl on our test lab machines, because
we generally expect them to have their own ssh + ssl code in place
already.  Thus, I won't attempt to work around build problems from
such dependencies.

--------------------------------------------------------------------------------

(6) On KFreeBSD 7.5 x86-64, ArchLinux ARM, Debian 6.0.10 x86-64,
   DragonFlyBSD 4.6, 4.6.1, 4.7 x86-46, and Solaris 10 x86-64, I was
   able to get a successful build by adding the configure option
   --without-openssl-header-check.  I then ran "make tests"; only the
   Solaris 10 x86-64 build ended with "all tests passed".  The ARM run
   is still a long ways from completion as I finish this report.

--------------------------------------------------------------------------------

(7) On numerous systems, I get these compilation failures:

	/usr/bin/cc -I/usr/uumath/include -Wall -Wpointer-arith
	    -Wuninitialized -Wsign-compare -Wformat-security
	    -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result
	    -fno-strict-aliasing -ftrapv -fno-builtin-memset
	    -fstack-protector-strong -fPIE -I. -I.  -I/usr/uumath/include
	    -DSSHDIR=\"/usr/uumath/etc\"
	    -D_PATH_SSH_PROGRAM=\"/usr/uumath/bin/ssh\"
	    -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/uumath/libexec/ssh-askpass\"
	    -D_PATH_SFTP_SERVER=\"/usr/uumath/libexec/sftp-server\"
	    -D_PATH_SSH_KEY_SIGN=\"/usr/uumath/libexec/ssh-keysign\"
	    -D_PATH_SSH_PKCS11_HELPER=\"/usr/uumath/libexec/ssh-pkcs11-helper\"
	    -D_PATH_SSH_PIDDIR=\"/var/run\"
	    -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c sshkey.c
	    -o sshkey.o

	sshkey.c:274:28: error: dereferencing pointer to incomplete type
	   return BN_num_bits(k->rsa->n);
				    ^
	sshkey.c:277:28: error: dereferencing pointer to incomplete type
	   return BN_num_bits(k->dsa->p);
				    ^
	sshkey.c: In function 'sshkey_new':
	sshkey.c:478:11: error: dereferencing pointer to incomplete type
	       (rsa->n = BN_new()) == NULL ||
		   ^
	[ 112 more like that ]

--------------------------------------------------------------------------------

(8) On GoboLinux, I get

	gcc -std=c99 -g -O2 -Wall -Wpointer-arith -Wuninitialized
	    -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess
	    -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing
	    -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset
	    -fstack-protector-all -fPIE -I. -I.. -I. -I./..
	    -DHAVE_CONFIG_H -c arc4random.c
	In file included from ../includes.h:168:0,
			 from arc4random.c:27:
	../defines.h:391:28: error: conflicting types for 'fd_mask'
	  typedef unsigned long int fd_mask;
				    ^
	In file included from /usr/local/include/sys/types.h:219:0,
			 from ../includes.h:25,
			 from arc4random.c:27:
	... many more ...

--------------------------------------------------------------------------------

(9) On Hipster, OpenIndiana 11, Solaris 10, and Solaris 11, with
    different compilers, I get similar to this:

	/opt/solarisstudio12.4/bin/c99 -I/usr/local/include
	    -D_XOPEN_SOURCE=600 -D_XPG6 -I/include -I. -I.. -I. -I./..
	    -I/include -DHAVE_CONFIG_H -c arc4random.c
	"../openbsd-compat/openbsd-compat.h", line 205: warning: dubious tag declaration: struct winsize
	"../buffer.h", line 58: warning: old-style declaration or incorrect type for: u_short
	"../buffer.h", line 58: syntax error before or at: buffer_get_short
	"../buffer.h", line 58: warning: old-style declaration or incorrect type for: buffer_get_short
	"../buffer.h", line 59: syntax error before or at: u_short
	"../buffer.h", line 59: warning: undefined or missing type for: u_short
	"../buffer.h", line 82: syntax error before or at: *
	"../buffer.h", line 82: warning: undefined or missing type for: Buffer
	c99: acomp failed for arc4random.c

--------------------------------------------------------------------------------

(10) On Minix 3.4.0, where /bin/sh is a Bourne-like shell of unknown origin,
    the build dies with a shell error:

	if test "cat" = "cat"; then manpage=./`echo moduli.5.out | sed
	    's/\.[1-9]\.out$/\.0/'`; else manpage=./`echo moduli.5.out |
	    sed 's/\.out$//'`; fi; if test "cat" = "man"; then
	    /usr/bin/sed -e
	    's|/etc/ssh/ssh_config|/usr/uumath/etc/ssh_config|g' -e
	    's|/etc/ssh/ssh_known_hosts|/usr/uumath/etc/ssh_known_hosts|g'
	    -e 's|/etc/ssh/sshd_config|/usr/uumath/etc/sshd_config|g' -e
	    's|/usr/libexec|/usr/uumath/libexec|g' -e
	    's|/etc/shosts.equiv|/usr/uumath/etc/shosts.equiv|g' -e
	    's|/etc/ssh/ssh_host_key|/usr/uumath/etc/ssh_host_key|g' -e
	    's|/etc/ssh/ssh_host_ecdsa_key|/usr/uumath/etc/ssh_host_ecdsa_key|g'
	    -e
	    's|/etc/ssh/ssh_host_dsa_key|/usr/uumath/etc/ssh_host_dsa_key|g'
	    -e
	    's|/etc/ssh/ssh_host_rsa_key|/usr/uumath/etc/ssh_host_rsa_key|g'
	    -e
	    's|/etc/ssh/ssh_host_ed25519_key|/usr/uumath/etc/ssh_host_ed25519_key|g'
	    -e 's|/var/run/sshd.pid|/var/run/sshd.pid|g' -e
	    's|/etc/moduli|/usr/uumath/etc/moduli|g' -e
	    's|/etc/ssh/moduli|/usr/uumath/etc/moduli|g' -e
	    's|/etc/ssh/sshrc|/usr/uumath/etc/sshrc|g' -e
	    's|/usr/X11R6/bin/xauth|/usr/X11R7/bin/xauth|g' -e
	    's|/var/empty|/var/empty|g' -e
	    's|/usr/bin:/bin:/usr/sbin:/sbin||g' ${manpage} |
	    /usr/uumath/bin/tcsh ./fixalgorithms /usr/bin/sed | gawk -f
	    ./mdoc2man.awk > moduli.5.out; else /usr/bin/sed -e
	    's|/etc/ssh/ssh_config|/usr/uumath/etc/ssh_config|g' -e
	    's|/etc/ssh/ssh_known_hosts|/usr/uumath/etc/ssh_known_hosts|g'
	    -e 's|/etc/ssh/sshd_config|/usr/uumath/etc/sshd_config|g' -e
	    's|/usr/libexec|/usr/uumath/libexec|g' -e
	    's|/etc/shosts.equiv|/usr/uumath/etc/shosts.equiv|g' -e
	    's|/etc/ssh/ssh_host_key|/usr/uumath/etc/ssh_host_key|g' -e
	    's|/etc/ssh/ssh_host_ecdsa_key|/usr/uumath/etc/ssh_host_ecdsa_key|g'
	    -e
	    's|/etc/ssh/ssh_host_dsa_key|/usr/uumath/etc/ssh_host_dsa_key|g'
	    -e
	    's|/etc/ssh/ssh_host_rsa_key|/usr/uumath/etc/ssh_host_rsa_key|g'
	    -e
	    's|/etc/ssh/ssh_host_ed25519_key|/usr/uumath/etc/ssh_host_ed25519_key|g'
	    -e 's|/var/run/sshd.pid|/var/run/sshd.pid|g' -e
	    's|/etc/moduli|/usr/uumath/etc/moduli|g' -e
	    's|/etc/ssh/moduli|/usr/uumath/etc/moduli|g' -e
	    's|/etc/ssh/sshrc|/usr/uumath/etc/sshrc|g' -e
	    's|/usr/X11R6/bin/xauth|/usr/X11R7/bin/xauth|g' -e
	    's|/var/empty|/var/empty|g' -e
	    's|/usr/bin:/bin:/usr/sbin:/sbin||g' ${manpage} |
	    /usr/uumath/bin/tcsh ./fixalgorithms /usr/bin/sed >
	    moduli.5.out; fi
	Badly placed ()'s.
	*** Error code 1

--------------------------------------------------------------------------------

(11) On Mac OS X 10.5.8 (9L30) Leopard on PowerPC, the compiler warns about
     possible use-before-initialization and other issues:

	glob.c:186: warning: implicit declaration of function 'strnlen'

	pwcache.c:44:1: warning: "MASK" redefined
	/usr/include/ppc/param.h:123:1: warning: this is the location of the previous definition

	setproctitle.c:128: warning: 'len' may be used uninitialized in this function

	sshkey.c:1575: warning: 'eg' may be used uninitialized in this function
	sshkey.c:3038: warning: 'ivlen' may be used uninitialized in this function
	sshkey.c:3038: warning: 'keylen' may be used uninitialized in this function

	packet.c:1052: warning: comparison between signed and unsigned

	ssh.c:1510: warning: 'daemon' is deprecated (declared at /usr/include/stdlib.h:283)
	ssh.c:1522: warning: 'daemon' is deprecated (declared at /usr/include/stdlib.h:283)

	sshconnect.c:309: warning: implicit declaration of function 'bindresvport_sa'

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------


More information about the openssh-unix-dev mailing list