# Manual do script &kdesrc-build;

Michael
Pyne

    mpyne@kde.org

Carlos
Woelz

    carloswoelz@imap-mail.com

Marcus
Gama

    marcus.gama@gmail.com

Tradução
2006
2007
2008
2009
2010
Michael Pyne
2005
Carlos Woelz
&FDLNotice;
30/01/2010
1.12

O &kdesrc-build; é um script que compila e instala programas do &kde; diretamente a partir do repositório de código-fonte do projeto do &kde;.

KDE
kdesdk
SVN
Subversion
git
gitorious
Desenvolvimento KDE
kdesvn-build
kdecvs-build

## Introdução

O &kdesrc-build; é um script que ajuda os usuários a instalar programas do &kde; a partir dos seus repositórios de código do &subversion; e do &git;.

Este programa costumava ser chamado de kdesvn-build e, por este motivo, você poderá ainda encontrar referências ao kdesvn-build na Internet ou na sua documentação instalada.

Este guia é uma visão geral para descrever os seguintes aspectos de operação do &kdesrc-build;:

- Funcionalidades notáveis.

- Uma visão geral dos passos necessários para iniciar.

- A sintaxe do arquivo de configuração e suas opções.

- As opções de linha de comando.

Também são documentados aqui os passos que você deve realizar usando outras ferramentas (em outras palavras, passos que não são automaticamente realizados pelo &kdesrc-build;).

## Começando

Neste capítulo, será apresentada a forma de utilização do &kdesrc-build; para obter os módulos do repositório do &kde; e compilá-los. Nós daremos também uma explicação básica da estrutura de &subversion; do &kde; e os passos que você terá que efetuar antes de executar o programa.

Todos os tópicos presentes neste capítulo são cobertos com ainda mais detalhes no artigo Compilando o &kde; 4 a partir do Código-Fonte, na Página TechBase do &kde;. Se você estiver compilando o &kde; pela primeira vez, é uma boa ideia lê-lo ou consultá-lo como fonte de referência. Você 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;.

### Preparando o Sistema para Compilar o &kde;

#### Configurar uma nova conta de usuário

É recomendável que você use uma conta de usuário diferente para compilar, instalar e executar seus programas &kde;, uma vez que menos permissões são necessárias e para evitar a interferência com os pacotes de sua distribuição. Se você já possui pacotes do &kde; instalados, a melhor opção seria criar um usuário diferente (dedicado) para compilar e executar o novo &kde;.

Deixar seu sistema &kde; intocado também permite que você volte ao estado anterior em uma emergência caso um &kde; compilado seja instável por qualquer razão.

Mais tarde, você poderá fazer uma instalação de sistema se desejar. Este documento não cobre uma instalação a nível do sistema. Se estiver efetuando uma instalação a nível do sistema, provavelmente já deverá saber o que está fazendo. Caso contrário, recomenda-se consultar a documentação ou páginas de ajuda da sua distribuição, para saber como preparar e usar a instalação do sistema corretamente.

#### Certifique-se de que o seu sistema está pronto para compilar o código do &kde;

Antes de usar o programa &kdesrc-build; (ou qualquer outra estratégia de compilação), você deverá instalar as ferramentas de desenvolvimento e bibliotecas necessárias para o &kde;. A lista completa das ferramentas necessárias poderá ser encontrada em KDE TechBase.

Aqui está uma lista das coisas que você irá precisar:

- Você irá precisar do &cmake;. A versão necessária irá variar, dependendo da versão do &kde; 4 que estiver compilando; veja a TechBase para detalhes mais específicos.

- O programa cliente de &subversion; também é necessário, incluindo o suporte para HTTP Seguro (HTTPS). Para certificar-se do suporte necessário, você pode executar ``svn `--version```. Se a saída informar que ele manipula o esquema https (para acesso de escrita ao svn.kde.org) ou o esquema svn (para acesso somente leitura do anonsvn.kde.org) então o cliente deve funcionar.

- Se você for compilar o &Qt; ou qualquer um dos vários módulos do &kde; que estão disponíveis a partir do Gitorious então precisará que o Gerenciador de controle de código git esteja instalado também.

- Você precisará do ambiente de desenvolvimento C++. O GCC 3.4 ou superior é recomendado.

A maioria das distribuições e sistemas operacionais inclui um método para instalar facilmente as ferramentas de desenvolvimento necessárias. Consulte a página Começando da TechBase, na sua seção Pacotes necessários para sua Distribuição para ver se estas instruções já estão disponíveis.

Uma exceção às bibliotecas necessárias é a biblioteca &Qt;. O &kdesrc-build; irá instalar normalmente uma cópia do &Qt;, quer já a tenha instalado ou não. Assim, não é necessário possuí-la. Se você não quiser usar a cópia do &Qt;, terá que fazer o seguinte:

- Certifique-se de que removeu o módulo 'qt-copy' do seu arquivo de configuração, uma vez que você não irá precisar dele e, se possuí-lo, isso só vai adicionar um tempo adicional à sua compilação.

- Mude a configuração da opção qtdir no seu arquivo de configuração, de modo a apontar para o seu &Qt; de sistema. Isto normalmente equivale à configuração do $`QTDIR` no seu sistema.

- Se você não tiver já o &Qt; instalado, instale-o, incluindo os pacotes -dev ou -devel necessários. Você deverá ter pelo menos o &Qt; 4.6 se for compilar o &kde; 4.

Alguns destes pacotes estão divididos em bibliotecas, programas ou utilitários e pacotes de desenvolvimento. Você precisará, 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, uma vez que cada módulo possui os seus próprios requisitos. O TechBase do &kde; tem mais detalhes sobre as ferramentas e técnicas específicas usadas para instalar e encontrar o 'software' necessário.

#### Configurar o &kdesrc-build;

##### Instalar o &kdesrc-build;

Você provavelmente já tem uma versão do programa &kdesrc-build; instalada no seu sistema. Contudo, se não tiver, poderá obtê-lo na página do &kdesrc-build; ou poderá encontrá-lo no seu local original, no repositório de código do &kde;.

O &kdesrc-build; vem incluído no módulo 'kdesdk', sendo este módulo normalmente já incluído nas distribuições. Se você tiver baixado o &kdesrc-build;, certifique-se de que está usando a versão que baixou. Você poderá usar a opção --version para garantir que está usando a versão correta.

1. Para baixar o &kdesrc-build; a partir de sua página, basta ir para a página do &kdesrc-build; e transferir a versão mais recente. A versão está dentro de um pacote TAR comprimido, que você pode extrair com o &ark; ou o `tar`. O conteúdo do pacote inclui o programa &kdesrc-build; atual e um arquivo de configuração de exemplo (`kdesrc-buildrc-sample`).

2. Ou você poderá obter o &kdesrc-build; do seu repositório de código, localizado em: http://websvn.kde.org/trunk/KDE/kdesdk/scripts/. Esta é a pasta do Kit de Desenvolvimento de Software do &kde;, que é o berço do &kdesrc-build;. Você poderá clicar no item `kdesrc-build`, que lhe mostrará uma página onde poderá obter a última versão. Faça isso e salve-o num local conveniente no seu disco rígido. Faça o mesmo para o `kdesrc-buildrc-sample` se precisar.

Independentemente da técnica que usar, você deverá certificar-se de que o arquivo `kdesrc-build` é executável. Por conveniência, deverá colocá-lo em uma pasta que esteja definida na variável de ambiente `PATH`, caso contrário, poderá obter mensagens que indiquem que o comando não foi encontrado ou que está rodando uma versão errada por engano.

##### Preparar o arquivo de configuração

Ainda que o &kdesrc-build; não necessite que você crie um arquivo de configuração, isto torna o trabalho muito mais simples. Se usar um arquivo de configuração, você poderá controlar os módulos que são instalados ou remover os que não deseja instalar. Por padrão, o &kdesrc-build; cria uma instalação utilizável do &kde; que usa opções de instalação muito genéricas, o que poderá não atender as suas necessidades. Assim, é melhor usar um arquivo de configuração.

O arquivo de configuração deverá se chamar `.kdesrc-buildrc`. Este arquivo deverá ser instalado na pasta pessoal (`~/`), e contém todos os dados de configuração necessários para executar o programa, 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 padrão são oferecidos pelo arquivo `kdesrc-buildrc-sample`, que pode ser copiado para o `~/.kdesrc-buildrc` e depois editado.

Você poderá encontrar mais informações sobre a sintaxe do arquivo de configuração em e em .

### Definindo os Dados de Configuração

Para usar o &kdesrc-build;, você deverá ter um arquivo na sua pasta pessoal chamado `.kdesrc-buildrc`, que define as opções gerais e os módulos que deseja baixar e compilar.

É possível usar arquivos de configuração diferentes para o &kdesrc-build;, que estão descritos em . Se você precisar usar várias configurações, veja esta seção. Aqui, nós iremos considerar que a configuração está armazenada em `~/.kdesrc-buildrc`.

A forma mais simples de prosseguir é usar o arquivo `kdesrc-buildrc-sample` como modelo, definir as opções globais de acordo com as suas necessidades e a lista dos módulos que deseja compilar.

A configuração padrão já deverá ser apropriada para efetuar uma compilação do &kde;. Algumas opções que você poderá querer alterar incluem:

- binpath, para alterar a lista de pastas que serão percorridas na procura de comandos. É exatamente igual à variável `PATH` da linha de comando.

- kdedir, que muda a pasta de destino para onde o &kde; será instalado. Ela é por padrão a `~/kde`, que é uma instalação para um único usuário.

- qtdir, que controla o local da instalação do &Qt; a ser usado. Por padrão, usa um &Qt; compilado pelo &kdesrc-build;, usando o módulo especial 'qt-copy' do repositório e o último código-fonte disponível. (`~/kdesrc/build/qt-copy`).

  Isto também controla onde instalar o qt-copy.

