Capítulo 4. El formato de .kdesvn-buildrc

Para utilizar el script, debe tener un archivo en su carpeta personal llamado .kdesvn-buildrc, que describe los módulos que le gustaría descargar y generar.

Éste comienza con las opciones globales, especificadas como sigue:

global
nombre-opción valor-opción
[...]
end global

Es seguido a continuación de una o más secciones para cada módulo, especificadas como sigue:

module nombre-módulo
nombre-opción valor-opción
[...]
end module

nombre-módulo debe ser un módulo del repositorio Subversion de KDE (por ejemplo, kdelibs o kdebase). Algunas opciones pueden sobrescribir las opciones globales, algunas se añaden a las opciones globales, y otras opciones globales simplemente no pueden ser sobrescritas.

A continuación se muestra una lista ordenada por orden alfabético de las opciones que puede usar. Haga click sobre una opción para averiguar más sobre ella. Si alguna no está documentada, por favor envíe un correo electrónico a los autores usando la dirección que se encuentra arriba.

  • apply-qt-patches, para mejorar qt-copy.

  • async, para compilar e instalar a la vez.

  • binpath, para establecer la variable PATH.

  • branch, para obtener el código de una rama en lugar de /trunk.

  • build-dir, para establecer la carpeta carpeta donde realizar la compilación.

  • checkout-only, para descargar solamente algunas partes de un módulo.

  • cmake-options para definir los modificadores con los que configurar un módulo utilizando CMake.

  • colorful-output para añadir color a la salida del script.

  • configure-flags para definir las opciones (flags) con las que configurar un módulo.

  • cxxflags para definir la variable CXXFLAGS.

  • dest-dir para cambiar el nombre de la carpeta para un módulo.

  • disable-agent-check, para que Kdesvn-build no compruebe el estado de ssh-agent.

  • do-not-compile, para señalar las carpetas que debe saltarse la compilación.

  • inst-apps, para compilar e instalar solamente algunos carpetas.

  • install-after-build, para no realizar la instalación después del proceso de compilación.

  • kdedir, para establecer la carpeta donde instalar KDE.

  • kde-languages, para establecer los paquetes de traducción a descargar e instalar.

  • libpath, para establecer la variable LD_LIBRARY_PATH.

  • make-install-prefix, para ejecutar un programa auxiliar (como Sudo) durante el make install.

  • make-options, para pasar opciones al programa Make.

  • manual-build, para evitar compilar el módulo automáticamente.

  • manual-update, para no hacer nada con el módulo automáticamente.

  • module-base-path, para cambiar desde dónde se descarga el módulo (útil para ramas y etiquetas).

  • niceness, para cambiar la prioridad sobre la CPU.

  • no-rebuild-on-fail, para no volver a ejecutar Make otra vez si falla.

  • qtdir, para establecer la ruta de la biblioteca Qt™.

  • set-env, para establecer una variable de entorno.

  • source-dir, para cambiar la carpeta destino del código fuente obtenido.

  • stop-on-failure, para que Kdesvn-build se detenga tan pronto como encuentre un fallo.

  • svn-server, para cambiar el servidor desde donde se descarga el código fuente.

La siguiente es una tabla de varias opciones y sus comentarios. Cualquier opción que pueda sobreescribir una opción global, sobreescribirá también cualquier indicación en la línea de órdenes.

Tabla 4.1. Tabla de opciones

Nombre de opciónMódulo -> Comportamiento globalObservaciones
apidoxSobreescribe las opciones globales

Esta opción se utilizaba para permitir la generación de la documentación del API del módulo de KDE. Se eliminó en Kdesvn-build 1.6.3 ya que no está soportado en KDE 4. La documentación del API se encuentra disponible en línea desde kde.org. Además es posible generar la documentación del API de KDE 4 utilizando el guión incluido en el módulo kdesdk (carpeta /scripts). Consulte la base tecnológica de KDE para obtener más detalles. Por supuesto, también es posible generar la documentación del API para los módulos antiguos.

