Provided by:
svn-buildpackage_0.8.4_all 
NOME
svn-buildpackage - constroi pacotes Debian a partir de repositorio SVN
SINOPSE
svn-buildpackage [[ OP,C~OES... ] [ OP,C~OES para o dpkg-buildpackage ]]
DESCRI,C~AO
Constroi um pacote Debian a partir de um repositorio Subversion. O
repositorio de codigo fonte tem de estar no formato criado pelo
svn-inject, e este script tem de ser executado no directorio de
trabalho (trunk/pacote).
Por predefinicao, o directorio de trabalho e usado como o directorio de
fonte principal (assumindo que toda a fonte original esta armazenada no
repositorio). A alternativa e o chamado "modo merge". Com este metodo,
apenas o directorio debian (e talvez outros ficheiros modificados) sao
armazenados no repositorio. Durante a construcao, o conteudo do trunk
svn e copiado para o conteudo do tarball extraido (e pode sobrescrever
partes dele). Para escolher este modelo de trabalho, defina a
propriedade mergeWithUpstream do svn no directorio debian.
$ svn propset mergeWithUpstream 1 debian
mergeWithUpstream requer que o sistema possa preparar um tarball,
usando tipicamente make dist e autotools. Todos os pacotes da origem
irao ter alguma forma de suporte a criacao de tarball e os pacotes
nativos que usam autotools ou tem suporte de tarball interno podem usar
mergeWithUpstream para lidar com os ficheiros gerados que sao
necessarios para construir o pacote mas nao estao presentes no SVN.
Veja o guia HOWTO para exemplos de como isto pode ser feito. Os pacotes
nativos que nao usam autotools e nao tem suporte de tarball interno
podem ainda adicionar os ficheiros gerados ao tarball do pacote fonte
usando o useNativeDist ao alvo do Makefile de nivel de topo. Este alvo
personalizado tem de ser idempotente e apenas modificar / gerar os
ficheiros desejados usando apenas a fonte SVN exportada e as
dependencias de construcao. Para permitir ao svn-buildpackage usar um
alvo make native-dist no seu Makefile de nivel de topo, regule a
propriedade useNativeDist no directorio ./debian/:
$ svn propset useNativeDist 1 debian
O comportamento predefinido do svn-buildpackage e o seguinte:
Verifica o directorio de trabalho, queixa-se de ficheiros nao
submetidos (veja tambem --svn-ignore-new)
Copia o tarball de origem para a area de construcao se necessario (veja
tambem --svn-no-links)
Extrai o tarball (em modo de fusao) ou exporta o directorio de trabalho
do svn para o directorio de construcao (veja tambem em baixo e
--svn-no-links)
Constroi com o dpkg-buildpackage (veja tambem --svn-builder,
--svn-lintian, etc.)
Cria um entrada no registo de alteracoes para a versao futura
OP,C~OES
svn-buildpackage aceita as seguintes opcoes na linha de comandos:
--svn-builder=COMANDO
Especifica um comando de construcao alternativo em vez de
dpkg-buildpackage, ex. debuild, pdebuild, etc. Cada parametro que
o svn-buildpackage nao conhece (--svn-*) e passado para COMMAND.
Nao existe diferenca entre os parametros de linha de comandos e
ficheiro de configuracao. Eles sao usados ao mesmo tempo.
AVISO: as regras de cotacao da shell nao se aplicam completamente
aqui, e melhor usar wrappers para construcoes complexas. Usar esta
opcao pode quebrar a funcionalidade de --svn-lintian e --svn-move.
Algumas funcoes podem ser desactivadas quando e usado um comando de
construcao personalizado porque a localizacao do ficheiro
resultante nao e previsivel.
Predefinicao: usa dpkg-buildpackage.
--svn-ignore-new | --svn-ignore
Nao para em conflitos do svn ou ficheiros novos/alterados. Para
definir este comportamento para ficheiros unicos defina a
propriedade deb:ignoreM para 1 neles. Veja tambem a documentacao da
propriedade svn:ignore no livro do SVN.
Predefinicao: Para em conflitos ou ficheiros novos/alterados.
--svn-dont-clean
Nao corre a limpeza de debian/rules.
Predefinicao: primeiro limpa.
--svn-no-links
Nao use links de ficheiro mas tente exporta-los ou fazer copias
fisicas do directorio de trabalho. Isto e util se o seu pacote
falhar na construcao devido a alguns ficheiros, directorios vazios,
links quebrados... nao poderem ser transportados no modo link-copy
predefinido.
Predefinicao: usa os links onde possivel.
--svn-dont-purge
Nao remove o directorio de construcao quando a construcao esta
pronta.
Predefinicao: remove apos construcao com sucesso.
--svn-reuse
Se possivel, reutilize um directorio de construcao existente nas
construcoes subsequentes. O directorio de construcao nao e purgado
apos a construcao, nao e renomeado quando uma construcao comeca e
os ficheiros sao apenas copiados para ele. Util em modo
mergeWithUpstream como pacotes grandes.
Predefinicao: o directorio de construcao e removido.
--svn-rm-prev-dir
Se for encontrado um directorio de construcao anterior, remove-o
antes da construcao em vez de o renomear. Se --svn-reuse for tambem
fornecido na mesma linha, o corre o comportamento de reutilizacao.
Predefinicao: renomeia os directorios antigos com o sufixo
'obsolete'.
--svn-export
Apenas exporta o directorio de trabalho e faz as operacoes de fusao
de codigo necessarias, e depois termina.
Predefinicao: Desligado.
--svn-tag
Construcao final: Etiqueta, exporta, constroi com limpeza & cria
nova entrada no registo de alteracoes.
Predefinicao: Desligado.
--svn-tag-only | --svn-only-tag
Nao constroi o pacote, apenas faz a copia da etiqueta.
Predefinicao: Desligado.
--svn-retag
Se um directorio alvo existente foi encontrado durante a tentativa
de criacao da copia de etiqueta, primeiro remove o directorio alvo.
Predefinicao: Desligado.
--svn-noautodch
Nenhuma entrada no registo de alteracoes Debian e adicionada
automaticamente.
Predefinicao: Uma nova entrada no registo de alteracoes UNRELEASED
e definida via dch.
--svn-lintian
Corre o lintian no ficheiro de alteracoes resultante quando pronto.
Predefinicao: Desligado.
--svn-move
Quando pronto, move os ficheiros criados (como listado em .changes)
para o directorio pai, relativo aquele onde o svn-buildpackage foi
iniciado.
Predefinicao: Desligado.
--svn-move-to=...
Especifica o directorio alvo para onde mover os ficheiros gerados.
Predefinicao: Desligado. (Os ficheiros sao deixados onde o comando
de construcao os colocou.)
--svn-pkg=nome_de_pacote
Sobrepoe o nome de pacote detectado. Use com cuidado porque pode
ser definido tarde demais durante o processamento (ex. ainda ter o
valor antigo quando expandir variaveis da shell).
Predefinicao: Desligado.
--svn-arch=ARQUITECTURA
Permite especificar a arquitectura de construcao (ex. construir
para i386 numa maquina amd64).
Predefinicao: Desligado.
--svn-override=var=valor,anothervar=valor
Sobrepoe qualquer variavel de configuracao que tenha sido
auto-detectada ou encontrada em .svn/deb-layout.
Predefinicao: Desligado.
--svn-prebuild | --svn-postbuild | --svn-pretag | --svn-posttag
Comandos (hooks) a serem executados antes/apos as invocacoes dos
comandos de construcao/etiquetagem, ex. para descarregar os
tarballs de origem a partir do arquivo. Aqui pode ser incluido
codigo de shell apesar de nao ser recomendado. Varias variaveis de
ajuda estao disponiveis no ambiente, veja VARIAVEIS DE AMBIENTE em
baixo para uma explicacao detalhada.
Por favor note que os hooks prebuild e postbuild substituem as
accoes prebuild e postbuild normais do svn-buildpackage. Para
prebuild, isto significa que as dependencias de construcao nao
serao verificadas. Para postbuild, isto significa que os ficheiros
resultantes nao serao movidos, e o lintian nao sera executado.
Predefinicao: Desligado.
--svn-noninteractive
Com este parametro o svn-buildpackage nao ira interagir com o
utilizador.
Predefinicao: Desligado.
--svn-savecfg
Por predefinicao, o svn-buildpackage costumava criar
.svn/deb-layout a cada invocacao. Desde a versao 0.6.22 que este
comportamento esta descontinuado.
Com este parametro o svn-buildpackage ira (parcialmente) replicar o
comportamento antigo. Em contraste com o comportamento
descontinuado, o .svn/deb-layout e reconhecido como uma
sobreposicao local; o comportamento antigo simplesmente ignorava
qualquer informacao de disposicao com versao se encontrasse
.svn/deb-layout.
Esta opcao foi disponibilizada porque pode ser util quando se cria
um ficheiro de sobreposicao local.
Predefinicao: Desligado.
--svn-download-orig
Esta opcao faz com que o svn-buildpackage tente descarregar o
tarball da origem usando apt e uscan.
Predefinicao: Desligado.
--svn-verbose
Saida do programa mais detalhada.
Predefinicao: Desligado.
-h | --help
Mostra a mensagem de ajuda.
EXEMPLOS
Para informacao mais detalhada de como usar o svn-buildpackage, veja o
HOWTO. http://svn-bp.alioth.debian.org/[1].
Para comecar a trabalhar com um pacote Debian nativo existente a partir
de um ficheiro *.dsc, importe-o para o repositorio com o comando:
svn-inject package_0.1.dsc svn://host/debian/devel/packages
Para comecar a trabalhar com um pacote da origem existente em Debian a
partir de um ficheiro *.dsc, importe-o para o repositorio com o
comando:
svn-inject -o package_0.1-2.dsc svn://host/debian/devel/packages
Antes de construir um pacote da origem, certifique-se que a fonte
original esta disponivel, ex. se o uscan esta a funcionar:
svn mkdir ../tarballs
svn propset svn:ignore "*" ../tarballs
uscan --force-download --destdir ../tarballs
Para uma construcao teste do pacote a partir de repositorio SVN, use o
comando abaixo. Use referencias do manual do dpkg-buildpackage(1) para
as opcoes -us etc.
svn-buildpackage --svn-lintian -us -uc -rfakeroot
Para verificar que o pacote constroi num estado limpo, teste-o com
pbuilder(1):
svn mkdir ../build-area # Para armazenar resultados
svn propset svn:ignore "*" ../build-area
svn-buildpackage --svn-ignore-new --svn-builder=pdebuild
Quando um novo lancamento da origem esta disponivel, submete todas as
alteracoes e tem a arvore de trabalho num estado limpo. Depois usa o
svn-upgrade(1) para importar o novo lancamento.
svn status # Verifica que nao ha alteracoes nao submetidas
svn-upgrade --verbose ../package-2.0.tar.gz
FICHEIRO DE CONFIGURA,C~AO
O comportamento do svn-buildpackage pode ser modificado usando o
ficheiro ~/.svn-buildpackage.conf. Podem ser adicionadas partes
adicionais em cada directorio de trabalho de pacote usando o ficheiro
.svn/svn-buildpackage.conf. E essencialmente uma lista de opcoes longas
de linha de comandos (sem os sinais menos iniciais), um argumento por
linha (sem citacoes envolvendo os argumentos de multiplas palavras). As
variaveis sao expandidas com a shell do sistema se la existirem
variaveis de shell. Evite o sinal ~ porque nao e expansao de confianca:
E melhor usar antes $HOME. Exemplo:
svn-builder=debuild -EPATH
svn-no-links
svn-override=origDir=$HOME/debian/upstream/$PACOTE
# svn-ignore-new
#svn-lintian
MANUSEAMENTO DA DISPOSI,C~AO DO DIRECT'ORIO
Por predefinicao, o svn-buildpackage espera um ficheiro de configuracao
com declaracao de caminho/url, .svn/deb-layout. Os valores de la podem
ser sobrepostos com a opcao --svn-override, veja em cima. Se um
ficheiro de configuracao nao pode ser encontrado, as definicoes sao
auto-detectadas seguindo as deducoes normais acerca de directorios
locais e disposicao do repositorio. Adicionalmente, o conteudo de um
ficheiro personalizado debian/svn-deblayout sera importado durante a
configuracao inicial. Os responsaveis pelo pacote podem armazenar este
ficheiro no repositorio para passar predefinicoes correctas aos novos
utilizadores do svn-buildpackage. O formato e o mesmo que no ficheiro
.svn/deb-layout. Como uma alternativa ao ficheiro debian/svn-deblayout,
os responsaveis podem definir as propriedades do Subversion para o
directorio debian/, quaisquer propriedades de debian/ que tenham um
nome no formato svn-bp:PROP serao a fonte da definicao PROP a qual tem
o valor indicado pela primeira linha do valor da propriedade. Se nao
for fornecido um URL de svn completo, o repositorio raiz ira ser
precedido para este valor.
VARI'AVEIS DE AMBIENTE
As seguintes variaveis de ambiente sao exportadas pelo svn-buildpackage
e podem ser usadas em hook a comandos ou ao sistema de construcao de
pacotes.
PACOTE, pacote
O nome do pacote fonte.
SVN_BUILDPACKAGE
Versao do svn-buildpackage.
TAG_VERSION, debian_version
A string de versao Debian completa, tambem usada para a copia de
etiqueta.
non_epoch_version
O mesmo que debian_version mas sem strings de epoca.
upstream_version
O mesmo que debian_version mas sem extensoes Debian
guess_loc
Nome do pacote fonte da origem adivinhado na pool, algo como
libm/libmeta-html-perl_3.2.1.0.orig.tar.gz
DIFFSRC
(experimental) mostra a localizacao do ficheiro diff gerado
Todas as propriedades de disposicao sao tambem exportadas para o
ambiente. As seguintes tem significado para o svn-buildpackage.
buildArea
a localizacao do directorio de area de construcao
trunkUrl
o URL do directorio trunk para o pacote actual.
tagsUrl
o URL do directorio base de etiquetas para o pacote actual.
origDir
o directorio local onde o tarball original deve estar colocado.
origUrl
o URL de onde pode ser puxado o tarball original do pacote actual.
As seguintes variaveis sao compreendidas pelo svn-buildpackage:
FORCETAG
Ignora os sinais de um registo de alteracoes incompleto e etiqueta
o repositorio mesmo assim.
FORCEEXPORT
Exporta a fonte da origem a partir do repositorio mesmo que a
propriedade mergeWithUpstream esteja definida.
DEBIAN_FRONTEND
Se DEBIAN_FRONTEND estiver definida para 'noninteractive',
--svn-noninteractive e chamado em silencio.
RECOMENDA,C~OES
Usa nomes alternativos de shell. Aqui estao alguns exemplos para Bash:
alias svn-b="svn-buildpackage -us -uc -rfakeroot --svn-ignore"
alias svn-br="svn-b --svn-dont-purge --svn-reuse"
alias svn-bt="svn-buildpackage --svn-tag -rfakeroot"
Esses comandos tem significados respectivos: construir
independentemente de ficheiros novos ou alterados; construir
independentemente de ficheiros novos ou alterados e reutiliza o
directorio de construcao; construir e etiquetar (para upload).
SSH e o modo mais facil de aceder a repositorios remotos, apesar de
geralmente requerer a entrada da palavra passe com mais frequencia com
o svn-buildpackage. Meios de contornar incluem usar uma chave ssh com
uma frase passe (apesar de isto ser inseguro e mesmo assim
relativamente lento), ou a funcionalidade de cache da ligacao SSH
presente nas versoes recentes do SSH. Para mais detalhes, veja o manual
do svn-buildpackage.
Outro modo de obter uma ligacao remota e usar o modulo DAV do
Subversion (com SSL e autenticacao do utilizador do Apache), veja o
manual HOWTO do svn-buildpackage para mais detalhes.
VEJA TAMB'EM
/usr/share/doc/svn-buildpackage/()
O manual HOWTO do svn-buildpackage
svn-inject(1)
coloca um pacote fonte Debian num repositorio Subversion
svn-upgrade(1)
actualiza o pacote fonte a partir de uma nova revisao da origem
svn(1)
ferramenta cliente Subversion de linha de comandos
dpkg-buildpackage(1)
Ferramentas de pacotes fonte Debian
lintian(1)
Verificador de pacotes Debian
AUTHORS
Eduard Bloch
Este manual foi escrito por Eduard Bloch em roff.
Goneri Le Bouder
Converteu o manual para SGML.
Neil Williams
Converteu o manual para DocBook XML e e o responsavel Debian actual
COPYRIGHT
Copyright (C) 2009 Eduard Bloch
NOTAS
1. http://svn-bp.alioth.debian.org/
http://svn-bp.alioth.debian.org/
Lancamento: 0.8.2 Maio 2009 SVN-BUILDPACKAGE(1)