Building XFree86 4.3 RPMs on RH8

Chuck Slivkoff <[email protected]>
Newsgroups gmane.linux.redhat.xfree86
Message-ID <[email protected]>
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-4.3.spec.diff.txt (text/plain, 1.2 KB)
*** 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.