diff options
author | Colin Watson <cjwatson@debian.org> | 2007-06-12 16:16:35 +0000 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2007-06-12 16:16:35 +0000 |
commit | b7e40fa9da0b5491534a429dadb321eab5a77558 (patch) | |
tree | bed1da11e9f829925797aa093e379fc0b5868ecd /configure.ac | |
parent | 4f84beedf1005e44ff33c854abd6b711ffc0adb7 (diff) | |
parent | 086ea76990b1e6287c24b6db74adffd4605eb3b0 (diff) |
* New upstream release (closes: #395507, #397961, #420035). Important
changes not previously backported to 4.3p2:
- 4.4/4.4p1 (http://www.openssh.org/txt/release-4.4):
+ On portable OpenSSH, fix a GSSAPI authentication abort that could be
used to determine the validity of usernames on some platforms.
+ Implemented conditional configuration in sshd_config(5) using the
"Match" directive. This allows some configuration options to be
selectively overridden if specific criteria (based on user, group,
hostname and/or address) are met. So far a useful subset of
post-authentication options are supported and more are expected to
be added in future releases.
+ Add support for Diffie-Hellman group exchange key agreement with a
final hash of SHA256.
+ Added a "ForceCommand" directive to sshd_config(5). Similar to the
command="..." option accepted in ~/.ssh/authorized_keys, this forces
the execution of the specified command regardless of what the user
requested. This is very useful in conjunction with the new "Match"
option.
+ Add a "PermitOpen" directive to sshd_config(5). This mirrors the
permitopen="..." authorized_keys option, allowing fine-grained
control over the port-forwardings that a user is allowed to
establish.
+ Add optional logging of transactions to sftp-server(8).
+ ssh(1) will now record port numbers for hosts stored in
~/.ssh/known_hosts when a non-standard port has been requested
(closes: #50612).
+ Add an "ExitOnForwardFailure" option to cause ssh(1) to exit (with a
non-zero exit code) when requested port forwardings could not be
established.
+ Extend sshd_config(5) "SubSystem" declarations to allow the
specification of command-line arguments.
+ Replacement of all integer overflow susceptible invocations of
malloc(3) and realloc(3) with overflow-checking equivalents.
+ Many manpage fixes and improvements.
+ Add optional support for OpenSSL hardware accelerators (engines),
enabled using the --with-ssl-engine configure option.
+ Tokens in configuration files may be double-quoted in order to
contain spaces (closes: #319639).
+ Move a debug() call out of a SIGCHLD handler, fixing a hang when the
session exits very quickly (closes: #307890).
+ Fix some incorrect buffer allocation calculations (closes: #410599).
+ ssh-add doesn't ask for a passphrase if key file permissions are too
liberal (closes: #103677).
+ Likewise, ssh doesn't ask either (closes: #99675).
- 4.6/4.6p1 (http://www.openssh.org/txt/release-4.6):
+ sshd now allows the enabling and disabling of authentication methods
on a per user, group, host and network basis via the Match directive
in sshd_config.
+ Fixed an inconsistent check for a terminal when displaying scp
progress meter (closes: #257524).
+ Fix "hang on exit" when background processes are running at the time
of exit on a ttyful/login session (closes: #88337).
* Update to current GSSAPI patch from
http://www.sxw.org.uk/computing/patches/openssh-4.6p1-gsskex-20070312.patch;
install ChangeLog.gssapi.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 690 |
1 files changed, 440 insertions, 250 deletions
diff --git a/configure.ac b/configure.ac index 86f0f1c41..05ccc2f7e 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1,4 +1,4 @@ | |||
1 | # $Id: configure.ac,v 1.322.2.6 2006/02/08 11:11:06 dtucker Exp $ | 1 | # $Id: configure.ac,v 1.372 2007/03/05 00:51:27 djm Exp $ |
2 | # | 2 | # |
3 | # Copyright (c) 1999-2004 Damien Miller | 3 | # Copyright (c) 1999-2004 Damien Miller |
4 | # | 4 | # |
@@ -15,7 +15,7 @@ | |||
15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | 16 | ||
17 | AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) | 17 | AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) |
18 | AC_REVISION($Revision: 1.322.2.6 $) | 18 | AC_REVISION($Revision: 1.372 $) |
19 | AC_CONFIG_SRCDIR([ssh.c]) | 19 | AC_CONFIG_SRCDIR([ssh.c]) |
20 | 20 | ||
21 | AC_CONFIG_HEADER(config.h) | 21 | AC_CONFIG_HEADER(config.h) |
@@ -127,15 +127,175 @@ AC_ARG_WITH(rpath, | |||
127 | ] | 127 | ] |
128 | ) | 128 | ) |
129 | 129 | ||
130 | # Allow user to specify flags | ||
131 | AC_ARG_WITH(cflags, | ||
132 | [ --with-cflags Specify additional flags to pass to compiler], | ||
133 | [ | ||
134 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
135 | test "x${withval}" != "xyes"; then | ||
136 | CFLAGS="$CFLAGS $withval" | ||
137 | fi | ||
138 | ] | ||
139 | ) | ||
140 | AC_ARG_WITH(cppflags, | ||
141 | [ --with-cppflags Specify additional flags to pass to preprocessor] , | ||
142 | [ | ||
143 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
144 | test "x${withval}" != "xyes"; then | ||
145 | CPPFLAGS="$CPPFLAGS $withval" | ||
146 | fi | ||
147 | ] | ||
148 | ) | ||
149 | AC_ARG_WITH(ldflags, | ||
150 | [ --with-ldflags Specify additional flags to pass to linker], | ||
151 | [ | ||
152 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
153 | test "x${withval}" != "xyes"; then | ||
154 | LDFLAGS="$LDFLAGS $withval" | ||
155 | fi | ||
156 | ] | ||
157 | ) | ||
158 | AC_ARG_WITH(libs, | ||
159 | [ --with-libs Specify additional libraries to link with], | ||
160 | [ | ||
161 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
162 | test "x${withval}" != "xyes"; then | ||
163 | LIBS="$LIBS $withval" | ||
164 | fi | ||
165 | ] | ||
166 | ) | ||
167 | AC_ARG_WITH(Werror, | ||
168 | [ --with-Werror Build main code with -Werror], | ||
169 | [ | ||
170 | if test -n "$withval" && test "x$withval" != "xno"; then | ||
171 | werror_flags="-Werror" | ||
172 | if test "x${withval}" != "xyes"; then | ||
173 | werror_flags="$withval" | ||
174 | fi | ||
175 | fi | ||
176 | ] | ||
177 | ) | ||
178 | |||
179 | AC_CHECK_HEADERS( \ | ||
180 | bstring.h \ | ||
181 | crypt.h \ | ||
182 | crypto/sha2.h \ | ||
183 | dirent.h \ | ||
184 | endian.h \ | ||
185 | features.h \ | ||
186 | fcntl.h \ | ||
187 | floatingpoint.h \ | ||
188 | getopt.h \ | ||
189 | glob.h \ | ||
190 | ia.h \ | ||
191 | iaf.h \ | ||
192 | limits.h \ | ||
193 | login.h \ | ||
194 | maillock.h \ | ||
195 | ndir.h \ | ||
196 | net/if_tun.h \ | ||
197 | netdb.h \ | ||
198 | netgroup.h \ | ||
199 | pam/pam_appl.h \ | ||
200 | paths.h \ | ||
201 | pty.h \ | ||
202 | readpassphrase.h \ | ||
203 | rpc/types.h \ | ||
204 | security/pam_appl.h \ | ||
205 | sha2.h \ | ||
206 | shadow.h \ | ||
207 | stddef.h \ | ||
208 | stdint.h \ | ||
209 | string.h \ | ||
210 | strings.h \ | ||
211 | sys/audit.h \ | ||
212 | sys/bitypes.h \ | ||
213 | sys/bsdtty.h \ | ||
214 | sys/cdefs.h \ | ||
215 | sys/dir.h \ | ||
216 | sys/mman.h \ | ||
217 | sys/ndir.h \ | ||
218 | sys/prctl.h \ | ||
219 | sys/pstat.h \ | ||
220 | sys/select.h \ | ||
221 | sys/stat.h \ | ||
222 | sys/stream.h \ | ||
223 | sys/stropts.h \ | ||
224 | sys/strtio.h \ | ||
225 | sys/sysmacros.h \ | ||
226 | sys/time.h \ | ||
227 | sys/timers.h \ | ||
228 | sys/un.h \ | ||
229 | time.h \ | ||
230 | tmpdir.h \ | ||
231 | ttyent.h \ | ||
232 | unistd.h \ | ||
233 | usersec.h \ | ||
234 | util.h \ | ||
235 | utime.h \ | ||
236 | utmp.h \ | ||
237 | utmpx.h \ | ||
238 | vis.h \ | ||
239 | ) | ||
240 | |||
241 | # lastlog.h requires sys/time.h to be included first on Solaris | ||
242 | AC_CHECK_HEADERS(lastlog.h, [], [], [ | ||
243 | #ifdef HAVE_SYS_TIME_H | ||
244 | # include <sys/time.h> | ||
245 | #endif | ||
246 | ]) | ||
247 | |||
248 | # sys/ptms.h requires sys/stream.h to be included first on Solaris | ||
249 | AC_CHECK_HEADERS(sys/ptms.h, [], [], [ | ||
250 | #ifdef HAVE_SYS_STREAM_H | ||
251 | # include <sys/stream.h> | ||
252 | #endif | ||
253 | ]) | ||
254 | |||
255 | # login_cap.h requires sys/types.h on NetBSD | ||
256 | AC_CHECK_HEADERS(login_cap.h, [], [], [ | ||
257 | #include <sys/types.h> | ||
258 | ]) | ||
259 | |||
260 | # Messages for features tested for in target-specific section | ||
261 | SIA_MSG="no" | ||
262 | SPC_MSG="no" | ||
263 | |||
130 | # Check for some target-specific stuff | 264 | # Check for some target-specific stuff |
131 | case "$host" in | 265 | case "$host" in |
132 | *-*-aix*) | 266 | *-*-aix*) |
267 | # Some versions of VAC won't allow macro redefinitions at | ||
268 | # -qlanglevel=ansi, and autoconf 2.60 sometimes insists on using that | ||
269 | # particularly with older versions of vac or xlc. | ||
270 | # It also throws errors about null macro argments, but these are | ||
271 | # not fatal. | ||
272 | AC_MSG_CHECKING(if compiler allows macro redefinitions) | ||
273 | AC_COMPILE_IFELSE( | ||
274 | [AC_LANG_SOURCE([[ | ||
275 | #define testmacro foo | ||
276 | #define testmacro bar | ||
277 | int main(void) { exit(0); } | ||
278 | ]])], | ||
279 | [ AC_MSG_RESULT(yes) ], | ||
280 | [ AC_MSG_RESULT(no) | ||
281 | CC="`echo $CC | sed 's/-qlanglvl\=ansi//g'`" | ||
282 | LD="`echo $LD | sed 's/-qlanglvl\=ansi//g'`" | ||
283 | CFLAGS="`echo $CFLAGS | sed 's/-qlanglvl\=ansi//g'`" | ||
284 | CPPFLAGS="`echo $CPPFLAGS | sed 's/-qlanglvl\=ansi//g'`" | ||
285 | ] | ||
286 | ) | ||
287 | |||
133 | AC_MSG_CHECKING([how to specify blibpath for linker ($LD)]) | 288 | AC_MSG_CHECKING([how to specify blibpath for linker ($LD)]) |
134 | if (test -z "$blibpath"); then | 289 | if (test -z "$blibpath"); then |
135 | blibpath="/usr/lib:/lib" | 290 | blibpath="/usr/lib:/lib" |
136 | fi | 291 | fi |
137 | saved_LDFLAGS="$LDFLAGS" | 292 | saved_LDFLAGS="$LDFLAGS" |
138 | for tryflags in -blibpath: -Wl,-blibpath: -Wl,-rpath, ;do | 293 | if test "$GCC" = "yes"; then |
294 | flags="-Wl,-blibpath: -Wl,-rpath, -blibpath:" | ||
295 | else | ||
296 | flags="-blibpath: -Wl,-blibpath: -Wl,-rpath," | ||
297 | fi | ||
298 | for tryflags in $flags ;do | ||
139 | if (test -z "$blibflags"); then | 299 | if (test -z "$blibflags"); then |
140 | LDFLAGS="$saved_LDFLAGS $tryflags$blibpath" | 300 | LDFLAGS="$saved_LDFLAGS $tryflags$blibpath" |
141 | AC_TRY_LINK([], [], [blibflags=$tryflags]) | 301 | AC_TRY_LINK([], [], [blibflags=$tryflags]) |
@@ -175,6 +335,12 @@ case "$host" in | |||
175 | [#include <usersec.h>] | 335 | [#include <usersec.h>] |
176 | ) | 336 | ) |
177 | AC_CHECK_FUNCS(setauthdb) | 337 | AC_CHECK_FUNCS(setauthdb) |
338 | AC_CHECK_DECL(F_CLOSEM, | ||
339 | AC_DEFINE(HAVE_FCNTL_CLOSEM, 1, [Use F_CLOSEM fcntl for closefrom]), | ||
340 | [], | ||
341 | [ #include <limits.h> | ||
342 | #include <fcntl.h> ] | ||
343 | ) | ||
178 | check_for_aix_broken_getaddrinfo=1 | 344 | check_for_aix_broken_getaddrinfo=1 |
179 | AC_DEFINE(BROKEN_REALPATH, 1, [Define if you have a broken realpath.]) | 345 | AC_DEFINE(BROKEN_REALPATH, 1, [Define if you have a broken realpath.]) |
180 | AC_DEFINE(SETEUID_BREAKS_SETUID, 1, | 346 | AC_DEFINE(SETEUID_BREAKS_SETUID, 1, |
@@ -190,10 +356,11 @@ case "$host" in | |||
190 | supported by bsd-setproctitle.c]) | 356 | supported by bsd-setproctitle.c]) |
191 | AC_DEFINE(SSHPAM_CHAUTHTOK_NEEDS_RUID, 1, | 357 | AC_DEFINE(SSHPAM_CHAUTHTOK_NEEDS_RUID, 1, |
192 | [AIX 5.2 and 5.3 (and presumably newer) require this]) | 358 | [AIX 5.2 and 5.3 (and presumably newer) require this]) |
359 | AC_DEFINE(PTY_ZEROREAD, 1, [read(1) can return 0 for a non-closed fd]) | ||
193 | ;; | 360 | ;; |
194 | *-*-cygwin*) | 361 | *-*-cygwin*) |
195 | check_for_libcrypt_later=1 | 362 | check_for_libcrypt_later=1 |
196 | LIBS="$LIBS /usr/lib/textmode.o" | 363 | LIBS="$LIBS /usr/lib/textreadmode.o" |
197 | AC_DEFINE(HAVE_CYGWIN, 1, [Define if you are on Cygwin]) | 364 | AC_DEFINE(HAVE_CYGWIN, 1, [Define if you are on Cygwin]) |
198 | AC_DEFINE(USE_PIPES, 1, [Use PIPES instead of a socketpair()]) | 365 | AC_DEFINE(USE_PIPES, 1, [Use PIPES instead of a socketpair()]) |
199 | AC_DEFINE(DISABLE_SHADOW, 1, | 366 | AC_DEFINE(DISABLE_SHADOW, 1, |
@@ -231,30 +398,38 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) | |||
231 | AC_DEFINE(BROKEN_SETREGID) | 398 | AC_DEFINE(BROKEN_SETREGID) |
232 | AC_DEFINE_UNQUOTED(BIND_8_COMPAT, 1, | 399 | AC_DEFINE_UNQUOTED(BIND_8_COMPAT, 1, |
233 | [Define if your resolver libs need this for getrrsetbyname]) | 400 | [Define if your resolver libs need this for getrrsetbyname]) |
234 | AC_MSG_CHECKING(if we have the Security Authorization Session API) | 401 | AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way]) |
235 | AC_TRY_COMPILE([#include <Security/AuthSession.h>], | 402 | AC_DEFINE(SSH_TUN_COMPAT_AF, 1, |
236 | [SessionCreate(0, 0);], | 403 | [Use tunnel device compatibility to OpenBSD]) |
237 | [ac_cv_use_security_session_api="yes" | 404 | AC_DEFINE(SSH_TUN_PREPEND_AF, 1, |
238 | AC_DEFINE(USE_SECURITY_SESSION_API, 1, | 405 | [Prepend the address family to IP tunnel traffic]) |
406 | AC_MSG_CHECKING(if we have the Security Authorization Session API) | ||
407 | AC_TRY_COMPILE([#include <Security/AuthSession.h>], | ||
408 | [SessionCreate(0, 0);], | ||
409 | [ac_cv_use_security_session_api="yes" | ||
410 | AC_DEFINE(USE_SECURITY_SESSION_API, 1, | ||
239 | [platform has the Security Authorization Session API]) | 411 | [platform has the Security Authorization Session API]) |
240 | LIBS="$LIBS -framework Security" | 412 | LIBS="$LIBS -framework Security" |
241 | AC_MSG_RESULT(yes)], | 413 | AC_MSG_RESULT(yes)], |
242 | [ac_cv_use_security_session_api="no" | 414 | [ac_cv_use_security_session_api="no" |
243 | AC_MSG_RESULT(no)]) | 415 | AC_MSG_RESULT(no)]) |
244 | AC_MSG_CHECKING(if we have an in-memory credentials cache) | 416 | AC_MSG_CHECKING(if we have an in-memory credentials cache) |
245 | AC_TRY_COMPILE( | 417 | AC_TRY_COMPILE( |
246 | [#include <Kerberos/Kerberos.h>], | 418 | [#include <Kerberos/Kerberos.h>], |
247 | [cc_context_t c; | 419 | [cc_context_t c; |
248 | (void) cc_initialize (&c, 0, NULL, NULL);], | 420 | (void) cc_initialize (&c, 0, NULL, NULL);], |
249 | [AC_DEFINE(USE_CCAPI, 1, | 421 | [AC_DEFINE(USE_CCAPI, 1, |
250 | [platform uses an in-memory credentials cache]) | 422 | [platform uses an in-memory credentials cache]) |
251 | LIBS="$LIBS -framework Security" | 423 | LIBS="$LIBS -framework Security" |
252 | AC_MSG_RESULT(yes) | 424 | AC_MSG_RESULT(yes) |
253 | if test "x$ac_cv_use_security_session_api" = "xno"; then | 425 | if test "x$ac_cv_use_security_session_api" = "xno"; then |
254 | AC_MSG_ERROR(*** Need a security framework to use the credentials cache API ***) | 426 | AC_MSG_ERROR(*** Need a security framework to use the credentials cache API ***) |
255 | fi], | 427 | fi], |
256 | [AC_MSG_RESULT(no)] | 428 | [AC_MSG_RESULT(no)] |
257 | ) | 429 | ) |
430 | ;; | ||
431 | *-*-dragonfly*) | ||
432 | SSHDLIBS="$SSHDLIBS -lcrypt" | ||
258 | ;; | 433 | ;; |
259 | *-*-hpux*) | 434 | *-*-hpux*) |
260 | # first we define all of the options common to all HP-UX releases | 435 | # first we define all of the options common to all HP-UX releases |
@@ -417,6 +592,8 @@ mips-sony-bsd|mips-sony-newsos4) | |||
417 | AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel]) | 592 | AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel]) |
418 | AC_DEFINE(HAVE_ATTRIBUTE__BOUNDED__, 1, [OpenBSD's gcc has bounded]) | 593 | AC_DEFINE(HAVE_ATTRIBUTE__BOUNDED__, 1, [OpenBSD's gcc has bounded]) |
419 | AC_DEFINE(SSH_TUN_OPENBSD, 1, [Open tunnel devices the OpenBSD way]) | 594 | AC_DEFINE(SSH_TUN_OPENBSD, 1, [Open tunnel devices the OpenBSD way]) |
595 | AC_DEFINE(SYSLOG_R_SAFE_IN_SIGHAND, 1, | ||
596 | [syslog_r function is safe to use in in a signal handler]) | ||
420 | ;; | 597 | ;; |
421 | *-*-solaris*) | 598 | *-*-solaris*) |
422 | if test "x$withval" != "xno" ; then | 599 | if test "x$withval" != "xno" ; then |
@@ -436,6 +613,8 @@ mips-sony-bsd|mips-sony-newsos4) | |||
436 | AC_DEFINE(SSHD_ACQUIRES_CTTY, 1, | 613 | AC_DEFINE(SSHD_ACQUIRES_CTTY, 1, |
437 | [Define if sshd somehow reacquires a controlling TTY | 614 | [Define if sshd somehow reacquires a controlling TTY |
438 | after setsid()]) | 615 | after setsid()]) |
616 | AC_DEFINE(PASSWD_NEEDS_USERNAME, 1, [must supply username to passwd | ||
617 | in case the name is longer than 8 chars]) | ||
439 | external_path_file=/etc/default/login | 618 | external_path_file=/etc/default/login |
440 | # hardwire lastlog location (can't detect it on some versions) | 619 | # hardwire lastlog location (can't detect it on some versions) |
441 | conf_lastlog_location="/var/adm/lastlog" | 620 | conf_lastlog_location="/var/adm/lastlog" |
@@ -449,6 +628,17 @@ mips-sony-bsd|mips-sony-newsos4) | |||
449 | else | 628 | else |
450 | AC_MSG_RESULT(no) | 629 | AC_MSG_RESULT(no) |
451 | fi | 630 | fi |
631 | AC_ARG_WITH(solaris-contracts, | ||
632 | [ --with-solaris-contracts Enable Solaris process contracts (experimental)], | ||
633 | [ | ||
634 | AC_CHECK_LIB(contract, ct_tmpl_activate, | ||
635 | [ AC_DEFINE(USE_SOLARIS_PROCESS_CONTRACTS, 1, | ||
636 | [Define if you have Solaris process contracts]) | ||
637 | SSHDLIBS="$SSHDLIBS -lcontract" | ||
638 | AC_SUBST(SSHDLIBS) | ||
639 | SPC_MSG="yes" ], ) | ||
640 | ], | ||
641 | ) | ||
452 | ;; | 642 | ;; |
453 | *-*-sunos4*) | 643 | *-*-sunos4*) |
454 | CPPFLAGS="$CPPFLAGS -DSUNOS4" | 644 | CPPFLAGS="$CPPFLAGS -DSUNOS4" |
@@ -486,7 +676,6 @@ mips-sony-bsd|mips-sony-newsos4) | |||
486 | ;; | 676 | ;; |
487 | # UnixWare 1.x, UnixWare 2.x, and others based on code from Univel. | 677 | # UnixWare 1.x, UnixWare 2.x, and others based on code from Univel. |
488 | *-*-sysv4.2*) | 678 | *-*-sysv4.2*) |
489 | CFLAGS="$CFLAGS -Dva_list=_VA_LIST" | ||
490 | AC_DEFINE(USE_PIPES) | 679 | AC_DEFINE(USE_PIPES) |
491 | AC_DEFINE(SETEUID_BREAKS_SETUID) | 680 | AC_DEFINE(SETEUID_BREAKS_SETUID) |
492 | AC_DEFINE(BROKEN_SETREUID) | 681 | AC_DEFINE(BROKEN_SETREUID) |
@@ -508,6 +697,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
508 | TEST_SHELL=/u95/bin/sh | 697 | TEST_SHELL=/u95/bin/sh |
509 | AC_DEFINE(BROKEN_LIBIAF, 1, | 698 | AC_DEFINE(BROKEN_LIBIAF, 1, |
510 | [ia_uinfo routines not supported by OS yet]) | 699 | [ia_uinfo routines not supported by OS yet]) |
700 | AC_DEFINE(BROKEN_UPDWTMPX) | ||
511 | ;; | 701 | ;; |
512 | *) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") | 702 | *) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") |
513 | ;; | 703 | ;; |
@@ -597,6 +787,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
597 | system's login() call]) | 787 | system's login() call]) |
598 | AC_DEFINE(DISABLE_FD_PASSING) | 788 | AC_DEFINE(DISABLE_FD_PASSING) |
599 | LIBS="$LIBS -lsecurity -ldb -lm -laud" | 789 | LIBS="$LIBS -lsecurity -ldb -lm -laud" |
790 | SIA_MSG="yes" | ||
600 | else | 791 | else |
601 | AC_MSG_RESULT(no) | 792 | AC_MSG_RESULT(no) |
602 | AC_DEFINE(LOCKED_PASSWD_SUBSTR, "Nologin", | 793 | AC_DEFINE(LOCKED_PASSWD_SUBSTR, "Nologin", |
@@ -616,6 +807,8 @@ mips-sony-bsd|mips-sony-newsos4) | |||
616 | AC_DEFINE(MISSING_HOWMANY, 1, [Define on *nto-qnx systems]) | 807 | AC_DEFINE(MISSING_HOWMANY, 1, [Define on *nto-qnx systems]) |
617 | AC_DEFINE(MISSING_FD_MASK, 1, [Define on *nto-qnx systems]) | 808 | AC_DEFINE(MISSING_FD_MASK, 1, [Define on *nto-qnx systems]) |
618 | AC_DEFINE(DISABLE_LASTLOG) | 809 | AC_DEFINE(DISABLE_LASTLOG) |
810 | AC_DEFINE(SSHD_ACQUIRES_CTTY) | ||
811 | enable_etc_default_login=no # has incompatible /etc/default/login | ||
619 | ;; | 812 | ;; |
620 | 813 | ||
621 | *-*-ultrix*) | 814 | *-*-ultrix*) |
@@ -632,55 +825,6 @@ mips-sony-bsd|mips-sony-newsos4) | |||
632 | ;; | 825 | ;; |
633 | esac | 826 | esac |
634 | 827 | ||
635 | # Allow user to specify flags | ||
636 | AC_ARG_WITH(cflags, | ||
637 | [ --with-cflags Specify additional flags to pass to compiler], | ||
638 | [ | ||
639 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
640 | test "x${withval}" != "xyes"; then | ||
641 | CFLAGS="$CFLAGS $withval" | ||
642 | fi | ||
643 | ] | ||
644 | ) | ||
645 | AC_ARG_WITH(cppflags, | ||
646 | [ --with-cppflags Specify additional flags to pass to preprocessor] , | ||
647 | [ | ||
648 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
649 | test "x${withval}" != "xyes"; then | ||
650 | CPPFLAGS="$CPPFLAGS $withval" | ||
651 | fi | ||
652 | ] | ||
653 | ) | ||
654 | AC_ARG_WITH(ldflags, | ||
655 | [ --with-ldflags Specify additional flags to pass to linker], | ||
656 | [ | ||
657 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
658 | test "x${withval}" != "xyes"; then | ||
659 | LDFLAGS="$LDFLAGS $withval" | ||
660 | fi | ||
661 | ] | ||
662 | ) | ||
663 | AC_ARG_WITH(libs, | ||
664 | [ --with-libs Specify additional libraries to link with], | ||
665 | [ | ||
666 | if test -n "$withval" && test "x$withval" != "xno" && \ | ||
667 | test "x${withval}" != "xyes"; then | ||
668 | LIBS="$LIBS $withval" | ||
669 | fi | ||
670 | ] | ||
671 | ) | ||
672 | AC_ARG_WITH(Werror, | ||
673 | [ --with-Werror Build main code with -Werror], | ||
674 | [ | ||
675 | if test -n "$withval" && test "x$withval" != "xno"; then | ||
676 | werror_flags="-Werror" | ||
677 | if test "x${withval}" != "xyes"; then | ||
678 | werror_flags="$withval" | ||
679 | fi | ||
680 | fi | ||
681 | ] | ||
682 | ) | ||
683 | |||
684 | AC_MSG_CHECKING(compiler and flags for sanity) | 828 | AC_MSG_CHECKING(compiler and flags for sanity) |
685 | AC_RUN_IFELSE( | 829 | AC_RUN_IFELSE( |
686 | [AC_LANG_SOURCE([ | 830 | [AC_LANG_SOURCE([ |
@@ -696,79 +840,6 @@ int main(){exit(0);} | |||
696 | ) | 840 | ) |
697 | 841 | ||
698 | dnl Checks for header files. | 842 | dnl Checks for header files. |
699 | AC_CHECK_HEADERS( \ | ||
700 | bstring.h \ | ||
701 | crypt.h \ | ||
702 | dirent.h \ | ||
703 | endian.h \ | ||
704 | features.h \ | ||
705 | floatingpoint.h \ | ||
706 | getopt.h \ | ||
707 | glob.h \ | ||
708 | ia.h \ | ||
709 | iaf.h \ | ||
710 | limits.h \ | ||
711 | login.h \ | ||
712 | login_cap.h \ | ||
713 | maillock.h \ | ||
714 | ndir.h \ | ||
715 | netdb.h \ | ||
716 | netgroup.h \ | ||
717 | pam/pam_appl.h \ | ||
718 | paths.h \ | ||
719 | pty.h \ | ||
720 | readpassphrase.h \ | ||
721 | rpc/types.h \ | ||
722 | security/pam_appl.h \ | ||
723 | shadow.h \ | ||
724 | stddef.h \ | ||
725 | stdint.h \ | ||
726 | string.h \ | ||
727 | strings.h \ | ||
728 | sys/audit.h \ | ||
729 | sys/bitypes.h \ | ||
730 | sys/bsdtty.h \ | ||
731 | sys/cdefs.h \ | ||
732 | sys/dir.h \ | ||
733 | sys/mman.h \ | ||
734 | sys/ndir.h \ | ||
735 | sys/prctl.h \ | ||
736 | sys/pstat.h \ | ||
737 | sys/select.h \ | ||
738 | sys/stat.h \ | ||
739 | sys/stream.h \ | ||
740 | sys/stropts.h \ | ||
741 | sys/strtio.h \ | ||
742 | sys/sysmacros.h \ | ||
743 | sys/time.h \ | ||
744 | sys/timers.h \ | ||
745 | sys/un.h \ | ||
746 | time.h \ | ||
747 | tmpdir.h \ | ||
748 | ttyent.h \ | ||
749 | unistd.h \ | ||
750 | usersec.h \ | ||
751 | util.h \ | ||
752 | utime.h \ | ||
753 | utmp.h \ | ||
754 | utmpx.h \ | ||
755 | vis.h \ | ||
756 | ) | ||
757 | |||
758 | # lastlog.h requires sys/time.h to be included first on Solaris | ||
759 | AC_CHECK_HEADERS(lastlog.h, [], [], [ | ||
760 | #ifdef HAVE_SYS_TIME_H | ||
761 | # include <sys/time.h> | ||
762 | #endif | ||
763 | ]) | ||
764 | |||
765 | # sys/ptms.h requires sys/stream.h to be included first on Solaris | ||
766 | AC_CHECK_HEADERS(sys/ptms.h, [], [], [ | ||
767 | #ifdef HAVE_SYS_STREAM_H | ||
768 | # include <sys/stream.h> | ||
769 | #endif | ||
770 | ]) | ||
771 | |||
772 | # Checks for libraries. | 843 | # Checks for libraries. |
773 | AC_CHECK_FUNC(yp_match, , AC_CHECK_LIB(nsl, yp_match)) | 844 | AC_CHECK_FUNC(yp_match, , AC_CHECK_LIB(nsl, yp_match)) |
774 | AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt)) | 845 | AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt)) |
@@ -953,11 +1024,9 @@ AC_EGREP_CPP(FOUNDIT, | |||
953 | 1024 | ||
954 | # Check for g.gl_matchc glob() extension | 1025 | # Check for g.gl_matchc glob() extension |
955 | AC_MSG_CHECKING(for gl_matchc field in glob_t) | 1026 | AC_MSG_CHECKING(for gl_matchc field in glob_t) |
956 | AC_EGREP_CPP(FOUNDIT, | 1027 | AC_TRY_COMPILE( |
957 | [ | 1028 | [ #include <glob.h> ], |
958 | #include <glob.h> | 1029 | [glob_t g; g.gl_matchc = 1;], |
959 | int main(void){glob_t g; g.gl_matchc = 1;} | ||
960 | ], | ||
961 | [ | 1030 | [ |
962 | AC_DEFINE(GLOB_HAS_GL_MATCHC, 1, | 1031 | AC_DEFINE(GLOB_HAS_GL_MATCHC, 1, |
963 | [Define if your system glob() function has | 1032 | [Define if your system glob() function has |
@@ -969,6 +1038,8 @@ AC_EGREP_CPP(FOUNDIT, | |||
969 | ] | 1038 | ] |
970 | ) | 1039 | ) |
971 | 1040 | ||
1041 | AC_CHECK_DECLS(GLOB_NOMATCH, , , [#include <glob.h>]) | ||
1042 | |||
972 | AC_MSG_CHECKING([whether struct dirent allocates space for d_name]) | 1043 | AC_MSG_CHECKING([whether struct dirent allocates space for d_name]) |
973 | AC_RUN_IFELSE( | 1044 | AC_RUN_IFELSE( |
974 | [AC_LANG_SOURCE([[ | 1045 | [AC_LANG_SOURCE([[ |
@@ -1150,7 +1221,13 @@ AC_ARG_WITH(audit, | |||
1150 | AUDIT_MODULE=bsm | 1221 | AUDIT_MODULE=bsm |
1151 | dnl Checks for headers, libs and functions | 1222 | dnl Checks for headers, libs and functions |
1152 | AC_CHECK_HEADERS(bsm/audit.h, [], | 1223 | AC_CHECK_HEADERS(bsm/audit.h, [], |
1153 | [AC_MSG_ERROR(BSM enabled and bsm/audit.h not found)]) | 1224 | [AC_MSG_ERROR(BSM enabled and bsm/audit.h not found)], |
1225 | [ | ||
1226 | #ifdef HAVE_TIME_H | ||
1227 | # include <time.h> | ||
1228 | #endif | ||
1229 | ] | ||
1230 | ) | ||
1154 | AC_CHECK_LIB(bsm, getaudit, [], | 1231 | AC_CHECK_LIB(bsm, getaudit, [], |
1155 | [AC_MSG_ERROR(BSM enabled and required library not found)]) | 1232 | [AC_MSG_ERROR(BSM enabled and required library not found)]) |
1156 | AC_CHECK_FUNCS(getaudit, [], | 1233 | AC_CHECK_FUNCS(getaudit, [], |
@@ -1296,6 +1373,29 @@ AC_CHECK_DECL(tcsendbreak, | |||
1296 | 1373 | ||
1297 | AC_CHECK_DECLS(h_errno, , ,[#include <netdb.h>]) | 1374 | AC_CHECK_DECLS(h_errno, , ,[#include <netdb.h>]) |
1298 | 1375 | ||
1376 | AC_CHECK_DECLS(SHUT_RD, , , | ||
1377 | [ | ||
1378 | #include <sys/types.h> | ||
1379 | #include <sys/socket.h> | ||
1380 | ]) | ||
1381 | |||
1382 | AC_CHECK_DECLS(O_NONBLOCK, , , | ||
1383 | [ | ||
1384 | #include <sys/types.h> | ||
1385 | #ifdef HAVE_SYS_STAT_H | ||
1386 | # include <sys/stat.h> | ||
1387 | #endif | ||
1388 | #ifdef HAVE_FCNTL_H | ||
1389 | # include <fcntl.h> | ||
1390 | #endif | ||
1391 | ]) | ||
1392 | |||
1393 | AC_CHECK_DECLS(writev, , , [ | ||
1394 | #include <sys/types.h> | ||
1395 | #include <sys/uio.h> | ||
1396 | #include <unistd.h> | ||
1397 | ]) | ||
1398 | |||
1299 | AC_CHECK_FUNCS(setresuid, [ | 1399 | AC_CHECK_FUNCS(setresuid, [ |
1300 | dnl Some platorms have setresuid that isn't implemented, test for this | 1400 | dnl Some platorms have setresuid that isn't implemented, test for this |
1301 | AC_MSG_CHECKING(if setresuid seems to work) | 1401 | AC_MSG_CHECKING(if setresuid seems to work) |
@@ -1666,61 +1766,6 @@ fi | |||
1666 | 1766 | ||
1667 | AC_FUNC_GETPGRP | 1767 | AC_FUNC_GETPGRP |
1668 | 1768 | ||
1669 | # Check for PAM libs | ||
1670 | PAM_MSG="no" | ||
1671 | AC_ARG_WITH(pam, | ||
1672 | [ --with-pam Enable PAM support ], | ||
1673 | [ | ||
1674 | if test "x$withval" != "xno" ; then | ||
1675 | if test "x$ac_cv_header_security_pam_appl_h" != "xyes" && \ | ||
1676 | test "x$ac_cv_header_pam_pam_appl_h" != "xyes" ; then | ||
1677 | AC_MSG_ERROR([PAM headers not found]) | ||
1678 | fi | ||
1679 | |||
1680 | AC_CHECK_LIB(dl, dlopen, , ) | ||
1681 | AC_CHECK_LIB(pam, pam_set_item, , AC_MSG_ERROR([*** libpam missing])) | ||
1682 | AC_CHECK_FUNCS(pam_getenvlist) | ||
1683 | AC_CHECK_FUNCS(pam_putenv) | ||
1684 | |||
1685 | PAM_MSG="yes" | ||
1686 | |||
1687 | AC_DEFINE(USE_PAM, 1, | ||
1688 | [Define if you want to enable PAM support]) | ||
1689 | if test $ac_cv_lib_dl_dlopen = yes; then | ||
1690 | LIBPAM="-lpam -ldl" | ||
1691 | else | ||
1692 | LIBPAM="-lpam" | ||
1693 | fi | ||
1694 | AC_SUBST(LIBPAM) | ||
1695 | fi | ||
1696 | ] | ||
1697 | ) | ||
1698 | |||
1699 | # Check for older PAM | ||
1700 | if test "x$PAM_MSG" = "xyes" ; then | ||
1701 | # Check PAM strerror arguments (old PAM) | ||
1702 | AC_MSG_CHECKING([whether pam_strerror takes only one argument]) | ||
1703 | AC_TRY_COMPILE( | ||
1704 | [ | ||
1705 | #include <stdlib.h> | ||
1706 | #if defined(HAVE_SECURITY_PAM_APPL_H) | ||
1707 | #include <security/pam_appl.h> | ||
1708 | #elif defined (HAVE_PAM_PAM_APPL_H) | ||
1709 | #include <pam/pam_appl.h> | ||
1710 | #endif | ||
1711 | ], | ||
1712 | [(void)pam_strerror((pam_handle_t *)NULL, -1);], | ||
1713 | [AC_MSG_RESULT(no)], | ||
1714 | [ | ||
1715 | AC_DEFINE(HAVE_OLD_PAM, 1, | ||
1716 | [Define if you have an old version of PAM | ||
1717 | which takes only one argument to pam_strerror]) | ||
1718 | AC_MSG_RESULT(yes) | ||
1719 | PAM_MSG="yes (old library)" | ||
1720 | ] | ||
1721 | ) | ||
1722 | fi | ||
1723 | |||
1724 | # Search for OpenSSL | 1769 | # Search for OpenSSL |
1725 | saved_CPPFLAGS="$CPPFLAGS" | 1770 | saved_CPPFLAGS="$CPPFLAGS" |
1726 | saved_LDFLAGS="$LDFLAGS" | 1771 | saved_LDFLAGS="$LDFLAGS" |
@@ -1844,6 +1889,14 @@ int main(void) { | |||
1844 | ] | 1889 | ] |
1845 | ) | 1890 | ) |
1846 | 1891 | ||
1892 | AC_ARG_WITH(openssl-header-check, | ||
1893 | [ --without-openssl-header-check Disable OpenSSL version consistency check], | ||
1894 | [ if test "x$withval" = "xno" ; then | ||
1895 | openssl_check_nonfatal=1 | ||
1896 | fi | ||
1897 | ] | ||
1898 | ) | ||
1899 | |||
1847 | # Sanity check OpenSSL headers | 1900 | # Sanity check OpenSSL headers |
1848 | AC_MSG_CHECKING([whether OpenSSL's headers match the library]) | 1901 | AC_MSG_CHECKING([whether OpenSSL's headers match the library]) |
1849 | AC_RUN_IFELSE( | 1902 | AC_RUN_IFELSE( |
@@ -1857,18 +1910,75 @@ int main(void) { exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); } | |||
1857 | ], | 1910 | ], |
1858 | [ | 1911 | [ |
1859 | AC_MSG_RESULT(no) | 1912 | AC_MSG_RESULT(no) |
1860 | AC_MSG_ERROR([Your OpenSSL headers do not match your library. | 1913 | if test "x$openssl_check_nonfatal" = "x"; then |
1861 | Check config.log for details. | 1914 | AC_MSG_ERROR([Your OpenSSL headers do not match your |
1915 | library. Check config.log for details. | ||
1916 | If you are sure your installation is consistent, you can disable the check | ||
1917 | by running "./configure --without-openssl-header-check". | ||
1918 | Also see contrib/findssl.sh for help identifying header/library mismatches. | ||
1919 | ]) | ||
1920 | else | ||
1921 | AC_MSG_WARN([Your OpenSSL headers do not match your | ||
1922 | library. Check config.log for details. | ||
1862 | Also see contrib/findssl.sh for help identifying header/library mismatches.]) | 1923 | Also see contrib/findssl.sh for help identifying header/library mismatches.]) |
1924 | fi | ||
1863 | ], | 1925 | ], |
1864 | [ | 1926 | [ |
1865 | AC_MSG_WARN([cross compiling: not checking]) | 1927 | AC_MSG_WARN([cross compiling: not checking]) |
1866 | ] | 1928 | ] |
1867 | ) | 1929 | ) |
1868 | 1930 | ||
1931 | AC_MSG_CHECKING([if programs using OpenSSL functions will link]) | ||
1932 | AC_LINK_IFELSE( | ||
1933 | [AC_LANG_SOURCE([[ | ||
1934 | #include <openssl/evp.h> | ||
1935 | int main(void) { SSLeay_add_all_algorithms(); } | ||
1936 | ]])], | ||
1937 | [ | ||
1938 | AC_MSG_RESULT(yes) | ||
1939 | ], | ||
1940 | [ | ||
1941 | AC_MSG_RESULT(no) | ||
1942 | saved_LIBS="$LIBS" | ||
1943 | LIBS="$LIBS -ldl" | ||
1944 | AC_MSG_CHECKING([if programs using OpenSSL need -ldl]) | ||
1945 | AC_LINK_IFELSE( | ||
1946 | [AC_LANG_SOURCE([[ | ||
1947 | #include <openssl/evp.h> | ||
1948 | int main(void) { SSLeay_add_all_algorithms(); } | ||
1949 | ]])], | ||
1950 | [ | ||
1951 | AC_MSG_RESULT(yes) | ||
1952 | ], | ||
1953 | [ | ||
1954 | AC_MSG_RESULT(no) | ||
1955 | LIBS="$saved_LIBS" | ||
1956 | ] | ||
1957 | ) | ||
1958 | ] | ||
1959 | ) | ||
1960 | |||
1961 | AC_ARG_WITH(ssl-engine, | ||
1962 | [ --with-ssl-engine Enable OpenSSL (hardware) ENGINE support ], | ||
1963 | [ if test "x$withval" != "xno" ; then | ||
1964 | AC_MSG_CHECKING(for OpenSSL ENGINE support) | ||
1965 | AC_TRY_COMPILE( | ||
1966 | [ #include <openssl/engine.h>], | ||
1967 | [ | ||
1968 | ENGINE_load_builtin_engines();ENGINE_register_all_complete(); | ||
1969 | ], | ||
1970 | [ AC_MSG_RESULT(yes) | ||
1971 | AC_DEFINE(USE_OPENSSL_ENGINE, 1, | ||
1972 | [Enable OpenSSL engine support]) | ||
1973 | ], | ||
1974 | [ AC_MSG_ERROR(OpenSSL ENGINE support not found)] | ||
1975 | ) | ||
1976 | fi ] | ||
1977 | ) | ||
1978 | |||
1869 | # Check for OpenSSL without EVP_aes_{192,256}_cbc | 1979 | # Check for OpenSSL without EVP_aes_{192,256}_cbc |
1870 | AC_MSG_CHECKING([whether OpenSSL has crippled AES support]) | 1980 | AC_MSG_CHECKING([whether OpenSSL has crippled AES support]) |
1871 | AC_COMPILE_IFELSE( | 1981 | AC_LINK_IFELSE( |
1872 | [AC_LANG_SOURCE([[ | 1982 | [AC_LANG_SOURCE([[ |
1873 | #include <string.h> | 1983 | #include <string.h> |
1874 | #include <openssl/evp.h> | 1984 | #include <openssl/evp.h> |
@@ -1896,6 +2006,9 @@ if test "x$check_for_libcrypt_later" = "x1"; then | |||
1896 | AC_CHECK_LIB(crypt, crypt, LIBS="$LIBS -lcrypt") | 2006 | AC_CHECK_LIB(crypt, crypt, LIBS="$LIBS -lcrypt") |
1897 | fi | 2007 | fi |
1898 | 2008 | ||
2009 | # Search for SHA256 support in libc and/or OpenSSL | ||
2010 | AC_CHECK_FUNCS(SHA256_Update EVP_sha256) | ||
2011 | |||
1899 | AC_CHECK_LIB(iaf, ia_openinfo) | 2012 | AC_CHECK_LIB(iaf, ia_openinfo) |
1900 | 2013 | ||
1901 | ### Configure cryptographic random number support | 2014 | ### Configure cryptographic random number support |
@@ -1926,6 +2039,69 @@ int main(void) { exit(RAND_status() == 1 ? 0 : 1); } | |||
1926 | ] | 2039 | ] |
1927 | ) | 2040 | ) |
1928 | 2041 | ||
2042 | # Check for PAM libs | ||
2043 | PAM_MSG="no" | ||
2044 | AC_ARG_WITH(pam, | ||
2045 | [ --with-pam Enable PAM support ], | ||
2046 | [ | ||
2047 | if test "x$withval" != "xno" ; then | ||
2048 | if test "x$ac_cv_header_security_pam_appl_h" != "xyes" && \ | ||
2049 | test "x$ac_cv_header_pam_pam_appl_h" != "xyes" ; then | ||
2050 | AC_MSG_ERROR([PAM headers not found]) | ||
2051 | fi | ||
2052 | |||
2053 | saved_LIBS="$LIBS" | ||
2054 | AC_CHECK_LIB(dl, dlopen, , ) | ||
2055 | AC_CHECK_LIB(pam, pam_set_item, , AC_MSG_ERROR([*** libpam missing])) | ||
2056 | AC_CHECK_FUNCS(pam_getenvlist) | ||
2057 | AC_CHECK_FUNCS(pam_putenv) | ||
2058 | LIBS="$saved_LIBS" | ||
2059 | |||
2060 | PAM_MSG="yes" | ||
2061 | |||
2062 | LIBPAM="-lpam" | ||
2063 | AC_DEFINE(USE_PAM, 1, | ||
2064 | [Define if you want to enable PAM support]) | ||
2065 | |||
2066 | if test $ac_cv_lib_dl_dlopen = yes; then | ||
2067 | case "$LIBS" in | ||
2068 | *-ldl*) | ||
2069 | # libdl already in LIBS | ||
2070 | ;; | ||
2071 | *) | ||
2072 | LIBPAM="$LIBPAM -ldl" | ||
2073 | ;; | ||
2074 | esac | ||
2075 | fi | ||
2076 | AC_SUBST(LIBPAM) | ||
2077 | fi | ||
2078 | ] | ||
2079 | ) | ||
2080 | |||
2081 | # Check for older PAM | ||
2082 | if test "x$PAM_MSG" = "xyes" ; then | ||
2083 | # Check PAM strerror arguments (old PAM) | ||
2084 | AC_MSG_CHECKING([whether pam_strerror takes only one argument]) | ||
2085 | AC_TRY_COMPILE( | ||
2086 | [ | ||
2087 | #include <stdlib.h> | ||
2088 | #if defined(HAVE_SECURITY_PAM_APPL_H) | ||
2089 | #include <security/pam_appl.h> | ||
2090 | #elif defined (HAVE_PAM_PAM_APPL_H) | ||
2091 | #include <pam/pam_appl.h> | ||
2092 | #endif | ||
2093 | ], | ||
2094 | [(void)pam_strerror((pam_handle_t *)NULL, -1);], | ||
2095 | [AC_MSG_RESULT(no)], | ||
2096 | [ | ||
2097 | AC_DEFINE(HAVE_OLD_PAM, 1, | ||
2098 | [Define if you have an old version of PAM | ||
2099 | which takes only one argument to pam_strerror]) | ||
2100 | AC_MSG_RESULT(yes) | ||
2101 | PAM_MSG="yes (old library)" | ||
2102 | ] | ||
2103 | ) | ||
2104 | fi | ||
1929 | 2105 | ||
1930 | # Do we want to force the use of the rand helper? | 2106 | # Do we want to force the use of the rand helper? |
1931 | AC_ARG_WITH(rand-helper, | 2107 | AC_ARG_WITH(rand-helper, |
@@ -2145,6 +2321,34 @@ if test -z "$have_llong_max"; then | |||
2145 | #define __USE_ISOC99 | 2321 | #define __USE_ISOC99 |
2146 | #include <limits.h> | 2322 | #include <limits.h> |
2147 | #define DATA "conftest.llminmax" | 2323 | #define DATA "conftest.llminmax" |
2324 | #define my_abs(a) ((a) < 0 ? ((a) * -1) : (a)) | ||
2325 | |||
2326 | /* | ||
2327 | * printf in libc on some platforms (eg old Tru64) does not understand %lld so | ||
2328 | * we do this the hard way. | ||
2329 | */ | ||
2330 | static int | ||
2331 | fprint_ll(FILE *f, long long n) | ||
2332 | { | ||
2333 | unsigned int i; | ||
2334 | int l[sizeof(long long) * 8]; | ||
2335 | |||
2336 | if (n < 0) | ||
2337 | if (fprintf(f, "-") < 0) | ||
2338 | return -1; | ||
2339 | for (i = 0; n != 0; i++) { | ||
2340 | l[i] = my_abs(n % 10); | ||
2341 | n /= 10; | ||
2342 | } | ||
2343 | do { | ||
2344 | if (fprintf(f, "%d", l[--i]) < 0) | ||
2345 | return -1; | ||
2346 | } while (i != 0); | ||
2347 | if (fprintf(f, " ") < 0) | ||
2348 | return -1; | ||
2349 | return 0; | ||
2350 | } | ||
2351 | |||
2148 | int main(void) { | 2352 | int main(void) { |
2149 | FILE *f; | 2353 | FILE *f; |
2150 | long long i, llmin, llmax = 0; | 2354 | long long i, llmin, llmax = 0; |
@@ -2166,14 +2370,18 @@ int main(void) { | |||
2166 | 2370 | ||
2167 | /* Sanity check */ | 2371 | /* Sanity check */ |
2168 | if (llmin + 1 < llmin || llmin - 1 < llmin || llmax + 1 > llmax | 2372 | if (llmin + 1 < llmin || llmin - 1 < llmin || llmax + 1 > llmax |
2169 | || llmax - 1 > llmax) { | 2373 | || llmax - 1 > llmax || llmin == llmax || llmin == 0 |
2374 | || llmax == 0 || llmax < LONG_MAX || llmin > LONG_MIN) { | ||
2170 | fprintf(f, "unknown unknown\n"); | 2375 | fprintf(f, "unknown unknown\n"); |
2171 | exit(2); | 2376 | exit(2); |
2172 | } | 2377 | } |
2173 | 2378 | ||
2174 | if (fprintf(f ,"%lld %lld", llmin, llmax) < 0) | 2379 | if (fprint_ll(f, llmin) < 0) |
2175 | exit(3); | 2380 | exit(3); |
2176 | 2381 | if (fprint_ll(f, llmax) < 0) | |
2382 | exit(4); | ||
2383 | if (fclose(f) < 0) | ||
2384 | exit(5); | ||
2177 | exit(0); | 2385 | exit(0); |
2178 | } | 2386 | } |
2179 | ]])], | 2387 | ]])], |
@@ -2181,17 +2389,6 @@ int main(void) { | |||
2181 | llong_min=`$AWK '{print $1}' conftest.llminmax` | 2389 | llong_min=`$AWK '{print $1}' conftest.llminmax` |
2182 | llong_max=`$AWK '{print $2}' conftest.llminmax` | 2390 | llong_max=`$AWK '{print $2}' conftest.llminmax` |
2183 | 2391 | ||
2184 | # snprintf on some Tru64s doesn't understand "%lld" | ||
2185 | case "$host" in | ||
2186 | alpha-dec-osf*) | ||
2187 | if test "x$ac_cv_sizeof_long_long_int" = "x8" && | ||
2188 | test "x$llong_max" = "xld"; then | ||
2189 | llong_min="-9223372036854775808" | ||
2190 | llong_max="9223372036854775807" | ||
2191 | fi | ||
2192 | ;; | ||
2193 | esac | ||
2194 | |||
2195 | AC_MSG_RESULT($llong_max) | 2392 | AC_MSG_RESULT($llong_max) |
2196 | AC_DEFINE_UNQUOTED(LLONG_MAX, [${llong_max}LL], | 2393 | AC_DEFINE_UNQUOTED(LLONG_MAX, [${llong_max}LL], |
2197 | [max value of long long calculated by configure]) | 2394 | [max value of long long calculated by configure]) |
@@ -2937,7 +3134,7 @@ AC_ARG_WITH(opensc, | |||
2937 | LIBOPENSC_CFLAGS=`$OPENSC_CONFIG --cflags` | 3134 | LIBOPENSC_CFLAGS=`$OPENSC_CONFIG --cflags` |
2938 | LIBOPENSC_LIBS=`$OPENSC_CONFIG --libs` | 3135 | LIBOPENSC_LIBS=`$OPENSC_CONFIG --libs` |
2939 | CPPFLAGS="$CPPFLAGS $LIBOPENSC_CFLAGS" | 3136 | CPPFLAGS="$CPPFLAGS $LIBOPENSC_CFLAGS" |
2940 | LDFLAGS="$LDFLAGS $LIBOPENSC_LIBS" | 3137 | LIBS="$LIBS $LIBOPENSC_LIBS" |
2941 | AC_DEFINE(SMARTCARD) | 3138 | AC_DEFINE(SMARTCARD) |
2942 | AC_DEFINE(USE_OPENSC, 1, | 3139 | AC_DEFINE(USE_OPENSC, 1, |
2943 | [Define if you want smartcard support | 3140 | [Define if you want smartcard support |
@@ -2989,22 +3186,20 @@ int main() | |||
2989 | SELINUX_MSG="no" | 3186 | SELINUX_MSG="no" |
2990 | LIBSELINUX="" | 3187 | LIBSELINUX="" |
2991 | AC_ARG_WITH(selinux, | 3188 | AC_ARG_WITH(selinux, |
2992 | [ --with-selinux[[=LIBSELINUX-PATH]] Enable SELinux support], | 3189 | [ --with-selinux Enable SELinux support], |
2993 | [ if test "x$withval" != "xno" ; then | 3190 | [ if test "x$withval" != "xno" ; then |
2994 | if test "x$withval" != "xyes"; then | ||
2995 | CPPFLAGS="$CPPFLAGS -I${withval}/include" | ||
2996 | if test -n "${need_dash_r}"; then | ||
2997 | LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" | ||
2998 | else | ||
2999 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" | ||
3000 | fi | ||
3001 | fi | ||
3002 | AC_DEFINE(WITH_SELINUX,1,[Define if you want SELinux support.]) | 3191 | AC_DEFINE(WITH_SELINUX,1,[Define if you want SELinux support.]) |
3003 | SELINUX_MSG="yes" | 3192 | SELINUX_MSG="yes" |
3004 | AC_CHECK_HEADERS(selinux/selinux.h) | 3193 | AC_CHECK_HEADER([selinux/selinux.h], , |
3005 | LIBSELINUX="-lselinux" | 3194 | AC_MSG_ERROR(SELinux support requires selinux.h header)) |
3006 | fi | 3195 | AC_CHECK_LIB(selinux, setexeccon, [ LIBSELINUX="-lselinux" ], |
3007 | ]) | 3196 | AC_MSG_ERROR(SELinux support requires libselinux library)) |
3197 | save_LIBS="$LIBS" | ||
3198 | LIBS="$LIBS $LIBSELINUX" | ||
3199 | AC_CHECK_FUNCS(getseuserbyname get_default_context_with_level) | ||
3200 | LIBS="$save_LIBS" | ||
3201 | fi ] | ||
3202 | ) | ||
3008 | AC_SUBST(LIBSELINUX) | 3203 | AC_SUBST(LIBSELINUX) |
3009 | 3204 | ||
3010 | # Check whether user wants Kerberos 5 support | 3205 | # Check whether user wants Kerberos 5 support |
@@ -3769,20 +3964,13 @@ if test ! -z "$blibpath" ; then | |||
3769 | AC_MSG_WARN([Please check and edit blibpath in LDFLAGS in Makefile]) | 3964 | AC_MSG_WARN([Please check and edit blibpath in LDFLAGS in Makefile]) |
3770 | fi | 3965 | fi |
3771 | 3966 | ||
3772 | dnl remove pam and dl because they are in $LIBPAM | ||
3773 | if test "$PAM_MSG" = yes ; then | ||
3774 | LIBS=`echo $LIBS | sed 's/-lpam //'` | ||
3775 | fi | ||
3776 | if test "$ac_cv_lib_pam_pam_set_item" = yes ; then | ||
3777 | LIBS=`echo $LIBS | sed 's/-ldl //'` | ||
3778 | fi | ||
3779 | |||
3780 | dnl Adding -Werror to CFLAGS early prevents configure tests from running. | 3967 | dnl Adding -Werror to CFLAGS early prevents configure tests from running. |
3781 | dnl Add now. | 3968 | dnl Add now. |
3782 | CFLAGS="$CFLAGS $werror_flags" | 3969 | CFLAGS="$CFLAGS $werror_flags" |
3783 | 3970 | ||
3784 | AC_EXEEXT | 3971 | AC_EXEEXT |
3785 | AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openbsd-compat/Makefile \ | 3972 | AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \ |
3973 | openbsd-compat/Makefile openbsd-compat/regress/Makefile \ | ||
3786 | scard/Makefile ssh_prng_cmds survey.sh]) | 3974 | scard/Makefile ssh_prng_cmds survey.sh]) |
3787 | AC_OUTPUT | 3975 | AC_OUTPUT |
3788 | 3976 | ||
@@ -3824,6 +4012,7 @@ echo " sshd superuser user PATH: $J" | |||
3824 | fi | 4012 | fi |
3825 | echo " Manpage format: $MANTYPE" | 4013 | echo " Manpage format: $MANTYPE" |
3826 | echo " PAM support: $PAM_MSG" | 4014 | echo " PAM support: $PAM_MSG" |
4015 | echo " OSF SIA support: $SIA_MSG" | ||
3827 | echo " KerberosV support: $KRB5_MSG" | 4016 | echo " KerberosV support: $KRB5_MSG" |
3828 | echo " SELinux support: $SELINUX_MSG" | 4017 | echo " SELinux support: $SELINUX_MSG" |
3829 | echo " Smartcard support: $SCARD_MSG" | 4018 | echo " Smartcard support: $SCARD_MSG" |
@@ -3831,6 +4020,7 @@ echo " S/KEY support: $SKEY_MSG" | |||
3831 | echo " TCP Wrappers support: $TCPW_MSG" | 4020 | echo " TCP Wrappers support: $TCPW_MSG" |
3832 | echo " MD5 password support: $MD5_MSG" | 4021 | echo " MD5 password support: $MD5_MSG" |
3833 | echo " libedit support: $LIBEDIT_MSG" | 4022 | echo " libedit support: $LIBEDIT_MSG" |
4023 | echo " Solaris process contract support: $SPC_MSG" | ||
3834 | echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG" | 4024 | echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG" |
3835 | echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG" | 4025 | echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG" |
3836 | echo " BSD Auth support: $BSD_AUTH_MSG" | 4026 | echo " BSD Auth support: $BSD_AUTH_MSG" |