Referência de arquivo de configuração

O arquivo ~/.config/jhbuildrc usa uma sintaxe padrão do Python. O arquivo é executado e as variáveis resultantes definidas no espaço de nomes são usadas para controlar como o JHBuild age. Um conjunto de valores padrões são inseridos no espaço de nomes antes de executar o arquivo do usuário.

Variáveis de configuração em Boolean são definas usando uma sintaxe como demonstrado no exemplo a seguir:

use_local_modulesets = True

Variáveis de configuração em string são definidas usando uma sintaxe como demonstrado no exemplo a seguir:

autogenargs = '--disable-static --disable-gtk-doc'

Variáveis de configuração em lista são definidas usando uma sintaxe como demonstrada no exemplo a seguir:

skip = ['mozilla', 'pulseaudio']

Variáveis de configuração de dicionário são definidas usando uma sintaxe como demonstrada no exemplo a seguir:

repos['git.gnome.org'] = 'ssh://usuário@git.gnome.org/git/'

6.1. Variáveis de configuração

alwaysautogen

Um valor em boolean que, se definida como True, sempre excecuta autogen.sh. Este comando é equivalente a passar a opção --autogen para o JHBuild. Padrão é False.

autogenargs

Uma string contendo argumentos passados para o script autogen.sh de todos os módulos. Pode ser sobrescrita por módulos em particular, usando o dicionário module_autogenargs.

branches

Um dicionário especificando qual ramo deve ser usado para módulos específicos. Isso é útil se você está fazendo algumas alterações em um ramo de um módulo e deseja JHBuild compilar este ramo em vez daquele listado na coleção de módulos.

A definição de ramos depende do sistema de controle de versão do módulo:

  • CVS: revisão. Ex.: 'BRANCH-PROJECT-0_8'

  • Bazaar: URI do ramo do módulo. Ex.: 'http://bzr.exemplo.net/projeto/gnome-2-28'

  • Git: tupla, com a primeira parte sendo um repositório opcional (ou o valor "None") e a segunda parte do nome do ramo. Ex.: ('git://git.exemplo.net/projeto', 'gnome-2-28')

    Example 2Exemplo simples
    branches['nome-do-módulo'] = (None, 'nome-do-ramo')
  • Subversion: URI do ramo do módulo. Ex.: 'svn://svn.exemplo.net/projeto/gnome-2-28'

builddir_pattern

Um padrão de formatação de estilo do printf usado para gerar nomes de diretórios de compilação. Isso é usado apenas ao usar árvores de fontes e compilação separados. O %s na string de formatação será substituído com checkoutdir. Padrão é '%s'.

buildroot

Uma string especificando o diretório pai para colocar as árvores de compilação. Padrão é None, o que faz com que as compilações sejam realizadas dentro das árvores de fontes.

buildscript

Uma string especificando qual buildscript deve ser usado. A configuração recomendada é a padrão, terminal. Em particular, não defina para gtk.

build_policy

Uma string especificando quais módulos devem ser compilados. As três opções possíveis são: all para compilar todos os módulos solicitados; updated para compilar apenas os módulos que você alterou; ou updated-deps para compilar módulos que você alterou ou que possuem dependências que foram alteradas. Padrão é updated-deps.

checkoutroot

Uma string especificando o diretório para o qual deve-se descompilar árvores de fontes. A menos que buildroot esteja especificado, as compilações ocorrerão neste diretório também. Padrão é ~/checkout/gnome.

checkout_mode

Uma string especificando como o checkout é realizado para diretórios em controle de versão. Padrão é update. Isso pode ser definido por módulo usando module_checkout_mode. Possíveis valores são update (atualiza diretório de checkout), clobber (limpa o diretório antes de buscar os fontes), export (limpa o diretório e, então, cria uma cópia sem versão dos fontes) e copy (realiza checkout em um diretório diferente daquele que será compilado).

copy_dir

Uma string especificando o diretório para onde será copiado, se a cópia checkout_mode estiver em uso. Padrão é o diretório de checkout.

cvs_program

Uma string especificando qual programa deve ser usado para dar suporte a CVS. Pode ser git-cvsimport ou cvs. Padrão é cvs.

dvcs_mirror_dir

Uma string especificando um diretório de espelho local. JHBuild vai criar espelhos locais de repositórios no diretório especificado. Os espelhos podem ser compartilhados por grupos de múltiplos diretórios, economizando espaço e tempo, porque hard-links serão usados por clones locais. Os comandos update e updateone vão criar os espelhos e obter novos commits dos repositórios online. Esta opção tem suporte apenas em repositórios Git e Bazaar.

help_website

Uma tupla especificando o nome do site e URL de ajuda. O site é exibido no html de tinderbox para módulos que falharem. %(module)s na URL será substituído com o nome do módulo. Para desabilitar, defina help_website para None. Padrão é ('Gnome Live!', 'http://live.gnome.org/JhbuildIssues/%(module)s').

installprog

Uma string especificando um programa para usar como substituto do /usr/bin/install. Se disponível, tem como padrão a interface install-check fornecida pelo JHBuild. A interface install-check otimiza a instalação de cabeçalhos para reduzir o tempo levado para recompilar.

