Referência de comando

JHBuild usa uma sintaxe de linha de comando similar a ferramentas como CVS:

jhbuild [opções globais] comando [argumentos do comando]

As opções globais do JHBuild são:

-f, --file configuração

Usa um arquivo de configuração alternativo em vez do padrão ~/.config/jhbuildrc.

-m, --moduleset coleção-de-módulos

Usa uma coleção de módulos que não aquela listada no arquivo de configuração. Esta opção pode ser um caminho relativo, se a coleção de módulo estiver localizada na pasta da coleação de módulo do JHBuild, ou um caminho absoluto, se localizado em outro lugar.

--no-interact

Não solicita interação do usuário. Esta opção é útil para deixar uma compilação funcionando sozinha, de forma a assegurar que a compilação não seja interrompida.

--exit-on-error

Sai imediatamente se um módulo falhar na compilação. Esta opção é útil principalmente no modo não interativo, de forma a garantir que o jhbuild não continue a compilar qualquer módulo adicional.

--conditions

Modifica as opções de condição para serem diferentes daquelas determinadas na base do SO e daquelas especificadas no jhbuildrc. Modificações são especificadas como -wayland ou +docs com a finalidade de remover ou adicionar condições. Modificações múltiplas podem ser separadas por uma vírgula (e.g.: --conditions=+docs,-wayland) ou você pode dividi-las por múltiplos argumentos de --conditions.

Adicionalmente, JHBuild verifica a presença, e valor, das seguintes variáveis de ambiente:

JHBUILD_RUN_AS_ROOT

Por padrão, JHBuild não executa quando usando o usuário root, para evitar operações destrutivas que podem afetar o sistema como um todo. Em certos casos, porém, é aceitável executar JHBuild como root; por exemplo, dentro de um contêiner ou em um ambiente de integração contínua. Exportar a JHBUILD_RUN_AS_ROOT vai desabilitar a verificação de id de usuário na inicialização.

Opções específicas de comandos são listadas abaixo.

5.1. autobuild

O comando autobuild compila automaticamente os módulos especificados no arquivo de configuração e, então, envia os resultados para JhAutobuild.

jhbuild autobuild [--autogen] [--clean] [--distcheck] [--skip=módulo...] [--start-at=módulo] [--report-url=url-relatório] [--verbose]

As opções --autogen, --clean, --distcheck, --skip e --start-at são processadas a cada execução do comando build.

--report-url=url-relatório, -r url-relatório

Esta opção especifica a URL do JhAutobuild para a qual deve relatar.

--verbose, -v

Se especificada, a saída do JHBuild será mais detalhada.

5.2. bootstrap

O comando bootstrap instala uma coleção de utilitários de compilação. Os utilitários de compilação incluem autoconf, automake e utilitários similares. O método recomendado para instalar os utilitários de compilação é via sistema de gerenciamento de pacotes da distribuição. O bootstrap deve ser usado apenas se os utilitários de compilação não forem fornecidos pelo sistema de gerenciamento de pacotes da distribuição, por exemplo no Mac OS.

jhbuild bootstrap

O comando bootstrap compila usando o mesmo método que o comando build, mas usa a coleção de módulos bootstrap.modules.

Veja a documentação do comando build por opções disponíveis.

5.3. build

O comando build compila um ou mais pacotes, incluindo suas dependências.

jhbuild build [--autogen] [--clean] [--check] [--dist] [--distcheck] [--distclean] [--ignore-suggests] [--no-network] [--skip=módulo...] [--start-at=módulo] [--tags=tags] [-D data] [--no-xvfb] [--try-checkout] [--no-poison] [--force] [--build-optional-modules] [--min-age=tempo] [--nodeps] [módulo...]

Se nenhum nome de módulo for fornecido na linha de comando, a lista de módulos do arquivo de configuração será usada.

-a, --autogen

Sempre executa autogen.sh antes de compilar módulos.

-c, --clean

Executa make clean antes de compilar módulos.

--check

Executa make check após compilar módulos.

-d, --dist

Executa make dist após compilar módulos.

--distcheck

Executa make distcheck após compilar módulos.

