<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "kdesvn-build">
  <!ENTITY package "kdesdk">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Portuguese "INCLUDE"
> <!-- Change language only here -->
  <!ENTITY kdesvn-build "<application
>kdesvn-build</application
>">
  <!ENTITY BSD '<acronym
>BSD</acronym
>'>
  <!ENTITY git '<application
>Git</application
>'>
  <!ENTITY cmake '<application
>CMake</application
>'>
  <!ENTITY make '<application
>Make</application
>'>
  <!ENTITY ssh '<application
>SSH</application
>'>
  <!ENTITY cron '<application
>Cron</application
>'>
  <!ENTITY subversion '<application
>Subversion</application
>'>
  <!ENTITY sudo '<application
>Sudo</application
>'>
  <!ENTITY url '<acronym
>URL</acronym
>'>

  <!-- These define shortcut entities for some of the configuration options.
       Just add them as necessary.
  -->

  <!ENTITY configure-flags '<link linkend="conf-configure-flags"
>configure-flags</link
>'>
  <!ENTITY kdedir '<link linkend="conf-kdedir"
>kdedir</link
>'>
  <!ENTITY qtdir '<link linkend="conf-qtdir"
>qtdir</link
>'>
  <!ENTITY build-dir '<link linkend="conf-build-dir"
>build-dir</link
>'>
  <!ENTITY module-base-path '<link linkend="conf-module-base-path"
>module-base-path</link
>'>
  <!ENTITY override-url '<link linkend="conf-override-url"
>override-url</link
>'>
  <!ENTITY source-dir '<link linkend="conf-source-dir"
>source-dir</link
>'>
  <!ENTITY email-address '<link linkend="conf-email-address"
>email-address</link
>'>
  <!ENTITY email-on-compile-error '<link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
>'>
  <!ENTITY colorful-output '<link linkend="conf-colorful-output"
>colorful-output</link
>'>
  <!ENTITY tag '<link linkend="conf-tag"
>tag</link
>'>
  <!ENTITY branch '<link linkend="conf-branch"
>branch</link
>'>
  <!ENTITY do-not-compile '<link linkend="conf-do-not-compile"
>do-not-compile</link
>'>
  <!ENTITY checkout-only '<link linkend="conf-checkout-only"
>checkout-only</link
>'>
  <!ENTITY svn-server '<link linkend="conf-svn-server"
>svn-server</link
>'>
  <!ENTITY make-install-prefix '<link linkend="conf-make-install-prefix"
>make-install-prefix</link
>'>
  <!ENTITY niceness '<link linkend="conf-niceness"
>niceness</link
>'>
  <!ENTITY set-env '<link linkend="conf-set-env"
>set-env</link
>'>
  <!ENTITY libpath '<link linkend="conf-libpath"
>libpath</link
>'>
  <!ENTITY binpath '<link linkend="conf-binpath"
>binpath</link
>'>

  <!-- These define shortcut entities for some of the command line options.
       Just add them as necessary.
  -->
  <!ENTITY cmd-nice '<link linkend="cmdline-nice"
>--nice</link
>'>
  <!ENTITY cmd-ignore-modules '<link linkend="cmdline-ignore-modules"
>--ignore-modules</link
>'>
  <!ENTITY cmd-resume-from '<link linkend="cmdline-resume-from"
>--resume-from</link
>'>
  <!ENTITY cmd-resume-after '<link linkend="cmdline-resume-after"
>--resume-after</link
>'>
  <!ENTITY cmd-reconfigure '<link linkend="cmdline-reconfigure"
>--reconfigure</link
>'>
  <!ENTITY cmd-refresh-build '<link linkend="cmdline-refresh-build"
>--refresh-build</link
>'>
]>

<book lang="&language;">

<bookinfo>
<title
>Manual do 'Script' &kdesvn-build;</title>

<authorgroup id="authors">
<author
><firstname
>Michael</firstname
><surname
>Pyne</surname
> <affiliation
><address
><email
>mpyne@kde.org</email
></address
></affiliation>
</author>
<author
><firstname
>Carlos</firstname
><surname
>Woelz</surname
> <affiliation
><address
><email
>carloswoelz@imap-mail.com</email
></address
></affiliation>
</author>


<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>zepires@gmail.com</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>

<copyright>
<year
>2006</year>
<year
>2007</year>
<year
>2008</year>
<year
>2009</year>
<year
>2010</year>
<holder
>Michael Pyne</holder>
</copyright>

<copyright>
<year
>2005</year>
<holder
>Carlos Woelz</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2010-01-30</date>
<releaseinfo
>1,12</releaseinfo>

<abstract>
<para
>O &kdesvn-build; é um programa que compila e instala o &kde; directamente a partir do código existente nos repositórios de código-fonte do &kde;.</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</keyword>
<keyword
>git</keyword>
<keyword
>gitorious</keyword>
<keyword
>Desenvolvimento KDE</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Introdução</title>

<para
>O &kdesvn-build; é um programa que ajuda os utilizadores a instalar o <ulink url="http://www.kde.org/"
>&kde;</ulink
> a partir dos repositórios de código em <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
> e <ulink url="http://gitscm.org/"
>&git;</ulink
>. </para>

<para
>Este guia é uma introdução para descrever os seguintes aspectos da operação do &kdesvn-build;: </para>

<itemizedlist>
<listitem
><para
><link linkend="features"
>Funcionalidades</link
> notórias.</para
></listitem>
<listitem
><para
>Uma <link linkend="getting-started"
>introdução</link
> aos passos necessários para começar.</para
></listitem>
<listitem
><para
>A sintaxe e as opções do <link linkend="configure-data"
>ficheiro de configuração</link
>.</para
></listitem>
<listitem
><para
>As <link linkend="cmdline"
>opções da linha de comandos</link
>.</para
></listitem>
</itemizedlist>

<para
>Também estão documentados os passos que deverá efectuar com as outras ferramentas (por outras palavras, os passos que não são executados automaticamente pelo &kdesvn-build;). </para>

</chapter>
<chapter id="getting-started">
<title
>Começar</title>

<para
>Neste capítulo, será apresentada a forma de utilização do &kdesvn-build; para obter os módulos do repositório do &kde; e os compilar. Será dada também uma explicação básica da estrutura de &subversion; do &kde; e os passos que terá de efectuar antes de executar o programa. </para>

<para
>Todos os tópicos presentes neste capítulo são cobertos com ainda mais detalhe na secção <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
> Guia de Compilação do Código do &kde; Passo-a-Passo</ulink
>, na <ulink url="http://techbase.kde.org/"
>Página Técnica do &kde;</ulink
>. Se estiver a compilar o &kde; pela primeira vez, é uma boa ideia lê-lo ou consultá-lo como fonte de referência. Irá encontrar informações detalhadas sobre as ferramentas de empacotamento e os requisitos, os problemas de compilação comuns e as estratégias e informações sobre a execução da instalação do seu novo &kde;. </para>

<sect1 id="before-building">
<title
>Preparar o Sistema para Compilar o &kde;</title>

<sect2 id="before-building-users">
<title
>Configurar uma conta nova do utilizador</title>

<para
>Recomenda-se que use um conta de utilizador diferente para compilar, instalar e executar o seu ambiente &kde;, dado que são necessárias menos permissões e para evitar interferências com os pacotes da sua distribuição. Se já tiver pacotes do &kde; instalados, a melhor escolha será criar um utilizador diferente (dedicado) para compilar e executar o novo &kde;. </para>

<tip
><para
>Se deixar o &kde; do seu sistema incólume, poderá ter uma manobra de emergência, no caso de o &kde; compilado for instável por uma razão qualquer. </para
></tip>

<para
>Mais tarde, poderá fazer uma instalação de sistema se o desejar. Este documento não cobre uma instalação a nível do sistema. Se estiver a efectuar uma instalação a nível do sistema, provavelmente já deverá saber o que está a fazer. Caso contrário, poderá querer consultar a documentação ou páginas de ajuda da sua distribuição, para saber como preparar e usar a instalação do sistema correctamente. </para>

</sect2>
<sect2 id="before-building-preparation">
<title
>Garanta que o seu sistema está pronto para compilar o código do &kde;</title>

<para
>Antes de usar o programa &kdesvn-build; (ou qualquer outra estratégia de compilação), deverá instalar as ferramentas de desenvolvimento e bibliotecas necessárias para o &kde;. A lista completa das ferramentas necessárias poderá ser encontrada na <ulink url="http://techbase.kde.org/"
>TechBase do KDE</ulink
>. </para>

<para
>Aqui está uma lista das coisas que irá necessitar:</para>
<itemizedlist>

<listitem
><para
>Irá necessitar do &cmake;. A versão necessária irá variar, dependendo da versão do &kde; 4 que estiver a compilar; veja a TechBase para detalhes mais específicos.</para
></listitem>

<listitem
><para
>O programa do cliente de &subversion;, incluindo o suporte para HTTP Seguro (HTTPS). Para garantir o suporte necessário, poderá executar o <userinput
><command
>svn <option
>--version</option
></command
></userinput
>. Se o resultado disser que lida com o esquema HTTPS (para o acesso de escrita ao svn.kde.org) ou o esquema 'svn' (para o acesso de leitura ao anonsvn.kde.org), então deverá ser tudo.</para
></listitem>

<listitem
><para
>Se estiver a compilar o &Qt; ou qualquer um dos vários módulos do &kde; disponíveis no <ulink url="http://gitorious.org/"
>Gitorious</ulink
>, então terá de instalar também o <ulink url="http://gitscm.org/"
>gestor de controlo de código Git</ulink
>.</para
></listitem>

<listitem
><para
>Irá precisar de um ambiente de desenvolvimento de C++. Recomenda-se o GCC 3.4 ou posterior.</para
></listitem>

</itemizedlist>

<note
><para
>A maioria das distribuições dos sistemas operativos incluem um método para instalar facilmente as ferramentas de desenvolvimento necessárias. Consulte a página <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Getting Started</ulink
> (Introdução) da TechBase, na secção <quote
>Required Packages from your Distribution</quote
> (Pacotes Necessários da sua Distribuição) para ver se essas instruções já estão disponíveis.</para
></note>

<para
>Uma excepção às bibliotecas necessárias é a biblioteca &Qt;. O &kdesvn-build; irá instalar normalmente uma cópia do &Qt;, quer já o tenha instalado quer não, como tal não é necessário tê-la. Se não quiser usar a cópia do &Qt;, terá de fazer o seguinte:</para>

<itemizedlist>
<listitem>
  <para
>Certifique-se que remove o módulo 'qt-copy' do seu <link linkend="configure-data"
>ficheiro de configuração</link
>, dado que não irá necessitar dele e, se o tiver, só vai adicionar mais tempo à sua compilação.</para>
</listitem>

<listitem>
  <para
>Mude a configuração da opção <link linkend="conf-qtdir"
>qtdir</link
> no seu <link linkend="configure-data"
>ficheiro de configuração</link
>, de modo a apontar para o seu &Qt; de sistema. Isto é normalmente igual à configuração do $<envar
>QTDIR</envar
> no seu sistema.</para>
</listitem>

<listitem>
  <para
>Se não tiver já o &Qt; instalado, instale-o, incluindo os pacotes -dev ou -devel necessários. Deverá ter pelo menos o &Qt; 4.6 se for compilar o &kde; 4.</para>
</listitem>
</itemizedlist>

<para
>Alguns destes pacotes estão divididos em bibliotecas, programas ou utilitários e pacotes de desenvolvimento. Irá necessitar, pelo menos do programa ou biblioteca e do seu pacote de desenvolvimento. Se tiver dúvidas, instale tudo. As bibliotecas que necessita irão variar de acordo com os módulos que pretende compilar, dado que cada módulo tem os seus próprio requisitos. O <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4#Required_packages_from_your_distribution"
>TechBase do &kde;</ulink
> tem mais detalhes sobre as ferramentas e técnicas específicas usadas para instalar e encontrar o 'software' necessário. </para>

</sect2>

<sect2 id="before-building-prepare-script">
<title
>Configurar o &kdesvn-build;</title>

<sect3 id="get-kdesvn-build">
<title
>Instalar o &kdesvn-build;</title>
<para
>Poderá já ter uma versão do programa &kdesvn-build; instalada no sue sistema. Contudo, se não o tiver, poderá obtê-lo na <ulink url="http://kdesvn-build.kde.org/"
>página pessoal do &kdesvn-build;</ulink
> ou podê-lo-á encontrar no seu local original, no repositório de código do &kde;.</para>

<note
><para
>O &kdesvn-build; vem incluído no módulo 'kdesdk', sendo o módulo normalmente já incluído nas distribuições. Se tiver transferido o &kdesvn-build;, garanta que está a usar a versão que transferiu. Poderá usar a opção --version para garantir que está a usar a versão que acha correcta.</para
></note>

<orderedlist>
<listitem
><para
>Para obter o &kdesvn-build; a partir da sua página pessoal, basta ir à <ulink url="http://kdesvn-build.kde.org/"
>página pessoal do &kdesvn-build;</ulink
> e transferir a versão mais recente. A versão está dentro de um um pacote TAR comprimido, o qual poderá extrair com o &ark; ou o <command
>tar</command
>. O conteúdo do pacote inclui o programa &kdesvn-build; actual e um ficheiro de configuração de exemplo (<filename
>kdesvn-buildrc-sample</filename
>).</para
></listitem>

<listitem
><para
>Ou poderá obter o &kdesvn-build; do seu repositório de código, localizado em: <ulink url="http://websvn.kde.org/trunk/KDE/kdesdk/scripts/"
>http://websvn.kde.org/trunk/KDE/kdesdk/scripts/</ulink
>. Esta é a pasta do Kit de Desenvolvimento de Software do &kde;, que é o berço do &kdesvn-build;. Poderá carregar no item <filename
>kdesvn-build</filename
>, o qual lhe mostrará uma página onde poderá obter a última versão. Faça-o e grave-o num local conveniente no seu disco rígido. Faça mesmo para o <filename
>kdesvn-buildrc-sample</filename
> se necessitar.</para
></listitem>
</orderedlist>

<para
>Não interessando a técnica que usar, deverá garantir que o ficheiro <filename
>kdesvn-build</filename
> é executável. Por conveniência, deverá garantir que está numa pasta definida na variável de ambiente <envar
>PATH</envar
>, caso contrário, poderá obter mensagens que indiquem que o comando não foi encontrado ou que está a correr uma versão errada por engano.</para>
</sect3>

<sect3 id="setup-rcfile">
<title
>Preparar o ficheiro de configuração</title>

<para
>Ainda que o  &kdesvn-build; não necessite que você crie um <link linkend="configure-data"
>ficheiro de configuração</link
>, torna o trabalho muito mais simples. Se usar um <link linkend="configure-data"
>ficheiro de configuração</link
>, poderá controlar os módulos que são instalados ou remover módulos que não deseja instalar. O &kdesvn-build;, por omissão, instala uma instalação utilizável do &kde; que usa opções de instalação muito genéricas, o que poderá ser diferente das suas necessidades. Como tal, é melhor usar um <link linkend="configure-data"
>ficheiro de configuração</link
>. </para>