apply-qt-patchesSobreescribe las opciones globalesEsta opción es útil solamente para qt-copy. Si su valor es distinto de cero, se ejecutará primero apply-patches de la carpeta qt-copy antes de la compilación, con el fin de aplicar los parches no oficiales sobre qt-copy. Puesto que estos parches son habitualmente la razón para usar qt-copy en lugar de una versión oficial de Qt™, no debería ser perjudicial habilitar esta opción. De forma predeterminada se aplicarán los parches.
asyncNo puede ser sobrescrita

Esta opción activa el modo asíncrono de operación, dónde el código fuente se actualiza y el proceso de compilación se realizará en paralelo, en lugar de esperar a que se actualice todo el código fuente antes de iniciar el proceso de compilación. De modo predeterminado el modo asíncrono está activado. Para desactivar esta opción cambie su valor a false (falso)

Esta opción está disponible desde la versión 1.6.

binpathSobreescribe las opciones globales

Establezca esta opción para definir la variable de entorno PATH durante la compilación. Esta opción no puede sobrescribirse dentro de un módulo. El valor predeterminado es /bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin. Esta variable de entorno debería incluir las rutas de cada herramienta de desarrollo separadas por dos puntos. Las rutas $KDEDIR/bin y $QTDIR/bin se añaden automáticamente. Puede usar la tilde (~) para cualquier ruta que añada con esta opción.

branchSobreescribe las opciones globales

Establezca esta opción para descargar una rama en particular de KDE en lugar de la rama predeterminada trunk, donde tiene lugar el desarrollo de KDE. Por ejemplo, para descargar la rama 3.4 de KDE escriba en esta opción 3.4.

Observe que algunos módulos utilizan un nombre de rama diferente. Sin ir más lejos, el módulo arts no sigue la numeración de versiones de KDE. La versión de arts que incluía KDE 3.4 era la 1.4.

Si Kdesvn-build no consigue descargar correctamente una rama con esta opción, tiene la posibilidad de especificar manualmente el URL de la descarga usando la opción override-url.

build-dirSobreescribe las opciones globalesUtilice esta opción para cambiar la carpeta que contiene las fuentes de compilación. Existen tres formas diferentes de utilizarlo:
  • Relativo a la carpeta fuente Subversion de KDE (consulte la opción source-dir). Es el valor predeterminado, y la forma en que trabaja el script a partir de la versión 0.61. Éste modo se selecciona si teclea el nombre de una carpeta que no comienza con una tilde (~) o con una barra (/).

    El valor predeterminado es build.

  • Ruta absoluta. Si especifica una ruta que comienza con una /, la ruta se utiliza directamente. Por ejemplo, /tmp/kde-obj-dir/.

  • Relativa a la carpeta personal. Si especifica una ruta que comienza con una ~, la ruta se utiliza de forma relativa a su carpeta personal, de forma análoga a la expansión de la tilde en los intérpretes de órdenes. Por ejemplo, ~/builddir hará que la carpeta de compilación sea /home/nombre-usuario/builddir.

Quizá sorprendentemente, esta opción puede cambiarse para cada módulo.
checkout-onlySobreescribe las opciones globalesEstablezca esta opción para descargar las fuentes Subversion parte a parte. El valor predeterminado para esta opción debería ser un espacio separado por una lista de carpetas de descarga. Si no incluye la carpeta admin, se incluirá automáticamente (si fuera necesario). Cuando descarga por partes, la carpeta admin se colocará en kde-common, que es donde se encuentra en el servidor Subversion. A pesar de que esta opción sobrescribe la opción global, piense que establecer esta opción como global carece de sentido.
cmake-optionsSe añade a las opciones globales (no aplicable a qt-copy)

Use esta opción para especificar los modificadores que se pasarán a CMake para crear el sistema de compilación para el módulo. Cuando se utiliza como opción global, se aplica a todos los módulos compilados por este script. Cuando se utiliza como una opción del módulo, se añade al final de las opciones globales. Permite especificar opciones comunes para CMake en la sección global.

