Xorg6

From CBLFS
Revision as of 15:52, 7 January 2007 by Jciccone (talk | contribs) (32Bit)
Jump to navigationJump to search
Download Source: http://xorg.freedesktop.org/releases/X11R6.9.0/src-single/X11R6.9.0-src.tar.bz2
Download Patch: http://svn.cross-lfs.org/svn/repos/patches/xorg/xorg-6.9.0-luit_race-1.patch
Download Patch: http://svn.cross-lfs.org/svn/repos/patches/xorg/xorg-6.9.0-security-3.patch

Introduction to Xorg

Dependencies

Required

Optional

Non-Multilib

The 15-xorg.sh from the Bash Startup Files is meant to be used with Xorg7. Replace that file with one meant for use with Xorg6:

cat > /etc/profile.d/15-xorg.sh << "EOF"
# Begin /etc/profile.d/15-xorg.sh

export XORG_PREFIX=/usr/X11R6

export PATH="${PATH}:${XORG_PREFIX}/bin"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}${XORG_PREFIX}/lib/pkgconfig"

# End /etc/profile.d/15-xorg.sh
EOF
source /etc/profile

Patch the source:

patch -Np1 -i ../xorg-6.9.0-luit_race-1.patch &&
patch -Np1 -i ../xorg-6.9.0-security-3.patch 

If you would like to install Xorg6 into a prefix other then /usr/X11R6 correct a hard-coded path:

sed -i 's@/usr/X11R6@${XORG_PREFIX}@' programs/luit/parser.h

Xorg insists on putting its boot and profile scripts into the /etc directory even if specifically told not to compile anything Xprint server or client:

sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile

Build the lndir program that is going to be used to create the shadow directory:

pushd config/util &&
make -f Makefile.ini lndir
popd

Create the shadow directory:

mkdir ../xcbuild &&
cd ../xcbuild &&
../xc/config/util/lndir ../xc

Create a basic host.def file:

cat > config/cf/host.def << "EOF"
/* Begin Xorg host.def file */

/* System Related Information.  If you read and configure only one
 * section then it should be this one.  The Intel architecture defaults
 * are set for a i686 and higher.  Axp is for the Alpha architecture
 * and Ppc is for the Power PC.  AMD64 is for the Opteron processor.
 * Note that there have been reports that the Ppc optimization line
 * causes segmentation faults during build.  If that happens, try
 * building without the DefaultGcc2PpcOpt line.  ***********/

/* #define DefaultGcc2i386Opt  -O2 -fno-strength-reduce \
                               -fno-strict-aliasing -march=i686 */
/* #define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce \
                               -fno-strict-aliasing */
/* #define DefaultGcc2AxpOpt   -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt   -O2 -mcpu=750 */

#define HasFreetype2            YES
#define HasFontconfig           YES
#define HasExpat                YES
#define HasLibpng               YES
#define HasZlib                 YES

/* Uncomment the following define if you'd like
 * xdm to use Linux-PAM
#define HasPam                  YES
 */

/*
 * Which drivers to build.  When building a static server, each of
 * these will be included in it.  When building the loadable server
 * each of these modules will be built.
 *
#define XF86CardDrivers         mga glint nv tga s3virge sis rendition \
                                neomagic i740 tdfx savage \
                                cirrus vmware tseng trident chips apm \
                                GlideDriver fbdev i128 \
                                ati DevelDrivers ark \
                                cyrix siliconmotion vesa vga \
                                XF86OSCardDrivers XF86ExtraCardDrivers
*/

/*
 * Select the XInput devices you want by uncommenting this.
 *
#define XInputDrivers           mouse keyboard acecad calcomp citron \
                                digitaledge dmc dynapro elographics \
                                microtouch mutouch penmount spaceorb \
                                summa wacom void magictouch aiptek
 */

/* Most installs will only need this */

#define XInputDrivers           mouse keyboard

/* Xterm is no longer built by default */
#define BuildXterm              YES

/* Disable building Xprint server and clients until we get them figured
 * out but build Xprint libraries to allow precompiled binaries such as
 * Acrobat Reader to run.
 */

#define XprtServer              NO
#define BuildXprintClients      NO

/* Uncomment the following define if you would prefer to install X into
 * /usr or change it to any other location that you prefer.
 * The GL related defines disable compatibility symlinks (the links
 * are not needed when X is installed in /usr).
#define ProjectRoot             /usr
#define LinkGLToUsrInclude      NO
#define LinkGLToUsrLib          NO
 */

/* End Xorg host.def file */
EOF

If you're on a pure64 system add the following host.def.

cat >> config/cf/host.def << "EOF"
/* On pure64 systems Xorg will attempt to install libraries into lib64. The	 
 * following will prevent this */	 
#define HaveLib64 NO
EOF

Compile the package:

sed -i -e "s@^#include <linux/config.h>@/* & */@" \
    $(grep -lr linux/config.h *) &&
make World

Install the package:

make install &&
make install.man

Create the default links from where you've installed Xorg to /usr.