- svn-server, que seleciona o &url; de onde baixar o código. Isto é útil se você for um programador com uma conta &subversion; para o &kde;.

Depois da seção global, existe uma lista de módulos a compilar, delimitados por 'module ... end module'. Verifique se os módulos indicados são, de fato, os módulos que deseja compilar. As opções padrão do arquivo `kdesrc-buildrc-sample` deverão ser suficientes para obter uma instalação relativamente completa do &kde;. Salve o resultado como `.kdesrc-buildrc` na sua pasta pessoal.

Se você desejar fazer um ajuste fino do seu arquivo `.kdesrc-buildrc`, consulte o para obter informações mais detalhadas sobre todas as opções de configuração.

### Usando o script &kdesrc-build;

Agora você está pronto para executar o programa. A partir de uma janela de terminal, autentique-se com o usuário que usará para compilar o &kde; e execute o programa:

    $kdesrc-build

Agora, o script deverá começar a baixar o código e a compilá-lo. Dependendo dos módulos que baixar, pode ser possível que o &kdesrc-build; não consiga ter sucesso na primeira vez que compilar o &kde;. Não se desespere!

O &kdesrc-build; registra o resultado de todos os comandos que executa. Por padrão, os arquivos de registro são mantidos em `~/kdesvn/log`. Para ver o que causou um determinado erro num módulo no último comando do &kdesrc-build;, normalmente é suficiente ver o `~/kdesvn/log/latest/nome-módulo/error.log`.

Nesse arquivo, você verá o erro que fez com que a compilação falhasse para esse módulo. Se o arquivo 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 --reconfigure depois de instalar os pacotes faltantes.

Ou, 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 a lista kde-devel@kde.org (poderá ser necessário inscrever-se) para comunicar o erro de compilação.

Você 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 Compilando o &kde; 4 a Partir do Código.

Para mais informações sobre as funcionalidades de registro do &kdesrc-build;, veja em .

### Configurando o Ambiente para Executar o seu &kde; Novo

Assumindo que você está usando um usuário dedicado para compilar o &kde; e já possui uma versão do &kde; instalada, a execução do seu &kde; novo precisará de alguns truques, uma vez que o &kde; novo terá de ter precedência sobre o antigo. Mude as variáveis de ambiente para garantir que isso aconteça.

#### Alterando a configuração do seu perfil inicial

O arquivo `.bash_profile` é o arquivo de configuração do usuário na linha de comando bash, que é usada por muitas distribuições &Linux;. Se você usar uma linha de comando diferente, então poderá ter que ajustar os exemplos dados nesta seção, para a sua linha de comando em particular.

Abra ou crie o arquivo `.bash_profile` na pasta pessoal com o seu editor favorito e adicione ao fim do arquivo: Se você estiver compilando o módulo 'qt-copy' (o padrão), adicione em alternativa:

    QTDIR=(local da qtdir)   # Por padrão, ~/kdesrc/build/qt-copy.
    KDEDIR=(local da kdedir) # Por padrão ~/kde.
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    MANPATH=$QTDIR/doc/man:$MANPATH

    # Atuar 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

ou, se não estiver compilando o 'qt-copy' (e usar o &Qt; do seu sistema), adicione isto em alternativa:

    KDEDIR=(local da kdedir)  # Por padrão ~/kde.
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH

    # Atuar 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

Se você não estiver usando um usuário dedicado, defina um novo `$KDEHOME` para o seu novo ambiente no seu arquivo `.bash_profile`:

    export KDEHOME="${HOME}/.kde-svn"

    # Criar a pasta se necessário
    [ ! -e ~/.kde-svn ] && mkdir ~/.kde-svn

Se, mais tarde, o seu Menu K estiver vazio ou completamente cheio de aplicativos da sua distribuição, você poderá ter que definir as suas variáveis de ambiente do XDG no seu `.bash_profile`:

    XDG_CONFIG_DIRS="/etc/xdg"
    XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
    export XDG_CONFIG_DIRS XDG_DATA_DIRS

#### Iniciando o &kde;

Agora que você ajustou a sua configuração do ambiente para usar o &kde; correto, é importante certificar-se de que o programa `startkde` correto seja usado também.

Abra o arquivo de texto `.xinitrc` da sua pasta pessoal, ou crie-o se necessário. Adicione a linha:

    exec ${KDEDIR}/bin/startkde

Em algumas distribuições, poderá ser necessário efetuar os mesmos passos com o arquivo `.xsession`, também na pasta pessoal. Isto aplica-se especialmente nos gerenciadores de login gráficos como o &kdm;, o gdm ou o xdm.

Agora inicie o seu novo &kde;: nos sistemas &BSD; e &Linux;, com o suporte para terminais virtuais, os atalhos &Ctrl;&Alt;F1 ... &Ctrl;&Alt;F12 são usados para mudar para o Console Virtual 1 a 12. Isto permite-lhe executar mais de um ambiente gráfico ao mesmo tempo. Os primeiros seis são terminais de texto e os seis seguintes são gráficos.

Se, quando você iniciar o seu computador, aparecer o gerenciador gráfico de login, você poderá usar o novo ambiente do &kde;, mesmo que não apareça como uma opção. A maioria dos gerenciadores de login, incluindo o &kdm;, possuem uma opção para usar uma Sessão Personalizada ao se logar. Com esta opção, a sua configuração de sessões é carregada do arquivo `.xsession` da sua pasta pessoal. Se você já tiver modificado este arquivo como descrito acima, esta opção deverá carregar a sua nova instalação do &kde;.

Caso contrário, existe algo que você poderá tentar que normalmente funciona: Pressione &Ctrl;&Alt;F2, para que apareça um terminal de texto. Logue-se com o usuário dedicado e digite:

    startx -- :1

Você poderá executar o &kde; a partir do código e o &kde; antigo ao mesmo tempo! Logue-se com o seu usuário normal e inicie o ambiente de trabalho do &kde; estável. Pressione &Ctrl;&Alt;F2 (ou F1, F3, etc..), e verá um terminal de texto. Logue-se com o usuário dedicado ao &subversion; do &kde; e digite:

    startx -- :1

Você poderá voltar ao ambiente de trabalho do &kde; do seu usuário normal, pressionando a tecla de atalho do ambiente em execução. Ela é normalmente o &Ctrl;&Alt;F7, sendo que você poderá também precisar usar o F6 ou o F8 em alternativa. Para voltar ao seu &kde; compilado pelo &kdesrc-build;, você irá usar a mesma sequência, usando, no entanto, a tecla de função seguinte. Por exemplo, se você precisar inserir &Ctrl;&Alt;F7 para mudar para o seu &kde; normal, poderá ter que inserir &Ctrl;&Alt;F8 para voltar ao seu &kde; do &kdesrc-build;.

## Funcionalidades do Programa

### Visão Geral das Funcionalidades

As funcionalidades do &kdesrc-build; incluem:

- Suporta os níveis de mensagens de resultado, desde o mais silencioso até à depuração completa.

- O &kdesrc-build; pode, com a assistência da página Web do &kdesrc-build; e com o servidor de FTP do &kde; (FTP desde o &kdesrc-build; 1.4), permitir extrações rápidas de alguns módulos. Se o módulo que estiver extraindo já possuir um pacote equivalente na página Web, então o &kdesrc-build; irá baixar essa imagem e prepará-la para o seu computador.

  Isto é mais rápido para você, e ajuda a liberar alguma carga nos servidores anônimos de &subversion; do kde.org.

- 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)

- Tem um excelente suporte para o módulo 'qt-copy', incluindo a aplicação opcional de correções e otimizações no módulo 'qt-copy'.

- O &kdesrc-build; tem mensagens de resultado coloridas.

- O &kdesrc-build; não precisa de uma GUI presente para funcionar. Por isso, você poderá compilar o &kde; sem precisar de um ambiente gráfico alternativo.

- Suporta a definição de opções padrã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.

  Do mesmo modo, o &kdesrc-build; irá adicionar opções padrão, como for apropriado, para lhe poupar trabalho e alguns erros possíveis, definindo-as você mesmo.

- O &kdesrc-build; poderá baixar uma marca ou ramificação específica de um módulo. Você poderá também ter a certeza de que é usada uma versão específica em vez de um módulo.

- O &kdesrc-build; poderá mudar automaticamente a pasta de origem para baixar a partir de um repositório, ramificação ou marca diferentes. Isto acontece automaticamente quando você mudar alguma opção que altere o &url; do repositório, se bem que você deve usar a opção --src-only para deixar que o &kdesrc-build; saiba que é aceitável efetuar a mudança.

- O &kdesrc-build; pode obter apenas partes de um módulo, para aquelas situações em que você só precisa de um programa de um módulo maior.

- A transferência inicial de alguns módulos pode ser acelerada pelo &kdesrc-build; que transferirá automaticamente (se disponível) um módulo a partir de espelhos do &kde; e usará isto para configurar a obtenção inicial. Isto economiza tempo e largura de banda para o seu sistema e para os servidores do &kde;.

- Para desenvolvedores: O &kdesrc-build; irá lembrar de você se você usar o svn+ssh:// mas o ssh-agent não estiver em execução, uma vez que isso levará a pedidos de senha repetidos do &ssh;.

- Pode enviar relatórios por e-mail dos erros a um determinado usuário.

- Pode remover a pasta de compilação de um módulo, após a sua instalação, para poupar espaço, em detrimento de um maior tempo de compilação.

- Os locais das pastas usadas pelo &kdesrc-build; são configuráveis (até mesmo por módulo).

- Pode usar o &sudo; ou um comando definido pelo usuário para instalar os módulos, para que o &kdesrc-build; não precise ser executado como super-usuário.