Esta opción reemplaza a configure-flags para todos los módulos de KDE 4, ya que utiliza CMake para su compilación.

Puesto que estas opciones se pasan directamente a la línea de órdenes de CMake, deberían darse tal y como se teclearía en CMake. Por ejemplo:

cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo

Puesto que esto puede ser un problema, Kdesvn-build se asegura de que el resto de las opciones se establezcan correctamente, pudiendo dejar esta opción en blanco.

configure-flagsSe añade a las opciones globales (salvo para qt-copy)

Use esta opción para especificar los indicadores (flags) que se pasarán al script ./configure al crear el sistema de compilación para el módulo. Cuando se utiliza como opción global, se aplica a todos los módulos compilados por este script. qt-copy usa un conjunto de opciones de configuraciones bastante diferente al resto de KDE, por lo que esta opción sobreescribe las preferencias globales cuando se aplica a qt-copy.

Esta opción se aplica a qt-copy y a todos los módulos de KDE 3. Los módulos de KDE 4 utiliza CMake, que se controla utilizando la opción cmake-options.

colorful-outputNo puede ser sobrescritaEstablezca el valor de esta opción a false (falso) para deshabilitar la salida coloreada de Kdesvn-build. Esta opción tiene como valor predeterminado true. Observe que Kdesvn-build sólo imprimirá los códigos correspondientes a los colores en una terminal (como xterm, Konsole, o la consola habitual de Linux®).
cxxflagsSe añade a las opciones globales

Utilice esta opción para pasar los indicadores a ./configure como CXXFLAGS cuando se crear el sistema de compilación para el módulo. Esta opción se especifica aquí, en lugar de con configure-flags o cmake-options, puesto que de este modo también se establecerá el valor de la variable de entorno CXXFLAGS durante el proceso de compilación.

Observe que para KDE 4 y otros módulos que utilicen CMake, es necesario establecer la opción CMAKE_BUILD_TYPE a «none» al configurar el módulo, utilizando la opción cmake-options.

dest-dirSobreescribe las opciones globalesUtilice esta opción para cambiar el nombre de un módulo en el disco. Por ejemplo, si su módulo fue extragear/network, debería cambiar el nombre a extragear-network utilizando esta opción. Tenga en cuenta que a pesar de que ésto cambie el nombre en el disco, no es una buena idea incluir la carpeta o separadores de carpeta en el nombre ya que puede interferir con cualquier opción build-dir o source-dir.
disable-agent-checkNo puede ser sobrescritaNormalmente, si está usando SSH para descargar el código fuente desde el repositorio de Subversion (si está usando el protocolo svn+ssh por ejemplo), Kdesvn-build tratará de asegurarse de que si está usando ssh-agent, éste se ocupe de algunos identidades SSH. Ésto es así para evitar que SSH le pida la frase de paso para cada módulo. Puede deshabilitar esta comprobación cambiando el valor de disable-agent-check a true (verdadero).
do-not-compileSobreescribe las opciones globales

Utilice esta opción para seleccionar un grupo específico de carpetas que no se generarán en el módulo (en lugar de todas ellas). Dichas carpetas se deben separar con espacios.

Esta funcionalidad está soportada tanto para KDE 3 como para KDE 4. El soporte para KDE 4 se añadió en Kdesvn-build 1.6.3.

Tenga en cuenta que los fuentes de los programas se descargarán. Debería utilizar la directiva checkout-only para elegir las carpetas que desee descargar.

Por ejemplo, para mantener JuK y KsCD en el módulo kdemultimedia en la compilación, podría añadir «do-not-compile juk kscd» a sus configuraciones de kdemultimedia.

email-addressNo puede ser sobrescrita

Asigne al valor de esta opción la dirección de correo electrónico que debería utilizar Kdesvn-build en caso de que fuera necesario. No se preocupe por esta opción si no va a utilizar ninguna característica que pueda enviar un correo electrónico (de forma predeterminada están todas deshabilitadas).

