Provided by: svn-buildpackage_0.8.4_all bug

NOME

       svn-buildpackage - constrói pacotes Debian a partir de repositório SVN

SINOPSE

       svn-buildpackage [[ OPÇÕES... ] [ OPÇÕES para o dpkg-buildpackage ]]

DESCRIÇÃO

       Constrói um pacote Debian a partir de um repositório Subversion. O repositório de código
       fonte tem de estar no formato criado pelo svn-inject, e este script tem de ser executado
       no directório de trabalho (trunk/pacote).

       Por predefinição, o directório de trabalho é usado como o directório de fonte principal
       (assumindo que toda a fonte original está armazenada no repositório). A alternativa é o
       chamado "modo merge". Com este método, apenas o directório debian (e talvez outros
       ficheiros modificados) são armazenados no repositório. Durante a construção, o conteúdo do
       trunk svn é copiado para o conteúdo do tarball extraído (e pode sobrescrever partes dele).
       Para escolher este modelo de trabalho, defina a propriedade mergeWithUpstream do svn no
       directório 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 irão ter alguma forma de suporte a criação de
       tarball e os pacotes nativos que usam autotools ou têm suporte de tarball interno podem
       usar mergeWithUpstream para lidar com os ficheiros gerados que são necessários para
       construir o pacote mas não estão presentes no SVN. Veja o guia HOWTO para exemplos de como
       isto pode ser feito. Os pacotes nativos que não usam autotools e não têm suporte de
       tarball interno podem ainda adicionar os ficheiros gerados ao tarball do pacote fonte
       usando o useNativeDist ao alvo do Makefile de nível de topo. Este alvo personalizado tem
       de ser idempotente e apenas modificar / gerar os ficheiros desejados usando apenas a fonte
       SVN exportada e as dependências de construção. Para permitir ao svn-buildpackage usar um
       alvo make native-dist no seu Makefile de nível de topo, regule a propriedade useNativeDist
       no directório ./debian/:

           $ svn propset useNativeDist 1 debian

       O comportamento predefinido do svn-buildpackage é o seguinte:

       Verifica o directório de trabalho, queixa-se de ficheiros não submetidos (veja também
       --svn-ignore-new)

       Copia o tarball de origem para a área de construção se necessário (veja também
       --svn-no-links)

       Extrai o tarball (em modo de fusão) ou exporta o directório de trabalho do svn para o
       directório de construção (veja também em baixo e --svn-no-links)

       Constrói com o dpkg-buildpackage (veja também --svn-builder, --svn-lintian, etc.)

       Cria um entrada no registo de alterações para a versão futura