<para
>O <link linkend="configure-data"
>ficheiro de configuração</link
> dever-se-á chamar <filename
>.kdesvn-buildrc</filename
>. Este ficheiro deverá ser instalado na pasta pessoal (<filename class="directory"
>~/</filename
>), e contém todos os dados de configuração necessários para o programa correr, como as opções de configuração, compilação, a localização do código, o destino da instalação (prefixo), os módulos que serão compilados, &etc;. Os dados de configuração por omissão são oferecidos pelo ficheiro <filename
>kdesvn-buildrc-sample</filename
>, que poderá copiar para o <filename
>~/.kdesvn-buildrc</filename
> e depois editá-lo. </para>

<para
>Poderá encontrar mais informações sobre a sintaxe do <link linkend="configure-data"
>ficheiro de configuração</link
> em <xref linkend="configure-data"/> e em <xref linkend="kdesvn-buildrc"/>. </para>

</sect3>
</sect2>
</sect1>

<sect1 id="configure-data">
<title
>Definir os Dados de Configuração</title>

<para
>Para usar o &kdesvn-build;, deverá ter um ficheiro na sua pasta pessoal chamado <filename
>.kdesvn-buildrc</filename
>, que define as opções gerais e os módulos que deseja transferir e compilar. </para>

<note
><para
>É possível usar ficheiros de configuração diferentes para o &kdesvn-build;, que estão descritos em <xref linkend="kdesvn-buildrc"/>. Se necessitar de usar várias configurações, veja por favor essa secção. Aqui, assumir-se-á que a configuração está guardada em <filename
>~/.kdesvn-buildrc</filename
>.</para
></note>

<para
>A forma mais simples de prosseguir é usar o ficheiro <filename
>kdesvn-buildrc-sample</filename
> como modelo, definir as opções globais à sua necessidade e a lista dos módulos que deseja compilar. </para>

<para
>A configuração por omissão já deverá ser apropriada para efectuar uma compilação do &kde;. Algumas opções que poderá querer alterar incluem: <itemizedlist>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, para alterar a lista de pastas que serão percorridas na procura de comandos. É exactamente igual à variável <envar
>PATH</envar
> da linha de comandos.</para
></listitem>

<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, que muda a pasta de destino para onde o &kde; será instalado. Esta é por omissão a <filename class="directory"
>~/kde</filename
>, que é uma instalação para um único utilizador.</para
></listitem>

<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, que controla o local da instalação do &Qt; a usar. Por omissão, usa o módulo 'qt-copy' do repositório de &subversion; do &kde;. (<filename class="directory"
>~/kdesvn/build/qt-copy</filename
>).</para>

<para
>Para as versões do Qt que suportam a instalação, isto também controla onde instalar o 'qt-copy'.</para
></listitem>

<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, que selecciona o URL de onde transferir o código. Isto é útil se você for um programador com uma <ulink url="http://techbase.kde.org/Contribute/First_Steps_with_your_KDE_SVN_Account"
>conta de &subversion; para o &kde;</ulink
>.</para
></listitem>
</itemizedlist>
</para>

<para
>Depois da secção global, existe uma lista de módulos a compilar, rodeados por 'module ... end module'. Verifique se os módulos indicados são, de facto, os módulos que pretende compilar. As opções por omissão do ficheiro <filename
>kdesvn-buildrc-sample</filename
> deverão ser suficientes para obter uma instalação relativamente completa do &kde;. Grave o resultado como <filename
>.kdesvn-buildrc</filename
> na sua pasta pessoal. </para>

<para
>Se desejar afinar o seu ficheiro <filename
>.kdesvn-buildrc</filename
>, consulte o <xref linkend="kdesvn-buildrc"/> para obter informação mais detalhada sobre todas as opções de configuração. </para>

</sect1>

<sect1 id="building-and-troubleshooting">
<title
>Usar o 'script' &kdesvn-build;</title>

<para
>Agora está pronto para executar o programa. A partir de uma janela de termina, autentique-se com o utilizador que usa para compilar o &kde; e execute o programa: <screen
><prompt
>$</prompt
><command
>kdesvn-build</command
>
</screen>
</para>

<para
>Agora, o programa deverá começar a transferir o código e a compilá-lo. Dependendo dos módulos que obtiver, poderá ser possível que o &kdesvn-build; não consiga ser bem-sucedido da primeira vez que compilar o &kde;. Não desespere! </para>

<para
>O &kdesvn-build; regista o resultado de todos os comandos que executa. Por omissão, os ficheiros de registo são mantidos em <filename class="directory"
>~/kdesvn/log</filename
>. Para ver o que causou um determinado erro num módulo, no último comando do &kdesvn-build;, normalmente é suficiente ver o <filename
>~/kdesvn/log/latest/<replaceable
>nome-módulo</replaceable
>/error.log</filename
>.</para>

<para
>Nesse ficheiro, irá ver o erro que fez com que a compilação falhasse para esse módulo. Se o ficheiro disser (no fim) que lhe faltam alguns pacotes, tente instalar o pacote (incluindo os pacotes -dev apropriados) antes de tentar compilar esse módulo e passe a opção <link linkend="cmdline-reconfigure"
>--reconfigure</link
> depois de instalar os pacotes em falta.</para>

<para
>Por outro lado, se o erro parecer ser um erro de compilação do código do &kde;, pode ser que isso seja resolvido dentro de alguns dias. Se não for resolvido em tempo útil, sinta-se à vontade para enviar um e-mail para <email
>kde-devel@kde.org</email
> (poderá ser necessário inscrever-se) para comunicar o erro de compilação.</para>

<para
>Poderá encontrar mais exemplos comuns das coisas que poderão correr mal e as suas soluções, assim como algumas sugestões e estratégias gerais para compilar o &kde;, no <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
> Guia de Compilação do &kde; a Partir do Código, Passo-a-Passo</ulink
>. </para>

<note
><para
>Para mais informações sobre as funcionalidades de registo do &kdesvn-build;, vá a <xref linkend="kdesvn-build-logging"/>.</para
></note>

</sect1>

<sect1 id="environment">
<title
>Configurar o Ambiente para Executar o seu &kde; Novo</title>

<para
>Assumindo que está a usar um utilizador dedicado para compilar o &kde; e já tem uma versão do &kde; instalada, a execução do seu &kde; novo poderá ter os seus truques, dado que o &kde; novo terá de ter precedência sobre o antigo. Mude as variáveis de ambiente para garantir que isso acontece. </para>

<sect2 id="changing-profile">
<title
>Alterar a configuração do seu perfil inicial</title>

<important
><para
>O ficheiro <filename
>.bash_profile</filename
> é o ficheiro de configuração do utilizador na linha de comandos <application
>bash</application
>, que é usada por muitas distribuições de &Linux;. Se usar uma linha de comandos diferente, então poderá ter de ajustar os exemplos dados nesta secção, para a sua linha de comandos em particular.</para
></important>

<para
>Abra ou crie o ficheiro <filename
>.bash_profile</filename
> na pasta pessoal com o seu editor favorito e adicione ao fim do ficheiro: Se estiver a compilar o módulo 'qt-copy' (como está por omissão), adicione em alternativa: <programlisting>
QTDIR=(local da qtdir)   # Por omissão, ~/kdesvn/build/qt-copy.
KDEDIR=(local da kdedir) # Por omissão ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH

# Actuar adequadamente se a LD_LIBRARY_PATH não estiver definida
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
fi

export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH
</programlisting
> ou, se não estiver a compilar o 'qt-copy' (e usar o &Qt; do seu sistema), adicione isto em alternativa: <programlisting
>KDEDIR=(local da kdedir)  # Por omissão ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH

# Actuar adequadamente se a LD_LIBRARY_PATH não estiver definida.
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
fi

export KDEDIRS PATH LD_LIBRARY_PATH
</programlisting>
</para>

<para
>Se não estiver a usar um utilizador dedicado, defina um novo <envar
>$KDEHOME</envar
> para o seu novo ambiente no seu ficheiro <filename
>.bash_profile</filename
>: <programlisting
>export KDEHOME="${HOME}/.kde-svn"

# Criar a pasta se necessário
[ ! -e ~/.kde-svn ] &amp;&amp; mkdir ~/.kde-svn
</programlisting>
</para>

<note>
<para
>Se, mais tarde, o seu Menu K estiver vazio ou completamente cheio de aplicações da sua distribuição, poderá ter de definir as suas variáveis de ambiente do <acronym
>XDG</acronym
> no seu <filename
>.bash_profile</filename
>: <programlisting
>XDG_CONFIG_DIRS="/etc/xdg"
XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
export XDG_CONFIG_DIRS XDG_DATA_DIRS
</programlisting>

</para>
</note>

</sect2>
<sect2 id="starting-kde">
<title
>Iniciar o &kde;</title>

<para
>Agora que ajustou a sua configuração do ambiente para usar o &kde; correcto, é importante garantir que é usado o programa <command
>startkde</command
> correcto, também. </para>

<para
>Abra o ficheiro de texto <filename
>.xinitrc</filename
> da sua pasta pessoal, ou crie-o se necessário. Adicione a linha: <programlisting
><command
>exec</command
> <option
>${KDEDIR}/bin/startkde</option
>
</programlisting>
</para>

<important
><para
>Em algumas distribuições, poderá ser necessário efectuar os mesmos passos com o ficheiro <filename
>.xsession</filename
>, também na pasta pessoal. Isto aplica-se especialmente nos gestores de autenticação gráficos como o &kdm;, o <application
>gdm</application
> ou o <application
>xdm</application
>.</para>
</important>

<para
>Agora inicie o seu &kde; novo: nos sistemas &BSD; e &Linux;, com o suporte para terminais virtuais, os atalhos <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F1</keycap
></keycombo
> ... <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F12</keycap
></keycombo
> são usados para mudar para a Consola Virtual 1 a 12. Isto permite-lhe executar mais que um ambiente gráfico ao mesmo tmpo. Os primeiros seis são terminais de texto e os seis seguintes são gráficos. </para>

<para
>Se, quando iniciar o seu computador, lhe aparecer o gestor gráfico de autenticação, poderá usar o novo ambiente do &kde;, mesmo que não apareça como uma opção. A maioria dos gestores de autenticação, incluindo o &kdm;, têm uma opção para usar uma <quote
>Sessão Personalizada</quote
> quando se ligar. Com esta opção,a sua configuração de sessões é carregada do ficheiro <filename
>.xsession</filename
> da sua pasta pessoal. Se já tiver modificado este ficheiro como descrito acima, esta opção deverá carregar a sua nova instalação do &kde;. </para>

<para
>Caso contrário, existe algo que poderá tentar que normalmente funciona: Carregue em <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
>, para que lhe apareça um terminal de texto. Ligue-se com o utilizador dedicado e escreva: </para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<tip>
<para
>Poderá executar o &kde; a partir do código e o &kde; antigo ao mesmo tempo! Ligue-se com o seu utilizador normal e inicie o ambiente de trabalho do &kde; estável. Carregue em <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> (ou <keycap
>F1</keycap
>, <keycap
>F3</keycap
>, etc..), e verá um terminal de texto. Ligue-se com o utilizador dedicado ao &subversion; do &kde; e escreva:</para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<para
>Poderá voltar ao ambiente de trabalho do &kde; do seu utilizador normal se carregar na tecla de atalho do ambiente já em execução. Este é normalmente o <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, sendo que poderá também necessitar de usar o <keycap
>F6</keycap
> ou o <keycap
>F8</keycap
> em alternativa. Para voltar ao seu &kde; compilado pelo &kdesvn-build;, irá usar a mesma sequência, exceptuando o facto da tecla de função seguinte. Por exemplo, se precisar de introduzir o <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
> para mudar para o seu &kde; normal, poderá ter de introduzir <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
> para voltar ao seu &kde; do &kdesvn-build;.</para>
</tip>

</sect2>
</sect1>

</chapter>

<chapter id="features">
<title
>Funcionalidades do Programa</title>

<sect1 id="features-overview">
<title
>Introdução às Funcionalidades</title>

<para
>As funcionalidades do &kdesvn-build; incluem: </para>

<itemizedlist>

<listitem
><para
>Suporta os <link linkend="changing-verbosity"
>níveis de mensagens de resultado</link
>, desde o muito sossegado até à depuração completa. </para
></listitem>

<listitem
><para
>O &kdesvn-build; pode, com a assistência da <ulink url="http://kdesvn-build.kde.org/"
>página Web do &kdesvn-build;</ulink
> e com o servidor de FTP do &kde; (FTP desde o &kdesvn-build; 1.4), permitir extracções rápidas de alguns módulos. Se o módulo que estiver a extrair já tiver um pacote equivalente na página Web, então o &kdesvn-build; irá transferir essa imagem e prepará-la para o seu computador. </para>

<para
>Isto é mais rápido para si, e ajuda a libertar alguma carga nos servidores anónimos de &subversion; do kde.org.</para>
</listitem>

<listitem
><para
>Outra melhoria de performance é conseguida ao iniciar o processo de compilação de um módulo assim que o código-fonte desse módulo tenha sido transferido. (Disponível desde a versão 1.6) </para
></listitem>

<listitem
><para
>Tem um suporte excelente para o <link linkend="using-qt-copy"
>módulo 'qt-copy'</link
>, incluindo a aplicação opcional de actualizações ('patches') para correcções e optimizações no módulo 'qt-copy'. </para
></listitem>

<listitem
><para
>O &kdesvn-build; tem <link linkend="kdesvn-build-color"
>mensagens de resultado a cores</link
>. </para
></listitem>

<listitem
><para
>O &kdesvn-build; não necessita de uma <acronym
>GUI</acronym
> presente para funcionar. Por isso, poderá compilar o &kde; sem necessitar de um ambiente gráfico alternativo. </para
></listitem>

<listitem
><para
>Suporta a definição de opções por omissão para todos os módulos (como as opções de  compilação ou de configuração). Essas opções também poderão ser modificadas normalmente para módulos específicos.</para>

<para
>Do mesmo modo, o &kdesvn-build; irá <link linkend="kdesvn-build-std-flags"
>adicionar opções normais</link
>, como for apropriado, para lhe poupar trabalho e alguns erros possíveis, definindo-as você mesmo. </para
></listitem>

<listitem
><para
>O &kdesvn-build; poderá transferir uma <link linkend="using-branches"
>marca ou ramificação específica</link
> de um módulo. Poderá também garantir que é usada uma <link linkend="conf-revision"
>versão</link
> específica em vez de um módulo. </para
></listitem>

<listitem
><para
>O &kdesvn-build; poderá mudar automaticamente a pasta de origem para transferir a partir de um repositório, ramificação ou marca diferentes. Isto acontece automaticamente quando mudar alguma opção que altere o &url; do repositório, se bem que deva usar a opção <link linkend="cmdline-src-only"
>--src-only</link
> para deixar que o &kdesvn-build; saiba que é aceitável efectuar a mudança. </para
></listitem>

<listitem
><para
>O &kdesvn-build; pode <link linkend="partial-builds"
>obter apenas partes de um módulo</link
>, naquelas situações em que só necessita de um programa de um módulo grande. </para
></listitem>

<listitem
><para
>A transferência inicial de alguns módulos poderá ser acelerada pelo &kdesvn-build;, que irá transferir automaticamente (se estiver disponível) uma amostra do módulo das réplicas do &kde; e usá-la para configurar a extracção inicial. Isto poupa tempo e largura de banda, tanto para o seu sistema como para os servidores do &kde;. </para
></listitem>