Actualmente sólo email-on-compile-error necesita esta opción.

email-on-compile-errorNo puede ser sobrescrita

Puede poner en esta opción la dirección de correo electrónico en la que desea recibir el informe de fallos cuando un módulo no compila correctamente. Kdesvn-build esperará a que todos los módulos hayan acabado y almacenará todos los resultados en el informe. Este informe sólo es enviado si un módulo falla al compilar.

Por favor, consulte la opción email-address para establecer la dirección de correo desde la que Kdesvn-build debería mandar cualquier mensaje, puesto que la opción predeterminada no suele ser la deseada.

inst-appsSobreescribe las opciones globales

Es la opuesta a la opción do-not-compile. Esta opción hace que solo se compilen las carpetas de nivel superior proporcionados. Las carpetas deberían estar separados por espacios en blanco.

Cualquier cambio no tendrá efecto hasta la próxima vez que se ejecute make -f Makefile.cvs, bien automáticamente por el script, o bien manualmente por las opciones --refresh-build o --recreate-configure.

Importante

Esta opción no funciona todavía con aquellos módulos que utilicen el sistema de compilación CMake.

Tenga en cuenta que los fuentes de los programas se descargarán. Debería utilizar la directiva checkout-only para elegir las carpetas que desee descargar.

install-after-buildSobreescribe las opciones globalesEsta opción se utiliza para instalar el paquete una vez que se ha compilado satisfactoriamente. Está habilitada de forma predeterminada. Si desea deshabilitarla, debe poner esta opción a 0 en el archivo de configuración. También puede utilizar el modificador --no-install en la línea de órdenes.
kdedirSobreescribe las opciones globalesEsta opción establece la carpeta en la que se instalará KDE tras su generación. La carpeta predeterminada es ~/kde. Si cambia esta carpeta por una que necesite permisos de superusuario, tal vez quiera leer también acerca de la opción make-install-prefix.
kde-languagesNo puede ser sobrescrita

Esta opción le permite indicar que, junto con KDE, se descarguen e instalen paquetes de localización. Puede querer esta opción si usted no vive en los Estados Unidos y le gustaría tener KDE traducido a su idioma.

Para usar esta opción, indique una lista de los idiomas a instalar separados por un espacio en blanco. Cada idioma tiene asociado un código que puede consultar en esta página: http://i18n.kde.org/teams/.

Es perfectamente válido seleccionar un sólo idioma. Por omisión, no se descarga ningún paquete de localización, lo que quiere decir que KDE aparecerá en inglés americano.

Por ejemplo, para elegir instalar el soporte para el francés, debería establecer la opción a algo como: kde-languages fr. No obstante, después debe utilizar Preferencias del sistema para seleccionar el idioma francés.

libpathSobreescribe las opciones globalesEsta opción se utiliza para dar valor a la variable de entorno LD_LIBRARY_PATH durante la compilación. Puede sobreescribir esta opción dentro de un módulo. El valor predeterminado es una cadena vacía, pero las rutas $KDEDIR/lib y $QTDIR/lib se añaden automáticamente. Puede utilizar la tilde (~) para cualquier ruta que añada usando esta opción.
log-dirSobreescribe las opciones globalesUse esta opción para cambiar la carpeta en la que se guardarán los archivos de registro generados por el script. Esta opción puede establecerse dentro de un módulo desde la versión 0.64 o posterior.
make-install-prefixSobreescribe las opciones globalesIndique en esta variable una lista separada por espacios, que será interpretada como una orden y sus argumentos y que precederá a la orden make install usada para instalar los módulos. Es útil para instalar paquetes utilizando Sudo por ejemplo, pero por favor tenga cuidado con los permisos de administrador.
make-optionsSobreescribe las opciones globalesEn esta variable se incluyen las opciones que se pasarán a la orden make en la línea de órdenes. Es útil para programas como distcc o sistemas con más de un núcleo de proceso.
manual-buildSobreescribe las opciones globalesEstablezca esta opción a true (verdadero) para que el proceso de compilación no intente compilar este módulo. Aún así, el módulo seguirámanteniéndose actualizado desde el repositorio Subversion. Esta opción es exactamente equivalente a la opción --no-build en la línea de órdenes.
manual-updateSobreescribe las opciones globalesEstablezca el valor de esta opción a true (verdadero) para mantener el proceso de compilación actualizado (y por extensión, la compilación e instalación) para este módulo. Si establece esta opción para un módulo, coméntelo.
module-base-pathSobreescribe las opciones globales

