XFree86 4.x en NetBSD

Autor: Julio Merino (aka Slink)
Fecha: 15 de enero de 2002


A muchos de los nuevos usuarios de NetBSD les extrañará no ver la rama 4.x de XFree86 en el sistema base ni como parte de pkgsrc, al contrario de lo que ocurre en los otros *BSD. En este artículo voy a explicaros cómo instalar las XFree86 4.x en NetBSD a partir del código fuente, la mejor opción disponible.

Obtención del código fuente

Los fuentes que vamos a usar no són los distribuidos directamente por XFree86.org, debido a que es algo complicado conseguir que compilen correctamente si no tenemos experiencia previa en el proceso y, además, tienen algunos problemas bajo NetBSD.

En su lugar usaremos los fuentes distribuidos directamente por NetBSD a través de CVS. Éstos fuentes vienen preparados para que sean fácilmente compilados y se integren correctamente en el sistema.

Empezaremos configurando el servidor CVS del siguiente modo (podemos obtener un listado de mirrors aquí):

# export CVSROOT=anoncvs:/pub/NetBSD-CVS
# export CVS_RSH=ssh

Y ahora procederemos a descargar los fuentes:

# cd /usr
# cvs -z6 checkout -P xsrc

Configuración de NetBSD

El siguiente paso consiste en indicarle a NetBSD que usaremos la versión 4.x de XFree86. Deberemos añadir el siguiente contenido al archivo /etc/mk.conf:

USE_XF86_4=yes

Estructura de la configuración

A continuación viene el paso más complejo del proceso, configurar la compilación de las XFree86 4.1. Este proceso es "opcional", pero si le dedicáis un tiempo obtendréis mayores ventajas de la compilación. Os recomiendo encarecidamente que os leáis el archivo /usr/xsrc/xfree/xc/INSTALL-X.org antes de empezar.


Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

De todos modos os comento aquí algunas cosas básicas del archivo. La configuración de la compilación se realiza a partir de una série de archivos que se incluyen mutuamente, situados todos en /usr/xsrc/xfree/xc/config/cf. El primero de todos ellos es la configuración del vendor; éste archivo es el llamado NetBSD.cf y define características básicas sobre el sistema operativo. En teoria no deberemos preocuparnos por él ya que viene preconfigurado correctamente.

El siguiente archivo de interés es el site.def. Este archivo podéis editarlo para configurar algunas opciones pero os recomiendo no hacerlo para evitar problemas con actualizaciones posteriores por cvs. En su lugar usaremos otro archivo. Si habéis mirado el contenido del archivo site.def, habréis visto que incluye un tercer archivo, el host.def. Éste es el que realmente vamos a modificar tal y como veremos a continuación.

Configuración del host.def

Éste archivo consta de dos bloques. Uno de ellos se incluye antes del archivo NetBSD.cf, y el otro después.

En el primer bloque pocas cosas deberemos cambiar ya que podrían ser modificadas por otros archivos incluidos. Aquí os incluyo la primera parte, que yo uso:

#ifdef BeforeVendorCF

#define DefaultGcc2i386Opt -O2 -fno-strength-reduce -pipe -march=pentiumpro

#endif /* BeforeVendorCF */

En la segunda parte del archivo podemos configurar muchas más cosas, como qué partes del sistema queremos compilar. Si consultáis el archivo /usr/xsrc/xfree/xc/config/cf/README encontraréis una descripción de cada una de las opciones configurables. Os muestro a continuación las que yo he configurado, aunque todo depende de lo que necesitéis.

#ifdef AfterVendorCF

#undef  XnestServer
#define XnestServer                     NO
#undef  XVirtualFramebufferServer
#define XVirtualFramebufferServer       NO
#undef  XprtServer
#define XprtServer                      NO
#undef  ServerToInstall
#define ServerToInstall                 XFree86

#undef  XF86CardDrivers
#define XF86CardDrivers                 ati

#undef  InstallXServerSetUID
#define InstallXserverSetUID            YES
#undef  XserverStaticFontLib
#define XserverStaticFontLib            NO

#undef  BuildSpeedo
#define BuildSpeedo                     NO
#undef  BuildCID
#define BuildCID                        NO
#undef  BuildSpeedoFonts
#define BuildSpeedoFonts                NO
#undef  BuildCIDFonts
#define BuildCIDFonts                   NO
#undef  BuildCyrillicFonts
#define BuildCyrillicFonts              NO
#undef  BuildLatin2Fonts
#define BuildLatin2Fonts                NO

#undef  XInputDrivers
#define XInputDrivers mouse

#undef  BuildPexExt
#define BuildPexExt                     NO
#undef  BuildXinerama
#define BuildXinerama                   NO
#undef  BuildXF86RushExt
#define BuildXF86RushExt                NO
#undef  BuildXF86RushLibrary
#define BuildXF86RushLibrary            NO

#undef  InstallXinitConfig
#define InstallXinitConfig              YES
#undef  InstallXdmConfig
#define InstallXdmConfig                YES
#undef  InstallFSConfig
#define InstallFSConfig                 YES

#undef  BuildLinuxDocText
#define BuildLinuxDocText               NO
#undef  BuildLinuxDocHtml
#define BuildLinuxDocHtml               NO
#undef  BuildLinuxDocPS
#define BuildLinuxDocPS                 NO

#undef  NothingOutsideProjectRoot
#define NothingOutsideProjectRoot       YES

#endif /* AfterVendorCF */

Es importante que uséis el #undef antes de cambiar el valor de una variable para evitar mensajes de aviso durante la compilación.

La compilación

Una vez ya tenemos las XFree86 configuradas es el momento de compilarlas. El proceso es bien sencillo:

# cd /usr/xsrc
# make build

¡Y listo! Ésto compilará e instalará todo el paquete, y lo dejará (si no lo hemos cambiado) en /usr/X11R6.

Conclusiones

Espero que no os haya parecido muy complicado, pero el esfuerzo a merecido la pena. Ahora dispondréis de unas XFree86 más rápidas (debido a las opciones de optimización) y más pequeñas (gracias a que hemos quitado opciones de compilación).

Sólo os queda configurar las XFree86 (usar el xf86config) y empezar a compilar programas ;-)


eldemonio.org El site BSD en Castellano Articles catalogue

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

eldemonio.org v 4_2