OPÇÕES

       svn-buildpackage aceita as seguintes opções na linha de comandos:

       --svn-builder=COMANDO
           Especifica um comando de construção alternativo em vez de dpkg-buildpackage, ex.
           debuild, pdebuild, etc. Cada parâmetro que o svn-buildpackage não conhece (--svn-*) é
           passado para COMMAND. Não existe diferença entre os parâmetros de linha de comandos e
           ficheiro de configuração. Eles são usados ao mesmo tempo.

           AVISO: as regras de cotação da shell não se aplicam completamente aqui, é melhor usar
           wrappers para construções complexas. Usar esta opção pode quebrar a funcionalidade de
           --svn-lintian e --svn-move. Algumas funções podem ser desactivadas quando é usado um
           comando de construção personalizado porque a localização do ficheiro resultante não é
           previsível.

           Predefinição: usa dpkg-buildpackage.

       --svn-ignore-new | --svn-ignore
           Não pára em conflitos do svn ou ficheiros novos/alterados. Para definir este
           comportamento para ficheiros únicos defina a propriedade deb:ignoreM para 1 neles.
           Veja também a documentação da propriedade svn:ignore no livro do SVN.

           Predefinição: Pára em conflitos ou ficheiros novos/alterados.

       --svn-dont-clean
           Não corre a limpeza de debian/rules.

           Predefinição: primeiro limpa.

       --svn-no-links
           Não use links de ficheiro mas tente exportá-los ou fazer cópias físicas do directório
           de trabalho. Isto é útil se o seu pacote falhar na construção devido a alguns
           ficheiros, directórios vazios, links quebrados... não poderem ser transportados no
           modo link-copy predefinido.

           Predefinição: usa os links onde possível.

       --svn-dont-purge
           Não remove o directório de construção quando a construção está pronta.

           Predefinição: remove após construção com sucesso.

       --svn-reuse
           Se possível, reutilize um directório de construção existente nas construções
           subsequentes. O directório de construção não é purgado após a construção, não é
           renomeado quando uma construção começa e os ficheiros são apenas copiados para ele.
           Útil em modo mergeWithUpstream como pacotes grandes.

           Predefinição: o directório de construção é removido.

       --svn-rm-prev-dir
           Se for encontrado um directório de construção anterior, remove-o antes da construção
           em vez de o renomear. Se --svn-reuse for também fornecido na mesma linha, o corre o
           comportamento de reutilização.

           Predefinição: renomeia os directórios antigos com o sufixo 'obsolete'.

       --svn-export
           Apenas exporta o directório de trabalho e faz as operações de fusão de código
           necessárias, e depois termina.

           Predefinição: Desligado.

       --svn-tag
           Construção final: Etiqueta, exporta, constrói com limpeza & cria nova entrada no
           registo de alterações.

           Predefinição: Desligado.

       --svn-tag-only | --svn-only-tag
           Não constrói o pacote, apenas faz a cópia da etiqueta.

           Predefinição: Desligado.

       --svn-retag
           Se um directório alvo existente foi encontrado durante a tentativa de criação da cópia
           de etiqueta, primeiro remove o directório alvo.

           Predefinição: Desligado.

       --svn-noautodch
           Nenhuma entrada no registo de alterações Debian é adicionada automaticamente.

           Predefinição: Uma nova entrada no registo de alterações UNRELEASED é definida via dch.

       --svn-lintian
           Corre o lintian no ficheiro de alterações resultante quando pronto.

           Predefinição: Desligado.

       --svn-move
           Quando pronto, move os ficheiros criados (como listado em .changes) para o directório
           pai, relativo àquele onde o svn-buildpackage foi iniciado.

           Predefinição: Desligado.

       --svn-move-to=...
           Especifica o directório alvo para onde mover os ficheiros gerados.

           Predefinição: Desligado. (Os ficheiros são deixados onde o comando de construção os
           colocou.)

       --svn-pkg=nome_de_pacote
           Sobrepõe 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 variáveis
           da shell).

           Predefinição: Desligado.

       --svn-arch=ARQUITECTURA
           Permite especificar a arquitectura de construção (ex. construir para i386 numa máquina
           amd64).

           Predefinição: Desligado.

       --svn-override=var=valor,anothervar=valor
           Sobrepõe qualquer variável de configuração que tenha sido auto-detectada ou encontrada
           em .svn/deb-layout.

           Predefinição: Desligado.

       --svn-prebuild | --svn-postbuild | --svn-pretag | --svn-posttag
           Comandos (hooks) a serem executados antes/após as invocações dos comandos de
           construção/etiquetagem, ex. para descarregar os tarballs de origem a partir do
           arquivo. Aqui pode ser incluído código de shell apesar de não ser recomendado. Várias
           variáveis de ajuda estão disponíveis no ambiente, veja VARIÁVEIS DE AMBIENTE em baixo
           para uma explicação detalhada.

           Por favor note que os hooks prebuild e postbuild substituem as acções prebuild e
           postbuild normais do svn-buildpackage. Para prebuild, isto significa que as
           dependências de construção não serão verificadas. Para postbuild, isto significa que
           os ficheiros resultantes não serão movidos, e o lintian não será executado.

           Predefinição: Desligado.

       --svn-noninteractive
           Com este parâmetro o svn-buildpackage não irá interagir com o utilizador.

           Predefinição: Desligado.

       --svn-savecfg
           Por predefinição, o svn-buildpackage costumava criar .svn/deb-layout a cada invocação.
           Desde a versão 0.6.22 que este comportamento está descontinuado.

           Com este parâmetro o svn-buildpackage irá (parcialmente) replicar o comportamento
           antigo. Em contraste com o comportamento descontinuado, o .svn/deb-layout é
           reconhecido como uma sobreposição local; o comportamento antigo simplesmente ignorava
           qualquer informação de disposição com versão se encontrasse .svn/deb-layout.

           Esta opção foi disponibilizada porque pode ser útil quando se cria um ficheiro de
           sobreposição local.

           Predefinição: Desligado.

       --svn-download-orig
           Esta opção faz com que o svn-buildpackage tente descarregar o tarball da origem usando
           apt e uscan.

           Predefinição: Desligado.

       --svn-verbose
           Saída do programa mais detalhada.

           Predefinição: Desligado.

       -h | --help
           Mostra a mensagem de ajuda.

EXEMPLOS

       Para informação mais detalhada de como usar o svn-buildpackage, veja o HOWTO.
       http://svn-bp.alioth.debian.org/[1].

       Para começar a trabalhar com um pacote Debian nativo existente a partir de um ficheiro
       *.dsc, importe-o para o repositório com o comando:

           svn-inject package_0.1.dsc svn://host/debian/devel/packages

       Para começar a trabalhar com um pacote da origem existente em Debian a partir de um
       ficheiro *.dsc, importe-o para o repositório 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 está
       disponível, ex. se o uscan está a funcionar:

           svn mkdir ../tarballs
           svn propset svn:ignore "*" ../tarballs
           uscan --force-download --destdir ../tarballs

       Para uma construção teste do pacote a partir de repositório SVN, use o comando abaixo. Use
       referências do manual do dpkg-buildpackage(1) para as opções -us etc.

           svn-buildpackage --svn-lintian -us -uc -rfakeroot

       Para verificar que o pacote constrói 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 lançamento da origem está disponível, submete todas as alterações e tem a
       árvore de trabalho num estado limpo. Depois usa o svn-upgrade(1) para importar o novo
       lançamento.

           svn status   # Verifica que não há alterações não submetidas
           svn-upgrade --verbose ../package-2.0.tar.gz

