| Summary: | Building openssh-portable on OpenBSD 6.4 with Kerberos | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Portable OpenSSH | Reporter: | Markus <markus> | ||||||||||
| Component: | Build system | Assignee: | Assigned to nobody <unassigned-bugs> | ||||||||||
| Status: | NEW --- | ||||||||||||
| Severity: | minor | CC: | dtucker | ||||||||||
| Priority: | P5 | ||||||||||||
| Version: | 7.9p1 | ||||||||||||
| Hardware: | 68k | ||||||||||||
| OS: | OpenBSD | ||||||||||||
| Attachments: |
|
||||||||||||
I'm not able to reproduce this with openbsd-current: I pkg_add'ed heimdal, ./configure --with-kerberos5=/usr/local/heimdal and it built OK. I will try 6.4 on a VM and see if it's any different, but in the mean time could you please attach the output from your ./configure, config.h and config.log (as separate attachments please). Also, any additional information about your host? I suspect it's not really m68k as specified in this bug... Created attachment 3257 [details]
./configure script
Created attachment 3258 [details]
config.log
Created attachment 3259 [details]
config.h
Sorry, hardware is x86, 32 bit (an old IBM laptop). And a rather fresh lean install (no gnome, no kde, not much packages added). Essentially a default install. When I pkg_add heimdal, the libcom_err is missing. With ports-build it added that to /usr/local/lib I've attached the ./configure, config.h, config.log as requested. This is a plain configure run, that I made today to have a base to diff against for the initial patch. (JFI: I've sent a similar issue to the mailing list with a patch for the non-portable bsd-build. I can open a ticket here for it, just didn't because this bugzilla says openssh-portable). When building, the first error is:
e -I/usr/local/include -I/usr/local/heimdal/include -I/usr/local/include -DHAVE_CONFIG_H -c port-aix.c
In file included from /usr/local/heimdal/include/krb5.h:949,
from ../auth.h:42,
from port-aix.c:34:
/usr/local/heimdal/include/krb5-protos.h:3705: error: expected identifier or '(' before 'do'
/usr/local/heimdal/include/krb5-protos.h:3705: error: expected identifier or '(' before 'while'
*** Error 1 in openbsd-compat (Makefile:99 'port-aix.o')
*** Error 1 in /usr/src/usr.bin/openssh-7.9p1-orig (Makefile:164 'openbsd-compat/libopenbsd-compat.a')
mschmidt:/usr/src/usr.bin/openssh-7.9p1-orig:2$
(It just occurs to me, that it is from the missing detection for krb5_free_error_message(), so if that is fixed port-aix.c doesn't need to be changed).
When I fix the above (config.h ... #define KRB5_FREE_ERRROR_MESSAGE) it compiles, but the linker fails: ....... gcc -o ssh ssh.o readconf.o clientloop.o sshtty.o sshconnect.o sshconnect2.o mux.o -L. -Lopenbsd-compat/ -Wl,-z,retpolineplt -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-strong -pie -lssh -lopenbsd-compat -lcrypto -lutil -lz -Wl,--enable-new-dtags -Wl,-rpath -Wl,/usr/local/heimdal/lib -L/usr/local/heimdal/lib -lgssapi /usr/bin/ld: warning: libcom_err.so.21.0, needed by /usr/local/heimdal/lib/libgssapi.so.9.0, not found (try using -rpath or -rpath-link) /usr/local/heimdal/lib/libhcrypto.so.0.0: warning: rand() may return deterministic values, is that what you want? /usr/local/heimdal/lib/libkrb5.so.22.0: undefined reference to `com_right' /usr/local/heimdal/lib/libkrb5.so.22.0: undefined reference to `com_right_r' /usr/local/heimdal/lib/libgssapi.so.9.0: undefined reference to `_et_list' /usr/local/heimdal/lib/libkrb5.so.22.0: undefined reference to `error_message' /usr/local/heimdal/lib/libkrb5.so.22.0: undefined reference to `free_error_table' collect2: ld returned 1 exit status *** Error 1 in /usr/src/usr.bin/openssh-7.9p1-orig (Makefile:172 'ssh') mschmidt:/usr/src/usr.bin/openssh-7.9p1-orig:8$ |
Created attachment 3255 [details] changes needed to build openssh-7.9p1 with heimdel kerberos on openbsd 6.4 I tried to build openssh-portable on OpenBSD 6.4 with Kerberos support (I tried this initially because I failed to get the BSD version of openssh to work). The OpenBSD 6.4 had heimdal kerberos support (self built from the ports system) I configured as ./configure --with-kerberos5=/usr/local/heimdal --prefx= There are a few minor problems in the build system: - ports offers the krb5_free_error_message call but configure does not detect (or check for it). - /usr/local/lib needs to be added to the LDFLAGS because it will contain libcom_err.a - openbsd-compat/port-aix.c fails to compile because of header files, so the #ifdef _AIX needs to be moved further up (obviously the file does not apply to an OpenBSD build). I'm attaching a patch with the changes, but obviously these have to be worked into the build-system itself. But I'm lacking the expertise to even understand what would be necessary.