--distclean

Para módulos git, executa git clean -dfx antes de compilar módulos. Para os demais, executa make distclean antes de compilar módulos.

Esta opção vai excluir quaisquer alterações que não tiverem commit.

--ignore-suggests

Não compila dependências adicionais.

-n, --no-network

Não acessa a rede ao compilar módulos. Isso vai pular os estágios de baixar e atualizar em uma compilação. Se um módulo não puder ser compilado sem acessar a rede, a compilação do módulo vai falhar.

-s, --skip=módulo,...

Não compila os módulos listados. Usada para pular a compilação das dependências especificadas.

--tags=tag,...

Ignora módulos que não correspondam à tag. Aos módulos são atribuídos automaticamente uma tag correspondente ao nome da coleção de módulos do módulo.

-t, --start-at=módulo

Inicia no módulo informado, ao invés do primeiro da lista. Esta opção é útil se a compilação foi interrompida.

-D data

Se houver suporte pelo sistema de controle de versão em questão, atualiza a árvore de fonte para a data especificada antes de compilar. É necessário um formato de data ISO. Ex.: "2009-09-18 02:32Z".

-x, --no-xvfb

Executa testes gráficos no servidor X atual, em vez de em um Xvfb simulado.

-C, --try-checkout

Se a compilação falhar, e se houver suporte pelo sistema de controle de versão, força um checkout e executa autogen.sh antes de tentar compilar novamente.

-N, --no-poison

Se uma ou mais dependências de um módulo falhar, esta opção força o JHBuild a tentar compilar o módulo mesmo assim.

-f, --force

Compila os módulos mesmo se a política define que não é necessário.

--build-optional-modules

Módulos listados como dependências opcionais, podem não ser necessários para compilação do módulo. Esta opção força o JHBuild a compilar essas dependências opcionais.

--min-age=tempo

Pula os módulos instalados mais recentemente do que o tempo especificado. O formato do tempo é um número seguido por uma unidade. Há suporte às seguintes unidades: segundos (s), minutos (m), horas (h) e dias (d). Por exemplo, --min-age=2h vai ignorar módulos compilados a duas horas atrás.

--nodeps

Ignora dependências do sistema em falta. Para ignorar uma única dependência do sistema, adicione o módulo a skip.

5.4. make

O comando make é para desenvolvimento ativo em um módulo em particular. Ele requer que o diretório atual seja um checkout do código fonte e não equivalente a buildone -nf $(basename $(pwd)).

jhbuild make [--clean] [--check] [--distcheck] [--quiet]

As opções são as mesmas disponíveis para o comando buildone.

5.5. buildone

O comando buildone é similar ao build, mas ele não compila os módulos dependentes. Isso é útil para recompilar um ou mais módulos.

jhbuild buildone [--autogen] [--clean] [--check] [--distcheck] [--distclean] [--no-network] [-D data] [--no-xvfb] [--force] [--min-age=tempo] [--nodeps] módulo...

As opções --autogen, --check, --clean, -d, --distcheck, --distclean, --no-network, -D, -x e --nodeps são processadas a cada execução do comando build.

Pelo menos um módulo deve estar listado na linha de comando.

5.6. checkbranches

O checkbranches verifica se os ramos (branches) dos módulos estão definidos corretamente no sistema de controle de versão e se estão consistentes com a coleção de módulos.

jhbuild checkbranches [--branch=ramo...]
--branch=ramo, -b ramo

O ramo a ser verificado.

$ jhbuild -m gnome-2.20 checkbranches
libgnomecanvas não tem a definição do ramo gnome-2-20
$

5.7. clean

O comando clean limpa os diretórios de compilação de um ou mais módulos.

jhbuild clean [--skip=módulo...] [--start-at=módulo]

Se nenhum nome de módulo for fornecido na linha de comando, a lista de módulos do arquivo de configuração será usada.

Veja a documentação do comando build para uma descrição das opções disponíveis.

5.8. dot

O comando dot gera um arquivo descrevendo o gráfico direcionado criado pelas dependências entre uma coleção de módulos. Este arquivo pode ser, então, processado usando o software GraphViz para produzir um diagrama.

