[PATCH:xinit] Check for openssl as mkcookie fallback on all platforms, not just OpenBSD

Alan Coopersmith alan.coopersmith at oracle.com
Sat Aug 3 00:20:33 PDT 2013


Configure will notify the builder which cookie maker it chooses,
so that packagers can add a dependency on the program needed.

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 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)
 
-- 
1.7.9.2



More information about the xorg-devel mailing list