Bem, parece que as receitas de embalagens são o caminho a percorrer aqui. Basicamente, as receitas de empacotamento podem criar automaticamente pacotes de código-fonte do Ubuntu e enviá-los para um PPA sempre que uma ramificação bzr na barra de ativação for alterada. A documentação on-line é muito boa, mas vou dar alguns exemplos ...
Primeiro, você especifica um ramo a ser rastreado (por exemplo lp:gtk3
) e depois adiciona um comando para aninhar seu próprio ramo de empacotamento Debian nesse ramo. Veja esta receita que criei para compilações diárias do Inkscape.
# bzr-builder format 0.4 deb-version 1:0.48+devel+{revno}+{revno:packaging}
lp:inkscape
nest packaging lp:~inkscape.dev/inkscape/debian-packaging debian
Esta receita cria um pacote Ubuntu todos os dias usando a fonte upstream mais recente do Inkscape, mas copia instruções personalizadas de empacotamento do Debian da lp:~inkscape.dev/inkscape/debian-packaging
filial para uma subpasta chamada " debian
".
A página de receita da embalagem no Launchpad permite especificar em qual PPA os arquivos serão carregados automaticamente. No nosso caso, ele é carregado aqui .
Como uma abordagem alternativa, você pode basear sua receita em um pacote Ubuntu existente, em vez de diretamente na fonte upstream. Por exemplo lp:ubuntu/gtk+3.0
,. Você precisaria criar uma ramificação desse código e confirmar as modificações necessárias. Vamos chamá-lo lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
, por exemplo. Você criaria uma receita para mesclar automaticamente suas alterações, em vez de aninhar as instruções de embalagem. A receita seria algo como:
# bzr-builder format 0.4 deb-version {debversion}+{date}
lp:ubuntu/gtk+3.0
merge my-custom-build lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
Esta receita, portanto, cria automaticamente um pacote de origem personalizado do Ubuntu e o carrega no seu PPA sempre que houver uma alteração no pacote oficial do Ubuntu.
Se você seguir essa abordagem de "mesclagem", terá duas opções para aplicar seus patches. Você pode editar o código-fonte upstream diretamente em sua ramificação e deixar o bzr cuidar da mesclagem ou criar arquivos de correção dentro da debian/
pasta usando quilt. Cada um tem suas próprias vantagens / desvantagens. A abordagem anterior é um pouco mais inteligente ... se um dos seus patches for adotado pelo desenvolvedor upstream, a mesclagem geralmente continuará funcionando e o pacote Ubuntu será compilado. A última abordagem permite que você lide com seus patches usando a abordagem padrão baseada no Debian de manter o código de empacotamento separado do código upstream ... no entanto, se o desenvolvedor upstream adotar um de seus patches, o quilt não poderá aplicar o (duplicado) patch e o pacote falhará na compilação.
lp:ubuntu/gtk+3.0
rastreia? Versão atual estável ou atual de desenvolvimento?