Imported Upstream version 2.6.1
[debian/amanda] / config / amanda / ssh-security.m4
1 # SYNOPSIS
2 #
3 #   AMANDA_SSH_SECURITY
4 #
5 # OVERVIEW
6 #
7 #   Handle configuration for SSH security, implementing the --with-ssh-security
8 #   option and checking for the relevant programs and options.  Defines and substitutes
9 #   SSH_SECURITY, searches for and defines SSH, and defines SSH_OPTIONS.
10 #
11 AC_DEFUN([AMANDA_SSH_SECURITY],
12 [
13     SSH_SECURITY=yes
14     AC_ARG_WITH(ssh-security,
15         AS_HELP_STRING([--with-ssh-security], 
16                 [include SSH authentication]),
17         [
18             case "$withval" in
19                 n | no) SSH_SECURITY=no ;;
20                 y |  ye | yes) SSH_SECURITY=yes ;;
21                 *) AC_MSG_ERROR([*** You must not supply an argument to --with-ssh-security.])
22               ;;
23             esac
24         ],
25     )
26
27     if test "x$SSH_SECURITY" = "xyes"; then
28         # find the SSH binary
29         AC_PATH_PROGS(SSH, ssh, , $LOCSYSPATH)
30
31         # see what options we should use
32         AC_ARG_WITH(ssh-options,
33             AS_HELP_STRING([ --with-ssh-options=@<:@OPTIONS@:>@],
34                [Use these ssh options for ssh security; the default should work]),
35             [ SSH_OPTIONS="$withval" ],
36             [ SSH_OPTIONS='' ]
37         )
38
39         case "$SSH_OPTIONS" in
40             y | ye | yes | n | no)
41                 AC_MSG_ERROR([*** You must supply an argument to --with-ssh-options.]);;
42             *) : ;;
43         esac
44
45         AC_MSG_CHECKING([SSH options])
46         # if we didn't get SSH options from the user, figure them out for ourselves
47         if test -z "$SSH_OPTIONS"; then
48             case `$SSH -V 2>&1` in
49                 OpenSSH*) SSH_OPTIONS='-x -o BatchMode=yes -o PreferredAuthentications=publickey';;
50                 *) SSH_OPTIONS='-x -o BatchMode=yes' ;;
51             esac
52         fi
53
54         # now convert that to a comma-separated list of C strings
55         eval "set dummy ${SSH_OPTIONS}"; shift
56         SSH_OPTIONS=''
57         for i in "${@}"; do 
58             quoted="\"`echo "$i" | sed -e 's/\"/\\\"/'`\""
59             SSH_OPTIONS="${SSH_OPTIONS}${SSH_OPTIONS:+, }$quoted"; 
60         done
61         AC_MSG_RESULT($SSH_OPTIONS)
62
63         # finally, make the various outputs for all of this
64         AC_DEFINE(SSH_SECURITY,1,
65                 [Define if SSH transport should be enabled. ])
66         AC_DEFINE_UNQUOTED(SSH, "$SSH", 
67                 [Path to the SSH binary])
68         AC_DEFINE_UNQUOTED(SSH_OPTIONS, $SSH_OPTIONS, 
69                 [Arguments to ssh])
70     fi
71     AM_CONDITIONAL(WANT_SSH_SECURITY, test x"$SSH_SECURITY" = x"yes")
72
73     AC_SUBST(SSH_SECURITY)
74     # (note -- don't just substitute SSH_OPTIONS -- shell quoting will break)
75 ])