Getting Started/Build/kdesrc-build (gl)

    From KDE TechBase


    Getting_Started/Build/kdesrc-build


    Note
    A versión 3 da colección de software de KDE pode compilarse empregando versións anteriores de kdesrc-build, pero este artigo non trata ese tema.


    Compilar a colección de software de KDE empregando a ferramenta kdesrc-build

    Introdución

    kdesrc-build (outrora chamado “kdesvn-build”) é unha ferramenta que lle permite aos usuarios e desenvolvedores descargar e compilar facilmente as últimas versións da colección de software de KDE, directamente descargada do repositorios do código fonte. Automatiza, entre outras, as seguintes tarefas:

    • Obter o último código fonte.
    • Xestionar as actualizacións dos módulos dos que xa se descargou o código fonte.
    • Preparar o sistema de compilación para o módulo.
    • Realizar os procesos de compilación e instalación.
    • Empregar opcións de CMake e variables de ambiente personalizadas (para non ter que estalas lembrando sempre).
    • Mantemento dun rexistro cos erros de compilación para podelos revisar máis comodamente e así solucionar con maior facilidade os posibles problemas.

    Isto non acaba con todos os problemas de compilación da colección de software de KDE, aínda quendarán algúns. Moitos dos erros que se dan ao empregar outros métodos danse tamén ao empregar esta ferramenta, así que vai ter que ler os ficheiros de rexistro de erros.

    Vantaxes

    Pregúntase cales son as vantaxes de empregar esta ferramenta? Pois velaquí van algunhas:

    1. Reduce a cantidade de ordes que hai que executar manualmente. En vez de ter que engadir as opcións correctas das ordes «cmake» e «configure», pode configurar ditas opcións unha primeira vez e esquecerse delas, xa que kdesrc-build se encargará de empregalas sempre, evitando os problemas derivados de esquecer engadir ditas opcións.
    2. Rexistro das ordes para facilitar a solución de erros de compilación. A ferramenta rexistra o texto que producen todas as ordes nun ficheiro. Entre as vantaxes disto están:
      1. Ao fallar o proceso de compilación dun módulo, a descrición do erro queda gardada no disco, de xeito que se poida estudar e comparar con outras mensaxes de erro para atopar a solución.
      2. Menos mensaxes no terminal. Aínda empregando CMake, o texto que se xera ao compilar Qt ou un módulo da colección de software de KDE pode ser moi extensa. kdesrc-build oculta os detalles do proceso de compilación, e amosa no seu lugar un resumo ─coa porcentaxe completada─.
    3. Facilita moitísimo as cousas. En vez de ter que aprender a empregar Subversion e Git, así como a preparar un sistema de compilación para a colección de software de KDE, pode indicar os módulos que quere compilar, onde os quere instalar, e calquera outra opción que lle inteese e que kdesrc-build faga uso delas, permitíndolle a vostede estar a outras cousas (mesmo deixar o computador traballando).
    4. É compatible co proceso manual de compilación. kdesrc-build emprega unha árbore de directorios estándar para o código fonte e maila compilación, e emprega as mesmas ordes que empregaría vostede. Dese xeito poderá en calquera momento modificar e compilar o código pola súa conta se quere.

    Preparación

    Ligazóns de utilidade

    Se emprega kdesrc-build, pode que lle interese poder buscar nos repositorios do código fonte para saber que módulos buscar.

    • Para buscar no repositorio Subversion de KDE, empregue WebSVN.
    • Para buscar nos repositorios dos proxectos de KDE que empreguen Git, pode ir a Gitorious.
    • Pode navegar polas bibliotecas de Qt empregadas por KDE no sitio web de kde-qt en Gitorious.

    Requisitos

    kdesrc-build é bastante doado de instalar e configurar, pero deberá dispoñer do software axeitado para compilar a colección de software de KDE. A lista destes requisitos están dispoñible en:

    Para o propio kdesrc-build fai falla a versión 5.8 ou posterior de Perl. A meirande parte das distribucións de GNU/Linux contan con ela, instalada de maneira predeterminada. Pode comprobar a versión de Perl que ten instalada coa seguinte orde: perl -v

    Necesitará ademáis libwww, unha colección de módulos de Perl relacionados coa Internet.

    Note
    kdesrc-build desenvólvese en sistemas GNU/Linux, pero tamén debería funcionar nas distribucións de BSD, se ben poden resultar necearias algunhas das ferramentas de GNU.


    Descarga e instalación

    Unha vez teña o sistema listo para compilar a colección de software de KDE, pode descargar kdesrc-build do seu sitio web oficial. O ficheiro conterá (polo menos) o guión kdesrc-build e un ficheiro de configuración de exemplo. A instalación é tan doada como gardar o ficheiro e darlle permisos de execución. Se quere pode poñelo nun directorio dos que conten a súa variable de ambiente PATH, pero para o exemplo seguinte porémolo no directorio «$HOME/kdesrc».

    mkdir -p ~/kdesrc cd ~/kdesrc tar xjvf ~/path/to/kdesrc-build-1.12.tar.bz2 cp kdesrc-build-1.12/kdesrc-build .

    Se o prefire, pode obter a última versión (e ficheiro de configuración) directamente do SVN: mkdir -p ~/kdesrc cd ~/kdesrc export SVN_ROOT=svn://anonsvn.kde.org/home/kde svn cat $SVN_ROOT/trunk/KDE/kdesdk/scripts/kdesrc-build > kdesrc-build svn cat $SVN_ROOT/trunk/KDE/kdesdk/scripts/kdesrc-buildrc-sample > ~/.kdesrc-buildrc chmod +x kdesrc-build

    Configuración

    Agora configúreo. Os valores predeterminados do ficheiro de exemplo deberían valer na meirande parte dos casos.

    cp ~/kdesrc/kdesrc-build-1.12/kdesrc-buildrc-sample ~/.kdesrc-buildrc

    1. Now edit the ~/.kdesrc-buildrc

    Tip
    Teña en conta que o nome do ficheiro de configuración comeza cun punto, polo que será un ficheiro oculto. Pode que teña que configurar o xestor de ficheiros para amosar este tipo de ficheiros e así poder atopalo e editalo. Tamén pode editar o ficheiro antes de copialo a «$HOME/.kdesrc-buildrc».


    Asegúrese de que os módulos que quere compilar van incluídos. Probablemente lle interese ter como mínimo os seguintes:

    • qt-copy, kdesupport, kdelibs, kdepimlibs, kdebase

    Os módulos compílanse na orde en que aparecen no ficheiro de configuración, así que o primeiro debería ser qt-copy, logo kdelibs, e logo os demais.

    Note
    O ficheiro de configuración de exemplo xa ten estes módulos de maneira predeterminada, non terá que cambiar nada a non ser que queira engadir máis módulos ─quitándolles o «#» de diante─.


    Pode que queira activar a opción make-install-prefix se vai instalar KDE ou Qt nun directorio alleo ao seu directorio persoal. Esta opción permítelle empregar su ou sudo durante o proceso make install para que poida instalar ficheiros como administrador (root), ou permitir que certos programas se executen con máis permisos (necesario para que algúns programas funcionen correctamente).

    module kdelibs
      make-install-prefix sudo -S # sudo sen stdin
    end module
    
    module kdebase
      make-install-prefix sudo -S
    end module

    Se quere compilar un módulo que non está presente, engada o seguinte:

    module <nome-do-módulo>
    end module

    ao final do ficheiro de configuración. <nome-do-módulo> será o nome do módulo tal e como aparece no repositorio de software (por exemplo, kdemultimedia).

    Módulos baseados en Git

    Algúns proxectos de KDE empregar o sistema de control de versións Git en vez de Subversion (estase realizando unha migración a gran escala). Amarok e Konversation xa realizaron o cambio.

    Para compilar estes módulos con kdesrc-build só ten que engadir un par de liñas á configuración do módulo. Por exemplo, Konversation desenvólvese no repositorio git://gitorious.org/konversation/konversation.git de Gitorious. Para engadilo como módulo empregaríase algo como o seguinte (podendo o nome ser calquera, sempre que non se empregase previamente):

    module konversation
        repository git://anongit.kde.org/konversation
        branch master
    end module

    Neste caso escolleuse a póla «master» dado que é a póla predeterminada de Git.

    Agora, cada vez que compile Konversation, kdesrc-build empregará Git en vez de Subversion.

    Ordes útiles de kdesrc-build

    kdesrc-build emprégase dende a liña de ordes. A continuación lístanse algunhas das súas opcións máis útiles:

    OpciónEfecto
    --pretend (Forma acurtada: -p) kdesrc-build procesará as opcións e a súa configuración con normalidade, e realizará a compilación do mesmo xeito, pero en vez de descargar e compilar xerará a saída que xeraría en caso de facelo. Debería executar kdesrc-build sempre con esta opción antes de empregalo sen ela para asegurarse de que está a facer o que vostede quere que faga.
    --no-svn (Forma alternativa: --no-src)Esta opción sáltase o paso de actualización do código fonte, útil para cando estea a executar o guión pouco despois da última actualización e non quere descubrir que non houbo cambios.
    --refresh-buildEsta opción fai que o kdesrc-build borre a información sobre a compilación actual dos módulos indicados e os compile de novo dende cero. A opción tarda moito pero asegúrase de que todo vaia como debe ser.

    Calquera cousa que se indique na liña de ordes que non sexa unha opción interpretarase coma un nome de módulo a compilar, e compilaranse na orde indicada. Se non se indica módulo ningún, compilaranse todos os módulos do ficheiro de configuración na orde na que aparecen no mesmo.

    Compilación

    Xa case acabamos. Se rematou de personalizar o ficheiro de configuración, vai sendo hora de probar a ferramenta. En teoría é tan doado como executar kdesrc-build e volver máis tarde ;) We're almost there. If you're happy with your settings then it's time to test out kdesrc-build. In theory things are as simple as running kdesrc-build and then coming back later. ;)

    cd ~/kdesrc ./kdesrc-build

    Pero pode que queira probalo antes compilando qt-copy.

    cd ~/kdesrc ./kdesrc-build qt-copy

    Tip
    Se ten o aplicativo GNU screen emprégueo para executar kdesrc-build, pois así poderá telo executándose nunha sesión aparte e pechar a súa sen que o kdesrc-build deixe de traballar.


    Se a compilación falla (kdesrc-build amosará unha mensaxe de erro de cor vermella) son varias as posibilidades:

    1. Fáltalle unha das pezas claves do software necesario (como as bibliotecas de desenvolvemento).
    2. O código da compilación de software de KDE que está a compilar está “roto” ata o punto de non dar compilado. Isto adoita deberse a código acabado de enviar ao repositorio que funcionaba no computador do desenvolvedor, ou ás veces os luns (cando se permiten os cambios incompatibles en kdelibs).
    3. kdesrc-build non está correctamente configurado. Por exemplo, pode que estea intentando instalar nun directorio para o que non ten permisos de escritura, ou puido indicar un directorio de Qt que nin existe.
    4. O módulo podería depender dunha nova versión de qt-copy ou kdelibs (ou outro módulo). Se é o caso, terá que executar kdesrc-build para actualizar primeiro os módulos obsoletos.

    Como descubrir cal dos casos foi? A saída da orde que fallou quedará almacenada no directorio de rexistro. O directorio de rexistro predeterminado é o directorio log dentro do directorio do código fonte. O directorio estrutúrase así: log/data-de-execución/módulo/output-file.log. Para atopar o ficheiro axeitado con maior facilidade, existen unha serie de ligazóns simbólicas:

    log/latest ten as saídas da última vez que se executou kdesrc-build sen a opción --pretend. log/latest/<módulo>/error.log ten a saída da orde que provocou que fallase o módulo.

    Por exemplo, se qt-copy non deu compilado debería facer o seguinte para ler as mensaxes de saída:

    cd ~/kderc kwrite log/latest/qt-copy/error.log

    Substitúa kwrite polo seu editor de texto preferido. Con sorte a saída serviralle de axuda para resolver o problema. Por exemplo, se o fallo consiste nunha saída de CMake que di algo de que falta unha biblioteca, instálea e vólvao intentar. Para os erros de ligazón pode probar a executar --refresh-build no módulo (ou as bibliotecas necesarias como qt-copy ou kdelibs se iso non funciona).

    Se non dá coa solución, pode que queira agardar un día e probar a volver actualizalo, coa esperanza de que o erro se solucionase. Pode probar tamén a enviar un correo á rolda de correo kde-devel a ver se hai alguén que saiba a solución ou se hai outros co mesmo problema.

    Executar KDE

    Asumindo que instalou e compilou módulos abondo para unha instalación funcional da colección de software de KDE, aínda terá que preparar o seu ambiente correctamente para executala. kdesrc-build (aínda) non pode axudarlle aquí, polo que deberá seguir as instrucións fornecidas no artigo sobre como preparar a versión 4 da colección de software de KDE para o desenvolvemento.

    Asegúrese de empregar as mesmas rutas que as que definiu no ficheiro de configuración: para as variables KDEDIRS e KDEDIR empregue a configuración da opción "prefix" (na sección global). Para a variable QTDIR empregue a configuración da opción "qtdir".

    Manter ao día

    Manter a instalación de KDE ao día é tan doado como volver executar kdesrc-build. Todo kdesrc-build pasa polas seguintes fases:

    1. Actualizar o código fonte de todos os módulos a compilar.
    2. Compilar e instalar os módulos.

    En principio non se borran os directorios de compilación antigos, así que a compilación que se faga tras unha pequena actualización levará xeralmente menos tempo que a compilación inicial do módulo. Isto é o que se denomina "make incremental". Porén pode que ás veces sexa necesario realizar unha compilación completamente de cero por mor de inconsistencias entre a configuración do directorio de compilación e os cambios no directorio do código fonte. Pode empregar a opción --refresh-build para forzar unha compilación dende cero.

    Para máis información sobre como sacarlle o mellor partido a kdesrc-build, bótelle unha ollada á documentación oficial, na que se describen as opcións de todos os módulos e as opcións da liña de ordes dispoñibles, así como trucos para realizar útiles varias tarefas.

    Pode engadir as súas dúbidas á páxina de conversa deste artigo, preferiblemente na súa versión en inglés, e con sorte aparecerá alguén coa resposta que busca.