From 14ea26b8dc0c601e445331e09a4cc9ca082a1345 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Sat, 3 Aug 2013 00:15:34 -0700 Subject: Check for openssl as mkcookie fallback on all platforms, not just OpenBSD Configure will notify the builder which cookie maker it chooses, so that packagers can add a dependency on the program needed. (Matthieu says the -hex flag to the openssl command was originally OpenBSD-specific but has since been added in upstream OpenSSL.) Signed-off-by: Alan Coopersmith Reviewed-by: Thomas Klausner Reviewed-by: Matthieu Herrb --- configure.ac | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index c7fb0ab..0900bf1 100644 --- a/configure.ac +++ b/configure.ac @@ -153,17 +153,26 @@ esac AC_PATH_PROGS(MCOOKIE, [mcookie], [$MCOOKIE], [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/local/bin]) -case $host_os in - *openbsd*) - MCOOKIE='/usr/sbin/openssl rand -hex 16' - ;; - *solaris*) - MCOOKIE="/usr/bin/od -X -A n -N 16 /dev/urandom | /usr/bin/tr -d ' '" - ;; -esac - +# If mcookie not found, try openssl, else per-system fallbacks +if test "x$MCOOKIE" = x ; then + AC_PATH_PROGS(OPENSSL, [openssl], [$OPENSSL], + [$PATH:/bin:/usr/bin:/usr/sbin:/usr/lib:/usr/libexec:/usr/local/bin]) + if test "x$OPENSSL" != x ; then + MCOOKIE="$OPENSSL rand -hex 16" + else + case $host_os in + *openbsd*) + MCOOKIE='/usr/sbin/openssl rand -hex 16' + ;; + *solaris*) + MCOOKIE="/usr/bin/od -X -A n -N 16 /dev/urandom | /usr/bin/tr -d ' '" + ;; + esac + fi +fi if test "x$MCOOKIE" != x ; then STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE="$(MCOOKIE)"' + AC_MSG_NOTICE([startx will depend on "$MCOOKIE" to generate xauth cookies]) fi AC_SUBST(STARTX_COOKIE_FLAGS) -- cgit v1.2.3