Cómo crear e instalar XFree86 a partir de su código fuente

					OBSOLETA


TÍTULO:			Cómo crear e instalar XFree86 a partir de su código fuente
VERSIÓN LFS:	Cualquiera
AUTOR:			Sergey Ostrovsky <sostrovsky@snip.net>
TRADUCTOR:	Proyecto LFS-ES

SINOPSIS:	ver TÍTULO.


RECETA:

ver 1.5
02 FEB 2002
Seth W. Klein <sk@sethwklein.net>
- Se eliminan los espacios "^OPT^" ya que la gente olvidaba sustituirlos
  y enviaba los errores que se generaban a las listas de correo.
- Se añaden notas describiendo los lugares en los que pueden elegirse opciones 
  (flags) para optimización.
- Se cambia este registro de modificaciones (ChangeLog) para usar un formato  
  de fechas no ambiguo.

ver 1.4
25 ENE 2001

		INDICE

1. Introducción
2. Paquetes a descargar
3. Instalación de los paquetes
  3.1 Zlib
  3.2 XFree86 principal
  3.3 Documentación XFree86
  3.4 Activar soporte TTF.
    3.4.1 Librería FreeType
    3.4.2 Herramienta Ttmkfdir
    3.4.3 Configuración TTF


1. Introducción
   ------------
      Esta es una guía breve de instalación de XFree86-4.02. No
   cubre la configuración de X11, ya que la documentación que 
   acompaña a X11 es completa y suficiente.
      Para aquellos que estén interesados en instalar tan sólo
   X11, la sección 3.2 - "XFree principal" debería bastar. Sólo 
   tendrían que descargar X401src-[1-3].tgz.
      A partir de la v4.0, XFree86 permite soportar tipos TrueType
   sin emplear un servidor de tipos adicional y aquí encontrarás 
   el modo de activar esta opción. Esta parte se basa en el 
   excelente documento "XFree86 Font Deuglification HOWTO", que 
   puede encontrarse en www.linuxdoc.org, y que conviene leer.
      Supondré que cada paquete se ha desempaquetado en algún lugar
   (si no se especifica dónde hacerlo) y que el directorio actual
   es aquel en el que reside el árbol del código fuente ya 
   desempaquetado. Del mismo modo, hay que hacer notar que en lugar
   de una órden tal como 
     tar -xzpvf blah.tar.gz
   debe emplearse 
     tar -xzpvf <El camino (Path) en que reside tu Blah>/blah.tar.gz 
      Algunas instrucciones hacen referencia a flags de optimización. Si
   bien pueden aportar pequeñas ventajas en prestaciones, mucha gente
   las usa. Para más información, ver la Guía de Optimización en 
   http://hints.linuxfromscratch.org/hints/optimization.txt

   Sergey Ostrovsky
   sostrovsky@snip.net

   (actualizado, FEB 2002, Seth W. Klein <sk@sethwklein.net>)

2. Paquetes a descargar
   --------------------

   zlib-1.1.3.tar.gz
	ftp://ftp.uu.net/graphics/png/src

   X402src-1.tgz
   X402src-2.tgz
   X402src-3.tgz
	ftp://ftp.xfree86.org/pub/XFree86/4.0.2/source/

   Xdoc.tgz
   Xhtml.tgz
   Xps.tgz
   Xman.tgz
	ftp://ftp.xfree86.org/pub/XFree86/4.0.2/binaries/Linux-ix86-glibc22/

   freetype-1.3.1.tar.gz
	http://freetype.sourceforge.net/download.html#freetype1

   ttmkfdir.tar.gz
	http://www.joerg-pommnitz.de/TrueType/xfsft.html

3. Instalación de los paquetes
   ---------------------------

3.1 Zlib
    ----
   Aunque el conjunto de XFree86 incluye zlib, vamos a configurarlo
   de modo que la zlib de XFree86 no se emplee. 
   La razón consiste en que hay versiones más recientes de zlib.
   Por lo tanto, si tu sistema ya tiene instaladas las librerías zlib,
   puedes ignorar esta sección. Si no es el caso, instálalas ahora.

3.1.1
   Busca en Makefile.in la directiva
	$(SHAREDLIB).$(VER):
   En ésta y las líneas siguientes, verás
   $(OBJS). Inserta $(OBJA) en esas dos líneas tras cada aparición 
   de $(OBJS), de modo que quede 
	$(OBJS) $(OBJA)

3.1.2
   El subdirectorio ./contrib consta a su vez de varios subdirectorios,
   uno para cada arquitectura particular de procesador, por ejemplo asm586, 
   y así sucesivamente.
   Allí se encuentran ficheros con código fuente en ensamblador para 
   funciones que son críticas en su velocidad de ejecución.

   Ejecuta

	cp -v contrib/< directorio correspondiente a la arquitectura de tu
        procesador >/match.S ./

3.1.3
   La opción "-O2" puede sustituirse por la opción de optimización que
   prefieras.

   Ejecuta

	CFLAGS="-DASMV -O2"	\
	./configure		\
	--prefix=/usr		\
	--shared

	OBJA=match.o make -e

	make install

3.1.4
   Acabamos de crear e instalar las librería compartidas. Algunos paquetes
   necesitan también las librerías estáticas, por lo que es razonable crearlas
   a continuación.
   
   Repite las etapas 3.1.1 - 3.1.3, omitiendo en este caso "--shared" in 3.1.3.

3.1.5
   Ejecuta 
	cp -va zlib.3 /usr/share/man/man3

