I've read through a lot of the discussion on this list about upgrading to RH9 to get XFree86 4.3. Unfortunately, that is not an option for someone I am working with due to commercial application dependencies on RH8. Since no one seemed to find a solution, I thought I would give it a shot myself.
I poked & prodded at the rawhide source RPMs for a while. After a day or so, I managed to get an apparently working combination that maintains dependencies in RPM and seems to work fine. I thought others might find this useful, so here's how I did it.
YMMV, of course.
-chuck
1/ Download freetype, fontconfig & XFree86 source RPMs:
These are the ones I used:
ftp://rpmfind.net/linux/rawhide/1.0/SRPMS/SRPMS/freetype-2.1.3-6.src.rpm ftp://rpmfind.net/linux/rawhide/1.0/SRPMS/SRPMS/fontconfig-2.1-9.src.rpm ftp://rpmfind.net/linux/rawhide/1.0/SRPMS/SRPMS/XFree86-4.3.0-10.src.rpm
2/ Build the freetype & fontconfig RPMs:
# rpmbuild --rebuild freetype-2.1.3-6.src.rpm # rpmbuild --rebuild fontconfig-2.1-9.src.rpm
3/ Install the new freetype & fontconfig RPMs:
# cd /usr/src/redhat/RPMS/i386 # rpm -Uhv fontconfig-2.1-9.i386.rpm fontconfig-devel-2.1-9.i386.rpm # rpm -Uhv freetype-2.1.3-6.i386.rpm freetype-devel-2.1.3-6.i386.rpm
4/ Install Xfree86 4.3 source RPM:
# rpm -ihv XFree86-4.3.0-10.src.rpm
5/ Edit the XFree86.spec (see attached diff):
Apparently, Xft was merged into XFree86 and the previously separate Xft package was made obsolete. Unfortunately, just about every GNOME & KDE RPM is dependent on Xft. The solution I found was to include Xft and Xft-devel in the "Provides" sections of the spec file. If you build XFree86 without these changes & force-install the RPMs, the dependencies on all the previously mentioned GNOME & KDE RPMs will be broken.
6/ Build XFree86-4.3 RPMS using the modified spec file:
# cd /usr/src/redhat/SPECS # rpmbuild -bb XFree86.spec
7/ Install the new RPMs:
# cd /usr/src/redhat/RPMS # rpm -Uhv XFree86*
8/ Update the dynamic linker cache:
This allows apps linked against Xft to find the new version in /usr/X11R6/lib instead of /usr/lib.
# /sbin/ldconfig
9/ Restart any/all X clients/servers.
*** XFree86.spec 2003-05-06 17:25:47.000000000 -0400 --- XFree86.spec.new 2003-05-29 18:55:42.000000000 -0400 *************** *** 510,517 **** Group: Development/Libraries Requires: XFree86-libs = %{version}-%{release} ! Obsoletes: xpm-devel, Mesa-devel, Xft-devel ! Conflicts: Xft-devel Provides: xpm-devel, Mesa-devel ! #Provides: Xft-devel Requires: fontconfig-devel pkgconfig --- 510,516 ---- Group: Development/Libraries Requires: XFree86-libs = %{version}-%{release} ! Obsoletes: xpm-devel, Mesa-devel Provides: xpm-devel, Mesa-devel ! Provides: Xft-devel Requires: fontconfig-devel pkgconfig *************** *** 570,575 **** Group: System Environment/Libraries # Now that Xft2 is part of XFree86 4.3.0, we obsolete the old standalone one - Obsoletes: Xft - Conflicts: Xft Requires: freetype >= 2.1.3-4 %if %{with_freetype2} --- 569,572 ---- *************** *** 578,582 **** %endif Provides: xpm ! #Provides: Xft Requires: XFree86-libs-data = %{version}-%{release} #Requires(post,postun,verify): /sbin/ldconfig grep textutils --- 575,579 ---- %endif Provides: xpm ! Provides: Xft Requires: XFree86-libs-data = %{version}-%{release} #Requires(post,postun,verify): /sbin/ldconfig grep textutils