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