3.2 XFree86 main
    ------------

3.2.1
   Ejecuta

   cp config/cf/xf86site.def config/cf/host.def


3.2.2
   El fichero config/cf/host.def contiene un conjunto de definiciones que se
   encuentran comentadas. Elige los valores adecuados descomentando aquellas
   que resulte oportuno (o teclea todo de nuevo) de acuerdo con las
   definiciones. Los drivers de algunas tarjetas de vídeo, o los que dan
   acceso a algunos aspectos técnicos determinados pueden exigir que se los
   enlace con libdl.so.
   Si es tu caso, añade '-ldl' a DefaultGcc2i386Opt (más abajo).
   
   
---
Nota de editor: Recuerda que estás editando una cabecera en C, y que los
comentarios tienen este aspecto:
/* comment */
en lugar de este otro:
# comment
Es decir, no quites los '#' a principio de línea y limítate a borrar la linea
que contiene "*/" tras la sentencia #define y añadir un '/' después del '*'
antes de un #define.

De nuevo, puedes cambiar la opción "-O2" por aquella opción de optimización
que prefieras.
---

#define DefaultGcc2i386Opt      -O2 -fno-strength-reduce -pipe -ldl

#define	DefaultCCOptions        -Wall

#define TermcapLibrary          -lncurses

#define XF86CardDrivers		/* Here list your driver(s) */

#define XInputDrivers           mouse void

#define InstallXinitConfig      YES

#define InstallXdmConfig        YES

#define InstallFSConfig         YES

#define BuildSpecsDocs		YES

#define SpecsDocDirs		CTEXT GL ICCCM X11 Xext Xmu Xv i18n xterm

#define BuildAllSpecsDocs	YES

3.2.3
   en el fichero config/cf/site.def
   busca 

#ifndef SiteIConfigFiles
#define SiteIConfigFiles $(IRULESRC)/xf86site.def $(IRULESRC)/host.def
#endif

   e inserta tras él

#ifndef	HasZlib
#define	HasZlib		YES
#endif

#ifndef	HasNCurses
#define	HasNCurses	YES
#endif

3.2.4 Ejecuta

   make World

   make install

   make install.man

   Inserta en /etc/ld.so.conf

        /usr/X11R6/lib

   y ejecuta ldconfig

3.2.5 Ahora configura X11. Consulta la documentación sobre cómo lanzar y usar
   xf86config.

3.3 Documentación de XFree86 
    ------------------------
   La calidad de la documentación, en lo que respecta a su instalación, deja
   bastante que desear.
   Unos cuantos ficheros no se instalan, o no se convierten bien desde su
   formato original al de destino - .html, .ps, etc.
   Es por eso por lo que los que estén interesados en la documentación pueden
   querer reinstalarla según el método siguiente:

3.3.1
   Ejecuta

	cd /usr/X11R6

	rm lib/X11/doc/*

	tar -xzpvf Xdoc.tgz

	rm  lib/X11/doc/html/*

	tar -xzpvf Xhtml.tgz

	rm  lib/X11/doc/PostScript/*

	tar -xzpvf Xps.tgz

	rm  -r man/*

	tar -xzpvf Xman.tgz

3.4 Activar soporte TTF
    ---------------------
   Para usar los tipos TrueType es necesario no sólo los tipos sino también
   una serie de ficheros auxiliares que el servidor X utiliza como "listados
   de directorio" para los tipos ttf que se hayan instalado. Uno de estos
   ficheros, fonts.scale, puede crearse mediante la herramienta ttmkfdir, que
   no se incluye en el paquete XFree86-4.02.
   A su vez, ttmkfdir exige la instalación del paquete freetype-1.x.x.
   Sin embargo, dado que la imagen tar (tarball) de ttmkfdir incluye un
   ejecutable ya compilado, podría usarse dicho ejecutable. En ese caso, uno
   puede decidir pasar de largo tanto sobre la instalación de la librería 
   freetype-1.3.1 como de la creación de ttmkfdir.

3.4.1 Librería FreeType
      -----------------

   Ejecuta

	./configure --prefix=/usr/local

	make

	make install

3.4.2 Herramienta Ttmkfdir 
      --------------------

3.4.2.1 Haz los cambios siguientes en Makefile

	FREETYPE_INCL = $(FREETYPE_BASE)/include/freetype

	FREETYPE_LIB = -L$(FREETYPE_BASE)/lib -lttf

3.4.2.2 Ejecuta

	make FREETYPE_BASE=/usr/local

	install -m755 ttmkfdir /usr/local/bin

3.4.3 Configuración TTF 
      -----------------

3.4.3.1 Crea el directorio /usr/X11R6/lib/X11/fonts/ttf.
   Copia los tipos .ttf que quieras a ese directorio.

3.4.3.2 Ejecuta

	cd /usr/X11R6/lib/X11/fonts/ttf

	ttmkfdir -o fonts.scale

	mkfontdir

3.4.3.3 Indica que módulo debe usar el servidor X para la gestión de tipos de
   letra en la sección "Module" de tu fichero XF86Config:

	Section "Module"
	Load  "freetype"
	Load  "speedo"
	EndSection

   y la ruta (path) al directorio de tipos que emplees :

	Section "Files"
	FontPath "/usr/X11R6/lib/X11/fonts/ttf"
	EndSection

   Ten en cuenta que sólo indicamos qué tienes que añadir.

Ahora tu servidor X será capaz de visualizar tipos TrueType.