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 executa 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 (VCS) 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 2 Exemplo simplesbranches['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 é ~/.cache/jhbuild/build. Definir esse valor para None 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 um tarball de fontes contendo quaisquer patches) e copy (realiza checkout em um diretório diferente daquele que será compilado).
- cmakeargs
-
Uma string contendo argumentos passados para a chamada de cmake de todos os módulos. Pode ser sobrescrita por módulos em particular, usando o dicionário module_cmakeargs. Padrão é ''.
- 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.
- export_dir
-
Uma string especificando o diretório para onde será exportado, se a exportação 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.
- disable_Werror
-
Um valor booleano (padrão True) que controla se --disable-Werror vai ser passado para as compilações de automake. Muitos pacotes usam esta sinalização como uma forma de desabilitar aviso do compilador sejam fatais (encerra compilação). O valor de True está selecionado como um padrão razoável para aqueles usando jhbuild com a finalidade de obter uma versão atualizada de pacotes de software sem ser atrasados por falhas na compilação de módulos de outras pessoas. Configurar este valor para False pode fazer sentido para aqueles usando jhbuild como parte de um sistema de teste ou integração contínua.
- 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.
- exit_on_error
-
Um valor em boolean especificando se deve-se sair imediatamente quando um módulo falhar na compilação. Isso é útil principalmente no modo não interativo, de forma a evitar que módulos adicionais sejam compilados após um falhar. Definir isso como True é equivalente a passar a opção --exit-on-error. Padrão é False.
- extra_prefixes
-
Uma lista de strings especificando, por ordem de precedência, a lista de prefixos extras. JHBuild define muitas variáveis de ambiente (tais como LD_LIBRARY_PATH, PKG_CONFIG_PATH e XDG_DATA_DIRS) baseadas na variável prefix. Adicionar diretórios a extra_prefixes vai resultar em esses prefixos serem incluídos também, em uma precedência menor do que o prefix do JHBuild, mas em uma precedência mais alta do que os diretórios do sistema. Essa variável está vazia por padrão, exceto em sistemas que instalam softwares em /usr/local, caso em que ela contém esse diretório.
- 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 a ser usado como substituto para /usr/bin/install.
- 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.
- mesonargs
-
Uma string contendo argumentos passados para a chamada de meson de todos os módulos. Pode ser sobrescrita por módulos em particular, usando o dicionário module_mesonargs. Padrão é ''.
- 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_cmakeargs
-
Um dicionário mapeando os nomes de módulos em strings especificando os argumentos a serem passados para o cmake. A configuração em module_cmakeargs é usada, em vez da configuração global cmakeargs. Se um módulo particular não está listado no diretório, a global cmakeargs será usada.
- 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_mesonargs
-
Um dicionário mapeando os nomes de módulos em strings especificando os argumentos a serem passados para o meson. A configuração em module_mesonargs é usada, em vez da configuração global mesonargs. Se um módulo particular não está listado no diretório, a global mesonargs será usada.
- module_ninjaargs
-
Um dicionário mapeando os nomes de módulos em strings especificando os argumentos a serem passados para ninja. A configuração em module_ninjaargs substitui o valor de ninjaargs. Se um módulo em particular não está listado no dicionário, a global ninjaargs 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.
- module_static_analyzer
-
Dicionário mapeando nomes de módulos para valores booleanos indicando se a análise estática deveria ser realizada enquanto compila aquele módulo. Isso permite que a opção de configuração global static_analyzer seja sobrescrita.
- 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.
- ninjaargs
-
Uma string listando argumentos a serem passados para o ninja. Por padrão, usa ''.
- 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. O valor 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, um ícone é mostrado. 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. O valor 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 é '~/jhbuild/install/'.
- 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.
- static_analyzer
-
Um valor booleano, se definido como True, executa uma ferramenta de análise estática em cada módulo como está sendo compilado. Padrão é False.
- static_analyzer_outputdir
-
Diretório raiz abaixo no qual relatórios de análise estática serão salvos (se static_analyzer for True). Padrão é /tmp/jhbuild_static_analyzer.
- static_analyzer_template
-
Modelo de comando para analisador estático. Ele possui os parâmetros outputdir (o valor da variável de configuração static_analyzer_outputdir) e module (o nome do módulo sendo compilado atualmente) substituído por um estilo printf. O comando resultante é usado como um prefixo para make ao compilador um módulo. Padrão é scan-build.
- 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.
- system_libdirs
-
Uma lista de strings especificando os caminhos das bibliotecas de sistema. Isso é usado ao definir os valores padrão de algumas variáveis de ambiente, tais como PKG_CONFIG_PATH.
- tarballdir
-
Uma string que, se definida, faz tarballs serem baixados para o diretório especificado em vez do checkoutroot. Isso é útil se você tiver múltiplos ambientes de JHBuild ou regularmente limpa checkoutroot e deseja reduzir o uso da conexão com a Internet. O padrão é '~/cache/jhbuild/downloads'.
- 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_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.
- conditions
-
Uma coleção de condições (textos) que podem influenciar os módulos que são compilados e as opções que são usadas para compilá-los. Você deveria usar conditions.add() e conditions.discard() para modificar a lista se você quiser fazer alterações.
A coleção original de condições é determinado de acordo com o SO e pode ser modificado usando o argumento de linha de comando --conditions=. As alterações feitas por --conditions são visíveis no momento em que jhbuildrc é carregado, de forma que você possa definir outras variáveis com base no valor atual do conjunto, mas --conditions serão aplicadas novamente após qualquer alterações feita por jhbuildrc.
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).
- 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.