<listitem
><para
>Para os programadores: O &kdesvn-build; <link linkend="ssh-agent-reminder"
>recordá-lo-á</link
> se usar o svn+ssh:// mas o <application
>ssh-agent</application
> não estiver a correr, dado que isso irá levar a pedidos de senha repetidos do &ssh;. </para
></listitem>

<listitem
><para
>Pode <link linkend="email-reports"
>enviar relatórios por e-mail</link
> dos erros a um dado utilizador. </para
></listitem>

<listitem
><para
>Pode <link linkend="deleting-build-dir"
>remover a pasta de compilação</link
> de um módulo, após a sua instalação, para poupar espaço, em detrimento de um maior tempo de compilação. </para
></listitem>

<listitem
><para
>Os locais das pastas usadas pelo &kdesvn-build; são configuráveis (mesmo por módulo). </para
></listitem>

<listitem
><para
>Pode usar o &sudo; ou um comando definido pelo utilizador para <link linkend="root-installation"
>instalar os módulos</link
>, para que o &kdesvn-build; não necessite de ser executado como super-utilizador. </para
></listitem>

<listitem
><para
>O &kdesvn-build; executa-se <link linkend="build-priority"
>com prioridade reduzida</link
>, por omissão, para lhe permitir usar à mesma o seu computador, enquanto o &kdesvn-build; estiver a funcionar. </para
></listitem>

<listitem
><para
>Tem suporte para usar as <link linkend="using-branches"
>marcas e ramificações</link
> do &subversion; do &kde;. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá usar um conjunto de técnicas para <link linkend="building-successfully"
>tentar e garantir</link
> uma compilação com sucesso. </para
></listitem>

<listitem
><para
>Existe o suporte para <link linkend="resuming"
>prosseguir com uma compilação</link
> de um dado módulo. Pode até <link linkend="ignoring-modules"
>ignorar alguns módulos</link
> temporariamente para uma dada compilação. </para
></listitem>

<listitem
><para
>O &kdesvn-build; pode efectuar rapidamente uma <link linkend="partial-builds"
>compilação parcial</link
> de um módulo, directamente a partir da linha de comandos, quando só necessitar de actualizar parte de um módulo. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá obter automaticamente e criar a pasta <filename class="directory"
>/admin</filename
> necessária, se não tiver sido obtida do &subversion; da primeira vez, por alguma razão. Isto só se aplica aos módulos do &kde; 3, dado que o /admin não é necessário nos módulos 'qt-copy' ou do &kde; 4. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá mostrar o <link linkend="build-progress"
>progresso da sua compilação</link
> ao usar o &cmake;, e irá medir sempre o tempo do processo de compilação, para que saiba no fim quanto tempo levou de facto. </para
></listitem>

<listitem
><para
>Tenta automaticamente compilar de novo os módulos que foram compilados com o 'make' incremental, que está sujeito a erros ao fim de algumas modificações. </para
></listitem>

<listitem
><para
>Vem incorporado com um conjunto seguro de opções predefinidas, apropriadas para compilar uma instalação mono-utilizador de base do &kde; a partir do repositório de &subversion; anónimo. </para
></listitem>

<listitem
><para
>Expansão do til (~) para as suas opções de configuração. Por exemplo, poderá indicar: <programlisting
>qtdir ~/kdesvn/build/qt-copy</programlisting>
</para
></listitem>

<listitem
><para
>Configura automaticamente um sistema de compilação, onde a pasta de código não é a mesma que a pasta de compilação, para que mantenha as suas pastas de origem limpas. </para
></listitem>

<listitem
><para
>Poderá indicar as opções globais a aplicar a todos os módulos a obter, assim como poderá indicar opções para se aplicar aos módulos individuais. </para
></listitem>

<listitem
><para
>Dado que as ferramentas 'auto*' normalmente perdem a sincronização com as modificações na árvore de código, poderá forçar uma nova compilação de um módulo, se criar um ficheiro chamado '.refresh-me' na pasta de compilação do módulo em questão ou executando o &kdesvn-build; com a opção <option
>--refresh-build</option
>. </para
></listitem>

<listitem
><para
>Poderá indicar vários valores de ambiente a usar durante a compilação, incluindo o <envar
>KDEDIR</envar
>, o <envar
>QTDIR</envar
>, o <envar
>DO_NOT_COMPILE</envar
> e o <envar
>CXXFLAGS</envar
>. </para
></listitem>

<listitem
><para
>Registo dos comandos. Os ficheiros de registo são datados e numerados, para que tenha sempre um relatório de execução de um programa. Do mesmo modo, é criada uma ligação simbólica 'latest' para apontar sempre para o item de registo mais recente na pasta respectiva. </para
></listitem>

<listitem
><para
>Se estiver a usar uma compilação de utilizador do &kde;, em vez de uma instalação do sistema (para a qual necessita de ser o 'root' para instalar), poderá usar o programa para o instalar por si. Não foi ainda validado o código e este faz uma utilização ampla da chamada <function
>system()</function
>, como tal, não é recomendado executá-lo como 'root' nesta altura. </para
></listitem>

<listitem
><para
>Poderá usar o <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> para anteceder o comando <userinput
><command
>make</command
> <option
>install</option
></userinput
> com um comando separado, o que poderá ser útil para o &sudo;. </para
></listitem>

<listitem
><para
>Poderá obter apenas uma parte de um módulo do &kde; no &subversion;. Por exemplo, poderá obter apenas a biblioteca <application
>taglib</application
> do <application
>kdesupport</application
> ou apenas o <application
>K3B</application
> do <application
>extragear/multimedia</application
>. O programa irá obter automaticamente o <application
>kde-common</application
>, se for necessário para fazer a compilação funcionar. </para
></listitem>

<listitem
><para
>Poderá <quote
>fingir</quote
> efectuar as operações. Se passar a opção <option
>--pretend</option
> ou <option
>-p</option
> na linha de comandos, o programa dar-lhe-á uma descrição mais extensiva dos comandos que estará prestes a executar, sem os executar de facto. </para
></listitem>

</itemizedlist>

</sect1>

<sect1 id="kdesvn-build-logging">
<title
>Registo de compilação do &kdesvn-build;</title>

<sect2 id="logging-overview">
<title
>Introdução ao registo</title>

<para
>O registo é uma funcionalidade do &kdesvn-build; que consiste no facto do resultado de todos os comandos que o &kdesvn-build; executa serem gravados num ficheiro para serem posteriormente examinados, se necessário. Isto é feito, porque muitas vezes é necessário ter o resultado destes programas quando houver um erro de compilação, dado que poderão existir várias razões para a compilação falhar, em primeiro lugar.</para>

<sect3 id="log-directory-layout">
<title
>Disposição da pasta de registo</title>

<para
>Os registos são sempre gravados sob a pasta de registo. O destino da pasta em questão é controlado pela opção <link linkend="conf-log-dir"
>log-dir</link
>, que é por omissão igual a <filename class="directory"
><symbol
>${source-dir}</symbol
>/log</filename
> (onde o <symbol
>${source-dir}</symbol
> é o valor da opção <link linkend="conf-source-dir"
>source-dir</link
>. No resto desta secção, este valor será referido como <symbol
>${log-dir}</symbol
>).</para>

<para
>Sob a <symbol
>${log-dir}</symbol
>, existe um conjunto de pastas, uma por cada vez que o &kdesvn-build; foi executado. Cada pasta tem como nome a data e o número da execução. Por exemplo, a segunda vez que o &kdesvn-build; foi executado a 26 de Maio de 2004 irá criar uma pasta chamada <filename
>2004-05-26-02</filename
>, onde o 2004-05-26 corresponde à data e o -02 é o número da execução.</para>

<para
>Por questões de conveniência, o &kdesvn-build; irá também criar uma ligação aos registos da sua última execução, chamada <filename class="directory"
>latest</filename
>. Assim, os registos da última execução mais recente do &kdesvn-build; deverão estar sempre sob a <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest</filename
>. </para>

<para
>Agora, cada pasta de uma execução do &kdesvn-build; irá conter, por sua vez, um conjunto de pastas, uma por cada módulo &kde; que o &kdesvn-build; tentará compilar. Do mesmo modo, irá conter um ficheiro chamado <filename
>build-status</filename
> nessa pasta, que lhe permitirá determinar quais os módulos que compilaram bem e os que falharam.</para>

<note
><para
>Se um módulo em si tiver um sub-módulo (como o extragear/multimedia, playground/utils ou KDE/kdelibs), então, só irá existir uma disposição equivalente na pasta de registos. Por exemplo, os registos do KDE/kdelibs, após a última execução do &kdesvn-build;, irão aparecer em <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/KDE/kdelibs</filename
> e não em <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/kdelibs</filename
>. </para
></note>

<para
>Na pasta de registo de cada módulo, irá encontrar um conjunto de ficheiros para cada operação que o &kdesvn-build; efectuar. Se o &kdesvn-build; actualizar um módulo, irá ver ficheiros chamados <filename
>svn-co.log</filename
> (para um módulo extraído por completo) ou <filename
>svn-up.log</filename
> (ao actualizar um módulo que já tinha sido extraído). Se o comando <command
>configure</command
> foi executado, então será de esperar ver um ficheiro <filename
>configure.log</filename
> nessa pasta.</para>

<para
>Se ocorreu um erro, deverá ser capaz de ver uma explicação da razão num dos ficheiros. Para o ajudar a determinar qual o ficheiro que contém o erro, o &kdesvn-build; irá criar uma ligação do ficheiro que contém o erro (do tipo <filename
>build-1.log</filename
> para um ficheiro chamado <filename
>error.log</filename
>).</para>

<para
>A vantagem de tudo isto é que, para ver onde é que um ficheiro falhou na compilação, após a sua última execução do &kdesvn-build;, o ficheiro que deverá ver primeiro é o <filename
><symbol
>${log-dir}</symbol
>/latest/<replaceable
>nome-módulo</replaceable
>/error.log</filename
>. </para>

<tip
><para
>Se o ficheiro <filename
>error.log</filename
> estiver em branco (especialmente após uma instalação), então provavelmente não houve qualquer erro. Algumas das ferramentas usadas pelo sistema de compilação do &kde; irão comunicar por engano um erro quando não ocorreu nada.</para>

<para
>Do mesmo modo, alguns comandos poderão fugir ao redireccionamento do resultado do &kdesvn-build; e passar ao lado do ficheiro de registo em certas circunstâncias (normalmente ao obter o conteúdo do &subversion; da primeira vez), onde o resultado do erro, nesse caso, não está no ficheiro de registo mas sim no &konsole; ou no terminal onde executou o &kdesvn-build;.</para>
</tip>

</sect3>
</sect2>
</sect1>

</chapter>

<chapter id="kdesvn-buildrc">
<title
>Configurar o &kdesvn-build;</title>

<sect1 id="kdesvn-buildrc-overview">
<title
>Introdução à configuração do &kdesvn-build;</title>

<para
>Para usar o programa, deverá ter um ficheiro na sua pasta pessoal <filename
>.kdesvn-buildrc</filename
>, que descreve os módulos que deseja obter e compilar. </para>

<para
>Ele começa com as opções globais, indicadas da seguinte forma: </para>

<programlisting
>global
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end global
</programlisting>

<para
>Segue-se então uma ou mais secções dos módulos, organizadas da seguinte forma: </para>

<programlisting
>module <replaceable
>nome-módulo</replaceable>
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end module
</programlisting>

<para
>O <replaceable
>nome-módulo</replaceable
> deverá ser um módulo do repositório de &subversion; do &kde; (por exemplo, o 'kdelibs' ou o 'kdebase'). Algumas das opções sobrepõem-se às globais, algumas adicionam-se às opções globais e algumas opções globais simplesmente não podem ser sobrepostas. </para>

<para
>Segue-se uma lista ordenada alfabeticamente das opções que poderá usar. Carregue na opção para descobrir mais sobre ela. Se alguma não estiver documentada, envie por favor um e-mail aos autores, usando o endereço que poderá encontrar <link linkend="authors"
>acima</link
>. </para>

<itemizedlist>
<listitem
><para
><link linkend="conf-async"
>async</link
>, para actualizar e compilar ao mesmo tempo.</para
></listitem>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, para definir a variável <envar
>PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-branch"
>branch</link
>, para obter uma dada ramificação, em vez da '/trunk'.</para
></listitem>
<listitem
><para
><link linkend="conf-build-dir"
>build-dir</link
>, para definir a pasta onde será feita a compilação.</para
></listitem>
<listitem
><para
><link linkend="conf-checkout-only"
>checkout-only</link
>, para transferir apenas as partes de um módulo.</para
></listitem>
<listitem
><para
><link linkend="conf-cmake-options"
>cmake-options</link
> para definir as opções com que um módulo poderá ser configurado com o &cmake;.</para
></listitem>
<listitem
><para
><link linkend="conf-colorful-output"
>colorful-output</link
> para colorir o resultado do programa.</para
></listitem>
<listitem
><para
><link linkend="conf-configure-flags"
>configure-flags</link
> para definir as opções com que um módulo poderá ser configurado.</para
></listitem>
<listitem
><para
><link linkend="conf-cxxflags"
>cxxflags</link
> para definir a variável <envar
>CXXFLAGS</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-dest-dir"
>dest-dir</link
> para mudar a pasta de instalação de um módulo.</para
></listitem>
<listitem
><para
><link linkend="conf-disable-agent-check"
>disable-agent-check</link
>, para impedir que o &kdesvn-build; verifique o estado do 'ssh-agent'.</para
></listitem>
<listitem
><para
><link linkend="conf-do-not-compile"
>do-not-compile</link
>, para marcar as pastas que não serão compiladas.</para
></listitem>
<listitem
><para
><link linkend="conf-install-after-build"
>install-after-build</link
>, para evitar a instalação após o processo de compilação.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, para indicar a pasta onde o &kde; será instalado.</para
></listitem>
<listitem
><para
><link linkend="conf-kde-languages"
>kde-languages</link
>, para definir os pacotes de traduções a transferir e instalar.</para
></listitem>
<listitem
><para
><link linkend="conf-libpath"
>libpath</link
>, para configurar a variável <envar
>LD_LIBRARY_PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-make-install-prefix"
>make-install-prefix</link
>, para executar um programa auxiliar (como o &sudo;) durante o <userinput
><command
>make</command
><option
>install</option
></userinput
>.</para
></listitem>
<listitem
><para
><link linkend="conf-make-options"
>make-options</link
>, para passar opções ao programa &make;.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-build"
>manual-build</link
>, para evitar que o módulo seja compilado automaticamente.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-update"
>manual-update</link
>, para evitar que seja feito, seja o que for, ao módulo de forma automática.</para
></listitem>
<listitem
><para
><link linkend="conf-module-base-path"
>module-base-path</link
>, para mudar o local onde transferir o módulo (útil para as ramificações - 'branches' -, e marcas - 'tags').</para
></listitem>
<listitem
><para
><link linkend="conf-niceness"
>niceness</link
>, para mudar a prioridade do CPU.</para
></listitem>
<listitem
><para
><link linkend="conf-no-rebuild-on-fail"
>no-rebuild-on-fail</link
>, para evitar executar o &make; de novo se falhar.</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, para definir a localização do &Qt;.</para
></listitem>
<listitem
><para
><link linkend="conf-set-env"
>set-env</link
>, para configurar uma variável de ambiente.</para
></listitem>
<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>, para mudar o local onde colocar o código transferido.</para
></listitem>
<listitem
><para
><link linkend="conf-stop-on-failure"
>stop-on-failure</link
>, para fazem com que o &kdesvn-build; pare o mais cedo possível, após encontrar um problema.</para
></listitem>
<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, para mudar o servidor de onde é transferido o código.</para
></listitem>
</itemizedlist>