- O &kdesrc-build; executa com prioridade reduzida por padrão, para lhe permitir ainda usar o seu computador, enquanto o &kdesrc-build; estiver trabalhando.

- Possui suporte para usar as marcas e ramificações do &subversion; do &kde;.

- O &kdesrc-build; irá usar um conjunto de técnicas para tentar e garantir uma compilação com sucesso.

- Existe o suporte para prosseguir com uma compilação de um determinado módulo. Você pode até ignorar alguns módulos temporariamente para uma determinada compilação.

- O &kdesrc-build; pode efetuar rapidamente uma compilação parcial de um módulo, diretamente a partir da linha de comando, quando você precisa apenas atualizar parte de um módulo.

- O &kdesrc-build; mostrará o progresso da sua compilação ao usar o &cmake;, e irá medir sempre o tempo do processo de compilação, para que você saiba quanto tempo levou efetivamente.

- 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.

- Vem com um conjunto seguro de opções padrão, apropriadas para compilar uma instalação mono-usuário básica do &kde; a partir do repositório de &subversion; anônimo.

- Expansão do til (~) para as suas opções de configuração. Por exemplo, você poderá especificar:

      qtdir ~/kdesrc/build/qt-copy

- 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 você mantenha as suas pastas de origem limpas.

- Você poderá indicar as opções globais a aplicar a todos os módulos a serem obtidos, assim como poderá indicar opções para serem aplicadas aos módulos individualmente.

- Uma vez que as ferramentas 'autotools' normalmente perdem a sincronização com as modificações na árvore de código, você poderá forçar uma nova compilação de um módulo, se criar um arquivo chamado '.refresh-me' na pasta de compilação do módulo em questão ou executando o &kdesrc-build; com a opção `--refresh-build`.

- Você poderá indicar vários valores de ambiente a usar durante a compilação, incluindo o `KDEDIR`, o `QTDIR`, o `DO_NOT_COMPILE` e o `CXXFLAGS`.

- Registro dos comandos. Os arquivos de registro são datados e numerados, para que você 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 registro mais recente na respectiva pasta.

- Se você estiver usando uma compilação de usuário do &kde;, em vez de uma instalação do sistema (para a qual precisa ser o 'root' para instalar), você poderá usar o programa para instalá-lo para você. O código não foi ainda validado e ele faz uma utilização ampla da chamada `system()`, assim, eu não recomendo executá-lo como 'root' por enquanto.

- Você poderá usar o make-install-prefix para anteceder o comando ``make` `install`` com um comando separado, o que poderá ser útil para o &sudo;.

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

- Você poderá fingir efetuar as operações. Se passar a opção `--pretend` ou `-p` na linha de comando, o programa fornecerá uma descrição mais completa dos comandos que está prestes a executar, sem executá-los de fato.

### Registro de compilação do &kdesrc-build;

#### Visão geral do registro

O registro é uma funcionalidade do &kdesrc-build; que consiste no fato do resultado de todos os comandos que o &kdesrc-build; executa serem salvos em um arquivo para serem posteriormente examinados, caso seja necessário. Isto é feito porque frequentemente é necessário ter o resultado destes programas quando houver um erro de compilação, uma vez que poderão existir várias razões para a compilação falhar, em primeiro lugar.

##### Disposição da pasta de registro

Os registros são sempre salvos sob a pasta de registro. O destino da pasta de registro é controlado pela opção log-dir, que por padrão é `${source-dir}/log` (onde o ${source-dir} é o valor da opção source-dir. No resto desta seção, este valor será referido como ${log-dir}).

Sob a ${log-dir}, existe um conjunto de pastas, uma de cada vez que o &kdesrc-build; foi executado. Cada pasta possui como nome a data e o número da execução. Por exemplo, a segunda vez que o &kdesrc-build; foi executado em 26 de maio de 2004, será criada uma pasta chamada `2004-05-26-02`, onde o 2004-05-26 corresponde à data e o -02 é o número da execução.

Para sua conveniência, o &kdesrc-build; irá também criar uma ligação para os registros da sua última execução, chamada `latest`. Assim, os registros da execução mais recente do &kdesrc-build; deverão estar sempre sob a `${log-dir}/latest`.

Agora, cada pasta de uma execução do &kdesrc-build; irá conter, por sua vez, um conjunto de pastas, uma por cada módulo &kde; que o &kdesrc-build; tenta compilar. Do mesmo modo, irá conter um arquivo chamado `build-status` nessa pasta, que lhe permitirá determinar quais os módulos que compilaram bem e os que falharam.

Se um módulo em si tiver um sub-módulo (como o extragear/multimedia, playground/utils ou KDE/kdelibs), então, haverá uma disposição equivalente na pasta de registros. Por exemplo, os registros do KDE/kdelibs, após a última execução do &kdesrc-build;, irão aparecer em `${log-dir}/latest/KDE/kdelibs` e não em `${log-dir}/latest/kdelibs`.

Na pasta de registro de cada módulo, você irá encontrar um conjunto de arquivos para cada operação que o &kdesrc-build; efetuar. Se o &kdesrc-build; atualizar um módulo, você verá arquivos chamados `svn-co.log` (para um módulo extraído por completo) ou `svn-up.log` (ao atualizar um módulo que já tinha sido extraído). Se o comando `configure` foi executado, então você provavelmente verá um arquivo `configure.log` nessa pasta.

Se ocorreu um erro, você deverá ser capaz de ver uma explicação do motivo em um dos arquivos. Para ajudá-lo a determinar qual o arquivo que contém o erro, o &kdesrc-build; irá criar um link do arquivo que contém o erro (do tipo `build-1.log` para um arquivo chamado `error.log`).

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

Se o arquivo `error.log` 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.

Do mesmo modo, alguns comandos poderão fugir ao redirecionamento do resultado do &kdesrc-build; e ignorar o arquivo de registro em certas circunstâncias (normalmente ao obter o conteúdo do &subversion; na primeira vez), e o resultado do erro, nesse caso, não estará no arquivo de registro mas sim no &konsole; ou no terminal onde executou o &kdesrc-build;.

## Configurando o &kdesrc-build;

### Visão geral da configuração do &kdesrc-build;

Para usar o script, você deverá ter um arquivo na sua pasta pessoal chamado `.kdesrc-buildrc`, que descreve os módulos que deseja baixar e compilar.

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

    global
    nome-opção valor-opção
    [...]
    end global

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

    module nome-módulo
    nome-opção valor-opção
    [...]
    end module

O nome-módulo 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.

Segue-se uma lista das opções normalmente usadas. Clique na opção para descobrir mais sobre ela. Para visualizar a lista completa de opções, veja em .

- branch, para obter uma determinada ramificação, em vez da '/trunk'.

- build-dir, para definir a pasta onde será feita a compilação.

- cmake-options para definir as opções com que um módulo poderá ser configurado com o &cmake;.

- configure-flags para definir as opções com que um módulo poderá ser configurado.

- cxxflags para definir a variável `CXXFLAGS`.

- kdedir, para indicar a pasta onde o &kde; será instalado.

- kde-languages, para definir os pacotes de traduções a baixar e instalar.

- make-options, para passar opções ao programa &make;.

- qtdir, para definir a localização do &Qt;.

- set-env, para configurar uma variável de ambiente.

- source-dir, para mudar o local onde colocar o código transferido.

- svn-server, para mudar o servidor de onde é transferido o código.

### Tabela das opções de configuração disponíveis

Aqui está uma tabela com as várias opções, contendo a seguinte informação:

- O nome da opção

- Uma descrição de como responde o &kdesrc-build; se a opção for definida tanto na seção global quanto na seção do módulo do arquivo de configuração ao compilar um módulo.

- Comentários especiais sobre o objetivo e utilização da opção.

#### Tabela de Opções

Nome da Opção | Comportamento do Módulo -> Global | Notas
--- | --- | ---

apidox

Esta opção foi usada para permitir a compilação da documentação da API do módulo do KDE. Ela foi removida do &kdesrc-build; 1.6.3 devido a não ser suportada no KDE 4. A documentação on-line da API está disponível em kde.org. 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 TechBase do KDE para mais detalhes. Obviamente, ainda é possível compilar manualmente a documentação da API para os módulos mais antigos.

apply-qt-patches |  | Esta opção foi removida no kdesrc-build 1.10. Para obter o mesmo efeito, veja e a opção repository.
async | Não poderá ser sobreposta | Esta opção ativa o modo de operação assíncrono, onde a atualização do código fonte e o processo de compilação são executados em paralelo, ao invés de esperar por toda a atualização do código antes de iniciar o processo de compilação. O padrão é o modo assíncrono ativado. Para desativar, configure a opção para false Esta opção está disponível desde a versão 1.6.

binpath

A configuração do módulo substitui a global

Ative 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 padrão é o $`PATH` que é definido quando o programa inicia. Esta variável de ambiente deverá incluir os locais, separados por dois-pontos das suas ferramentas de desenvolvimento. Os locais `$`KDEDIR`/bin` e `$`QTDIR`/bin` são adicionados automaticamente. Você poderá usar o til (~) para os locais que adicionar com esta opção.

ramificação

A configuração do módulo substitui a global

Altere esta opção para obter uma ramificação do &kde;, em vez do valor padrãotrunk, onde o desenvolvimento do &kde; está em curso. Por exemplo, para obter a ramificação do &kde; 4.5, você deverá configurar esta opção como 4.5.

Se o &kdesrc-build; não conseguir obter adequadamente uma ramificação com esta opção, você poderá ter que indicar manualmente o &url; de onde baixar usando as opções module-base-path ou override-url.

Nota: Esta opção também funciona com módulos de código que usam o &git; ao invés do &subversion;.

build-dir

A configuração do módulo substitui a global

