So I decided I wanted to run the latest version of GIMP, my favorite image editor. To do that, I needed a current version of GTK. I have had only bad experiences building the GTK and its myriad dependencies, so I was not thrilled about doing it again. Well, to make a long story short, I screwed it up bad enough that I needed to fix it so I could use other programs. I slowed down and read the docs on each package and sketched out a dependency tree so that I could tell in which order I should build and install each package.
Note that when you are installing dependency libraries, always run ldconfig to update that database for the next configure script. Also, go look for previous versions in the other lib directories. Install your new stuff into /usr/local/lib but then go look for that same library in /lib and /usr/lib, and on occasion /usr/X11R6/lib or something fancy like that. I had to do a ton of manual cleaning to get things to work.
After GTK was all built and nice, I still had trouble with fonts. My web browsers were all screwed up, OpenOffice only had about 6 fonts in its list, the KDE KControlCenter Fonts page in Administrator Mode still showed my 700 odd fonts, but things were looking really bad with regard to anti-aliasing and such. I had to start digging. First, I looked at the startup messages and noticed an error from the fc-cache line, which got me thinking about fontconfig. So I figured that there were more artifacts left behind by the previous version.
I had to edit my rc.M script that runs fc-cache (from the fontconfig library) to point to the path of my new fontconfig (because there is one bundled with X11). I had to symlink /etc/fonts to /usr/local/etc/fonts and then I had to edit /usr/local/etc/fonts/fonts.conf manually, based upon what information is available in the manpage for that file format (section 5). I specifically had to add the directory containing my 700-some fonts (/usr/local/share/fonts) and specify the cache directory to be /var/cache/fontconfig rather than NONE/var/cache/fontconfig, which would create this structure wherever you run fc-cache, which becomes absolutely useless to the running OS and the programs that reference it.
To polish it all off, I logged out of my KDE session and dropped the system to runlevel 1, and then brought it back up to 4 - et voila!
Registered Linux User #370740 (http://counter.li.org)