jhbuild dot [--soft-deps] [--clusters] [módulo...]

Se nenhum nome de módulo for fornecido na linha de comando, a lista de módulos do arquivo de configuração será usada.

A opção --soft-deps adiciona linhas pontilhadas dos módulos para as suas dependências. A opção --clusters agrupa módulos de metamodules.

A saída do comando dot pode ser direcionada para o utilitário dot para gerar um arquivo PostScript:

$ jhbuild dot módulos | dot -Tps > dependências.ps

Ou uma imagem PNG:

$ jhbuild dot módulos | dot -Tpng > dependências.png
Figure 1Exemplo de saída do dot do JHBuild

5.9. gui

O comando gui inicia uma interface gráfica do JHBuild que pode ser usada para selecionar módulos para compilar e alterar algumas opções.

jhbuild gui

A interface gráfica é renderizada usando GTK, de forma que bibliotecas extras de suporte são necessárias.

5.10. info

O comando info exibe informações sobre um ou mais módulos.

jhbuild info [--installed] [módulo...]

O comando exibe o nome do módulo, tipo, dependências, pacotes dependentes, o diretório de fontes e o horário em que foi instalado pela última vez com JHBuild. Se disponível, informações específicas do tipo do módulo, como o repositório de sistema de controle de versão (VCS) ou a URL de download, também serão exibidas.

Se nenhum módulo for especificado, o comando vai exibir informações sobre todos os módulos definidos na coleção de comandos.

Se a opção --installed for especificada, a saída será filtrada para incluir apenas pacotes instalados. A saída resultante contém apenas módulos que foram realmente compilados e instalados pelo jhbuild. A saída não inclui dependências do sistema.

Se a opção --installed for especificada junto com um ou mais nomes de módulos, então apenas os módulos instalados (não incluindo dependências do sistema) são mostradas. Se pelo menos um módulo não estiver instalado, então o comando vai sair com um valor de retorno de 1.

5.11. list

O comando list exibe a lista expandida de módulos que o comando build compilaria.

jhbuild list [-a] [-r] [-s] [--start-at=módulo] [--tags=tags] [--ignore-suggests] [--list-optional-modules] [módulos...]

Se nenhum nome de módulo for fornecido na linha de comando, a lista de módulos do arquivo de configuração será usada.

As opções --skip, --start-at, --tags e --ignore-suggests são processadas a cada execução do comando build.

-a, --all-modules

Lista todos os módulos da coleção de módulos independentemente das dependências de compilação.

-r, --show-revision

Se um módulo está definido em um ramo, mostra o nome do ramo com o nome do módulo.

--list-optional-modules

Esta opção força o JHBuild a lista todas as dependências opcionais.

5.12. rdepends

O comando rdepends exibe as dependências inversas de um módulo.

jhbuild rdepends [módulo]
--dependencies

Mostra um caminho de dependência ao lado dos módulos.

--direct

Limita a exibição a módulos dependendo diretamente do módulo especificado.

5.13. run

O comando run executa o comando especificado usando o mesmo ambiente que o JHBuild usa ao compilar módulos.

jhbuild run [--in-builddir] [--in-checkoutdir] programa [argumento...]

Se usando o JHBuild para compilar o GNOME, este comando pode ser útil em scripts de inicialização do X.

--in-builddir=módulo

Executa o comando no diretório de compilação do módulo especificado.

--in-checkoutdir=módulo

Executa o comando no diretório fonte do módulo especificado.

5.14. sanitycheck

O comando sanitycheck realiza as verificações para confirmar que o ambiente de compilação está correto.

jhbuild sanitycheck

Algumas verificações incluem:

  • Os prefixos de checkout e instalação têm permissão de escrita.

  • As ferramentas necessárias para compilação estão instaladas.

  • Algumas macros comumente usadas estão disponíveis nos caminhos de pesquisa dos comandos de aclocal associados com as várias versões do automake.

  • O catálogo XML contém o DocBook DTD e as folhas de estilos.

5.15. shell

O comando shell inicia o shell do usuário com o mesmo ambiente que o JHBuild usa ao compilar módulos.

