Don't override XAUTHORITY until after we run Xephyr

Don't override the setting of XAUTHORITY when running Xephyr,
since then we may not be able to connect to the host display.
Instead pass in the local auth file via the -auth command
line argument.

An alternate fix would be to use 'xauth merge' to merge the
existing XAUTHORITY file into our local file.

svn path=/trunk/; revision=29
This commit is contained in:
Owen Taylor 2008-11-03 21:39:41 +00:00
parent a569063e4f
commit e82e60f71b

View File

@ -29,14 +29,19 @@ try:
hexkey = "".join(("%02x" % ord(byte) for byte in key)) hexkey = "".join(("%02x" % ord(byte) for byte in key))
# Store that in an xauthority file as the key for connecting to our Xephyr # Store that in an xauthority file as the key for connecting to our Xephyr
os.environ['XAUTHORITY'] = xauth_file retcode = subprocess.call(["xauth",
retcode = subprocess.call(["xauth", "add", display, "MIT-MAGIC-COOKIE-1", hexkey]) "-f", xauth_file,
"add", display, "MIT-MAGIC-COOKIE-1", hexkey])
if retcode != 0: if retcode != 0:
raise RuntimeError("xauth failed") raise RuntimeError("xauth failed")
# Launch Xephyr # Launch Xephyr
xephyr = subprocess.Popen(["Xephyr", display, "-screen", "800x600", "-host-cursor"]) xephyr = subprocess.Popen(["Xephyr", display,
"-auth", xauth_file,
"-screen", "800x600",
"-host-cursor"])
os.environ['DISPLAY'] = display os.environ['DISPLAY'] = display
os.environ['XAUTHORITY'] = xauth_file
# Wait for server to get going: LAME # Wait for server to get going: LAME
time.sleep(1) time.sleep(1)