aboutsummaryrefslogtreecommitdiff
path: root/x11/xinit
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2007-07-13 22:42:52 +0000
committerEric Anholt <anholt@FreeBSD.org>2007-07-13 22:42:52 +0000
commitd54abb16630d0576081f7f813252a33a00af5974 (patch)
tree5fe82a76217c1113e7c4200ef69b105bfa97c490 /x11/xinit
parent6258e3669e951af22dee3404b8220d6d191f854e (diff)
downloadports-d54abb16630d0576081f7f813252a33a00af5974.tar.gz
ports-d54abb16630d0576081f7f813252a33a00af5974.zip
xinit: Add a patch to generate the magic cookie for authentication
This should fix many authentication issues (sometimes manifesting as a plain root weave and cursor but no apps on startx), particularly when ssh X11 forwarding is involved. This issue appears to have existed since XFree86 4.3.
Notes
Notes: svn path=/head/; revision=195537
Diffstat (limited to 'x11/xinit')
-rw-r--r--x11/xinit/Makefile1
-rw-r--r--x11/xinit/files/patch-startx.cpp48
2 files changed, 49 insertions, 0 deletions
diff --git a/x11/xinit/Makefile b/x11/xinit/Makefile
index 4472e892dd17..43fcab666025 100644
--- a/x11/xinit/Makefile
+++ b/x11/xinit/Makefile
@@ -7,6 +7,7 @@
PORTNAME= xinit
PORTVERSION= 1.0.4
+PORTREVISION= 1
CATEGORIES= x11
MAINTAINER= x11@FreeBSD.org
diff --git a/x11/xinit/files/patch-startx.cpp b/x11/xinit/files/patch-startx.cpp
new file mode 100644
index 000000000000..8da9ac250d83
--- /dev/null
+++ b/x11/xinit/files/patch-startx.cpp
@@ -0,0 +1,48 @@
+commit fc6cc81be41af58ffd996994e1325dd072a9ab34
+Author: Eric Anholt <eric@anholt.net>
+Date: Fri Jul 13 15:34:43 2007 -0700
+
+ Use /dev/random to generate the cookie if mcookie is unavailable.
+
+ Setting XAUTHORITY without having actually generated a cookie and created
+ .Xauthority led to issues if somebody like ssh later came around and made the
+ .Xauthority file for their own setup. So, simply make it so that we never
+ fail to create one.
+
+diff --git a/startx.cpp b/startx.cpp
+index eba83b8..f4e24fd 100644
+--- startx.cpp
++++ startx.cpp
+@@ -170,7 +170,6 @@ fi
+
+ removelist=
+
+-#if defined(HAS_COOKIE_MAKER) && defined(MK_COOKIE)
+ XCOMM set up default Xauth info for this machine
+ case `uname` in
+ Linux*)
+@@ -186,7 +185,15 @@ Linux*)
+ esac
+
+ authdisplay=${display:-:0}
++#if defined(HAS_COOKIE_MAKER) && defined(MK_COOKIE)
+ mcookie=`MK_COOKIE`
++#else
++mcookie=`dd if=/dev/random bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"`
++if x"$mcookie" = x; then
++ echo "Couldn't create cookie"
++ exit 1
++fi
++#endif
+ dummy=0
+
+ XCOMM create a file with auth information for the server. ':0' is a dummy.
+@@ -215,8 +222,6 @@ EOF
+ fi
+ done
+
+-#endif
+-
+ #if defined(__SCO__) || defined(__UNIXWARE__)
+ if [ "$REMOTE_SERVER" = "TRUE" ]; then
+ exec SHELL_CMD ${client}