Construir um pacote atualizado a partir de uma ramificação bzr tende a diferir uma quantidade razoável, dependendo de quem mantém as ramificações ou como o pacote funciona em geral. No entanto, aqui estão algumas diretrizes para uma atualização rápida e suja de praticamente qualquer pacote, a ser enviada para um PPA:
Obter o ramo:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
Em seguida, mude para ele e atualize o log de alterações:
dch -i
O dch -i simplesmente abrirá uma nova entrada no debian / changelog, aumentando a revisão da versão em um. Se você deseja adicionar um patch, isso é perfeito, mas se você deseja atualizar para uma versão mais recente do software upstream, precisará atualizar o número da versão antes do traço (-). Digamos, uma versão no 1.2-0ubuntu1 , se você iniciar o dch -i, ele mudará para 1.2-0ubuntu2 , o que é bom para aplicar patches, mas se você precisar de uma nova versão, provavelmente desejará alterá-lo para 1.3-0ubuntu1 .
Se você precisar corrigir, agora é a hora de adicionar suas alterações. Nos ramos que possuem apenas um diretório debian / , você pode usar o bzr bd-do (requer o pacote bzr-builddeb) para mudar para uma árvore de trabalho onde você pode fazer alterações, usar quilt ou qualquer sistema de correção e depois "exit 0" para copie suas alterações de volta.
Se você deseja uma nova versão upstream, depois que o changelog for alterado, você provavelmente executará um comando semelhante a este:
debian/rules get-orig-source
Isso geralmente faz o download do tarball correto do editor upstream para você começar. Se mais alterações forem necessárias, proceda da maneira acima para "remendar" ou alterar outros arquivos no diretório debian / , caso contrário, você está quase pronto:
bzr bd -S
bzr bd cuidará da construção. A chamada sem argumentos começa a se desenvolver no seu sistema, enquanto a chamada com -S diz para preparar um pacote de origem, que incluirá um arquivo ..._ source.changes que é o que você deseja enviar para o seu PPA (use dput ppa: <yourname> / <nome do seu ppa> <arquivo de alterações> para fazer isso).
Para pacotes do NetworkManager, é um pouco diferente. Vejamos o openconnect especificamente:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect
Verifique também se possui todas as dependências de compilação: sudo get-build-deps
Com a ramificação recuperada, isso lerá o arquivo debian / control e tentará baixar tudo o que você precisa para construir o network-manager-openconnect. Você pode precisar do git também. Feito isso, execute get-orig-source para obter apenas o tarball do snapshot mais recente do git:
debian/rules get-orig-source
Você verá o texto passar rapidamente e um tarball com um número de versão longo será exibido. Esse é o código mais recente que você pode obter para o nm-openconnect.
Você precisará atualizar o changelog com o número da versão do tarball, mantendo intacto o sufixo -0ubuntu1 .
Ou mude debian / changelog com o número de versão específico desejado e execute: debian / rules get-current-source
Como os plugins não mudam muito, você deve poder compilar o pacote a partir daí, usando bzr bd como acima. Caso contrário, aplique as alterações necessárias, conforme descrito acima.
Não se esqueça de confirmar o bzr depois de fazer as alterações.
Esqueci de adicionar, não hesite em usar o sistema de proposta de mesclagem ( propor a fusão do link da página de sua filial no LP) quando as alterações que você estiver fazendo puderem beneficiar outras pessoas. Geralmente você pode apenas propor uma fusão com a filial na qual a sua base (por exemplo, lp: ~ gerenciador de rede / gerenciador de rede / openconnect-ubuntu.head neste caso).