Use esta opção para mudar a pasta que contém o código compilado. Existem três formas diferentes de usá-la:

1. Relativa à pasta de código do &kde; no &subversion; (ver a opção 'source-dir'). Esta é a opção padrão e fica selecionada se digitar o nome de uma pasta que não comece por um til (~) ou uma barra (/).

   O valor padrão é `build`.

2. Um local absoluto. Se indicar um local que comece por um /, então será usado esse local diretamente. Por exemplo, o `/tmp/kde-obj-dir/`.

3. 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 comando. Por exemplo, o `~/builddir` irá configurar a pasta de compilação como `/home/usuário/builddir`.

Surpreendentemente, esta opção poderá ser alterada por módulo.

build-when-unchanged

A configuração do módulo substitui a global

Use esta opção para controlar se o &kdesrc-build; sempre tentará compilar um módulo que ainda não tenha quaisquer atualizações do código-fonte.

Ao configurar o `build-when-unchanged` como true (verdadeiro), o &kdesrc-build; sempre tentará a fase de compilação para um módulo, mesmo que este não tenha qualquer atualização no código-fonte. Esta é a configuração padrão, uma vezque, provavelmente, é a que proporciona uma compilação correta.

Ao configurar o `build-when-unchanged` como false (falso), o &kdesrc-build; só irá tentar executar a fase de compilação de um módulo, caso este tenha tido uma atualização do código-fonte ou em outras situações em que seja realmente necessária uma nova compilação. Isto pode poupar tempo, especialmente se você executa o &kdesrc-build; diariamente ou com ainda mais frequência.

Esta funcionalidade é oferecida apenas como uma otimização. Como todas as otimizações, existem compromissos face à correção da sua instalação. Por exemplo, as alterações nos módulo qt-copy ou kdelibs poderão provocar uma recompilação necessária de outros módulos, mesmo que o código-fonte não tenha sido alterado.

checkout-only

A configuração do módulo substitui a global

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, observe que esta opção, como global, não faz sentido.

Note que esta configuração não tem nenhum efeito nos módulos do &git; devido ao modo de operação do sistema de controle de código do &git;.

Veja um exemplo em .

cmake-options

Adiciona às opções globais (exceto no 'qt-copy')

Use esta opção para indicar quais opções 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 seção global.

Esta opção não se aplica ao qt-copy (que não usa o &cmake;). Use a opção configure-flags neste caso.

Uma vez que estas opções são passadas diretamente à linha de comando do &cmake;, deverão ser indicados como seriam passados no &cmake;. Por exemplo:

    cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo

Já que isto é muito trabalhoso, o &kdesrc-build; faz tudo para que as opções restantes sejam definidas corretamente. Assim, você poderá deixar esta opção em branco. (Em outras palavras, os parâmetros necessários do &cmake; serão definidos automaticamente)

colorful-output | Não poderá ser sobreposta | Configure esta opção como false para desativar o resultado colorido do &kdesrc-build;. Por padrão é true. Lembre-se que o &kdesrc-build; não irá mostrar os códigos de cores em nada que não seja um terminal (como o 'xterm', o &konsole; ou o console normal do &Linux;).

configure-flags

A configuração do módulo substitui a global

Use esta opção para indicar quais opções 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 que este programa compila. Esta opção somente funciona para o qt-copy.

Para mudar a configuração das opções para os módulos do KDE 4, veja cmake-options.

cxxflags

Adiciona-se à opção global

Use esta opção para indicar as opções a usar para compilar o módulo. Esta opção é indicada aqui em vez do configure-flags ou do cmake-options, uma vez que esta opção irá também definir a variável de ambiente `CXXFLAGS` durante o processo de compilação.

Observe que para o &kde; 4 e qualquer outro módulo que use o &cmake;, é necessário configurar a opção CMAKE_BUILD_TYPE para "none" ao configurar o módulo. Isto pode ser feito usando a opção cmake-options.

dest-dir

A configuração do módulo substitui a global

Use esta opção para mudar o nome de um módulo no disco. Por exemplo, se o seu módulo era 'extragear/network', você 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, uma vez que isso irá interferir com as opções build-dir ou source-dir.

disable-agent-check

Não poderá ser sobreposta

Normalmente, se você estiver usando o &ssh; para baixar o código do &subversion; (se, por exemplo, estiver usando o protocolo 'svn+ssh'), o &kdesrc-build; irá tentar certificar-se de que, se estiver usando o 'ssh-agent', ele está de fato gerenciando algumas identidades do &ssh;. Isto é para tentar evitar que o &ssh; pergunte a sua frase-senha para todos os módulos. Você poderá desativar esta opção configurar a opção `disable-agent-check` como true.

do-not-compile

A configuração do módulo substitui a global

Use esta opção para especificar um conjunto de pastas para não ser compilado num módulo (em vez de serem todas). As pastas que não serão compiladas deverão estar separadas por espaços.

Lembre-se que o código dos programas será ainda transferido. Você poderá usar a instrução checkout-only para escolher as pastas que deseja obter.

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

Veja em um exemplo.

email-address | Não poderá ser sobreposta | Configure esta opção com o endereço de e-mail que o &kdesrc-build; deverá enviar, no caso dele precisar enviar mensagens de e-mail. Você não terá que se preocupar com isto se não usar qualquer funcionalidade que envie e-mails. (Elas estão todas desativadas por padrão). Atualmente, somente o email-on-compile-error necessita desta opção.

email-on-compile-error

Não poderá ser sobreposta

Você 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 &kdesrc-build; irá esperar até que todos os módulos terminem e irá recolher todos os resultados no relatório. Ele só é enviado se um módulo se recusar a compilar.

Por favor, veja a opção email-address para configurar o endereço que o &kdesrc-build; irá usar para envio, uma vez que o valor padrão não é normalmente o que você deseja.

inst-apps |  | Esta opção foi removida na versão 1.10
install-after-build | A configuração do módulo substitui a global | Esta opção é usada para instalar o pacote depois dele ser compilado com sucesso. Esta opção está ativa por padrão. Se quiser desativá-la, terá que configurar esta opção como false no arquivo de configuração. Você poderá também usar a opção da linha de comando `--no-install`.
kdedir | A configuração do módulo substitui a global | Esta opção define a pasta em que o &kde; será instalado após a compilação. Por padrão, será em `~/kde`. Se mudar isto para uma pasta que precise do acesso do 'root', será útil também ler algumas informações sobre a opção make-install-prefix.

kde-languages

Não poderá ser sobreposta

Esta opção permite-lhe selecionar os pacote de localização baixados e instalados juntamente com o &kde;. Você poderá fazer isto se não morar nos Estados Unidos e quiser o &kde; traduzido para o seu idioma nativo.

Para usar esta opção, configure-a como uma lista separada por espaços dos idiomas a instalar. Cada língua possui um código associado a ele, que poderá ser encontrado nesta página: http://i18n.kde.org/teams/.

É aceitável escolher apenas uma língua. Por padrão, não é baixada nenhuma, o que significa que o &kde; irá aparecer em Inglês dos EUA.

Por exemplo, para optar por instalar o Português Brasileiro, você deverá configurar a opção com algo do tipo: ``kde-languages` pt_BR`. Terá ainda que usar o &systemsettings; para escolher o idioma Português do Brasil, todavia.

libpath | A configuração do módulo substitui a global | Configure esta opção para definir a variável de ambiente `LD_LIBRARY_PATH`, enquanto efetua a compilação. Você não poderá sobrepor esta opção num módulo. O valor padrão está em branco, mas os locais `$`KDEDIR`/lib` e `$`QTDIR`/lib` são adicionados automaticamente. Você poderá usar o til (~) para os locais que adicionar com esta opção.
log-dir | A configuração do módulo substitui a global | Use esta opção para mudar a pasta que irá conter os arquivos de registro gerados pelo programa.
make-install-prefix | A configuração do módulo substitui a global | 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 ``make` `install``, que é usado para instalar os módulos. Isto é útil para instalar os pacotes com o &sudo;, por exemplo, mas tenha cuidado ao trabalhar com os privilégios do 'root'.
make-options | A configuração do módulo substitui a global | Configure esta variável para passar as opções da linha de comando ao comando `make`. Isto é útil para os programas, como o distcc ou para os sistemas com mais de um núcleo de processamento.
manual-build | A configuração do módulo substitui a global | Configure o valor da opção como true para evitar que o processo de compilação tente compilar este módulo. Ele ainda será mantido atualizado ao atualizar a partir do &subversion;. Esta opção é exatamente equivalente à opção da linha de comando `--no-build`.
manual-update | A configuração do módulo substitui a global | Configure o valor da opção como true para evitar que o processo de compilação tente atualizar (e, por conseguinte, compilar ou instalar) este módulo. Se você definir esta opção para um módulo, então você basicamente poderá tê-la comentada.

module-base-path

A configuração do módulo substitui a global

Configure esta opção para se sobrepor à pasta padrão do &kdesrc-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 Visualizador de Código do &kde; é extremamente valioso para ajudá-lo a escolher o local correto.

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

O valor padrão é `trunk/`$módulo`` ou `trunk/KDE/`$módulo``, dependendo do nome do módulo.

Use as opções branch ou tag em alternativa, sempre que forem aplicáveis.

