Capítulo 3. Características del script

Visión general de las características

Las características de Kdesvn-build incluyen:

  • Soporte de distintos niveles de detalle en los mensajes de salida, que van desde prácticamente nada hasta un completo nivel de depurado.

  • Kdesvn-build, con la asistencia del sitio web de kdesvn-buildy el servidor FTP de KDE (FTP desde Kdesvn-build 1.4), permite descargas rápidas de algunos módulos. Si el módulo que está descargando ya estaba empaquetado en el sitio web, kdesvn-build descargará este paquete y lo preparará para ser utilizado en su equipo.

    Esta opción es más rápida, y ayuda a aliviar la carga en los servidores de kde.org que ofrecen acceso anónimo al repositorio de Subversion.

  • Otra forma de aceleración es proporcionar un proceso de compilación para un módulo tan pronto como el código fuente para este módulo se haya descargado (disponible desde la versión 1.6).

  • Dispone de un excelente soporte para el módulo qt-copy, incluyendo la posibilidad de corregir fallos y aplicar parches a dicho módulo.

  • Kdesvn-build escribe la salida coloreada..

  • Kdesvn-build no necesita un GUI presente para funcionar. De esta manera, puede compilar KDE sin necesitar un entorno gráfico alternativo.

  • Permite establecer opciones predeterminadas para todos los módulos (como opciones de compilación o de configuración). Tales opciones pueden cambiarse también para algunos módulos específicos.

    Además, Kdesvn-build añadirá los indicadores especiales apropiados para ahorrarle posibles errores y problemas que puedan surgir de escribirlos usted mismo.

  • Kdesvn-build puede descargar una rama o etiqueta específica de un módulo. También puede asegurarse de que se está descargando una revisión específica de un módulo.

  • Kdesvn-build puede cambiar automáticamente de carpeta fuente para descargar un repositorio diferente, una rama o una etiqueta. Esto se produce automáticamente cuando cambia una opción que cambia la URL del repositorio a utilizar, pero puede utilizar la opción --svn-only para permitir que Kdesvn-build sepa que es aceptable este cambio.

  • Kdesvn-build puede descargar sólo partes de un módulo, para aquellas situaciones en las que sólo necesita un programa de un módulo de gran tamaño.

  • Para desarrolladores: Kdesvn-build le avisará si está utilizando svn+ssh:// ssh-agent y no está ejecutándose, puesto que ésto hará que SSH le pida continuamente la misma contraseña.

  • Puede enviar informes de error por correo electrónico a un usuario.

  • Puede eliminar la carpeta de compilación de un módulo después de su instalación para ahorrar espacio en tiempo de compilación.

  • La localización de las carpetas utilizadas por Kdesvn-build es configurable (incluso para cada módulo particular).

  • Puede usar Sudo, o una orden diferente indicada por el usuario para instalar módulos sin necesidad de hacerlo como superusuario.

  • Kdesvn-build se ejecuta con una prioridad reducida por defecto para permitirle utilizar el ordenador mientras se ejecuta el script.

  • Posibilidad de usar las etiquetas y ramas de Subversion en KDE.

  • Kdesvn-build utilizará una serie de técnicas para intentar y garantizar una compilación con éxito.

  • Ofrece soporte para reanudar la compilación de un determinado módulo. Usted puede incluso ignorar ciertos módulos temporalmente durante una compilación determinada.

  • Kdesvn-build puede realizar rápidamente una compilación parcial de un módulo directamente desde la línea de órdenes, cuando solamente necesita actualizar parte de un módulo.

  • Kdesvn-build descargará y creará automáticamente la carpeta /admin necesaria para un módulo si éste no se pudo descargar del repositorio Subversion la primera vez por alguna razón. Ésto solo se aplica a los módulos de KDE 3, ya que /admin no se necesita para los módulos qt-copy o KDE 4.

  • Kdesvn-build mostrará el progreso de la compilación cuando utilice CMake, y medirá siempre el tiempo consumido en él para notificárselo después.

  • Intenta reconstruir módulos automáticamente que utilizaron make incremental, lo que reducirá los fallos después de algunos tipos de envío.

  • Viene con un conjunto de opciones predeterminadas apropiado para compilar un KDE básico para un único usuario, directamente del repositorio anónimo de Subversion.

  • Expansión de tildes para sus opciones de configuración. Por ejemplo puede indicar:

    qtdir ~/kdesvn/build/qt-copy

  • Configurará automáticamente un sistema de compilación, de forma que la carpeta fuente sea diferente de la carpeta de compilación, con el objeto de mantener limpia la carpeta fuente.

  • Usted puede especificar las opciones globales que se apliquen sobre cada módulo que se obtiene, y también opciones que se apliquen a módulos individuales.

  • Puesto que a veces la herramienta autotools se desincroniza con los cambios en el árbol de código fuente, puede forzar que un módulo se vuelva a compilar creando un archivo .refresh-me en la carpeta de compilación del módulo en cuestión, o ejecutando Kdesvn-build con la opción --refresh-build.

  • Puede especificar varias variables de entorno que se utilizarán durante la compilación, incluyendo KDEDIR, QTDIR, DO_NOT_COMPILE, y CXXFLAGS.

  • Registro de órdenes. Los archivos de registros son fechados y numerados de forma que siempre tenga un archivo de registro para cada ejecución del script. Además, se crea un enlace simbólico llamado latest, que apunta al archivo de registro más reciente dentro de la carpeta de registro.

  • Si está compilando KDE para un sólo usuario en lugar de hacerlo para todo el sistema (para lo cual necesitaría ser superusuario), puede utilizar el script para usted. No he revisado este código, y hace un amplio uso de la función system(), por lo que yo no recomendaría utilizarlo como superusuario.

  • Puede usar make-install-prefix para añadir un prefijo a la línea de órdenes de make install con una orden separada, lo cual es útil para Sudo.

  • Puede descargar solo una parte del módulo Subversion de KDE. Por ejemplo, puede descargar solo taglib desde kdesupport, o solo K3B desde extragear/multimedia. El script obtendrá kde-common si es necesario para el trabajo de compilación.

  • Puede simular que realiza las operaciones. Si le pasa las opciones --pretend o -p en la línea de órdenes, el script le dará una descripción detallada de las órdenes que va a ejecutar, pero sin llegar a ejecutarlas.