Asigne un valor a esta opción para sobreescribir la ruta a la carpeta predeterminado de Kdesvn-build para el módulo en cuestión. Se puede utilizar, por ejemplo, para ramas específicas o versiones etiquetadas de bibliotecas. El visor de las fuentes de KDE puede ayudarle de forma importante para establecer la ruta correcta.

Observe que Kdesvn-build construye la ruta final según la siguiente plantilla: $svn-server/home/kde/$module-base-path/$module-name.

La opción predeterminada es trunk o bien trunk/KDE, dependiendo del nombre del módulo.

Sugerencia

Utilice las opciones branch o tag siempre que sean aplicables.

nicenessNo puede ser sobrescritaEstablezca esta opción a un número entre 20 y 0. Cuanto mayor sea el número, menor será la prioridad otorgada a Kdesvn-build. El valor predeterminado es 10.
no-svnSobreescribe las opciones globalesSi esta opción vale true (verdadero) entonces Kdesvn-build no actualizará el código fuente para el módulo automáticamente. Intentará compilar el módulo como si lo hubiera hecho de cualquier otra forma.
no-rebuild-on-failSobreescribe las opciones globalesAsigne a esta opción el valor true (verdadero) para evitar que Kdesvn-build intente volver a compilar este módulo si falla la compilación incremental. Normalmente Kdesvn-build intentará volver a compilar el módulo desde cero para contrarrestar el efecto de desviación de la actualización del Subversion que puede terminar con un sistema de compilación desordenado.
override-urlSobreescribe las opciones globalesSi usa esta opción, Kdesvn-build utilizará este valor como URL a pasar a Subversion sin ningún cambio. Debería utilizar esta opción si desea descargar una versión específica y Kdesvn-build no puede comprender lo que quiere decir utilizar una rama.
qtdirSobreescribe las opciones globalesEstablezca esta opción para definir la variable de entorno QTDIR durante la compilación. Esta opción no puede ser sobreescrita dentro de un módulo. Si no especifica esta opción, se pondrá como valor predeterminado ${source-dir}/build/qt-copy, que usa el módulo qt-copy incluido en el repositorio de código fuente de KDE. Puede usar la tilde (~) para referirse a su carpeta personal.
remove-after-installSobreescribe las opciones globales

Si dispone de poco espacio en disco, tal vez quiera usar esta opción para eliminar automáticamente la carpeta de compilación (o también la carpeta fuente para instalaciones de una sóla vez) después de haber instalado el módulo satisfactoriamente.

Los posibles valores para esta opción son:

  • none - No borra nada (opción predeterminada).

  • builddir - Elimina la carpeta de compilación, pero no la fuente.

  • all - Elimina tanto la carpeta con el código fuente como la de compilación.

Observe que usar esta opción puede suponer un impacto negativo sobre el uso de ancho de banda (si usa al -todo-) y el tiempo empleado para compilar KDE, puesto que Kdesvn-build no podrá realizar compilaciones incrementales.

revisionSobreescribe las opciones globalesSi se utiliza esta opción con un valor diferente de 0, Kdesvn-build forzará a Subversion a que actualice el módulo a la revisión proporcionada, inclusive si se utilizan opciones como branch. Si el módulo ya está en la revisión, no se actualizará a menos que esta opción se cambie o se elimine de la configuración.
set-envSobreescribe las opciones globales

