Gentoo Logo

Guía Gentoo de Actualización a libxcb 1.4

Contenido:

1.  Actualizando a libxcb 1.4

Listado de Código 1.1: Actualizando los paquetes xcb

# emerge -1 x11-proto/xcb-proto x11-libs/libxcb
# emerge -1 x11-proto/xproto x11-proto/xextproto x11-libs/libX11 x11-libs/libXext

Ahora tenemos todos los paquetes necesarios con el soporte para la nueva libxcb.

2.  Reparando los archivos libtool desenlazados

Mientras que la actualización de por sí esté lista y su sistema todavía funcione, el instalar paquetes nuevos o actualizaciones podrían darnos algunas sorpresas desagradables, dados los infames archivos .la de libtool.

El problema es que hasta hace poco, libX11 usaba una librería libxcb privada de nombre libxcb-xlib.so, creada específicamente para libX11. Mientras que eso de por sí no es problema, esta mínima librería poluía casi todos los archivos .la del sistema. Así funciona libtool.

Ahora esto se convierte en problema ya que nuevas versiones de libxcb ya no proporcionan esta librería (por supuesto que se hizo la reparación correspondiente a libX11). Ahora necesitamos deshacernos de todas las referencias a esta librería en los archivos .la.

Para hacer esto, ejecute /usr/portage/x11-libs/libxcb/files/xcb-rebuilder.sh para reparar todos los archivos .la del sistema.

Esta herramienta también reportará si todavía hay librerías compartidas (archivos .so, localizados usualmente en /lib y /usr/lib) todavía hacen referencia a la librería desaparecida. Si la herramienta reporta paquetes desenlazados, por favor siga leyendo y si no, está de suerte, su sistema está listo :)

3.  Reparando librerías compartidas "desenlazadas"

Para evitar echarle a perder los sistemas de los usuarios, hemos decidido mantener libxcb-xlib.so para reparar el sistema oportunamente, a su propio paso. Si siguió las instrucciones anteriores, el sistema debería funcionar correctamente al momento de construir y al ejecutar.

Antes de poder eliminar libxcb-xlib.so habrá que reconstruir algunos paquetes. Si no lo hace, el eliminar la librería vieja romperá el sistema.

Ejecute el siguiente guión para reconstruir un subconjunto sencillo y efectivo de los paquetes que hayan sido potencialmente desenlazados. No se preocupe acerca de la instalación de paquetes que no estaban instalados antes.

Listado de Código 3.1: Primero la reconstrucción de paquetes esenciales

# emerge --oneshot \
$(for i in x11-proto/ x11-libs/libxcb x11-libs/libX11 x11-libs/libXext \
           x11-libs/libX x11-libs/xcb-util x11-libs/cairo \
           x11-libs/pango x11-libs/gtk+ gnome-base/libgnomeui \
           x11-libs/qt-gui; do \
    qlist -IC $i; \
done) -pv

Una vez hecho esto, use revdep-rebuild (del paquete app-portage/gentoolkit) para terminar de arreglar el resto del sistema.

Listado de Código 3.2: Reconstruyendo el resto de paquetes desenlazados

# revdep-rebuild -L libxcb-xlib.so.0

Cuando revdep-rebuild ya no reporte más paquetes desenlazados, puede eliminar al archivo libxcb-xlib.so.0 con seguridad del directorio de librerías.



Imprimir

Página actualizada 12 de septiembre, 2009

Sumario: Esta guía enseña cómo actualizar de libxcb 1.1.90.2 y versiones anteriores a libxcb 1.4.

Remi Cardona
Autor

John Christian Stoddart
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.