</sect1>
<sect1 id="conf-options-table">
<title
>Tabela com as opções de configuração disponíveis</title>

<para
>Aqui está uma tabela com as opções globais, bem como alguns comentários sobre elas. As opções que se sobreporem às globais irão também sobrepor-se a uma configuração da linha de comandos. </para>

<table id="option-table">
<title
>Tabela de Opções</title>
<tgroup cols="3">

<thead>
<row>
<entry
>Nome da Opção</entry>
<entry
>Comportamento do Módulo -&gt; Global</entry>
<entry
>Notas</entry>
</row>
</thead>

<tbody>

<row id="conf-apidox">
<entry
>apidox</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Esta opção foi usada para permitir compilar a documentação da API do módulo do KDE. Ela foi removida do &kdesvn-build; 1.6.3 devido a não ser suportada no KDE 4. A documentação 'online' da API está disponível em <ulink url="http://api.kde.org/"
>kde.org</ulink
>. Para além disso, é possível compilar a documentação da API do KDE 4 com um programa que vem incluído no módulo 'kdesdk' (na pasta '/scripts'). Veja o <ulink url="http://techbase.kde.org/Development/Tools/apidox"
>TechBase do KDE</ulink
> para mais detalhes. Ainda é possível à mesma compilar manualmente a documentação da API para os módulos mais antigos, como é óbvio.</para>
</entry>
</row>

<row id="conf-apply-qt-patches">
<entry
>apply-qt-patches</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção foi removida no kdesvn-build 1.10. Para obter o mesmo efeito, veja o <xref linkend="using-qt-copy"/> e a opção <link linkend="conf-repository"
>repository</link
>.</entry>
</row>

<row id="conf-async">
<entry
>async</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção activa o modo assíncrono da operação, onde a actualização do código-fonte e o processo de compilação serão efectuados em paralelo, em vez de esperar por todas as actualizações de código-fonte antes do início do processo de compilação. Esta opção está activa por omissão para o modo assíncrono. Para a desactivar, defina esta opção como <replaceable
>false</replaceable
></para>
<para
>Esta opção está disponível desde a versão 1.6.</para
></entry>
</row>

<row id="conf-binpath">
<entry
>binpath</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Active esta opção para modificar a variável de ambiente PATH durante a compilação. Não poderá sobrepor esta opção numa opção do módulo. O valor por omissão é a $<envar
>PATH</envar
>. Esta variável de ambiente deverá incluir os locais, separados por dois-pontos das suas ferramentas de desenvolvimento. Os locais <filename class="directory"
>$<envar
>KDEDIR</envar
>/bin</filename
> e <filename class="directory"
>$<envar
>QTDIR</envar
>/bin</filename
> são adicionados automaticamente. Poderá usar o til (~) para os locais que adicionar com esta opção.</para>
</entry>
</row>

<row id="conf-branch">
<entry
>branch</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Altere esta opção para obter uma ramificação do &kde;, em vez do valor por omissão <replaceable
>trunk</replaceable
>, onde o desenvolvimento do &kde; está em curso. Por exemplo, para obter a ramificação do &kde; 4.4, deverá configurar esta opção como <replaceable
>4.4</replaceable
>.</para>
<para
>Se o &kdesvn-build; não conseguir obter adequadamente uma ramificação com esta opção, poderá ter de indicar manualmente o &url; de onde transferir, com as opções <link linkend="conf-module-base-path"
>module-base-path</link
> ou <link linkend="conf-override-url"
>override-url</link
>.</para>
<para
>Nota: Esta opção também funciona com os módulos de código que usam o &git; em vez do &subversion;.</para>
</entry>
</row>

<row id="conf-build-dir">
<entry
>build-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar a pasta que contém o código compilado. Existem três formas diferentes de o usar: <itemizedlist
> <listitem
><para
>Relativa à pasta de código do &kde; no &subversion; (ver a <link linkend="conf-source-dir"
>opção 'source-dir'</link
>). Esta é a opção predefinida e este modo fica seleccionado se escrever o nome de uma pasta que não comece por um til (~) ou uma barra (/).</para
> <para
>O valor por omissão é <filename class="directory"
>build</filename
>.</para
></listitem
> <listitem
><para
>Um local absoluto. Se indicar um local que comece por um /, então será usado esse local directamente. Por exemplo, o <filename class="directory"
>/tmp/kde-obj-dir/</filename
>.</para
></listitem
> <listitem
><para
>Relativo à sua pasta pessoal. Se indicar uma pasta que comece com um '~', então o local será usado em relação à sua pasta pessoal, de forma semelhante à expansão do til da linha de comandos. Por exemplo, o <filename class="directory"
>~/builddir</filename
>.</para
></listitem
> </itemizedlist
> Talvez de forma surpreendente, esta opção poderá alterada por módulo. </entry>
</row>

<row id="conf-checkout-only">
<entry
>checkout-only</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Altere esta opção para obter o código do &subversion; passo-a-passo. O valor desta opção deverá ser uma lista separada por espaços das pastas a transferir. Ainda que esta opção se sobreponha à global, tenha em atenção que esta opção, como global, não faz sentido. </para>

<para
>Lembre-se que esta opção não fará efeito nos módulos do &git;, devido ao modo de operação do sistema de controlo de código &git;.</para
></entry>
</row>

<row id="conf-cmake-options">
<entry
>cmake-options</entry>
<entry
>Adiciona às opções globais (excepto no 'qt-copy')</entry>
<entry
><para
>Use esta opção para indicar quais as opções a passar ao &cmake; quando criar o sistema de compilação do módulo. Quando isto é usado como uma opção global, é aplicada a todos os módulos onde este programa se compila. Quando é usado como uma opção de um módulo, é adicionada ao fim das opções globais. Isto permite-lhe definir opções comuns do &cmake; na secção global.</para>

<para
>Esta opção não se aplica ao 'qt-copy' (que não usa o &cmake;). Use o <link linkend="conf-configure-flags"
>configure-flags</link
> em alternativa.</para>

<para
>Dado que estas opções são passadas directamente à linha de comandos do &cmake;, deverão ser indicados como seriam passados no &cmake;. Por exemplo:</para>

<screen
>cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo
</screen>

<para
>Dado que isto é muito trabalhoso, o &kdesvn-build; faz tudo para que as restantes opções são definidas correctamente, pelo que poderá deixar esta opção em branco. (Por outras palavras, os parâmetros <emphasis
>obrigatórios</emphasis
> do &cmake; são definidos para si automaticamente)</para
></entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para indicar quais as opções a passar ao './configure' quando criar o sistema de compilação do módulo. Quando isto é usado como uma opção global, é aplicada a todos os módulos onde este programa se compila. <emphasis
>Esta opção só funciona para o 'qt-copy'.</emphasis
></para>

<para
>Para mudar a configuração para os módulos do KDE 4, veja o <link linkend="conf-cmake-options"
>cmake-options</link
>. </para>
</entry>
</row>

<row id="conf-colorful-output">
<entry
>colorful-output</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Configure esta opção como <replaceable
>false</replaceable
> para desactivar o resultado colorido do &kdesvn-build;. Por omissão é <replaceable
>true</replaceable
>. Lembre-se que o &kdesvn-build; não irá mostrar os códigos de cores em nada que não seja um terminal (como o 'xterm', o &konsole; ou a consola normal do &Linux;). </entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Adiciona-se à opção global</entry>
<entry
><para
>Use esta opção para definir as opções que serão usadas para compilar o módulo. Esta opção é definida aqui em vez de ser com o <link linkend="conf-configure-flags"
>configure-flags</link
> ou o <link linkend="conf-cmake-options"
>cmake-options</link
>, dado que esta opção irá também definir a variável de ambiente <envar
>CXXFLAGS</envar
> durante o processo de compilação.</para>

<para
>Lembre-se que, para o &kde; 4 e para os outros módulos que usam o &cmake;, é necessário definir a opção CMAKE_BUILD_TYPE como sendo "none" ao configurar o módulo. Isto pode ser feito com a opção <link linkend="conf-cmake-options"
>cmake-options</link
>.</para>
</entry>
</row>

<row id="conf-dest-dir">
<entry
>dest-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar o nome de um módulo no disco. Por exemplo, se o seu módulo era 'extragear/network', pode mudá-lo para 'extragear-network' com esta opção. Repare que, ainda que isto mude o nome do módulo no disco, não é uma boa ideia incluir pastas ou separadores de pastas no nome, dado que isso irá interferir com as opções <link linkend="conf-build-dir"
>build-dir</link
> ou <link linkend="conf-source-dir"
>source-dir</link
>. </entry>
</row>

<row id="conf-disable-agent-check">
<entry
>disable-agent-check</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Normalmente, se estiver a usar o &ssh; para obter o código do &subversion; (se, por exemplo, estiver a usar o protocolo 'svn+ssh'), o &kdesvn-build; irá tentar certificar-se que, se estiver a usar o 'ssh-agent', ele está de facto a gerir algumas identidades do SSH. Isto é para tentar e evitar que o SSH pergunte a sua frase-senha para todos os módulos. Poderá desactivar esta opção se activar a opção <option
>disable-agent-check</option
> como <replaceable
>true</replaceable
>. </entry>
</row>

<row id="conf-do-not-compile">
<entry
>do-not-compile</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para seleccionar um conjunto específico de pastas a compilar num módulo (em vez de serem todas). As pastas a compilar deverão estar separadas por espaços.</para>

<para
>Lembre-se que o código dos programas será à mesma transferido. Poderá usar a instrução <link linkend="conf-checkout-only"
>checkout-only</link
> para escolher as pastas que deseja obter.</para>

<para
>Por exemplo, para manter o &juk; e o &kscd; no módulo 'kdemultimedia' sem serem compilados, poderá adicionar "do-not-compile juk kscd" no seu módulo 'kdemultimedia'.</para>
</entry>
</row>

<row id="conf-email-address">
<entry
>email-address</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Configure esta opção com o endereço de e-mail que o &kdesvn-build; deverá enviar, no caso de alguma vez necessitar de enviar mensagens de e-mail. Não terá de se preocupar com isto se não usar qualquer funcionalidade que envie e-mails. (Elas estão todas  desactivadas por omissão). </para>

<para
>De momento, só o <link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
> é que necessita desta opção.</para>
</entry>
</row>

<row id="conf-email-on-compile-error">
<entry
>email-on-compile-error</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Poderá configurar esta opção com o endereço de e-mail para onde enviar um relatório, sempre que um módulo não conseguir ser compilado. O &kdesvn-build; irá esperar até que todos os módulos terminem e irá recolher todos os resultados no relatório. Este só é enviado se um módulo se recusar a compilar. </para>

<para
>Por favor, veja a opção <link linkend="conf-email-address"
>email-address</link
> para configurar o endereço de onde o &kdesvn-build; irá enviar, dado que o valor por omissão não é normalmente o que pretende. </para>
</entry>
</row>

<row id="conf-inst-apps">
<entry
>inst-apps</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção foi removida na versão 1.10 </entry>
</row>

<row id="conf-install-after-build">
<entry
>install-after-build</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção é usada para instalar o pacote depois de este ser compilado com sucesso. Esta opção está activa por omissão. Se quiser desactivá-la, terá de configurar esta opção como 0 no <link linkend="configure-data"
>ficheiro de configuração</link
>. Poderá também usar a opção da linha de comandos <link linkend="cmdline-no-install"
><option
>--no-install</option
></link
>. </entry>
</row>

<row id="conf-kdedir">
<entry
>kdedir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção define a pasta em que o &kde; será instalado após a compilação. Por omissão, será em <filename class="directory"
>~/kde</filename
>. Se mudar isto para uma pasta que necessite do acesso do 'root', poderá ter de ler acerca da opção <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> também.</entry>
</row>

<row id="conf-kde-languages">
<entry
>kde-languages</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção permite-lhe escolher os pacote transferidos e instalados em conjunto com o &kde;. Poderá fazer isto se não viver nos Estados Unidos e quiser o &kde; traduzido para a sua língua nativa.</para>

<para
>Para usar esta opção, configure-a como uma lista separada por espaços das línguas a instalar. Cada língua tem um código associado a ele, o qual poderá encontrar nesta página: <ulink url="http://i18n.kde.org/teams/"
>http://i18n.kde.org/teams/</ulink
>. </para>

<para
>É aceitável escolher apenas uma língua. Por omissão, não é transferida nenhuma, o que significa que o &kde; irá aparecer em Inglês dos EUA.</para>

<para
>Por exemplo, para optar por instalar o Português, iria configurar a opção com algo do tipo: <userinput
><option
>kde-languages</option
> <replaceable
>pt</replaceable
></userinput
>. Terá à mesma de usar o &systemsettings; para escolher a língua Portuguesa, todavia.</para>
</entry>
</row>

<row id="conf-libpath">
<entry
>libpath</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta opção para definir a variável de ambiente <envar
>LD_LIBRARY_PATH</envar
>, enquanto efectua a compilação. Não poderá sobrepor esta opção num módulo. O valor por omissão está em branco, mas os locais <filename class="directory"
>$<envar
>KDEDIR</envar
>/lib</filename
> e <filename class="directory"
>$<envar
>QTDIR</envar
>/lib</filename
> são adicionados automaticamente. Poderá usar o til (~) para os locais que adicionar com esta opção. </entry>
</row>

<row id="conf-log-dir">
<entry
>log-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar a pasta que irá conter os ficheiros de registo gerados pelo programa. </entry>
</row>

<row id="conf-make-install-prefix">
<entry
>make-install-prefix</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta variável com uma lista separada por espaços, que será interpretada como um comando e as suas opções, para anteceder o comando <userinput
><command
>make</command
> <option
>install</option
></userinput
>, que é usado para instalar os módulos. Isto é útil para instalar os pacotes com o &sudo;, por exemplo, mas tenha cuidado enquanto lida com os privilégios do 'root'.</entry>
</row>

<row id="conf-make-options">
<entry
>make-options</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta variável para passar as opções da linha de comandos ao comando <command
>make</command
>. Isto é útil para programas como o <ulink url="http://distcc.samba.org/"
><application
>distcc</application
></ulink
> ou para os sistemas com mais que um núcleo de processamento. </entry>
</row>

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure o valor da opção como <replaceable
>true</replaceable
> para evitar que o processo de compilação tente compilar este módulo. Será à mesma mantido actualizado ao actualizar a partir do &subversion;. Esta opção é exactamente equivalente à opção da linha de comandos <link linkend="cmdline-no-build"
><option
>--no-build</option
></link
>. </entry>
</row>

<row id="conf-manual-update">
<entry
>manual-update</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure o valor da opção como <replaceable
>true</replaceable
> para evitar que o processo de compilação tente actualizar (e, por conseguinte, compilar ou instalar) este módulo. Se definir esta opção para um módulo, também poderá tê-la comentada. </entry>
</row>

