ports/73743: XOrg/XFree xauth add/startx problem

No Name arundel at h3c.de
Tue Nov 9 20:30:10 UTC 2004

>Number:         73743
>Category:       ports
>Synopsis:       XOrg/XFree xauth add/startx problem
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 09 20:30:09 GMT 2004
>Originator:     No Name
>Release:        FreeBSD 5.3-RELEASE i386
System: FreeBSD skatecity 5.3-RELEASE FreeBSD 5.3-RELEASE #3: Mon Nov 8 01:54:22 CET 2004 arundel at skatecity:/usr/obj/usr/src/sys/ARUNDEL i386

	xorg-6.7.0_1 starts with the following error message:
	"xauth: (stdin):1:  bad add command line"
	This error gets caused by the startx script. In order to
	generate a hexkey (MIT-MAGIC-COOKIE-1) for the xauth entry
	in ~/.Xauthority it uses /dev/urandom. If random
	(urandom -> random) is not present (kernel or kld), the device
	node is missing and `xauth add` will fail due to a missing hexkey.

	This problem is probably also being caused by any previous
	Xorg and XFree86 port version and very likely appears on all
	RELENGs that use `devd` instead of the MAKEDEV system (>=RELENG_5).
	Since `sh MAKEDEV all` on older systems should take care of
	/dev/random and the link to /dev/urandom it should also be possible
	to delete the device node from /dev and expereince the very same
	problems, as in RELENG_5 and higher.

	This issue however is not connected in any way to the
	"xauth:(argv):1: bad display name ":0" in "add" command" problem,
	which is caused by a wrong /etc/hosts syntax (see PR ports/11977)

	Be sure to neither have device random compiled into your kernel,
	nor to have it loaded as a module. then do:
	`cd && rm .Xauthority && startx`
	1. Include some info text that will inform the user if the problem
	   occurs and tell him how to fix the problem.
	2. Find another way to get a hold of a hexkey, besides /dev/random.
	   Maybe through perl or RTC or whatever.
	3. Check if /dev/urandom exists. If it doesn't, use
	   `xauth generate` to create a hexkey for the xauth entry.
	   It doesn't rely on /dev/urandom and thus succeedes in creating
	   the key.


More information about the freebsd-ports-bugs mailing list