The Joy of X

For those of you not up on the X scene, the X consortium recently released Xorg 7.0 (X11R7). This represents a fundamental design change in X, no longer is everything linked to the aging libX11 and no longer is X all one big monolithic chunk of code. It’s now all split up and nicely packaged using the GNU autotools. (no more xmkmf or imake!)

As good of a thing as this is, there are some problems… here is the tale of my week long experience… another of the Joys of X.

First, I went forward… I just built a new Gentoo box, so rather than go with the soon to be replaced Xorg 6.8, I went straight for 7.0. Simple, just unmask some packages and compile away! Everything was going great for about a week, then, all of a sudden, I had some text corruption in most of my apps. Now, it being too late into the night for me to realize it was my Nvidia driver, I unmerged Xorg 7.0 and went back to Xorg 6.8… STUPID MISTAKE. Thanks to those new modular libs, everything that bound to the X libraries broke. That includes anything GTK (all of GNOME and LOTS of apps), and my beloved enlightenment. Needless to say, I spend the new few hours removing and rebuilding packages. Oh, and because of the way GTK and the Linux linker works, you can forget about just redoing them… you get to remove basically everything graphical and START OVER. Enjoy the next 2 days of your life recompiling all of your crap. After 2-3 days of troubleshooting/compiling, i was back up and running… too bad my text corruption problem is still there. 15 mintues of google searching and the problem was solved. DOH! Lesson learned, never troubleshoot your box when it’s 3am. Go to sleep, wait until morning and try again.

Next, I go forward again. Having resolved the problems with text corruption, I was now having OpenGL issues and general performance issues. Xorg 7.0 is streamlined and a much more enjoyable experience than Xorg 6.8. You don’t get all of those extra utilities that you never use, and you don’t get all of those extra drivers/libraries. MUCH cleaner. Knowing that my system would now run fine under Xorg 7.0 and my OpenGL issues would be gone, I decided to go back….

After a few hours of unmasking & compiling, I was back in business… but something wasn’t right, it just didn’t feel like it did before. Was it just that I was expecting too much… nah, couldn’t be. I went to digging on the libraries and sure enough, they were all linked against libX11 and weren’t paying attention to the new libs. Well… we’ll just have to fix that. Here’s where the mistake happened. It’s late, i’m playing Eve on my other machine, and chatting with my friends on TeamSpeak… STUPID time to work on my Linux machine. So, I kick into a command prompt and unmerge everything that depends on GTK and my Enlightenment DR17. Fine, good. Everything is great… then I run portage again… and python crashes. Looks like my GCC just got removed… along with the required libstdc++ that python needs to work. Oh hell… it’s gonna be one of THOSE nights. So, I break out a live CD, mount it up and strip out the already installed GCC and transplant it onto my machine. Great, now python works. Then I merge a fresh copy of GCC, change the profile, and remove the bootleg copy I put in. Sweet… back in business… almost. Now on to the good part… remerging the freakin’ world.

glitz, cairo, gtk, pango, atk, glib… those are easy…

enlightenment dr17… piece of cake…

GNOME… call back tomorrow. Man that’s a lot of code.

So, long story, but just remember, Xorg 7.0 != Xorg 6.8/6.9. There’s no easy way to go back once you go, so think it over. But seriously, go forward, rebuild your stuff from scratch and don’t look back. Xorg 7.0 is totally worth it.

Too bad it’s still pokey ass X.

Leave a Reply