<row id="conf-module-base-path">
<entry
>module-base-path</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Configure esta opção para se sobrepor à pasta por omissão do &kdesvn-build; para o módulo em questão. Isto poderá ser usado, por exemplo, para usar ramificações ou marcas específicas de determinadas bibliotecas. O <ulink url="http://websvn.kde.org/"
>Visualizador de Código do &kde;</ulink
> é extremamente valioso para o ajudar a escolher o local correcto.</para>

<para
>Lembre-se que o &kdesvn-build; constrói o local final de acordo com o seguinte modelo: <varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
>/<varname
></varname
>. </para>

<para
>O valor por omissão é o <filename class="directory"
>trunk/<varname
>$módulo</varname
></filename
> ou <filename class="directory"
>trunk/KDE/<varname
>$módulo</varname
></filename
>, dependendo do nome do módulo.</para>

<tip
><para
>Use as opções <link linkend="conf-branch"
>branch</link
> ou <link linkend="conf-tag"
>tag</link
> em alternativa, sempre que forem aplicáveis. </para
></tip>
</entry>
</row>

<row id="conf-niceness">
<entry
>niceness</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Configure esta opção com um valor entre 20 e 0. Quanto mais alto o número, menor prioridade terá o &kdesvn-build; para si próprio. O valor por omissão é 10. </entry>
</row>

<row id="conf-no-svn">
<entry
>no-svn</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Se esta opção for igual a 'true', então o &kdesvn-build; não irá actualizar o código-fonte do módulo automaticamente. Irá tentar compilar o módulo à mesma, caso não o tenha já tentado anteriormente.</entry>
</row>

<row id="conf-no-rebuild-on-fail">
<entry
>no-rebuild-on-fail</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção foi removida na versão 1.10, dado que este comportamento já não é mais útil, devido às correcções no sistema de compilação subjacente.</entry>
</row>

<row id="conf-override-url">
<entry
>override-url</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Se configurar esta opção, o &kdesvn-build; irá usar o seu valor como o URL a passar ao &subversion;,  <emphasis
>sem qualquer alteração</emphasis
>. Deverá usar geralmente esta opção, se quiser obter uma versão específica, mas o &kdesvn-build; não conseguir descobrir o que queria dizer ao usar a opção <link linkend="conf-branch"
>branch</link
>. </entry>
</row>

<row id="conf-prefix">
<entry
>prefix</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção controla onde instalar o módulo (normalmente é usada a opção <option
><link linkend="conf-kdedir"
>kdedir</link
></option
>). </entry>
</row>

<row id="conf-purge-old-logs">
<entry
>purge-old-logs</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Esta opção controla se as pastas de registo antigas são apagadas automaticamente ou não. O valor por omissão é <replaceable
>false</replaceable
> (falso).</para>

<para
>Mesmo que não tenha definido esta opção como 'true', poderá apagar manualmente as pastas de registo antigas, executando para tal o comando:</para>

<screen
>kdesvn-build --no-src --no-build --purge-old-logs kdelibs</screen>

<para
>Poderá usar o nome de qualquer módulo na linha de comandos acima; não terá de ser a 'kdelibs'.</para>
</entry>
</row>

<row id="conf-qtdir">
<entry
>qtdir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta opção para definir a variável de ambiente QTDIR enquanto compila. Poderá sobrepor esta configuração numa opção de um módulo. Se não indicar esta opção, será por omissão a <filename class="directory"
><varname
>$(source-dir)</varname
>/build/qt-copy</filename
>, que irá usar o módulo 'qt-copy' que está incluído no repositório de código do &kde;. Poderá usar um til (~) que representa a sua pasta pessoal. </entry>
</row>

<row id="conf-remove-after-install">
<entry
>remove-after-install</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Se estiver com pouco espaço em disco, poderá querer usar esta opção para remover automaticamente a pasta de compilação (ou as pastas de compilação e de código, para instalações episódicas), após o módulo ter sido instalado com sucesso. </para>
<para
>Os valores possíveis para esta opção são: <itemizedlist>
<listitem
><para
>none - Não remove nada (Este é o valor por omissão).</para
></listitem>
<listitem
><para
>builddir - Remove a pasta de compilação, mas não o código.</para
></listitem>
<listitem
><para
>all - Remove tanto o código-fonte como a pasta de compilação.</para
></listitem>
</itemizedlist>
</para>

<para
>Lembre-se que a utilização desta opção poderá ter um grande impacto na utilização da sua largura de banda (se usar o <replaceable
>all</replaceable
>) e o tempo que dura a compilação do &kde;, dado que o &kdesvn-build; será incapaz de efectuar compilações incrementais.</para>
</entry>
</row>

<row id="conf-repository">
<entry
>repository</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Esta opção foi introduzida com a versão 1.10, e é usada para definir o repositório &git; de onde transferir o código-fonte do módulo. O &Qt; (e, por consequência, o 'qt-copy') irão necessitar desta opção, assim como vários módulos do &kde; que estão no processo de conversão para o uso do git;.</para
></entry>
</row>

<row id="conf-revision">
<entry
>revision</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Se esta opção for configurada com um valor diferente de 0 (zero), o &kdesvn-build; irá obrigar a actualização do &subversion; a obter o módulo que tenha exactamente esse número de versão, mesmo que as opções como o <link linkend="conf-branch"
>branch</link
> estejam em efeito. Se o módulo já estiver na versão indicada, então não será mais actualizado, a menos que esta opção seja alterada ou removida da configuração.</entry>
</row>

<row id="conf-run-tests">
<entry
>run-tests</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Se for igual a <replaceable
>true</replaceable
>, então o módulo será compilado com o suporte para executar o seu pacote de testes, sendo este executado como parte do processo de compilação. O &kdesvn-build; irá mostrar um relatório simples com os resultados dos testes. Isto é útil para os programadores ou para aqueles querem garantir que o seu sistema é configurado correctamente.</entry>
</row>

<row id="conf-set-env">
<entry
>set-env</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Esta opção aceita um conjunto de valores separados por espaços, onde o primeiro valor é a variável de ambiente a definir e o resto dos valores é o que deseja atribuir à sua variável. Por exemplo, para configurar a variável <envar
>RONALD</envar
> como McDonald, iria pôr este comando na secção apropriada:</para>
<screen
><command
>set-env</command
> <envar
>RONALD</envar
> <userinput
>McDonald</userinput
></screen>
<para
>Esta opção é especial, na medida em que poderá ser repetida sem sobrepor a configuração anterior do 'set-env' na mesma secção do <link linkend="configure-data"
>ficheiro de configuração</link
>. Desta forma, poderá definir mais que uma variável de ambiente por módulo (ou a nível global).</para>
</entry>
</row>

<row id="conf-source-dir">
<entry
>source-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção é usada para definir a pasta do seu computador, onde será guardado o código-fonte do &subversion; do &kde;. Se não indicar este valor, será usado o valor por omissão <filename class="directory"
>~/kdesvn</filename
>. Se indicar de facto este valor, use um local absoluto. </entry>
</row>

<row id="conf-stop-on-failure">
<entry
>stop-on-failure</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure o valor desta opção como <replaceable
>true</replaceable
> para fazer com que o programa pare a execução, após ocorrer um erro durante o processo de compilação ou instalação. Esta opção está desactivada por omissão. </entry>
</row>

<row id="conf-svn-server">
<entry
>svn-server</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção é usada para definir o servidor usado para obter o código do &subversion;. Por omissão, é usado o repositório anónimo de &subversion;, em <emphasis
>svn://anonsvn.kde.org/</emphasis
></entry>
</row>

<row id="conf-tag">
<entry
>tag</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para obter uma versão específica de um módulo.</para>
<para
><emphasis
>Nota:</emphasis
> As hipóteses serão muito boas quando NÃO QUISER usar esta opção. As versões do &kde; estão disponíveis em pacote comprimidos no <ulink url="ftp://ftp.kde.org/"
>servidor de FTP do &kde;</ulink
> ou numa das suas <ulink url="http://download.kde.org/download.php"
>réplicas</ulink
>.</para>
</entry>
</row>

<row id="conf-use-cmake">
<entry
>use-cmake</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção foi removida no &kdesvn-build; 1.4, dado que todos os módulos do &kde; 4 necessitam do &cmake; e a utilização do CMake não é permitida em mais nenhuns módulos. </entry>
</row>

<row id="conf-use-idle-io-priority">
<entry
>use-idle-io-priority</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Esta opção, adicionada no &kdesvn-build; 1.12, irá provocar a utilização de uma menor prioridade para o disco e para outra utilização de E/S, o que poderá melhorar significativamente a capacidade de resposta do resto do sistema, às custas de algum tempo mais alargado de execução do &kdesvn-build;. Por omissão, está desactivado; para activar a menor prioridade de disco, configure esta opção como <replaceable
>true</replaceable
> (verdadeira). </entry>
</row>

<row id="conf-use-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção foi removida devido a melhorias no sistema de compilação do &Qt;. </entry>
</row>

<row id="conf-use-stable-kde">
<entry
>use-stable-kde</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção foi removida na versão 1.10, que limita o suporte ao KDE 4, o que remove o efeito desta opção. </para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</sect1>
</chapter>

<chapter id="cmdline">
<title
>Opções da Linha de Comandos e Variáveis de Ambiente</title>

<sect1 id="supported-envvars">
<title
>Variáveis de Ambiente Suportadas</title>

<para
>O &kdesvn-build; não usa variáveis de ambiente. Se necessitar de definir variáveis de ambiente para o ambiente de compilação ou de instalação, veja a opção <link linkend="conf-set-env"
>set-env</link
>. </para>

</sect1>

<sect1 id="supported-cmdline-params">
<title
>Parâmetros suportados da linha de comandos</title>

<para
>O programa aceita as seguintes opções da linha de comandos: </para>

<variablelist>

<varlistentry id="cmdline-async">
<term
><parameter
>--async</parameter
></term>
<listitem
><para
>Activa o <link linkend="conf-async"
>modo assíncrono</link
> para actualizar e compilar ao mesmo tempo. Esta é a opção por omissão, e só necessita de ser definida se a tiver desactivado na configuração. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-help">
<term
><parameter
>--help</parameter
></term>
<listitem
><para
>Mostra apenas uma ajuda simples deste programa. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-version">
<term
><parameter
>--version</parameter
></term>
<listitem
><para
>Mostra a versão do programa. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-author">
<term
><parameter
>--author</parameter
></term>
<listitem
><para
>Mostra as informações de contacto do autor. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-color">
<term
><parameter
>--color</parameter
></term>
<listitem
><para
>Activar o resultado colorido. (Este é o valor por omissão para os terminais interactivos). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><parameter
>--nice=<replaceable
>valor</replaceable
></parameter
></term>
<listitem
><para
>Este valor ajusta a prioridade do CPU pedida pelo &kdesvn-build;, e deverá estar no intervalo 0-20. O 0 (zero) é a prioridade máxima (dado que é a menos <quote
>nice</quote
> (simpática)), enquanto o 20 é a prioridade mínima. O &kdesvn-build; usa o valor por omissão 10. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-async">
<term
><parameter
>--no-async</parameter
></term>
<listitem
><para
>Desactiva o <link linkend="conf-async"
>modo assíncrono</link
> de actualização. Em vez disso, a actualização será efectuada por completo antes de a compilação começar. Esta opção irá tornar o processo global mais lento; porém, se encontrar erros de IPC durante a execução do &kdesvn-build;, tente usar esta opção e enviar um <ulink url="http://bugs.kde.org/"
>relatório de erros</ulink
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-color">
<term
><parameter
>--no-color</parameter
></term>
<listitem
><para
>Desactiva o resultado do programa a cores. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-pretend">
<term
><parameter
>--pretend</parameter
> (ou <parameter
>-p</parameter
>)</term>
<listitem
><para
>O &kdesvn-build; irá executar o processo de actualização e compilação, mas em vez de executar quaisquer acções de actualização ou compilação, irá sim apresentar o resultado do que o programa teria feito (p.ex., os comandos a executar, os passos gerais efectuados, etc.).</para>

<para
>Nota: Os comandos simples apenas para leitura (como a leitura da informação dos ficheiros) poderão ser à mesma executados para tornar o resultado mais relevante (como a simulação correcta se o código iria ser obtido por completo ou actualizado). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-quiet">
<term
><parameter
>--quiet</parameter
> (ou <parameter
>-q</parameter
>)</term>
<listitem
><para
>Não é tão descritivo com o resultado à saída. Com esta opção, só as mensagens básicas são apresentadas. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-really-quiet">
<term
><parameter
>--really-quiet</parameter
></term>
<listitem
><para
>Só mostra as mensagens de avisos e erros. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-verbose">
<term
><parameter
>--verbose</parameter
> (ou <parameter
>-v</parameter
>)</term>
<listitem
><para
>Torna-se bastante descritivo com o que se passa e o que o &kdesvn-build; está a fazer. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-src-only">
<term
><parameter
>--src-only</parameter
> (ou <parameter
>--svn-only</parameter
>)</term>
<listitem
><para
>Só efectua a actualização do código. (O <parameter
>--svn-only</parameter
> só é suportado por razões de compatibilidade com os programas mais antigos). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-only">
<term
><parameter
>--build-only</parameter
></term>
<listitem
><para
>Efectua apenas o processo de compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-ignore-modules">
<term
><parameter
>--ignore-modules</parameter
></term>
<listitem
><para
>Não inclui os módulos, passados no resto da linha de comandos, no processo de actualização/compilação (isto é útil se quiser compilar a maioria dos módulos no seu <link linkend="configure-data"
>ficheiro de configuração</link
> e apenas quiser saltar alguns). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-src">
<term
><parameter
>--no-src</parameter
> (ou <parameter
>--no-svn</parameter
>)</term>
<listitem
><para
>Salta o contacto com o servidor do &subversion;. (O parâmetro <parameter
>--no-svn</parameter
> só é suportado por razões de compatibilidade com as versões anteriores do programa). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build">
<term
><parameter
>--no-build</parameter
></term>
<listitem
><para
>Salta o processo de compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-install">
<term
><parameter
>--no-install</parameter
></term>
<listitem
><para
>Não instala automaticamente os pacotes, após a sua compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-debug">
<term
><parameter
>--debug</parameter
></term>
<listitem
><para
>Activa o modo de depuração para o programa. De momento, isto significa que todo o resultado será enviado para o STDOUT, para além de ficar registado na pasta de registo como normal. Do mesmo modo, muitas das funções tornar-se-ão mais descritivas sobre o que estão fazer no modo de depuração. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-rebuild-on-fail">
<term
><parameter
>--no-rebuild-on-fail</parameter
></term>
<listitem
><para
>Não tenta compilar de novo os módulos que não conseguiram ser compilados do zero. O &kdesvn-build; nunca irá tentar fazer isto num módulo que já se tentou compilar do zero. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-refresh-build">
<term
><parameter
>--refresh-build</parameter
></term>
<listitem
><para
>Volta a criar o sistema de compilação e a compilar do zero. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-reconfigure">
<term
><parameter
>--reconfigure</parameter
></term>
<listitem
><para
>Executa o <command
>cmake</command
> (para os módulos do &kde;) ou o <command
>configure</command
> (para o &Qt;) mais uma vez, sem limpar a pasta de compilação. Normalmente não terá de definir isto, dado que o &kdesvn-build; irá detectar quando alterar as opções relevantes e executar de novo automaticamente a configuração da compilação. Esta opção é implícita se for usado o <parameter
><link linkend="cmdline-refresh-build"
>--refresh-build</link
></parameter
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><parameter
>--resume-from</parameter
></term>
<listitem
><para
>Esta opção é usada para prosseguir com a compilação a partir do módulo indicado, o qual é o parâmetro seguinte na linha de comandos. Esta opção implica a <link linkend="cmdline-no-src"
><option
>--no-src</option
></link
>. Não deverá indicar os nomes dos outros módulos na linha de comandos. </para>
<para
>Veja também: <xref linkend="cmdline-resume-after"/> e <xref linkend="resuming-failed"/>. Irá preferir usar esta opção da linha de comandos se tiver corrigido o erro de compilação e quiser que o &kdesvn-build; termine a compilação.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-after">
<term
><parameter
>--resume-after</parameter
></term>
<listitem
><para
>Esta opção é usada para prosseguir com a compilação a partir do módulo indicado, o qual é o parâmetro seguinte na linha de comandos. Esta opção implica a <link linkend="cmdline-no-src"
><option
>--no-src</option
></link
>. Não deverá indicar os nomes dos outros módulos na linha de comandos. </para>
<para
>Veja também: <xref linkend="cmdline-resume-from"/> e <xref linkend="resuming-failed"/>. Irá preferir usar esta opção da linha de comandos se tiver corrigido o erro de compilação e tiver também compilado e instalado o módulo você mesmo, e ainda se quiser que o &kdesvn-build; comece de novo com o módulo seguinte.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><parameter
>--rc-file</parameter
></term>
<listitem
><para
>Isto interpreta o próximo parâmetro da linha de comandos como o ficheiro de onde ler as opções de configuração. O valor por omissão para este parâmetro é <filename
>kdesvn-buildrc</filename
> (verificado na pasta actual), caso esteja presente, ou então o <filename
>~/.kdesvn-buildrc</filename
> em caso contrário. Veja também o <xref linkend="kdesvn-buildrc"/>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-run">
<term
><parameter
>--run</parameter
></term>
<listitem
><para
>Esta opção interpreta o item seguinte na linha de comandos como um programa a executar, pelo que o &kdesvn-build; irá acabar de ler o ficheiro de configuração normalmente e depois irá executar o programa indicado.</para>