ignore_suggests

Um valor em boolean especificando se deve-se ignorar dependências ao se calcular a árvore de dependência. Padrão é False.

interact

Um valor em boolean especificando se deve-se interagir com o usuário. Definindo este valor para False é equivalente a passar a opção --no-interact. Padrão é True.

makeargs

Um texto listando argumentos adicionais a serem passados para o make. JHBuild vai anexar automaticamente a opção de execução paralela (-j) baseada nos núcleos de CPU disponíveis. Padrão é "".

makecheck

Um valor em boolean especificando se deve-se executar make check após make. Padrão é False.

makecheck_advisory

Um valor em boolean especificando se as falhas ao executar make check deveriam ser avisos e não causar uma falha de compilação. Padrão é False.

makeclean

Um valor boolean especificando se deve-se executar make clean antes make. Padrão é False.

makedist

Um valor em boolean especificando se deve-se executar make dist após make. Padrão é False. Esta configuração é equivalente a passar a opção --dist.

makedistcheck

Um valor em boolean especificando se deve-se executar make distcheck após make. Padrão é False. Esta configuração é equivalente a passar a opção --distcheck.

module_autogenargs

Um dicionário mapeando os nomes de módulos em strings especificando os argumentos a serem passados para o autogen.sh. A configuração em module_autogenargs é usada, em vez da configuração global autogenargs. Se um módulo particular não está listado no diretório, a global autogenargs será usada.

module_checkout_mode

Um dicionário especificando quais modos de checkout devem ser usados para os módulos. Isso sobrescreve a configuração global checkout_mode.

module_makeargs

Um dicionário mapeando os nomes de módulos em strings especificando os argumentos a serem passados para make. A configuração em module_makeargs substitui o valor de makeargs. Se um módulo em particular não está listado no dicionário, a global makeargs será usada.

module_makecheck

Um dicionário mapeando os nomes de módulos em valores boolean especificando se deve-se executar make check após make. A configuração em module_makecheck substitui o valor de makecheck. Se um módulo em particular não estiver listado no dicionário, a globa makecheck será usada.

module_nopoison

Um dicionário mapeando os nomes de módulos em valores boolean. Se um módulo estiver definido como True, JHBuild vai tentar compilar módulos dependentes mesmo se o módulo especificado falhar. A configuração em module_nopoison substitui o valor de nopoison. Se um módulo em particular não estiver listado no dicionário, a global nopoison será usada.

module_extra_env

Um dicionário mapeando os nomes de módulos em dicionários com variáveis de ambiente extras a serem passadas ao executar comandos do módulo.

modules

Uma lista de textos especificando módulos para compilar. A lista de módulos realmente compilada será expandida recursivamente para incluir todas as dependências, a menos que o comando buildone seja usado. Padrão é ['meta-gnome-desktop'].

moduleset

Um texto ou uma lista de textos especificando os nomes das coleções de módulos a serem usados. Pode ser o nome do arquivo de uma coleção de módulos inclusa no JHBuild (excluindo o caminho e extensão) ou uma URL de HTTP completa para uma coleção de módulos gerenciada externamente. Coleções de módulos de URL de HTTP são mantidas no cache localmente. Se um módulo com o mesmo nome estiver presente em mais de uma coleção de módulos, a última coleção listada terá prioridade. As coleções de módulos fornecidas com o JHBuild são atualizadas para corresponder à versão de desenvolvimento atual do GNOME.

modulesets_dir

Uma string especificando o diretório contendo as coleções de módulos a serem usadas. Padrão é o diretório modulesets/ nos fontes do JHBuild.

nice_build

Executa compilações sob a prioridade SCHED_IDLE no Linux, nice em outros Unix. Isso pode melhorar drasticamente a interatividade de computador para compilações paralelas enquanto se tem apenas um impacto insignificante no rendimento da compilação.

nobuild

Um valor em boolean, se definido como True, o JHBuild não vai compilar módulos, e sim apenas baixar e desempacotar os fontes. Padrão é False.

nonetwork

Um valor em boolean especificando se deve-se acessar a rede. Isso afeta a obtenção ou atualização de módulos de CVS, download de tarballs e atualização de coleções de módulos. Definir isso como True é equivalente a passar a opção --no-network. Padrão é False.

nonotify

Um valor em boolean especificando se deve-se emitir notificações usando o daemon de notificação. Se definido como False, notificações são emitidas. Padrão é True.

nopoison

Um valor em boolean, se definido como True, JHBuild tenta compilar módulos mesmo se uma ou mais dependências do módulo não compilarem com sucesso. Esta opção é equivalente ao argumento --no-poison. O valor padrão é False.

notrayicon

Um valor em boolean especificando se deve-se mostrar um ícone na área de notificação usando o Zenity. Se definido como False, notificações são emitidas. Padrão é True.

noxvfb

Um valor em boolean, se definido como True, JHBuild vai executar quaisquer testes gráficos no servidor X real, em vez de usar Xvfb. Esta opção é equivalente a passar --no-xvfb. Padrão é False.