Esta opción acepta un conjunto de valores separados por espacios, donde el primer valor es la variable de entorno a definir, y el resto de valores lo que contendrá la variable. Por ejemplo, para establecer la variable RONALD a McDonald, debería poner esta orden en la sección apropiada:

set-env RONALD McDonald

Esta opción es especial, ya que puede repetirse sin sobreescribir opciones set-env anteriores en la misma sección del archivo de configuración. De esta manera puede definir más de una variable de entorno por módulo (o globalmente).

source-dirSobreescribe las opciones globalesEsta opción se usa para establecer la carpeta en la que se guardará el código fuente de KDE una vez descargado del repositorio Subversion. Si no especifica ningún valor, la carpeta predeterminada es ~/kdesvn. Si especifica la carpeta, hágalo con la ruta absoluta.
stop-on-failureSobreescribe las opciones globalesAsigne a esta opción el valor true (verdadero) para que el script se detenga después de un error durante el proceso de compilación o instalación. Esta opción está desactivada por omisión.
svn-serverSobreescribe las opciones globalesEsta opción se usa para establecer el servidor Subversion desde donde obtener el código fuente. El servidor predeterminado es el repositorio Subversion anónimo, svn://anonsvn.kde.org/
tagSobreescribe las opciones globales

Use esta opción para descargar una versión específica de un módulo.

NOTA: Si no desea utilizar esta opción las posibilidades de que todo salga correctamente son muy altas. Las versiones de KDE están disponibles en un archivo comprimido tar en el sitio FTP de KDE o en uno de sus espejos.

Si está utilizando Kdesvn-build porque ha tenido problemas al obtener una versión de KDE y compilarla en su distribución, considere utilizar la herramienta de compilación Konstruct en su lugar, que funciona a partir de las versiones comprimidas con tar.

use-cmakeSobreescribe las opciones globalesEsta opción se eliminó en Kdesvn-build 1.4 ya que todos los módulos de KDE 4 precisan de CMake, y CMake no está permitido en los demás módulos.
use-qt-builddir-hackSobreescribe las opciones globalesA pesar de que esta opción sobreescribe la opción global, solo tiene sentido para qt-copy. Asigne a esta opción el valor true (verdadero) para activar el modo srcdir != builddir experimental del script. Cuando se activa, Kdesvn-build copiará el módulo fuente qt-copy en la carpeta de compilación, y realizará su compilación ahí. Ésto significa que su variable de entorno QTDIR debería tener el valor ${qt-copy-build-dir}/qt-copy/lib. También debería cambiar su opción qtdir de forma similar. El make incremental debería funcionar en este modo, y como los indicadores se conservarán después de la copia. Si utiliza la opción apply-qt-patches, se aplicarán los parches en la carpeta de compilación, no en la carpeta con las fuentes. El valor predeterminado de esta opción es true (verdadero).
use-stable-kdeNo puede ser sobrescrita

Puesto que Kdesvn-build tiene soporte para compilar KDE 3 y 4, debe haber alguna manera de decirle que versión compilar. De forma predeterminada Kdesvn-build compilará la línea principal de desarrollo de KDE (llamada /trunk). Pero ésto se refiere a KDE 4, que no está preparado aún para su uso generalizado.

Puede utilizar la opción branch de forma global o para un módulo para descargar KDE 3.5 (o 3.4, etc.). Sin embargo, no es muy conveniente porque algunos módulos (como kdesupport) se comparten por 3.5 y 4. Además, existen más opciones relativas a las ramas que se pueden añadir al archivo de configuración.

Por tanto, si asigna a esta opción el valor global true (verdadero), Kdesvn-build descargará automáticamente la versión 3.5 de módulos de KDE tales como kdelibs y qt-copy, en lugar de la versión 4 de KDE. Puede utilizar las opciones branch o tag para sobreescribir la configuración para Kdesvn-build. De esta forma, puede elegir fácilmente descargar KDE 3.5 en lugar de KDE 4.