<para
>Isto não irá funcionar para iniciar uma linha de comandos com o ambiente do &kdesvn-build;, contudo, dado que as linhas de comando interactivas limpam  tipicamente alguma parte das variáveis de ambiente (como a <envar
>PATH</envar
> e a <envar
>KDEDIRS</envar
>) na sequência de arranque. </para>

<tip
><para
>Se quiser ver o ambiente usado pelo &kdesvn-build;, poderá executar o comando <command
>printenv</command
>:</para>
<informalexample>
<screen
>$ <command
>kdesvn-build</command
> <parameter
>--run</parameter
> <parameter
>printenv</parameter>
KDE_SESSION_VERSION=4
SDL_AUDIODRIVER=alsa
LANGUAGE=
XCURSOR_THEME=Oxygen_Blue
LESS=-R -M --shift 5
QMAIL_CONTROLDIR=/var/qmail/control
... etc.
</screen>
</informalexample
></tip>
</listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><parameter
>--prefix=&lt;/localização/do/kde&gt;</parameter
></term>
<listitem
><para
>Isto permite-lhe mudar a pasta onde o &kde; será instalado na linha de comandos. Esta opção implica a <link linkend="cmdline-reconfigure"
><option
>--reconfigure</option
></link
>, mas a utilização do <link linkend="cmdline-refresh-build"
><parameter
>--refresh-build</parameter
></link
> poderá à mesma ser necessária. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-revision">
<term
><parameter
>--revision</parameter
></term>
<listitem
><para
>Esta opção faz com que o &kdesvn-build; transfira uma <link linkend="using-branches"
>marca ou ramificação específica</link
> de um módulo do &subversion;, substituindo-se a qualquer das opções <link linkend="conf-branch"
>branch</link
>, <link linkend="conf-tag"
>tag</link
> ou <link linkend="conf-revision"
>revision</link
> já definidas para estes módulos.</para>

<para
>Esta opção não será provavelmente uma boa ideia, sendo apenas suportado por razões de compatibilidade com os programas mais antigos. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-system-only">
<term
><parameter
>--build-system-only</parameter
></term>
<listitem
><para
>Esta opção faz com que o &kdesvn-build; interrompa a compilação de um módulo, logo antes de o comando <command
>make</command
> ter sido executado. Isto é suportado por razões de compatibilidade com as versões mais antigas, sendo que este efeito não é útil para o sistema de compilação actual do &kde;. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><parameter
>--install</parameter
></term>
<listitem
><para
>Se esta for a única opção da linha de comandos, irá tentar instalar todos os módulo incluídos em <filename
>log/latest/build-status</filename
>. Se as opções da linha de comandos forem indicadas após o <option
>--install</option
>, então assumem-se que são módulos para instalar (mesmo que não tenham sido compilados com sucesso na última execução). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-purge-old-logs"
><term
><parameter
>--purge-old-logs</parameter
></term>
<listitem
><para
>Esta opção faz com que o &kdesvn-build; apague as pastas de compilação desnecessárias após a compilação, de modo a poupar espaço em disco. Todas as pastas de compilação que não sejam necessárias para satisfazer uma ligação do <filename
>log/latest</filename
> serão removidas. Esta opção está desactivada por omissão. Para activá-la, veja a opção <link linkend="conf-purge-old-logs"
>purge-old-logs</link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-snapshots"
><term
><parameter
>--no-snapshots</parameter
></term>
<listitem
><para
>Se indicar esta opção, fará com que o &kdesvn-build; prefira sempre uma extracção completa e inicial do &subversion; em vez de usar uma amostra do módulo do &subversion;. </para>

<note
><para
>As amostras de módulos <emphasis
>são</emphasis
> extracções reais do &subversion;. Não deverá ter de definir esta opção, por ser apenas uma ajuda de resolução de problemas.</para
></note>
</listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><parameter
>--&lt;nome-da-opção&gt;=</parameter
></term>
<listitem
><para
>Poderá usar esta opção para sobrepor outra opção no seu <link linkend="configure-data"
>ficheiro de configuração</link
> para todos os módulos. Por exemplo, para sobrepor a opção <link linkend="conf-log-dir"
>log-dir</link
>, deverá escrever: <userinput
><parameter
>--log-dir=<filename class="directory"
>/local/da/pasta</filename
></parameter
></userinput
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><parameter
>--&lt;nome-módulo&gt;,&lt;nome-opção&gt;=</parameter
></term>
<listitem
><para
>Ou poderá usar esta opção para substituir outra no seu <link linkend="configure-data"
>ficheiro de configuração</link
>, para um dado módulo. </para
></listitem>
</varlistentry>

</variablelist>

<para
>Todas as outras opções da linha de comandos assumem-se como sendo módulos para actualizar e compilar. Por favor, não misture a compilação com a instalação. </para>

</sect1>

</chapter>

<chapter id="using-kdesvn-build">
<title
>Usar o &kdesvn-build;</title>

<sect1 id="using-kdesvn-build-preface">
<title
>Prefácio</title>

<para
>Normalmente, a utilização do &kdesvn-build; após ter passado pelo <xref linkend="getting-started"/> é tão simples como fazer o seguinte, a partir de uma linha de comandos:</para>

<screen
><prompt
>&percnt;</prompt
> <command
><userinput
>kdesvn-build</userinput
></command
>
</screen>

<para
>O &kdesvn-build; irá então transferir o código do &kde;, tentará configurá-lo e compilá-lo e, no fim, irá tentar instalá-lo.</para>

<para
>Leia mais para saber como é que o &kdesvn-build; faz isso, assim como o que poderá fazer com esta ferramenta.</para>

</sect1>

<sect1 id="basic-features">
<title
>Funcionalidades básicas do &kdesvn-build;</title>

<sect2 id="using-qt-copy">
<title
>Suporte para o 'qt-copy'</title>
<para
>O &kdesvn-build; suporta a compilação da plataforma &Qt;, usada pelo &kde;, como conveniência para os utilizadores. Este suporte é tratado por um módulo especial chamado 'qt-copy'.</para>

<note
><para
>O &Qt; é desenvolvido num repositório separado do sistema &kde;, localizado em <ulink url="http://qt.gitorious.org/qt"
>http://qt.gitorious.org/qt</ulink
>.</para
></note>

<para
>Para poder compilar o &Qt;, dever-se-á certificar que a opção <link linkend="conf-qtdir"
>qtdir</link
> está configurada com a pasta onde gostaria de instalar o  &Qt;, como está descrito em <xref linkend="configure-data"/>.</para>

<para
>Dever-se-á então certificar que o módulo 'qt-copy' está adicionado no seu <filename
>.kdesvn-buildrc</filename
>, antes de quaisquer outros módulos no ficheiro. Se estiver a usar o ficheiro de configuração de exemplo, poderá simplesmente descomentar o item do módulo 'qt-copy'.</para>

<para
>Agora deverá verificar se a opção <link linkend="conf-repository"
>repository</link
> e as opções <link linkend="conf-branch"
>branch</link
> estão definidas apropriadamente:</para>

<orderedlist>
<listitem
><para
>A primeira opção é compilar com um agrupamento de modificações de correcções de erros e optimizações recomendadas (isto costumava ser controlado com uma opção chamada 'apply-patches'). Esta colecção é desenvolvida num repositório separado em <ulink url="http://gitorious.org/+kde-developers/qt/kde-qt"
>http://gitorious.org/+kde-developers/qt/kde-qt</ulink
>. Se quiser compilar com as modificações aplicadas (a maioria dos programadores do &kde; fazem-no), então deverá configurar a sua opção 'repository' como sendo <userinput
>git://gitorious.org/+kde-developers/qt/kde-qt.git</userinput
></para>
</listitem>

<listitem
><para
>Caso contrário, para compilar o &Qt;-padrão, configure a sua opção 'repository' como sendo <userinput
>git://gitorious.org/qt/qt.git</userinput
></para
></listitem>
</orderedlist>

<para
>Em ambos os casos, a opção 'branch' deverá ser configurada como <userinput
>master</userinput
> (a menos que queira compilar uma ramificação diferente).</para>

<note
><para
>Em alguns casos, o sistema de controlo de código subjacente não é capaz de funcionar ao executar a partir do &kdesvn-build;, mas continuará a funcionar correctamente quando for executado a partir da linha de comandos. Este erro ainda está sob investigação.</para
></note>

</sect2>

<sect2 id="kdesvn-build-std-flags">
<title
>Opções normais adicionadas pelo &kdesvn-build;</title>
<para
>Para lhe poupar tempo, o &kdesvn-build; adiciona alguns locais normais ao seu ambiente, por si: </para>

<itemizedlist>
<listitem
><para
>O local das bibliotecas do &kde; e do &Qt; é adicionado automaticamente à variável <envar
>LD_LIBRARY_PATH</envar
>. Isto significa que não irá necessitar de editar a &libpath; para os incluir. </para
></listitem>

<listitem
><para
>O local dos programas de suporte ao desenvolvimento do &kde; e do &Qt; é adicionado automaticamente à variável <envar
>PATH</envar
>. Isto significa que não irá necessitar de editar a &binpath; para os incluir. </para
></listitem>

<listitem
><para
>O local do <application
>pkg-config</application
> fornecido com o &kde; é adicionado automaticamente ao <envar
>PKG_CONFIG_PATH</envar
>. Isto significa que não terá de usar o &set-env; para os incluir. </para
></listitem>

<listitem
><para
>A configuração do &kdedir; é propagada automaticamente à variável de ambiente <envar
>KDEDIR</envar
> durante a compilação. (O <envar
>KDEDIRS</envar
> não é afectado). </para
></listitem>

<listitem
><para
>A configuração do &qtdir; é propagada automaticamente para a variável de ambiente <envar
>QTDIR</envar
> durante a compilação. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="build-priority">
<title
>Mudar a prioridade de compilação do &kdesvn-build;</title>
<para
>Os programas poder-se-ão executar com diferentes níveis de prioridades nos Sistemas Operativos dos dias de hoje, incluindo o &Linux; e o &BSD;. Isto permite ao sistema reservar tempo para os diferentes programas, de acordo com a sua importância. </para>

<para
>O &kdesvn-build; irá reservar uma prioridade baixa para si próprio, para que o resto dos programas do seu sistema não sejam afectados e possam executar normalmente. Com esta técnica, o &kdesvn-build; irá usar o CPU extra quando estiver disponível. </para>

<para
>O &kdesvn-build; irá manter à mesma uma prioridade suficientemente alta, para que se execute antes dos processos rotineiros e antes dos programas de doação de CPU, como o <ulink url="http://setiathome.ssl.berkeley.edu/"
>Seti@Home</ulink
>. </para>

<para
>Para alterar o &kdesvn-build;, de modo a usar um nível de prioridade maior ou menor de forma permanente, então terá de ajustar a opção &niceness; no <link linkend="configure-data"
>ficheiro de configuração</link
>. A opção &niceness; controla quão <quote
>simpático</quote
> é o &kdesvn-build; para os outros programas. Por outras palavras, se tiver um &niceness; maior, dará ao &kdesvn-build; uma prioridade menor. Como tal, para dar ao &kdesvn-build; uma maior prioridade, reduza o &niceness; (e vice-versa). O &niceness; pode ir de 0 (nada simpático, prioridade máxima) até 20 (super-simpático, prioridade mínima).</para>

<para
>Poderá também mudar temporariamente a prioridade do &kdesvn-build; ao usar a <link linkend="cmdline"
>opção da linha de comandos</link
> &cmd-nice;. O valor da opção é usado da mesma forma que no &niceness;.</para>

<note
><para
>É possível a alguns programas executados pelo super-utilizador ter um valor de prioridade negativo, com uma prioridade de sistema corresponde ainda maior para alguns programas. A configuração de um valor negativo (ou mesmo 0) do &niceness; para o &kdesvn-build; não é uma boa ideia, dado que não irá melhorar muito o tempo de compilação, mas tornará o seu computador muito lento, se precisar de o usar à mesma. </para
></note>

<informalexample>
<para
>Para executar o &kdesvn-build; com uma prioridade igual a 15 (menor que o normal):</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--nice=<replaceable
>15</replaceable
></option
></userinput
>
</screen>

<para
>Ou poderá editar o <link linkend="configure-data"
>ficheiro de configuração</link
> para tornar a mudança permanente:</para>

<screen
>&niceness; <replaceable
>15</replaceable
>
</screen>
</informalexample>

<tip>
<para
>A opção <link linkend="conf-niceness"
>niceness</link
> só afecta a utilização dos processadores do computador. Outro efeito importante na performance do computador relaciona-se com a quantidade de entrada e saída de dados (<acronym
>E/S</acronym
>) que um programa usa. Para poder controlar a quantidade de <acronym
>E/S</acronym
> que um programa poderá usar, os sistemas operativos &Linux; modernos suportam uma ferramenta semelhante chamada <application
>ionice</application
>. O &kdesvn-build; suporta  o <application
>ionice</application
>, (mas apenas para o activar ou desactivar por completo), usando a opção <link linkend="conf-use-idle-io-priority"
>use-idle-io-priority</link
>, desde a versão 1.12 do &kdesvn-build;. </para>
</tip>