ln -v -s ../X11R6/bin /usr/bin/X11 &&
ln -v -s ../X11R6/lib/X11 /usr/lib/X11 &&
ln -v -s ../X11R6/include/X11 /usr/include/X11

The Xorg fonts have been installed outside of FontConifg's default search path of /usr/share/fonts:

install -v -d -m755 /usr/share/fonts &&
ln -svn /usr/X11R6/lib/X11/fonts/TTF /usr/share/fonts/X11-TTF

Multilib

The 15-xorg.sh from the Bash Startup Files is meant to be used with Xorg7. Replace that file with one meant for use with Xorg6:

cat > /etc/profile.d/15-xorg.sh << "EOF"
# Begin /etc/profile.d/15-xorg.sh

export XORG_PREFIX=/usr/X11R6

export PATH="${PATH}:${XORG_PREFIX}/bin"
export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}${XORG_PREFIX}/lib/pkgconfig"
export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}${XORG_PREFIX}/lib32/pkgconfig"
export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}${XORG_PREFIX}/lib64/pkgconfig"

# End /etc/profile.d/15-xorg.sh
EOF
source /etc/profile

32Bit

Patch the source:

patch -Np1 -i ../xorg-6.9.0-luit_race-1.patch &&
patch -Np1 -i ../xorg-6.9.0-security-3.patch 

If you would like to install Xorg6 into a prefix other then /usr/X11R6 correct a hard-coded path:

sed -i 's@/usr/X11R6@${XORG_PREFIX}@' programs/luit/parser.h

Xorg insists on putting its boot and profile scripts into the /etc directory even if specifically told not to compile anything Xprint server or client:

sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile

Build the lndir program that is going to be used to create the shadow directory:

pushd config/util &&
make -f Makefile.ini lndir &&
popd

Create the shadow directory:

mkdir ../xcbuild &&
cd ../xcbuild &&
../xc/config/util/lndir ../xc

Create a basic host.def file:

cat > config/cf/host.def << "EOF"
/* Begin Xorg host.def file */

/* System Related Information.  If you read and configure only one
 * section then it should be this one.  The Intel architecture defaults
 * are set for a i686 and higher.  Axp is for the Alpha architecture
 * and Ppc is for the Power PC.  AMD64 is for the Opteron processor.
 * Note that there have been reports that the Ppc optimization line
 * causes segmentation faults during build.  If that happens, try
 * building without the DefaultGcc2PpcOpt line.  ***********/

/* #define DefaultGcc2i386Opt  -O2 -fno-strength-reduce \
                               -fno-strict-aliasing -march=i686 */
/* #define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce \
                               -fno-strict-aliasing */
/* #define DefaultGcc2AxpOpt   -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt   -O2 -mcpu=750 */

#define HasFreetype2            YES
#define HasFontconfig           YES
#define HasExpat                YES
#define HasLibpng               YES
#define HasZlib                 YES

/* Uncomment the following define if you'd like
 * xdm to use Linux-PAM
#define HasPam                  YES
 */

/*
 * Which drivers to build.  When building a static server, each of
 * these will be included in it.  When building the loadable server
 * each of these modules will be built.
 *
#define XF86CardDrivers         mga glint nv tga s3virge sis rendition \
                                neomagic i740 tdfx savage \
                                cirrus vmware tseng trident chips apm \
                                GlideDriver fbdev i128 \
                                ati DevelDrivers ark \
                                cyrix siliconmotion vesa vga \
                                XF86OSCardDrivers XF86ExtraCardDrivers
*/

/*
 * Select the XInput devices you want by uncommenting this.
 *
#define XInputDrivers           mouse keyboard acecad calcomp citron \
                                digitaledge dmc dynapro elographics \
                                microtouch mutouch penmount spaceorb \
                                summa wacom void magictouch aiptek
 */

/* Most installs will only need this */

#define XInputDrivers           mouse keyboard

/* Xterm is no longer built by default */
#define BuildXterm              YES

/* Disable building Xprint server and clients until we get them figured
 * out but build Xprint libraries to allow precompiled binaries such as
 * Acrobat Reader to run.
 */

#define XprtServer              NO
#define BuildXprintClients      NO

/* Uncomment the following define if you would prefer to install X into
 * /usr or change it to any other location that you prefer.
 * The GL related defines disable compatibility symlinks (the links
 * are not needed when X is installed in /usr).
#define ProjectRoot             /usr
#define LinkGLToUsrInclude      NO
#define LinkGLToUsrLib          NO
 */

/* End Xorg host.def file */
EOF

Compile the package:

sed -i -e "s@^#include <linux/config.h>@/* & */@" \
    $(grep -lr linux/config.h *) &&
PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" USE_ARCH=32 \
make CC="gcc ${BUILD32}" CXX="g++ ${BUILD32}" World

Install the package:

make install &&
make install.man &&
ln -v -s ../X11R6/lib/X11 /usr/lib/X11 &&
for prog in xft-config xcursor-config gccmakedep ccmakedep imake xmkmf; do
  mv -v /usr/X11R6/bin/$prog{,-32}
done

N32

64Bit

Contents

Retrieved from "?title=Xorg6&oldid=6710"