partial_build

Um valor em boolean, se definido como True, JHBuild não vai compilar módulos de dependências se os pacotes de sistema correspondentes estiverem instalados em uma versão suficiente. Padrão é True.

prefix

Um texto especificando o prefixo no qual serão instalados os módulos. prefix deve ser um caminho absoluto. Deve haver permissão de escrita para este diretório. Padrão é "/opt/gnome".

pretty_print

Um valor em boolean especificando se deve-se embelezar o formato da saída do subprocesso. Apenas saídas CVS têm suporte a embelezamento da saída. Desabilite se isso causar problemas. Padrão é True.

print_command_pattern

Uma string exibida antes do JHBuild executar um comando. %(command)s na string vai ser substituído com o comando a ser executado. %(cwd)s na string será substituída com o diretório de trabalho atual. Padrão é '%(command)s'.

progress_bar

Um valor em boolean especificando se deve-se exibir uma barra de progresso durante o quiet_mode. Padrão é True.

quiet_mode

Um valor em boolean, se definido como True, desabilita a saída (mensagens) dos comandos em execução. Padrão é False.

repos

Um dicionário especificando uma localização alternativa do repositório para um repositório em particular. Esta variável de configuração é útil para desenvolvedor de módulos. Por padrão, JHBuild vai baixar o código dos repositórios usando um local de repositório anônimo. As chaves de dicionário são nomes curtos de repositórios e os nomes são textos com a localização alternativa do repositório. Por exemplo:

repos['git.gnome.org'] = 'ssh://usuário@git.gnome.org/git/'
skip

Uma lista de módulos para pular. Esta opção de linha de comando --skip estende a lista. Esta lista está vazia, por padrão. Se a lista contém um valor especial "*", JHBuild vai pular todos os módulos não listados explicitamente na variável modules. Isso pode ser útil se você deseja compilar módulos sem suas dependências implícitas.

sticky_date

Uma string que, se definida e se houver suporte por seu sistema de controle de versão, JHBuild vai atualizar a árvore de fontes na data especificada antes de compilar. Uma data no formato ISO é necessária, ex.: "yyyy-mm-dd". Padrão é None.

svn_program

Uma string especificando qual programa deve ser usado para ter suporte a subversion. Pode ser svn, git-svn ou bzr. Padrão é svn.

tarballdir

Uma string que, se definida, faz tarballs serem baixados para o diretório especificado em vez do checkoutroot. Isso é útil se você tem múltiplos ambientes de JHBuild ou regularmente limpa checkoutroot e deseja reduzir o uso da conexão com a Internet.

tinderbox_outputdir

Uma string especificando o diretório para armazenar a saída de jhbuild tinderbox. Esta string pode ser sobrescrita pela opção --output. Padrão é None, de forma que a opção de linha de comando deve ser usada ou esta variável deve estar definida no arquivo de configuração.

trycheckout

Um valor em boolean, se definido como True, JHBuild vai automaticamente tentar resolver falhas 1) executando autogen.sh novamente e 2) baixando uma versão mais nova de um módulo a partir do controle de versão. Esta configuração é equivalente à opção --try-checkout.

use_lib64

Um valor em boolean que especifica se deve-se instalar bibliotecas nos diretórios de lib64. Se definido, --libdir=\${exec_prefix}/lib64 será passado para o configure. Padrão é True se executando em um Linux x86_64, ppc64 ou s390x e False em outros sistemas.

use_local_modulesets

Um valor em boolean que especifica que devem ser usadas coleções de módulos que foram baixados junto com o código fonte do JHBuild; em vez de baixá-los em tempo de execução do sistema de controle de versão do GNOME. Padrão é False.

xvfbargs

Uma string listando argumentos a serem passados para o Xvfb, se executando testes gráficos.

6.2. Outras estruturas do arquivo de configuração

Além das variáveis, há outras configurações que podem ser definidas no arquivo de configuração:

os.environ

Um dicionário representando o ambiente. Este ambiente é passado para o processo que chama o JHBuild.

Algumas variáveis de ambiente influenciáveis incluem CPPFLAGS, CFLAGS, INSTALL e LDFLAGS. Por exemplo:

os.environ['CFLAGS'] = '-O0 -g'
addpath(envvar, pathname)

Isso vai adicionar um diretório à variável de ambiente PATH. addpath vai lidar corretamente o caso quando a variável de ambiente estiver inicialmente vazia (tendo dois-pontos no começo ou final de uma variável de ambiente pode ter consequências inesperadas).

addpath tem uma forma especial de lidar com a variável de ambiente ACLOCAL_FLAGS, que espera que os caminhos estejam listados na forma -I nome-caminho.

prependpath(envvar, pathname)

Após o processamento do arquivo de configuração, JHBuild vai alterar alguns caminhos baseados em tais prefix (ex.: adicionar $prefix/bin ao início de PATH).

A função prependpath funciona como addpath, exceto que a variável de ambiente é modificada após JHBuild ter feito suas alterações no ambiente.