jhbuild shell

O comando é equivalente a:

$ jhbuild run $SHELL

A variável de ambiente UNDER_JHBUILD será definida para “true” quando este shell estiver ativo. Você pode usar a presença desta variável para personalizar o prompt do shell para indicar que você realmente está dentro de um shell controlado pelo jhbuild. Por exemplo, você pode querer colocar isso em seu .bashrc:

	if [ -n "$UNDER_JHBUILD" ]; then
	    PS1="[jhbuild] $PS1"
	fi
      

Isso vai fazer com que o shell do bash exiba [jhbuild] antes do seu prompt normal, deixando mais fácil ver qual shell está em baixo de um ambiente do jhbuild.

5.16. sysdeps

O comando sysdeps exibe:

  1. uma lista de pacotes de sistemas instalados que serão usados durante a compilação. JHBuild não vai compilar esses módulos e, em vez disso, opta por usar o pacote do sistema.

  2. uma lista de pacotes necessários. Para começar uma compilação, os pacotes devem ser fornecidos pelo seus sistema.

  3. uma lista de pacotes opcionais. O pacote de sistema correspondente não foi encontrado ou é muito antigo. JHBuild vai compilar o módulo. Pacotes opcionais não serão exibidos se partial_build for False.

jhbuild sysdeps [--install]
--install

Esta opção instala pacotes de sistema que são dependências da coleção de módulos. Este método de instalação depende de sua distribuição. Pacotes de sistema são instalados usando PackageKit, se disponível. Para distribuições usando APT como o Debian e Ubuntu, esta opção requer apt-file para ser instalada.

Example 1exemplos de sysdeps
$ jhbuild sysdeps
Pacotes do sistema instalados que são novos o suficiente:
  speex (speex.pc requer=1.2rc1, instalado=1.2rc1)
  lcms2 (lcms2.pc requer=2.2, instalado=2.2)
...
Pacotes necessários:
  Pacotes do sistema instalados que são antigos demais:
    (nenhum)
  Nenhum pacote de sistema correspondente instalado:
    zlib (zlib.pc requer=1.2)
Pacotes opcionais: (JHBuild vai compilar os pacotes em falta)
  Pacotes do sistema instalados que são antigos demais:
    WebKit (webkitgtk-3.0.pc requer=1.5.1, instalado=1.4.0)
    ...
  Nenhum pacote de sistema correspondente instalado:
    pulseaudio (libpulse.pc requer=2.0)
    ...

5.17. tinderbox

O comando tinderbox é similar ao build, mas escreve todas as saídas do terminal em arquivos HTML para publicação em um site. Isso pode ser usado para instalar sistemas similares ao Tinderbox do Mozilla ou o Buildd do Debian.

jhbuild tinderbox [--autogen] [--clean] [--distclean] [--no-network] [--output=diretório] [--skip=módulo...] [--start-at=módulo] [-D data] [-C] [-N] [-f] [--nodeps] [módulo...]

As opções --autogen, --clean, --distclean, --no-network, --skip, --start-at, -D, -C, -N, -f e --nodeps são processadas a cada execução do comando build.

-o, --output=diretório

O diretório no qual serão escritos os arquivos HTML. JHBuild vai criar um índice (index.html) e um arquivo HTML para cada módulo.

5.18. uninstall

O comando uninstall desinstala um ou mais módulos.

jhbuild uninstall módulo...

5.19. update

O comando update é similar ao build, mas realiza apenas os estágios de baixar e atualizar para módulos sem compilá-los.

jhbuild update [--skip=módulo...] [--start-at=módulo] [--tags=tags] [--ignore-suggests] [-D data] [módulo...]

As opções --skip, --start-at, --tags, --ignore-suggests e -D são processadas a cada execução do comando build.

5.20. updateone

O comando updateone é similar ao update, mas ele não atualiza os módulos dependentes. É útil para atualizar um ou mais módulos.

jhbuild updateone [-D data] módulo...

A opção -D é processada a cada execução do comando build.

Pelo menos um módulo deve estar listado na linha de comando.