FICHEIRO DE CONFIGURAÇÃO

       O comportamento do svn-buildpackage pode ser modificado usando o ficheiro
       ~/.svn-buildpackage.conf. Podem ser adicionadas partes adicionais em cada directório de
       trabalho de pacote usando o ficheiro .svn/svn-buildpackage.conf. É essencialmente uma
       lista de opções longas de linha de comandos (sem os sinais menos iniciais), um argumento
       por linha (sem citações envolvendo os argumentos de múltiplas palavras). As variáveis são
       expandidas com a shell do sistema se lá existirem variáveis de shell. Evite o sinal ~
       porque não é expansão de confiança: É 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ÇÃO DO DIRECTÓRIO

       Por predefinição, o svn-buildpackage espera um ficheiro de configuração com declaração de
       caminho/url, .svn/deb-layout. Os valores de lá podem ser sobrepostos com a opção
       --svn-override, veja em cima. Se um ficheiro de configuração não pode ser encontrado, as
       definições são auto-detectadas seguindo as deduções normais acerca de directórios locais e
       disposição do repositório. Adicionalmente, o conteúdo de um ficheiro personalizado
       debian/svn-deblayout será importado durante a configuração inicial. Os responsáveis pelo
       pacote podem armazenar este ficheiro no repositório para passar predefinições correctas
       aos novos utilizadores do svn-buildpackage. O formato é o mesmo que no ficheiro
       .svn/deb-layout. Como uma alternativa ao ficheiro debian/svn-deblayout, os responsáveis
       podem definir as propriedades do Subversion para o directório debian/, quaisquer
       propriedades de debian/ que tenham um nome no formato svn-bp:PROP serão a fonte da
       definição PROP a qual tem o valor indicado pela primeira linha do valor da propriedade. Se
       não for fornecido um URL de svn completo, o repositório raiz irá ser precedido para este
       valor.

VARIÁVEIS DE AMBIENTE

       As seguintes variáveis de ambiente são exportadas pelo svn-buildpackage e podem ser usadas
       em hook a comandos ou ao sistema de construção de pacotes.

       PACOTE, pacote
           O nome do pacote fonte.

       SVN_BUILDPACKAGE
           Versão do svn-buildpackage.

       TAG_VERSION, debian_version
           A string de versão Debian completa, também usada para a copia de etiqueta.

       non_epoch_version
           O mesmo que debian_version mas sem strings de época.

       upstream_version
           O mesmo que debian_version mas sem extensões 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 localização do ficheiro diff gerado

       Todas as propriedades de disposição são também exportadas para o ambiente. As seguintes
       têm significado para o svn-buildpackage.

       buildArea
           a localização do directório de área de construção

       trunkUrl
           o URL do directório trunk para o pacote actual.

       tagsUrl
           o URL do directório base de etiquetas para o pacote actual.

       origDir
           o directório local onde o tarball original deve estar colocado.

       origUrl
           o URL de onde pode ser puxado o tarball original do pacote actual.

       As seguintes variáveis são compreendidas pelo svn-buildpackage:

       FORCETAG
           Ignora os sinais de um registo de alterações incompleto e etiqueta o repositório mesmo
           assim.

       FORCEEXPORT
           Exporta a fonte da origem a partir do repositório mesmo que a propriedade
           mergeWithUpstream esteja definida.

       DEBIAN_FRONTEND
           Se DEBIAN_FRONTEND estiver definida para 'noninteractive', --svn-noninteractive é
           chamado em silêncio.

RECOMENDAÇÕES

       Usa nomes alternativos de shell. Aqui estão 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 têm significados respectivos: construir independentemente de ficheiros
       novos ou alterados; construir independentemente de ficheiros novos ou alterados e
       reutiliza o directório de construção; construir e etiquetar (para upload).

       SSH é o modo mais fácil de aceder a repositórios remotos, apesar de geralmente requerer a
       entrada da palavra passe com mais frequência 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 ligação SSH presente nas versões
       recentes do SSH. Para mais detalhes, veja o manual do svn-buildpackage.

       Outro modo de obter uma ligação remota é usar o módulo DAV do Subversion (com SSL e
       autenticação do utilizador do Apache), veja o manual HOWTO do svn-buildpackage para mais
       detalhes.

VEJA TAMBÉM

       /usr/share/doc/svn-buildpackage/()
           O manual HOWTO do svn-buildpackage

       svn-inject(1)
           coloca um pacote fonte Debian num repositório Subversion

       svn-upgrade(1)
           actualiza o pacote fonte a partir de uma nova revisão 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 é o responsável Debian actual

COPYRIGHT

       Copyright © 2009 Eduard Bloch

NOTAS

        1. http://svn-bp.alioth.debian.org/
           http://svn-bp.alioth.debian.org/