It's the end of the semester, so things have been pretty busy at work, with students working on final reports and projects, trying to get those last results in, and my having to print a whole slew (around a dozen) posters on the department's DesignJet 1055cm.
What better time, you might ask, to update one's machine? Indeed. Partly in anticipation of Tiger, and the need for having an external drive to do backups before updating, and partly out of a feeling that my workstation should be a bit more stable than it is, and partly out of sheer perversity, I decided to update my machine from CentOS 3.4 (plus a large agglomeration of miscellaneous software) to CentOS 4.0.
When I say update, here, of course, I mean “backup to another disk, put a third drive in, and then install from scratch”. I'm not a complete idiot.
Anyway, CentOS 4 installed reasonably smoothly, and had some nice new features (particularly the newer version of GNOME). What it didn't have, of course, is any of those “extra” packages that I've built over the last couple of years. Oh, and it did also come with some wacky changes.
The most notable wacky change stopped me from opening X clients on
remote machines on my workstation. Remote administration can get to
be a real pain when you can't use the tools you prefer, especially if
you're trying to edit or compare long files. I started by checking
out the SSH configuration files, comparing them with my old files, and
X11Forwarding was turned off by default in
/etc/ssh/ssh_config. That change let me connect to the
CentOS 3 machines, but I was still having problems opening windows
from my workstation (doing things like, say, trying to edit the SSH
configuration files with Emacs). Given that another change between
CentOS 3 and 4 was a move from XFree86 to Xorg, I thought that might
be where the issue was, and decided to let it lie for a bit while I
dealt with more pressing work.
I limped along for a couple of days, but between needing to print the posters (easier on Mac) and doing some web graphics (easier on a Mac) and fiddling with some CSS stuff (you guessed it), I ended up just hooking my PowerBook to my nice monitor and keyboard and using it for the last week or so. I still couldn't open X clients from my main workstation (annoying!), but at least I could open them on other machines, so I could get some of the stuff done that I needed to do.
Of course that wasn't good enough, either, so I ended up pulling the LCD out of my rack so I could put it on my workstation to do a couple of things. But I've still been too busy to really look into the issue.
I was getting by with my Mac until this past week, when suddenly nothing could connect to the Mac, either! Including my home (Debian development) machine, which had worked. I had, of course, just upgraded to Tiger, so it seemed like the problem that was affecting the CentOS 4 machine might have been the same issue on Mac OS X.
Finally, though, I got a chance to look at the CentOS mailing list, and found that someone else had asked about the same problem, which generally looks like
The program 'foo' received an X Window System error. This probably reflects a bug in the program. The error was 'BadAtom (invalid Atom parameter)'. (Details: serial 287 error_code 5 request_code 20 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)
It turns out that another, badly documented, change was to SSH
itself. In addition to setting
yes (or using the
-X flag on the
ssh command line), you now also need to set the
ForwardX11Trusted key to
yes, or use the
-Y flag on the command line.