This post originated from an RSS feed registered with Python Buzz
by Ng Pheng Siong.
Original Post: Upgrading XFree86
Feed Title: (render-blog Ng Pheng Siong)
Feed URL: http://sandbox.rulemaker.net/ngps/rdf10_xml
Feed Description: Just another this here thing blog.
Just upgraded XFree86 to 4.4 via ports on my FreeBSD desktop.
Here are my notes on the upgrade. Hopefully others may find them useful.
First, building. Usually I try "make" within the port, before attempting "portupgrade", since the latter wraps "make" within its port database maintenance stuff, all of which is useless work if "make" fails.
Now, XFree86 has one big meta-package made up of several smaller packages. I chose to portupgrade each smaller package, starting with XFree86-4-libraries.
In /usr/ports/x11/XFree86-4-libraries, typed "make". Bombed out. Most build errors in a port are due to failing patches, and typically a patch fails because it is obsolete. I DidTheSimplestThingThatCouldPossiblyWork (DTSTTCPW): blew all the files/ directories of the XFree86 ports away and cvsup'ped again, which gave me working patch sets. (So far this method has not failed me.)
Typed "make" again: Built fine. Ok, typed "portupgrade XFree86-libraries-4.2.0". portupgrade proceeded to do its stuff, which included recompiling the entire port again.
Next, did the same for -FontServer, -documents and -clients. Plain sailing there. Got bolder after -FontServer: typed "make", verified that the port patched ok, interrupted the build, then typed "portupgrade ..." to make and install in one step. ;-)
Portupgrading the fonts failed. Inspecting the error revealed that the failure was at the step "perl ucs2any": presumably ucs2any, now an ELF executable, used to be a Perl script. Again, DTSTTCPW - moved ucs2any to ucs2any.exe, and cooked up a Perl script called ucs2any thusly:
One can solve any problem in computing by just adding levels of indirection, eh? ;-)
Ok, fonts upgraded. That left -server. Attempted to restart X without upgrading -server. Whoops, pressing any key did a mode switch. Duh! Had to upgrade -server after all.
Did that. Restarted X: Same keyboard problem. I lost X! Urg!
Mu.st..goo..gle... Ok, installed the port "links", which is a text-mode web browser a la Lynx. Now could google: Looked around, found... freebsd-ports? Someone reported a similar problem and (someone else?) suggested the option "XkbDisable" in XF86Config. Added it, started X again, woo-hoo, it worked and I got my X back!