</sect2>

<sect2 id="root-installation">
<title
>Instalação como super-utilizador</title>
<para
>Poderá ter o &kdesvn-build; a executar a instalação com privilégios de super-utilizador. Isto pode acontecer no caso da instalação a nível do sistema (não recomendada). Também é útil se usar uma instalação normal para um único utilizador, todavia. Isto acontece porque alguns módulos (especialmente o 'kdebase') instalam programas que, por breves instantes, irão necessitar de permissões elevadas ao serem executados. Eles não conseguirão obter esses níveis de permissões, a menos que tenham sido instalados com as permissões elevadas. </para>

<para
>Poderá simplesmente executar o &kdesvn-build; directamente como super-utilizador, dado que o programa não foi testado para esse tipo de utilização. Ainda que possa ser seguro executá-lo dessa forma, é melhor evitar executar este programa como super-utilizador, sempre que possível.</para>

<para
>Para tomar conta disto, o &kdesvn-build; oferece a opção &make-install-prefix;. Poderá usar esta opção para indicar um comando a usar para efectuar a instalação como outro utilizador. A forma recomendada de usar este comando é com o programa &sudo;, que irá então executar o comando de instalação como super-utilizador. </para>

<informalexample>
<para
>Por exemplo, para instalar todos os módulos com o &sudo;, poderá fazer algo do género:</para>

<screen
>global
  &make-install-prefix; <replaceable
>sudo</replaceable>
  # Outras opções
end global
</screen>

<para
>Para usar o &make-install-prefix; apenas num módulo, isto irá funcionar: </para>

<screen
>module <replaceable
>kdemultimedia</replaceable>
  &make-install-prefix; <replaceable
>sudo</replaceable>
end module
</screen>
</informalexample>

</sect2>

<sect2 id="build-progress">
<title
>Mostrar o progresso da compilação de um módulo</title>
<para
>Esta funcionalidade está sempre disponível e está activada automaticamente, sempre que possível. O que isto faz é mostrar o progresso estimado da compilação ao compilar um módulo, para que saiba desta forma quanto tempo mais é que irá levar para compilar um módulo. </para>

</sect2>

</sect1>

<sect1 id="advanced-features">
<title
>Funcionalidades avançadas</title>

<sect2 id="partial-builds">
<title
>Compilar parcialmente um módulo</title>
<para
>É possível compilar apenas partes de um único módulo do &kde;. Por exemplo, pode querer compilar apenas um programa de um módulo. O &kdesvn-build; tem funcionalidades para simplificar isto. Existem várias formas complementares de o fazer. </para>

<sect3 id="checking-out-parts">
<title
>Extrair partes de um módulo</title>

<para
>Esta será talvez a melhor forma de o fazer. Quando funciona, poupar-lhe-á tempo de transferência e espaço em disco. O que acontece é que o &kdesvn-build; irá transferir apenas as partes do módulo que indicar. Isto é feito com a opção &checkout-only; para um dado módulo, que irá indicar uma lista das pastas a transferir. </para>

<tip
><para
>Se não souber já o que vai transferir de um dado módulo, poderá ser uma boa ideia navegar pela disposição no &subversion; para um módulo, em primeiro lugar, usando o <ulink url="http://websvn.kde.org/branches/KDE/4.4/"
>WebSVN</ulink
>. </para
></tip>

<informalexample>
<para
>Para obter apenas o &kuser; e o &kdat; do 'kdeadmin', poderá usar o &checkout-only; da seguinte forma:</para>

<screen
>module <replaceable
>kdeadmin</replaceable>
  &checkout-only; <replaceable
>kuser kdat</replaceable>
end module
</screen>

</informalexample>

<important
><para
>As pastas serão compiladas pela ordem que forem indicadas na opção. Se uma das pastas necessitar de algo do módulo para compilar, então terá de garantir que ambas se encontram na linha &checkout-only; e que a dependência necessária vai antes da pasta que necessita dela.</para>

<para
>Da mesma forma, algumas vezes uma aplicação poderá necessitar de outras pastas e isso ser difícil de descobrir; nesse caso poderá ser razão para tentativa e erro, adicionando constantemente pastas à opção para descobrir.</para>
</important>

<para
>Uma nota final sobre esta opção: Se alterar esta opção deverá usar o <userinput
><command
>kdesvn-build</command
> <option
>&cmd-refresh-build;</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
> para garantir que o módulo é configurado de novo convenientemente. Para além disso, o &kdesvn-build; nunca irá remover os ficheiros existentes, se retirar o número de pastas da sua opção &checkout-only; ou adicionar a opção a um módulo que já foi extraído.</para>

</sect3>

<sect3 id="not-compiling">
<title
>Remover pastas de uma compilação</title>
<para
>Em vez de restringir o que é obtido, é possível transferir tudo mas fazer com que o sistema de compilação deixe algumas pastas por compilar. Isto pode ser útil se uma pasta estiver sempre a invalidar a compilação e for desnecessária para o resto do módulo. </para>

<para
>Isto é controlado com a opção &do-not-compile;. Funciona de forma semelhante à opção &checkout-only; descrita acima, e é apenas uma lista das pastas que não deverão ser compiladas.</para>

<important
><para
>Da mesma forma que no &checkout-only;, esta opção necessita pelo menos que o programa <command
>configure</command
> seja executado de novo para o módulo, após a alteração. Isto é feito com o comando <userinput
><command
>kdesvn-build</command
> <option
>&cmd-reconfigure;</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
>. </para
></important>

<informalexample>
<para
>Para remover a pasta <filename
>dcoppython</filename
> do processo de compilação do 'kdebindings':</para>

<screen
>module <replaceable
>kdebindings</replaceable>
  &do-not-compile; <replaceable
>dcoppython</replaceable>
end module
</screen>
</informalexample>

</sect3>

</sect2>

<sect2 id="using-branches">
<title
>Suporte de marcas e ramificações do &kdesvn-build;</title>

<sect3 id="branches-and-tags">
<title
>O que são ramificações e marcas?</title>

<para
>O &subversion; suporta a gestão do histórico do código do &kde;. O &kde; usa esse suporte para criar ramificações ('branches') para desenvolvimento e para marcar o repositório com marcas ('tags'), sempre que lança uma nova versão. </para>

<para
>Por exemplo, os programadores do &kmail; poderão estar a trabalhar numa nova funcionalidade, numa ramificação diferente, para evitar corromper a versão que está em uso pela maioria dos programadores. Esta ramificação tem desenvolvimentos em curso nela, mesmo quando a ramificação principal (chamada de /trunk) possa também ter desenvolvimentos em curso nela. </para>

<para
>Uma marca, por outro lado, é uma imagem do repositório de código numa dada posição no tempo. Isto é usado pela equipa de administração do &kde; para marcar uma versão do código adequada para lançamento, permitindo à mesma aos programadores continuarem a desenvolver. </para>

<para
>No &subversion;, não existem diferenças entre ramificações, marcas ou o 'trunk' no código. É apenas uma convenção usada pelos programadores. Isso torna difícil suportar convenientemente as ramificações e marcas no &kdesvn-build;. Contudo, existem algumas coisas que poderão ser feitas. </para>

</sect3>

<sect3 id="branch-support">
<title
>Como usar as ramificações e marcas</title>

<para
>O suporte para ramificações e marcas é tratado por um conjunto de opções, que vão desde um simples pedido de uma versão até um &url; específico de transferência, para os utilizadores mais avançados. </para>

<para
>O método mais simples é usar as opções &branch; e &tag;. Poderá usar a opção em conjunto com o nome da marca ou ramificação de um módulo, para que o &kdesvn-build; determine o local apropriado, dentro do repositório do &kde;, de onde deve transferir. Na maioria dos módulos do &kde;, isto funciona muito bem.</para>

<informalexample>
<para
>Para transferir o 'kdelibs' do &kde; 4.4 (que é simplesmente conhecido pela ramificação '4.4'): </para>

<screen
>module kdelibs
  branch <replaceable
>4.4</replaceable>
  # outras opções...
end module
</screen>

<para
>Ou, para transferir o 'kdemultimedia' como foi lançado aquando do &kde; 4.4.3:</para>

<screen
>module kdemultimedia
  tag <replaceable
>4.4.3</replaceable>
  # outras opções...
end module
</screen>

</informalexample>

<tip
><para
>Poderá definir aqui um valor global para o 'branch'. Mas, se o fizer, não se esqueça de indicar uma ramificação diferente para os módulos que não devem usar a ramificação global! </para
></tip>
</sect3>

<sect3 id="advanced-branches">
<title
>Opções avançadas de suporte a ramificações</title>

<para
>O &kdesvn-build; suporta duas opções para as situações em que o &branch; e o &tag; adivinham o local de forma incorrecta: o &module-base-path; e o &override-url;. </para>

<itemizedlist>
<listitem
><para
>O &module-base-path; é usado para ajudar o &kdesvn-build; a preencher a parte em falta da localização de um módulo. No repositório do &kde;, todos os locais têm o formato <filename class="directory"
>raizSvn/module-base-path/nome-módulo</filename
>. Normalmente, o &kdesvn-build; pode descobrir a parte intermédia apropriada por si só. Quando não conseguir, poderá usar o &module-base-path; da seguinte forma: </para>

<informalexample>
<screen
>module qt-copy
  # a ramificação não funciona aqui ainda
  module-base-path branches/qt/4.4
end module
</screen>

<para
>Isto deverá fazer com que o &kdesvn-build; transfira o 'qt-copy' de (neste exemplo) <filename
>svn://anonsvn.kde.org/home/kde/<replaceable
>branches/qt/4.4</replaceable
>/qt-copy</filename
>. </para>
</informalexample>
</listitem>

<listitem
><para
>A opção &override-url;, por outro lado, necessita que você indique o local exacto de onde transferir. Contudo, isto permite-lhe transferir dos locais onde o &kdesvn-build; não terá hipóteses de adivinhar o local. </para>

<informalexample>
<screen
>module qt-copy
  # Indique o local exacto de onde obter.
  override-url svn://anonsvn.kde.org/home/kde/branches/qt/4.4/qt-copy
end module
</screen>
</informalexample>

<important
><para
>O &kdesvn-build; não irá mexer ou corrigir o valor que indicar no &override-url; de todo, por isso, se mudar a sua configuração do &svn-server;, também terá de actualizar isto. </para
></important>

</listitem>
</itemizedlist>

</sect3>

</sect2>

<sect2 id="building-successfully">
<title
>Como o &kdesvn-build; tenta garantir uma compilação com sucesso</title>

<sect3 id="automatic-rebuilds">
<title
>Recompilações automáticas</title>

<para
>O &kdesvn-build; costumava incluir funcionalidades para tentar automaticamente reconstruir o módulo em caso de falha (dado que, às vezes, essa nova tentativa iria funcionar, por causa dos erros no sistema de compilação da altura). Graças à mudança para o &cmake;, o sistema de compilação já não passa mais por esses erros, pelo que o &kdesvn-build; não irá tentar mais compilar um módulo mais que uma vez. Todavia, existem situações em que o &kdesvn-build; irá tomar alguma acção automaticamente:</para>

<itemizedlist>

<listitem
><para
>Se quiser alterar as opções <link linkend="conf-configure-flags"
>configure-flags</link
> ou <link linkend="conf-cmake-options"
>cmake-options</link
> para um dado módulo, o &kdesvn-build; irá detectar isso e tentar executar de novo o 'configure' ou o 'cmake' para esse módulo.</para
></listitem>

<listitem
><para
>Se o sistema de compilação não existir (mesmo se o &kdesvn-build; não o apagou), então o &kdesvn-build; irá tentar criá-lo de novo. Isto é útil para permitir a execução de um <link linkend="cmdline-refresh-build"
>--refresh-build</link
> completo para um módulo específico, sem ter de efectuar isso para os outros módulos.</para
></listitem>

</itemizedlist>

</sect3>

<sect3 id="manual-rebuilds">
<title
>Compilar manualmente um módulo de novo</title>
<para
>Se tiver feito alterações a alguma opção de um módulo, ou se o código-fonte do módulo mudar de uma forma que o &kdesvn-build; não reconheça, poderá ter de compilar o módulo de novo manualmente.</para>

<para
>Podê-lo-á fazer se executar simplesmente o <userinput
><command
>kdesvn-build</command
> <option
>--refresh-build</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
>. </para>

<para
>Se quiser que o &kdesvn-build; compile de novo de forma automática o módulo, durante a próxima actualização normal, poderá criar um ficheiro especial. Cada módulo tem uma pasta de compilação. Se criar um ficheiro chamado <filename
>.refresh-me</filename
> na pasta de compilação de um módulo, o &kdesvn-build; irá reconstruir o módulo da próxima vez que o processo de compilação correr, mesmo que fosse executar normalmente a compilação incremental.</para>

<tip>
<para
>Por omissão, a pasta de compilação é a <filename class="directory"
>~/kdesvn/build/<replaceable
>módulo</replaceable
>/</filename
>. Se mudar a opção &build-dir;, então use essa em vez da <filename class="directory"
>~/kdesvn/build</filename
>.</para>
</tip>

<informalexample>
<para
>Compile de novo com o <filename
>.refresh-me</filename
> para o módulo <replaceable
>arts</replaceable
>:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>touch</command
> <filename class="directory"
>~/kdesvn/build/<replaceable
>arts</replaceable
>.refresh-me</filename
></userinput>
<prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Mudar a configuração das variáveis de ambiente</title>
<para
>Normalmente o &kdesvn-build; usa o ambiente que está presente no arranque, quando executa os programas de actualização e compilação. Isto é útil quando estiver a executar o &kdesvn-build; a partir da linha de comandos.</para>

<para
>Contudo, poderá querer alterar a configuração das variáveis de ambiente para as quais o &kdesvn-build; não tem uma opção directa (Por exemplo, para configurar qualquer variáveis de ambiente necessárias na execução do &kdesvn-build; num escalonador de tarefas como o &cron;). Isto é possível com a opção &set-env;.</para>

<para
>Ao contrário da maioria das opções, poderá ser definida mais que uma vez e aceita dois itens separados por um espaço. O primeiro item é o nome da variável de ambiente a definir e o resto da linha é o valor.</para>

<informalexample>
<para
>Configurar o <userinput
><envar
>DISTRO</envar
>=<replaceable
>BSD</replaceable
></userinput
> para todos os módulos:</para>
<screen
>global
  set-env <replaceable
>DISTRO</replaceable
> <replaceable
>BSD</replaceable>
end global
</screen>
</informalexample>

</sect2>

<sect2 id="resuming">
<title
>Prosseguir com as compilações</title>

<sect3 id="resuming-failed">
<title
>Prosseguir uma compilação falhada ou cancelada</title>

<para
>Poderá indicar ao &kdesvn-build; para começar a compilar a partir de um módulo diferente do que onde iria prosseguir. Isto poderá ser útil quando falhou um conjunto de módulos ou se tiver cancelado a execução de uma compilação a meio. Poderá controlar isto com a opção &cmd-resume-after;.</para>

<note
><para
>Se usar qualquer uma das opções de continuação, irá saltar por cima da actualização do código-fonte.</para
> </note>