niceness | Não poderá ser sobreposta | Configure esta opção com um valor entre 20 e 0. Quanto mais alto o número, menor prioridade terá o &kdesrc-build;, ou seja, quanto maior o número, mais "amigável" o programa será. O valor padrão é 10.
no-svn | A configuração do módulo substitui a global | Se esta opção for igual a 'true', então o &kdesrc-build; não irá atualizar o código-fonte do módulo automaticamente. Ele ainda tentará compilar o módulo, caso já não tenha tentado anteriormente.
no-rebuild-on-fail |  | Esta opção foi removida na versão 1.10, uma vez que este comportamento não é mais útil em função de correções aplicadas no sistema de compilação.
override-url | A configuração do módulo substitui a global | Se configurar esta opção, o &kdesrc-build; irá usar o seu valor como o &url; a passar ao &subversion;, sem qualquer alteração. Você geralmente deverá usar esta opção, se quiser obter uma versão específica, mas o &kdesrc-build; não conseguir descobrir o que você quer dizer ao usar a opção branch.
prefix | A configuração do módulo substitui a global | Esta opção controla onde será instalado o módulo (normalmente em `kdedir`, se esta opção for usada). O uso desta opção permite-lhe instalar um módulo numa pasta diferente da pasta de instalação das bibliotecas da Plataforma do KDE; por exemplo, você poderá estar usando o &kdesrc-build; apenas para compilar as aplicações.

purge-old-logs

A configuração do módulo substitui a global

Esta opção controla se as pastas de registro antigas serão automaticamente excluídas ou não. O valor padrão é false.

Mesmo se você não definir esta opção para verdadeiro, você pode manualmente limpar as pastas de registro antigas executando:

`kdesrc-build --no-src --no-build --purge-old-logs kdelibs`

Você pode usar qualquer nome de módulo na linha de comando acima. Ele não tem que ser especificamente o kdelibs.

qtdir

A configuração do módulo substitui a global

Configure esta opção para definir a variável de ambiente `QTDIR` enquanto compila. Você poderá sobrepor esta configuração numa opção de um módulo. Se não indicar esta opção, será por padrão a `${source-dir}/build/qt-copy`, que irá usar o módulo 'qt-copy' que está incluído no repositório de código do &kde;. Você poderá usar um til (~) que representa a sua pasta pessoal.

remove-after-install

A configuração do módulo substitui a global

Se estiver com pouco espaço em disco, você 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.

Os valores possíveis para esta opção são:

- none - Não remove nada (Este é o valor padrão).

- builddir - Remove a pasta de compilação, mas não o código.

- all - Remove tanto o código-fonte como a pasta de compilação.

Note que a utilização desta opção poderá ter um grande impacto na utilização da sua largura de banda (se usar o all) e o tempo que dura a compilação do &kde;, uma vez que o &kdesrc-build; será incapaz de efetuar compilações incrementais.

repository | A configuração do módulo substitui a global | Esta opção foi introduzida com a versão 1.10 e é usada para especificar o repositório do &git; para transferir o código-fonte para o módulo. O &Qt; (e consequentemente o qt-copy) precisará desta opção, bem como vários módulos do &kde; que estão em processo de conversão para usar o &git;.

revision

A configuração do módulo substitui a global

Se esta opção for configurada com um valor diferente de 0 (zero), o &kdesrc-build; irá obrigar a atualização do &subversion; ao obter o módulo que tenha exatamente esse número de versão, mesmo que as opções como o branch estejam em efeito. Se o módulo já estiver na versão indicada, então não será mais atualizado, a menos que esta opção seja alterada ou removida da configuração.

run-tests

A configuração do módulo substitui a global

Se definido para true, então o módulo será compilado com suporte para executar seu pacote de testes, e o pacote de testes será executado como parte do processo de compilação. O &kdesrc-build; mostrará um relatório resumido dos resultados do teste. Isto é útil para desenvolvedores ou para aqueles que desejam se certificar de que seu sistema foi configurado corretamente.

set-env

A configuração do módulo substitui a global

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 `RONALD` como McDonald, você deve colocar este comando na seção apropriada:

    set-env RONALD McDonald

Esta opção é especial, na medida em que poderá ser repetida sem sobrepor a configuração anterior do 'set-env' na mesma seção do arquivo de configuração. Desta forma, você poderá definir mais de uma variável de ambiente por módulo (ou a nível global).

source-dir | A configuração do módulo substitui a global | 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 padrão `~/kdesrc`. Você poderá usar o til (~) para representar a pasta pessoal se usar esta opção.
stop-on-failure | A configuração do módulo substitui a global | Configure o valor desta opção como true 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á desativada por padrão.

svn-server

A configuração do módulo substitui a global

Esta opção é usada para definir o servidor usado para obter o código do &subversion;. Por padrão, é usado o repositório anônimo de &subversion;, em `svn://anonsvn.kde.org/`

Se você estiver programando para o KDE, use o repositório de &subversion; que lhe foi fornecido quando recebeu a sua conta de desenvolvedor, em vez do repositório anônimo.

tag | A configuração do módulo substitui a global | Use esta opção para obter uma versão específica de um módulo. Nota: As chances serão muito boas quando não quiser usar esta opção. As versões do &kde; estão disponíveis em pacotes compactados no servidor de FTP do &kde; ou num dos seus servidores espelho.
use-cmake |  | Esta opção foi removida no &kdesrc-build; 1.4, uma vez que todos os módulos do &kde; 4 necessitam do e a &cmake;utilização do &cmake; não é permitida em mais nenhum módulo.

use-idle-io-priority

Não poderá ser sobreposta

Esta opção, adicionada no &kdesrc-build; 1.12, fará com que uma baixa prioridade seja usada para o disco e outro uso de I/O, o que pode melhorar significativamente a responsividade do resto do sistema ao custo de tempos de execução levemente maiores para o &kdesrc-build;. O padrão é estar desativado. Para ativar a baixa prioridade para o disco, defina isto para true.

use-qt-builddir-hack | A configuração do módulo substitui a global | Esta opção foi removida devido a melhorias no sistema de compilação do &Qt;.
use-stable-kde |  | Esta opção foi removida na versão 1.10 pois limita o suporte do KDE 4, removendo o efeito desta opção.

## Opções da Linha de Comando e Variáveis de Ambiente

### Variáveis de Ambiente Suportadas

O &kdesrc-build; não usa variáveis de ambiente. Se você precisar definir variáveis de ambiente para o ambiente de compilação ou de instalação, veja a opção set-env.

### Parâmetros de linha de comando suportados

O programa aceita as seguintes opções da linha de comando:

`--async`

  Ativa o modo assíncrono, que pode realizar atualizações do código-fonte e compilar o módulo ao mesmo tempo. Isto é o padrão, e esta opção somente precisa ser especificada se você quiser desabilitá-la na configuração.

`--help`

  Mostra apenas uma ajuda simples deste programa.

`--version`

  Mostra a versão do programa.

`--author`

  Mostra as informações de contato do autor.

`--color`

  Ativa a saída em cores. (Isto é o padrão para terminais interativos).

`--nice=valor`

  Este valor ajusta a prioridade da CPU do computador solicitada pelo &kdesrc-build;, e deve estar no intervalo de 0-20. O 0 é a prioridade mais alta (por isso ele é o menos satisfatório) e o 20 é a prioridade mais baixa. O padrão do &kdesrc-build; é o 10.

`--no-async`

  Desativa o modo assíncrono de atualização. Ao invés da atualização ser realizada completamente antes da compilação iniciar. Esta opção irá aumentar o tempo de todo o processo, mas se você encontrar erros de IPC ao rodar o &kdesrc-build; tente usar esta opção e submeter um relatório de erro.

`--no-color`

  Desativa o resultado do programa à cores.

`--pretend` (ou `-p`)

  O &kdesrc-build; executará o processo de atualização e compilação, mas ao invés de realizar qualquer ação efetivamente, ele apresentará o que o programa deveria fazer (quais comandos executar, passos gerais feitos, etc.).

  Nota: Comandos apenas de leitura (como a leitura de informações de um arquivo) pode ainda ser executados para tornar o resultado mais relevante (como simular corretamente se o código-fonte deve ser transferido ou atualizado).

`--quiet` (ou `-q`)

  Não é tão descritivo com o resultado exibido pela compilação. Com esta opção, somente as mensagens básicas são apresentadas.

`--really-quiet`

  Só mostra as mensagens de avisos e erros.

`--verbose` (ou `-v`)

  Torna-se bastante descritivo com o que está acontecendo e o que o &kdesrc-build; está fazendo.

`--src-only` (ou `--svn-only`)

  Somente realiza uma atualização do código. (O `--svn-only` somente é suportado para compatibilidade com programas antigos).

`--build-only`

  Efetua apenas o processo de compilação.

`--ignore-modules`

  Não inclui os módulos passados no resto da linha de comando no processo de atualização/compilação (isto é útil se você deseja compilar a maioria dos módulos em seu arquivo de configuração e apenas pular alguns).

`--no-src` (ou `--no-svn`)

  Na contacta o servidor &subversion;. (O parâmetro `--no-svn` somente é suportado para compatibilidade com versões antigas do programa).

`--no-build`

  Salta o processo de compilação.

`--no-install`

  Não instala automaticamente os pacotes, após a sua compilação.

`--no-build-when-unchanged`
`--force-build`

  Esta opção desativa de forma explícita a eliminação do processo de compilação (uma otimização controlada pela opção build-when-unchanged). Isto é útil para fazer com que o &kdesrc-build; execute a compilação, caso tenha alterado algo que o &kdesrc-build; não consegue verificar.

  O `--force-build` efetua exatamente a mesma função, sendo talvez mais fácil de se lembrar.

`--debug`

  Ativa o modo de depuração para o programa. Atualmente, isto significa que todo o resultado será enviado para o saída padrão, além de ficar registrado na pasta de registro normalmente. Do mesmo modo, muitas das funções tornar-se-ão mais descritivas sobre o que estão fazendo no modo de depuração.

`--no-rebuild-on-fail`

  Não tenta compilar de novo os módulos que não conseguiram ser compilados do zero. O &kdesrc-build; nunca irá tentar fazer isto num módulo que já se tentou compilar do zero.

