XFree86 4.x en NetBSD
Autor: Julio Merino (aka Slink)
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 fuenteLos 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 NetBSDEl 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ónA 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.
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ónUna 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. ConclusionesEspero 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 ;-) |