<informalexample>
<para
>Prosseguir a compilação a começar no 'kdebase':</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--resume-from=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

<informalexample>
<para
>Prosseguir a compilação logo a seguir ao 'kdebase' (no caso de ter corrigido manualmente o problema e tiver instalado o módulo você mesmo):</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--resume-after=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

</sect3>

<sect3 id="ignoring-modules">
<title
>Ignorar os módulos numa compilação</title>

<para
>Como acontece quando deseja <link linkend="resuming-failed"
>prosseguir com a compilação de um módulo</link
>, poderá optar em alternativa por actualizar e compilar tudo normalmente, só que ignorando um conjunto de módulos.</para>

<para
>Poderá fazer isso com a opção &cmd-ignore-modules;. Esta opção diz ao &kdesvn-build; para ignorar todos os restantes módulos da linha de comandos, ao efectuar a actualização e a compilação.</para>

<informalexample>
<para
>Ignorar o extragear/multimedia e o kdereview numa execução completa:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--ignore-modules</option
> <replaceable
>extragear/multimedia kdereview</replaceable
></userinput
>
</screen>
</informalexample>

</sect3>
</sect2>

<sect2 id="changing-env-from-cmd-line">
<title
>Mudar as opções na linha de comandos</title>

<sect3 id="changing-global-opts">
<title
>Modificar as opções globais</title>
<para
>Poderá alterar a configuração das opções lidas do <link linkend="configure-data"
>ficheiro de configuração</link
> directamente a partir da linha de comandos. Esta alteração irá substituir a configuração do ficheiro, mas é apenas temporária. Só fará efeito enquanto estiver à mesma presente na linha de comandos.</para>

<para
>O &kdesvn-build; permite-lhe alterar as opções com nome do tipo <replaceable
>nome-opção</replaceable
> se passar um argumento na linha de comandos com o formato <userinput
><option
>--<replaceable
>nome-opção</replaceable
>=valor</option
></userinput
>. O &kdesvn-build; irá reconhecer se não souber qual a opção, e irá procurar o nome na sua lista de nomes de opções. Se não reconhecer o nome, avisá-lo-á, caso contrário irá recordar o valor que definir e substituir o valor do ficheiro de configuração.</para>

<informalexample>
<para
>Configurar o &source-dir; como <filename
>/dev/null</filename
> para fins de teste:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--pretend</option
> <option
>--<replaceable
>source-dir</replaceable
>=<replaceable
>/dev/null</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

<sect3 id="changing-module-opts">
<title
>Mudar as opções do módulo</title>
<para
>Também é possível alterar as opções apenas para um módulo específico. A sintaxe é semelhante: --<replaceable
>módulo</replaceable
>,<replaceable
>nome-opção</replaceable
>=<replaceable
>valor</replaceable
>. </para>

<para
>Esta alteração substitui qualquer opção duplicada do módulo encontrado no <link linkend="configure-data"
>ficheiro de configuração</link
> e só se aplica enquanto a opção for passada na linha de comandos.</para>

<informalexample>
<para
>Usar uma pasta de compilação diferente para o módulo 'kdeedu':</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--<replaceable
>kdeedu</replaceable
>,<replaceable
>build-dir</replaceable
>=<replaceable
>temp-build</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

</sect2>

</sect1>

<sect1 id="developer-features">
<title
>Funcionalidades para os programadores do &kde;</title>

<sect2 id="ssh-agent-reminder">
<title
>Verificações do Agente do &ssh;</title>
<para
>O &kdesvn-build; poderá garantir que os programadores do &kde; que usem o &ssh; para aceder ao repositório de código do &kde; não se esqueçam acidentalmente da ferramenta &ssh;-Agent ligada. Isto poderá fazer com que o &kdesvn-build; fique eternamente à espera que o programador indique a sua senha de &ssh;, por isso e por omissão, o &kdesvn-build; irá verificar se o Agente está a correr antes de efectuar as actualizações do código. </para>

<note
><para
>Isto só é feito para os programadores do &kde; que usam o &ssh;. Isto acontece porque não é necessária qualquer senha para a actualização e extracção de código anónima do repositório. O &subversion; irá lidar com as senhas para o segundo protocolo possível dos programadores do &kde;, o HTTPS. </para
></note>

<para
>Poderá querer desactivar a verificação do Agente do &ssh;, no caso das situações em que o &kdesvn-build; não detecte bem a presença de um agente. Para desactivar a verificação do agente, configure a opção <option
>disable-agent-check</option
> como <replaceable
>true</replaceable
>.</para>

<informalexample>
<para
>Desactivar a verificação do agente do &ssh;:</para>
<screen
>global
  disable-agent-check true
end global
</screen>
</informalexample>

</sect2>

</sect1>

<sect1 id="other-features">
<title
>Outras funcionalidades do &kdesvn-build;</title>

<sect2 id="changing-verbosity">
<title
>Mudar a quantidade de mensagens do resultado do &kdesvn-build;</title>
<para
>O &kdesvn-build; tem várias opções para controlar a quantidade de dados à saída que o programa gera. Em qualquer caso, os erros serão sempre apresentados.</para>

<itemizedlist>
<listitem
><para
>A opção <option
>--quiet</option
> (o seu formato curto é o <option
>-q</option
>) faz com que o &kdesvn-build; seja maioritariamente silencioso. Só as mensagens importantes, avisos ou erros serão apresentados. Quando estiver disponível, a informação de progresso é à mesma apresentada.</para
></listitem>

<listitem
><para
>A opção <option
>--really-quiet</option
> (sem formato curto) faz com que o &kdesvn-build; mostre apenas os avisos importantes ou os erros, enquanto estiver em execução.</para
></listitem>

<listitem
><para
>A opção <option
>--verbose</option
> (o formato curto é o <option
>-v</option
>) faz com que o &kdesvn-build; seja muito detalhado nos seus resultados.</para
></listitem>

<listitem
><para
>A opção <option
>--debug</option
> serve apenas para fins de depuração, dado que faz com que o &kdesvn-build; actue como se o <option
>--verbose</option
> estivesse activo, fazendo com que os comandos sejam também apresentados no terminal e mostrando a informação de depuração para várias funções.</para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="kdesvn-build-color">
<title
>Resultado colorido</title>
<para
>Ao ser executado a partir do &konsole; ou de um terminal diferente, o &kdesvn-build; irá mostrar normalmente o texto a cores.</para>

<para
>Poderá desactivar isto com a opção <option
>--no-color</option
> na linha de comandos ou configurando a opção &colorful-output; no <link linkend="configure-data"
>ficheiro de configuração</link
> como <replaceable
>false</replaceable
>. </para>

<informalexample>
<para
>Desactivar as mensagens a cores no ficheiro de configuração:</para>
<screen
>global
  colorful-output false
end global
</screen>
</informalexample>

</sect2>

<sect2 id="email-reports">
<title
>Envio por e-mail dos relatórios de erros da compilação</title>
<para
>O &kdesvn-build; poderá enviar um relatório por e-mail para um determinado endereço à sua escola, quando um módulo não conseguir compilar por alguma razão. A forma como funciona é através da indicação de um endereço de e-mail de onde o &kdesvn-build; irá enviar os dados e um endereço de e-mail para notificar quando ocorrer algum erro.</para>

<para
>O &kdesvn-build; irá então, no fim de uma execução completa, construir uma mensagem de e-mail se existirem alguns módulos que não conseguiram ser compilados. O e-mail irá conter um registo de erros abreviado para cada módulo. Só é enviada uma mensagem de e-mail para uma dada execução, mesmo que falhe a compilação de 15 módulos. </para>

<para
>Esta funcionalidade não está activada por omissão. Para a activar, terá de definir tanto as opções &email-address; e &email-on-compile-error;. O <option
>email-address</option
> controla o endereço de onde o &kdesvn-build; envia os dados e o <option
>email-on-compile-error</option
> controla para onde enviar a mensagem. </para>

<tip>
<para
>O &kdesvn-build; usa o módulo-padrão do Perl Mail::Mailer para enviar a mensagem. Vem incluído com o Perl 5.8 e é instalável com o Perl 5.6. O Mail::Mailer suporta o <application
>Sendmail</application
> (incluindo os clientes de e-mail compatíveis com o <application
>Sendmail</application
>), o transporte de <acronym
>SMTP</acronym
> nativo e o <application
>qmail</application
>. </para>
</tip>

<informalexample>
<para
>Enviar um e-mail de xpto-envio@exemplo.com to xpto-recepcao@exemplo.com em caso de erro na compilação:</para>

<screen
>global
  email-address          xpto-envio@exemplo.com    # O endereço De: para qualquer e-mail do kdesvn-build
  email-on-compile-error xpto-recepcao@exemplo.com    # O endereço Para: do e-mail de erros da compilação
end global
</screen>
</informalexample>

</sect2>

<sect2 id="deleting-build-dir">
<title
>Remover as pastas desnecessárias após uma compilação</title>
<para
>Está com falta de espaço em disco mas deseja à mesma fazer uma extracção actualizada do &kde;? O &kdesvn-build; poderá ajudar a reduzir a sua utilização do disco ao compilar o &kde; a partir do &subversion;.</para>

<note
><para
>Tenha em atenção que a compilação do &kde; ocupa bastante espaço. Existem bastantes componentes grandes em termos de espaço ao usar o &kdesvn-build;:</para
></note>

<orderedlist>
<listitem
><para
>A extracção de código actual poderá levar bastante espaço. Os módulos por omissão levam cerca de 1,6 gigabytes de espaço em disco. Poderá reduzir esta quantidade, se garantir que só vai compilar os módulos que deseja de facto. O &kdesvn-build; não irá remover o código-fonte do disco, mesmo que remova o item do <link linkend="configure-data"
>ficheiro de configuração</link
>, como tal garanta que são apagados os módulos extraídos e não usados da pasta de código. Lembre-se que os ficheiros de código são obtidos da Internet, pelo que <emphasis
>não deverá</emphasis
> removê-los se for usar estes ficheiros de facto, pelo menos até acabar de usar o &kdesvn-build;.</para>

<para
>Da mesma forma, se já tiver um &Qt; instalado pela sua distribuição (e é bastante possível que isso aconteça), provavelmente não irá necessitar de instalar o módulo 'qt-copy'. Isso irá poupar cerca de 200 MB do código no disco.</para>

<para
>Uma coisa a reparar é que, devido à forma como o &subversion; funciona, existem de facto dois ficheiros no disco para cada ficheiro extraído do repositório. O &kdesvn-build; não tem código neste ponto para tentar minimizar o tamanho do código, quando este não estiver a ser usado. </para>
</listitem>

<listitem>
<para
>O &kdesvn-build; irá criar uma pasta de compilação separada, para onde irá compilar o código-fonte. Algumas vezes o &kdesvn-build; terá de copiar uma pasta de código para criar uma pasta de compilação falsa. Quando isso acontecer, são usadas as ligações simbólicas, caracterizadas por poupar espaço, como tal isso não deverá ser um problema a nível de espaço em disco. A pasta de compilação será tipicamente muito maior que a pasta de código de um módulo. Por exemplo, a pasta de compilação do 'kdebase' ocupa cerca de 1 050 megabytes, enquanto o código do 'kdebase' ocupa apenas cerca de 550 megabytes.</para>

<para
>Felizmente, a pasta de compilação não é necessária após um módulo ter sido compilado e instalado com sucesso. O &kdesvn-build; poderá remover automaticamente a pasta de compilação após a instalação de um módulo; veja os exemplos abaixo para mais informações. Lembre-se que a utilização deste passo tornará impossível ao &kdesvn-build; efectuar as compilações incrementais que poupam tempo.</para>
</listitem>

<listitem
><para
>Finalmente, existe espaço em disco necessário para a própria instalação do &kde;, que não executa a partir da pasta de compilação. Este espaço é normalmente menor que o da pasta de compilação. É mais difícil ter os valores exactos, de qualquer forma. </para
></listitem>
</orderedlist>

<para
>Como é que reduz os requisitos de espaço do &kde;? Uma forma é usar as opções de compilação adequadas, para optimizar a redução de espaço em vez da velocidade. Outra forma, que poderá fazer bastante efeito, é remover a informação de depuração da sua compilação do &kde;. </para>

<warning
><para
>Deverá ter mesmo a certeza que sabe o que faz, antes de decidir remover a informação de depuração. A execução de aplicações demasiado actuais significa que está a correr programas que, potencialmente, poderão ter tendência a estoirar, algo que não acontece numa versão estável. Se estiver a executar 'software' sem informações de depuração, poderá ser bastante difícil criar um bom relatório de erros para que o seu erro seja resolvido; como tal, é possível que tenha de activar de novo a informação de depuração da aplicação afectada e compilá-la de novo para ajudar um programador a resolver o estoiro. Como tal, remova a informação de depuração por sua conta e risco! </para
></warning>

<informalexample>
<para
>A remoção da pasta de compilação, após a instalação de um módulo. A pasta do código é mantida à mesma e a depuração fica activa:</para>

<screen
>global
  configure-flags      --enable-debug
  remove-after-install builddir        # Remover a pasta de compilação após a instalação
end global
</screen>

<para
>A remoção da pasta de compilação após a instalação, sem informações de depuração e com optimizações do tamanho.</para>

<screen
>global
  cxxflags             -Os             # Optimizar o tamanho
  configure-flags      --disable-debug
  remove-after-install builddir        # Remover a pasta de compilação após a instalação
end global
</screen>
</informalexample>
</sect2>

</sect1>

</chapter>

<chapter id="kde-cmake">
<title
>&cmake;, o sistema de compilação do &kde; 4</title>

<sect1 id="kde-cmake-intro">
<title
>Introdução ao &cmake;</title>

<para
>Em Março de 2006, o programa &cmake; ultrapassou os vários adversários e foi seleccionado para ser o sistema de compilação do &kde; 4, substituindo o sistema baseado nas 'autotools' que o &kde; tem usado desde o início.</para>

<para
>Está disponível uma página de introdução ao &cmake; no <ulink url="http://techbase.kde.org/Development/Tutorials/CMake"
>TechBase do &kde;</ulink
>. Basicamente, em vez de correr <userinput
><command
>make</command
> <option
>-f</option
> <filename
>Makefile.cvs</filename
></userinput
>, depois o <command
>configure</command
>, depois o &make;, basta simplesmente correr o &cmake; e depois o &make;. </para>

<para
>O &kdesvn-build; tem o suporte para o &cmake;. Algumas funcionalidades do &kdesvn-build; são realmente funcionalidades do sistema de compilação subjacente, incluindo o <link linkend="conf-configure-flags"
>configure-flags</link
> e o <link linkend="conf-do-not-compile"
>do-not-compile</link
>. Quando estiverem disponíveis funcionalidades equivalentes, serão disponibilizadas. Por exemplo, a equivalente da opção 'configure-flags' é a <link linkend="conf-cmake-options"
>cmake-options</link
>, assim como a opção <link linkend="conf-do-not-compile"
>do-not-compile</link
> também é suportada para o &cmake; desde a versão 1.6.3 do &kdesvn-build;. </para>

</sect1>
</chapter>

<chapter id="credits-and-licenses">
<title
>Créditos e Licenças</title>

<para
>Tradução de José Nuno Pires <email
>zepires@gmail.com</email
></para
> 
&underFDL; </chapter>

</book>