`--refresh-build`

  Recria o sistema de compilação e compila a partir do zero.

`--reconfigure`

  Executa o `cmake` (para os módulos do &kde;) ou o `configure` (para o &Qt;) novamente, sem limpar a pasta de compilação. Você normalmente não tem que especificar isto, uma vez que o &kdesrc-build; detectará quando você muda opções relevantes e automaticamente re-executará a configuração da compilação. Esta opção está implícita se o `--refresh-build` for usado.

`--resume-from`

  Esta opção é usada para prosseguir com a compilação a partir do módulo indicado, que é o parâmetro seguinte na linha de comando. Esta opção implica a `--no-src`. Você não deverá indicar os nomes dos outros módulos na linha de comando.

  Veja também: e . Você pode preferir usar esta opção de linha de comando se tiver corrigido um erro de compilação e deseja que o &kdesrc-build; conclua a compilação.

`--resume-after`

  Esta opção é usada para prosseguir com a compilação após o módulo indicado, que é o parâmetro seguinte na linha de comando. Esta opção implica a `--no-src`. Você não deverá indicar os nomes dos outros módulos na linha de comando.

  Veja também: e . Você pode preferir usar esta opção de linha de comando se tiver corrigido um erro de compilação e tiver compilado e instalado o módulo você mesmo, e deseja que o &kdesrc-build; inicie novamente com o próximo módulo.

`--rc-file`

  Isto interpreta o próximo parâmetro da linha de comando como o arquivo de onde ler as opções de configuração. O valor padrão deste parâmetro é `kdesrc-buildrc` (verificado na pasta atual) se ele estiver presente, ou, caso não esteja, o `~/.kdesrc-buildrc`. Veja também .

`--run`

  Esta opção interpreta o item a seguir na linha de comando como um programa a executar, fazendo com que o &kdesrc-build; acabe de ler o arquivo de configuração normalmente e depois execute o programa indicado.

  Isto não irá funcionar para iniciar uma linha de comando com o ambiente do &kdesrc-build;, contudo, uma vez que as linhas de comando interativas tipicamente limpam algumas partes das variáveis de ambiente (como a `PATH` e a `KDEDIRS`) na sequência de inicialização.

  Se você deseja ver o ambiente usado pelo &kdesrc-build;, você pode executar o comando `printenv`:

      $ kdesrc-build --run printenv
      KDE_SESSION_VERSION=4
      SDL_AUDIODRIVER=alsa
      LANGUAGE=
      XCURSOR_THEME=Oxygen_Blue
      LESS=-R -M --shift 5
      QMAIL_CONTROLDIR=/var/qmail/control
      ... etc.

`--prefix=</localização/do/kde>`

  Isto permite-lhe mudar a pasta onde o &kde; será instalado na linha de comando. Esta opção implica a `--reconfigure`, mas usar o `--refresh-build` pode também ser necessário.

`--revision`

  Esta opção faz com que o &kdesrc-build; obtenha um número de revisão específico para cada módulo do &subversion;, sobrescrevendo qualquer opção branch, tag, ou revision já configurada para estes módulos.

  Esta opção provavelmente não é uma boa idéia, e somente é suportada para compatibilidade com programas antigos.

`--build-system-only`

  Esta opção faz com que o &kdesrc-build; cancele a compilação de um módulo exatamente antes do comando `make` ser executado. Isto é suportado somente para compatibilidade com versões antigas, e seu efeito não é útil para o sistema de compilação atual do &kde;.

`--install`

  Se esta for a única opção da linha de comando, ele irá tentar instalar todos os módulo incluídos em `log/latest/build-status`. Se as opções da linha de comando forem indicadas após o `--install`, então assumem-se que são módulos para instalar (mesmo se eles não compilaram com sucesso na última execução).

`--purge-old-logs`

  Esta opção faz com que o &kdesrc-build; remova pastas de registro desnecessárias após a compilação, para economizar espaço em disco. Todas as pastas de registro que não são necessárias para satisfazer uma ligação de `log/latest` serão removidas. Isto é desabilitado por padrão. Para ativar esta opção, veja a opção purge-old-logs.

`--no-snapshots`

  Fornecer esta opção faz com que o &kdesrc-build; sempre previra uma transferência inicial de um módulo do &subversion; ao invés de usar a imagem do módulo no &subversion;.

  Imagens do módulo são transferências reais do &subversion;. Você não deve precisar especificar esta opção, sendo ela somente um auxílio para a resolução de problemas.

`--<nome-da-opção>=`

  Você poderá usar esta opção para sobrepor outra opção no seu arquivo de configuração para todos os módulos. Por exemplo, para sobrepor a opção log-dir, você deverá digitar: ``--log-dir=`/local/da/pasta```.

`--<nome-módulo>,<nome-opção>=`

  Ou você poderá usar esta opção para substituir outra no seu arquivo de configuração, para um determinado módulo.

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

## Usando o &kdesrc-build;

### Prefácio

Normalmente, a utilização do &kdesrc-build; após ter passado pelo é tão simples como fazer o seguinte, a partir de uma linha de comando:

    &percnt; kdesrc-build

O &kdesrc-build; irá então baixar o código do &kde;, tentará configurá-lo e compilá-lo e, no fim, tentará instalá-lo.

Leia mais para saber como o &kdesrc-build; faz isso, assim como o que você poderá fazer com esta ferramenta.

### Funcionalidades básicas do &kdesrc-build;

#### Suporte para o 'qt-copy'

O &kdesrc-build; suporta a compilação do conjunto de ferramentas do &Qt; usado pelos programas do &kde; como uma conveniência para os usuários. Este suporte é manipulado por um módulo especial denominado qt-copy.

O &Qt; é desenvolvido sob um repositório separado dos programas do &kde;, localizado em http://qt.gitorious.org/qt.

Para compilar o &Qt;, você deve certificar-se de que a configuração qtdir está definida para a pasta que você gostaria de instalar o &Qt;, conforme descrito em .

Você deve certificar-se de que o módulo do qt-copy module está adicionado ao seu `.kdesrc-buildrc`, antes de qualquer outro módulo no arquivo. Se você estiver usando o arquivo de configuração de exemplo, basta apenas descomentar a entrada existente para o módulo qt-copy.

Agora você deve verificar se as opções repository e branch foram definidas apropriadamente:

1. A primeira opção é para compilar com um grupo de correções recomendadas e alterações de otimização aplicadas (isto costumava ser controlado usando uma opção denominada apply-patches). Esta coleção é desenvolvida em um repositório separado em http://gitorious.org/+kde-developers/qt/kde-qt. Se você desejar compilar com as alterações aplicadas (a maioria dos desenvolvedores do &kde; faz isso) então você deve definir sua opção de repositório para `git://gitorious.org/+kde-developers/qt/kde-qt.git`

2. Caso contrário, para compilar o &Qt; padrão, defina sua opção de repositório para `git://gitorious.org/qt/qt.git`

Em ambos os casos, a opção 'branch' deve ser definida para `master` (a menos que você deseje compilar uma 'branch' diferente).

Em alguns casos, o programa de controle de código correspondente não é capaz de funcionar quando executado a partir do &kdesrc-build;, mas ainda funcionará bem quando executado a partir da linha de comando. Esta falha ainda está sob investigação.

#### Opções normais adicionadas pelo &kdesrc-build;

Para lhe poupar tempo, o &kdesrc-build; adiciona alguns locais padrão ao seu ambiente:

- O local das bibliotecas do &kde; e do &Qt; é adicionado automaticamente à variável `LD_LIBRARY_PATH`. Isto significa que não irá precisar editar a &libpath; para incluí-los.

- O local dos programas de suporte ao desenvolvimento do &kde; e do &Qt; é adicionado automaticamente à variável `PATH`. Isto significa que não irá precisar editar a &binpath; para incluir.

- O local do pkg-config fornecido com o &kde; é adicionado automaticamente ao `PKG_CONFIG_PATH`. Isto significa que não terá de usar o &set-env; para os incluí-los.

- A configuração do &kdedir; é propagada automaticamente para a variável de ambiente `KDEDIR` durante a compilação. (O `KDEDIRS` não é afetado).

- A configuração do &qtdir; é propagada automaticamente para a variável de ambiente `QTDIR` durante a compilação.

#### Mudando a prioridade de compilação do &kdesrc-build;

Os programas poderão ser executados com diferentes níveis de prioridades nos Sistemas Operacionais, incluindo o &Linux; e o &BSD;. Isto permite ao sistema reservar tempo para os diferentes programas, de acordo com a sua importância.

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

O &kdesrc-build; irá ainda manter uma prioridade suficientemente alta, para que se execute antes dos processos rotineiros e antes dos programas de doação de CPU, como o Seti@Home.

Para alterar o &kdesrc-build;, de modo a usar um nível de prioridade maior (ou menor) de forma permanente, então você terá que ajustar a opção &niceness; no arquivo de configuração. A opção &niceness; controla quão legal é o &kdesrc-build; com os outros programas. Em outras palavras, um &niceness; maior, dará ao &kdesrc-build; uma prioridade menor. Assim, para dar ao &kdesrc-build; uma maior prioridade, reduza o &niceness; (e vice-versa). O &niceness; pode ir de 0 (nada legal, prioridade máxima) até 20 (super-legal, prioridade mínima).

Você poderá também mudar temporariamente a prioridade do &kdesrc-build; ao usar a opção de linha de comando &cmd-nice;. O valor da opção é usado da mesma forma que no &niceness;.

É possível para alguns programas executados pelo super-usuário 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 &kdesrc-build; não é uma boa ideia, uma vez que não irá melhorar muito o tempo de compilação, mas tornará o seu computador muito lento, se ainda precisar usá-lo.

Para executar o &kdesrc-build; com uma prioridade igual a 15 (menor que o normal):

    &percnt; kdesrc-build --nice=15

Ou você poderá editar o arquivo de configuração para tornar a mudança permanente:

    &niceness; 15

A opção niceness somente afeta o uso do(s) processador(es) do computador. Uma outra que afeta significativamente o desempenho do computador se refere a quantos dados de entrada ou saída (I/O) um programa usa. Para controlar quanto I/O um programa pode usar, os sistemas operacionais &Linux; modernos suportam uma ferramenta similar denominada ionice. O &kdesrc-build; suporta o ionice, (mas somente para ativá-lo ou desativá-lo completamente) usando a opção use-idle-io-priority, desde a versão 1.12 do &kdesrc-build;.

#### Instalação como super-usuário

Você poderá ter o &kdesrc-build; executando a instalação com privilégios de super-usuário. Isto pode acontecer no caso da instalação a nível do sistema (não recomendada). Também é útil se você usar uma instalação normal para um único usuário, 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.

Você poderá simplesmente executar o &kdesrc-build; diretamente como super-usuário, mas isto não é recomendável, uma vez 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-usuário, sempre que possível.

Para tomar conta disto, o &kdesrc-build; oferece a opção &make-install-prefix;. Você poderá usar esta opção para indicar um comando a usar para efetuar a instalação como outro usuário. A forma recomendada de usar este comando é com o programa &sudo;, que irá então executar o comando de instalação como super-usuário.

Por exemplo, para instalar todos os módulos com o &sudo;, você poderá fazer algo como:

    global
      &make-install-prefix; sudo
      # Outras opções
    end global

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

    module kdemultimedia
      &make-install-prefix; sudo
    end module

#### Mostrando o progresso da compilação de um módulo

Esta funcionalidade está sempre disponível e está ativada automaticamente, sempre que possível. O que isto faz é mostrar o progresso estimado da compilação ao compilar um módulo, para que você saiba desta forma quanto tempo mais irá levar para compilar um módulo.

### Funcionalidades avançadas

#### Compilar parcialmente um módulo

É possível compilar apenas partes de um único módulo do &kde;. Por exemplo, você pode querer compilar apenas um programa de um módulo. O &kdesrc-build; possui funcionalidades para simplificar isto. Existem várias formas complementares de fazer esta tarefa.

##### Extrair partes de um módulo

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

Se você ainda não souber o que vai transferir de um determinado módulo, poderá ser uma boa ideia navegar pela disposição no &subversion; para um módulo, em primeiro lugar, usando o WebSVN.

Para obter apenas o &kuser; e o KSystemLog do 'kdeadmin', você poderá usar o &checkout-only; da seguinte forma:

    module kdeadmin
      &checkout-only; kuser ksystemlog
    end module

As pastas serão compiladas na ordem que forem indicadas na opção. Se uma das pastas necessitar de alguma coisa além do módulo para compilar, então você terá que garantir que ambas se encontram na linha &checkout-only; e que a dependência necessária venha antes da pasta que necessita dela.

Da mesma forma, algumas vezes um aplicativo poderá necessitar de outras pastas e isso pode ser difícil de descobrir. Isto poderá ser solucionado através de tentativa e erro, adicionando constantemente pastas à opção para descobrir qual é a necessária.Esta opção depende do suporte no sistema de compilação do módulo, só sendo útil para os módulos que sejam coleções de aplicações individuais.

Uma nota final sobre esta opção: Se você alterar esta opção deverá usar o ``kdesrc-build` `&cmd-refresh-build;` `módulo`` para garantir que o módulo é configurado de novo convenientemente. Além disso, o &kdesrc-build; nunca irá remover os arquivos existentes, se você 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.

##### Removendo pastas de uma compilação

Em vez de restringir o que é baixado, é possível transferir tudo mas fazer com que o sistema de compilação deixe de fora algumas pastas ao compilar. Isto pode ser útil se uma pasta estiver sempre invalidando a compilação e for desnecessária para o resto do módulo.

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.

Da mesma forma que no &checkout-only;, esta opção necessita pelo menos que o sistema de compilação do módulo seja reconfigurado após a alteração. Isto é feito com o comando ``kdesrc-build` `&cmd-reconfigure;` `módulo``.

Para remover a pasta `python` do processo de compilação do 'kdebindings':

    module kdebindings
      &do-not-compile; python
    end module

Esta função depende de algumas convenções normais, usadas na maioria dos módulos do &kde;. Assim, ela poderá não funcionar para todos os programas.

#### Suporte de marcas e ramificações do &kdesrc-build;

##### O que são ramificações e marcas?

O supo&subversion;rta o gerenciamento 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.

Por exemplo, os programadores do &kmail; poderão estar trabalhando 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) também possua desenvolvimentos em curso nela.

Uma marca, por outro lado, é uma imagem do repositório de código numa determinada posição no tempo. Isto é usado pela equipe de administração do &kde; para marcar uma versão do código adequada para lançamento, permitindo ainda aos programadores trabalharem no código.

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 &kdesrc-build;. Contudo, existem algumas coisas que poderão ser feitas.

##### Como usar as ramificações e marcas

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 usuários mais avançados.

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

Para baixar o 'kdelibs' do &kde; 4.5 (que é simplesmente conhecido pela ramificação '4.5'):

    module kdelibs
      branch 4.5
      # outras opções...
    end module

Ou, para baixar o 'kdemultimedia' como foi lançado no &kde; 4.5.1:

    module kdemultimedia
      tag 4.5.1
      # outras opções...
    end module

Você 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!

##### Opções avançadas de suporte a ramificações

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

- O &module-base-path; é usado para ajudar o &kdesrc-build; a preencher a parte faltante da localização de um módulo. No repositório do &kde;, todos os locais possuem o formato `raizSvn/caminho-módulo-base/nome-módulo`. Normalmente, o &kdesrc-build; pode descobrir a parte intermediária apropriada por si só. Quando não conseguir, você poderá usar o 'caminho-módulo-base' ou &module-base-path; da seguinte forma:

      module kdesupport
          # o 'kdesupport' suporta várias marcas para organizar facilmente as
          # aplicações necessárias para uma determinada versão da plataforma do KDE.
          module-base-path tags/kdesupport-do-4.5
      end module

  Isto deverá fazer com que o &kdesrc-build; baixe o 'kdesupport' de (neste exemplo) `svn://anonsvn.kde.org/home/kde/tags/kdesupport-for-4.5`.

  Nas versões anteriores do &kdesrc-build;, o &module-base-path; era tratado de forma diferente. Se você tiver problemas ao usar uma definição antiga do 'module-base-path', talvez deva confirmar se a localização atual é a mesma que o &kdesrc-build; está esperando, usando a opção --pretend.

- A opção &override-url;, por outro lado, necessita que você indique o local exato de onde baixar. Contudo, isto permite-lhe transferir de locais que versões anteriores do &kdesrc-build; não teriam chances de baixar. Atualmente, a opção &module-base-path; deve ser suficiente para qualquer URL de fonte de Subversion.

  O &kdesrc-build; não irá mexer ou corrigir o valor que indicar no &kdesrc-build;, por isso, se mudar a sua configuração do &svn-server;, também terá que atualizar isto.

#### Como o &kdesrc-build; tenta garantir uma compilação com sucesso

##### Recompilações automáticas

O &kdesrc-build; costumava incluir recursos para automaticamente tentar recompilar o módulo após uma falha (uma vez que esta nova tentativa poderia funcionar, devido a falhas no sistema de compilação naquela época). Graças a mudança para o &cmake;, o sistema de compilação não sofre mais destas falhas, e assim o &kdesrc-build; não tentará compilar um módulo mais de uma vez. Existem situações onde o &kdesrc-build; automaticamente executará uma recompilação:

- Se você mudar o configure-flags ou o cmake-options para um módulo, então o &kdesrc-build; detectará e automaticamente re-executará o 'configure' ou o 'cmake' para aquele módulo.

- Se o sistema de compilação não existir (mesmo se o &kdesrc-build; não o removeu) então o &kdesrc-build; automaticamente irá recriá-lo. Isto é útil para permitir a execução de um --refresh-build completo para um módulo específico sem ter que executá-lo em outros módulos.

##### Recompilando manualmente um módulo

Se você tiver feito alterações em alguma opção de um módulo, ou se o código-fonte do módulo mudar de uma forma que o &kdesrc-build; não reconheça, você poderá ter que recompilar o módulo manualmente.

Você poderá se isto executando simplesmente o ``kdesrc-build` `--refresh-build` `módulo``.

Se você quiser que o &kdesrc-build; recompile de forma automática o módulo, durante a próxima atualização normal, você poderá criar um arquivo especial. Cada módulo possui uma pasta de compilação. Se você criar um arquivo chamado `.refresh-me` na pasta de compilação de um módulo, o &kdesrc-build; irá reconstruir o módulo da próxima vez que o processo de compilação rodar, mesmo que fosse executar normalmente a compilação incremental.

Por padrão, a pasta de compilação é a `~/kdesrc/build/módulo/`. Se você mudar a opção &build-dir;, então use essa em vez da `~/kdesrc/build`.

Recompilar usando o `.refresh-me` para o módulo kdelibs:

    % touch ~/kdesrc/build/kdelibs.refresh-me
    % kdesrc-build

#### Mudando a configuração das variáveis de ambiente

Normalmente, o &kdesrc-build; usa o ambiente que está presente quando inicia e executa os programas para atualizar e compilar. Isto é útil para quando você está rodando o &kdesrc-build; a partir da linha de comando.

Contudo, você poderá desejar alterar a configuração das variáveis de ambiente para as quais o &kdesrc-build; não possui uma opção direta. (Por exemplo, para configurar qualquer variável de ambiente ao rodar o &kdesrc-build; em um agendador de tarefas como o &cron;) Isto é possível com a opção &set-env;.

Ao contrário da maioria das opções, ela poderá ser definida mais de 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.

Configura a ``DISTRO`=BSD` para todos os módulos:

    global
      set-env DISTRO BSD
    end global

#### Prosseguir com as compilações

##### Prosseguir uma compilação falhada ou cancelada

Você poderá indicar ao &kdesrc-build; para começar a compilar a partir de um módulo diferente daquele 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 no meio. Você poderá controlar isto com as opões &cmd-resume-from; e &cmd-resume-after;.

Usar qualquer destas opções irá pular a atualização do código-fonte.

Prosseguir a compilação começando no 'kdebase':

    % kdesrc-build --resume-from=kdebase

Prosseguir a compilação começando após o 'kdebase' (no caso de você corrigir manualmente um problema e ter instalado o módulo você mesmo):

    % kdesrc-build --resume-after=kdebase

##### Ignorando os módulos numa compilação

Como acontece quando deseja prosseguir com a compilação de um módulo, você poderá optar em alternativa por atualizar e compilar tudo normalmente, só que ignorando um conjunto de módulos.

Você poderá fazer isso com a opção &cmd-ignore-modules;. Esta opção diz ao &kdesrc-build; para ignorar todos os módulos da linha de comando, ao efetuar a atualização e a compilação.

Ignorar o extragear/multimedia e o kdereview numa execução completa:

    % kdesrc-build --ignore-modules extragear/multimedia kdereview

#### Mudando as opções na linha de comando

##### Modificando as opções globais

Você poderá alterar a configuração das opções lidas do arquivo de configuração diretamente a partir da linha de comando. Esta alteração irá substituir a configuração do arquivo, mas é apenas temporária. Só terá efeito enquanto ainda estiver presente na linha de comando.

O &kdesrc-build; permite-lhe alterar as opções com nome do tipo nome-opção passando um argumento na linha de comando com o formato ``--nome-opção=valor``. O &kdesrc-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, ele irá avisá-lo, caso contrário irá recordar o valor que definiu e substituir o valor do arquivo de configuração.

Configurar o &source-dir; como `/dev/null` para fins de teste:

    % kdesrc-build --pretend --source-dir=/dev/null

##### Mudando as opções do módulo

Também é possível alterar as opções apenas para um módulo específico. A sintaxe é semelhante: --módulo,nome-opção=valor.

Esta alteração substitui qualquer opção duplicada do módulo encontrado no arquivo de configuração e só se aplica enquanto a opção for passada na linha de comando.

Usando uma pasta de compilação diferente para o módulo 'kdeedu':

    % kdesrc-build --kdeedu,build-dir=temp-build

### Funcionalidades para os programadores do &kde;

#### Verificações do Agente do &ssh;

O &kdesrc-build; poderá certificar-se de que os programadores do &kde; que usem o &ssh; para acessar 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 &kdesrc-build; fique eternamente à espera que o programador insira a sua senha de &ssh;, por isso e por padrão o &kdesrc-build; irá verificar se o Agente está rodando antes de efetuar as atualizações do código.

Isto só é feito para os programadores do &kde; que usam o &ssh;. Isto acontece porque não é necessária qualquer senha para a atualização e extraçã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.

Você poderá querer desativar a verificação do Agente do &ssh;, no caso das situações em que o &kdesrc-build; não detecte bem a presença de um agente. Para desativar a verificação do agente, configure a opção `disable-agent-check` como true.

Desativando a verificação do agente do &ssh;:

    global
      disable-agent-check true
    end global

### Outras funcionalidades do &kdesrc-build;

#### Mudando a quantidade de mensagens do resultado do &kdesrc-build;

O &kdesrc-build; possui várias opções para controlar a quantidade de dados de saída que o programa gera. Em qualquer caso, os erros serão sempre apresentados.

- A opção `--quiet` (o seu formato curto é o `-q`) faz com que o &kdesrc-build; seja majoritariamente silencioso. Só as mensagens importantes, avisos ou erros serão apresentados. Quando estiver disponível, a informação de progresso é apresentada.

- A opção `--really-quiet` (sem formato curto) faz com que o &kdesrc-build; mostre apenas os avisos importantes ou os erros, enquanto estiver em execução.

- A opção `--verbose` (o formato curto é o `-v`) faz com que o &kdesrc-build; seja muito detalhado nos seus resultados.

- A opção `--debug` serve apenas para fins de depuração, uma vez que faz com que o &kdesrc-build; atue como se o `--verbose` estivesse ativo, fazendo com que os comandos sejam também apresentados no terminal e mostrando a informação de depuração para várias funções.

#### Resultado colorido

Ao ser executado a partir do &konsole; ou de um terminal diferente, o &kdesrc-build; irá mostrar normalmente o texto a cores.

Você poderá desativar isto com a opção `--no-color` na linha de comando ou configurando a opção &colorful-output; no arquivo de configuração como false.

Desativando as mensagens a cores no arquivo de configuração:

    global
      colorful-output false
    end global

#### Envio por e-mail dos relatórios de erros da compilação

O &kdesrc-build; poderá enviar um relatório por e-mail para um determinado endereço à sua escolha, 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 &kdesrc-build; irá enviar os dados e um endereço de e-mail para notificar quando ocorrer algum erro.

O &kdesrc-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 registro de erros abreviado para cada módulo. Só é enviada uma mensagem de e-mail para uma determinada execução, mesmo que falhe a compilação de 15 módulos.

Esta funcionalidade não está ativada por padrão. Para ativá-la, você terá que definir tanto as opções &email-address; e &email-on-compile-error;. O `email-address` controla o endereço de onde o &kdesrc-build; envia os dados e o `email-on-compile-error` controla para onde enviar a mensagem.

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

Enviando um e-mail de envio@exemplo.com para recepcao@exemplo.com em caso de erro na compilação:

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

#### Removendo as pastas desnecessárias após uma compilação

Você está com falta de espaço em disco mas deseja ainda fazer uma extração atualizada do &kde;? O &kdesrc-build; poderá ajudar a reduzir o uso do seu disco ao compilar o &kde; a partir do &subversion;.

Tenha em mente que a compilação do &kde; ocupa bastante espaço. Existem muitos componentes grandes em termos de espaço ao usar o &kdesrc-build;:

1. A extração de código atual poderá levar bastante espaço. Os módulos padrão possuem cerca de 1,6 gigabytes de espaço em disco. Você poderá reduzir esta quantidade, se tiver certeza que só vai compilar os módulos que deseja de fato. O &kdesrc-build; não irá remover o código-fonte do disco, mesmo que remova o item do arquivo de configuração, assim certifique-se de que são apagados os módulos extraídos e não usados da pasta de código. Lembre-se que os arquivos de código são obtidos da Internet, assim você não deverá removê-los se for usar estes arquivos de fato, pelo menos até acabar de usar o &kdesrc-build;.

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

   Uma coisa a observar é que, devido à forma como o &subversion; funciona: existem de fato dois arquivos no disco para cada arquivo extraído do repositório. O &kdesrc-build; não está apto por enquanto a minimizar o tamanho do código, quando ele não estiver sendo usado.

2. O &kdesrc-build; irá criar uma pasta de compilação separada, para onde irá compilar o código-fonte. Algumas vezes o &kdesrc-build; terá que 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, assim 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 1050 megabytes, enquanto o código do 'kdebase' ocupa apenas cerca de 550 megabytes.

   Felizmente, a pasta de compilação não é necessária após um módulo ter sido compilado e instalado com sucesso. O &kdesrc-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 &kdesrc-build; efetuar as compilações incrementais que poupam tempo.

3. Finalmente, existe o espaço em disco necessário para a própria instalação do &kde;, que não se 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 exatos, de qualquer forma.

Como reduz os requisitos de espaço do &kde;? Uma forma é usar as opções de compilação adequadas, para otimizar a redução de espaço em vez da velocidade. Outra forma, que poderá ser bem eficaz, é remover a informação de depuração da sua compilação do &kde;.

Você deverá saber bem o que está fazendo, antes de decidir remover a informação de depuração. A execução de aplicativos muito atuais significa que está rodando programas que, potencialmente, poderão ter tendência a travar, algo que não acontece numa versão estável. Se você estiver rodando '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; assim, é possível que tenha que reativar a informação de depuração do aplicativo afetado e recompilá-lo para ajudar um programador a resolver o problema. Então, remova a informação de depuração por sua conta e risco!

A remoção da pasta de compilação, após a instalação de um módulo. A pasta do código é ainda mantida e a depuração fica ativa:

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

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

    global
      cxxflags             -Os             # Otimizar o tamanho
      configure-flags      --disable-debug
      remove-after-install builddir        # Remover a pasta de compilação após a instalação
    end global

## , o s&cmake;istema de compilação do &kde; 4

### Introdução ao &cmake;

Em Março de 2006, o programa &cmake; ultrapassou os vários adversários e foi selecionado 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.

Está disponível uma página de introdução ao &cmake; no TechBase do &kde;. Basicamente, em vez de rodar o ``make` `-f` `Makefile.cvs``, depois o `configure` e depois o &make;, basta simplesmente rodar o &cmake; e depois o &make;.

O &kdesrc-build; possui suporte para o &cmake;. Algumas funcionalidades do &kdesrc-build; são realmente funcionalidades do sistema de compilação subjacente, incluindo o configure-flags e o do-not-compile. Quando estiverem disponíveis funcionalidades equivalentes, serão disponibilizadas. Por exemplo, a equivalente da opção 'configure-flags' é a cmake-options, e a opção do-not-compile também é suportada para o &cmake; desde a versão 1.6.3 do &kdesrc-build;.

## Créditos e licenças

Tradução de Marcus Gamamarcus.gama@gmail.com

&underFDL;