Construir um pacote atualizado a partir de uma ramificação bzr tende a diferir uma quantia justa, dependendo de quem mantém as filiais 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, para ser enviada para um PPA:
Obtenha o ramo:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
Em seguida, mude para ele e atualize o changelog:
dch -i
O dch -i irá simplesmente abrir uma nova entrada no debian / changelog, aumentando a revisão da versão em um. Se você quiser adicionar um patch, isso é perfeito, mas se você quiser atualizar para uma versão mais recente do software upstream, será necessário atualizar o número da versão antes do traço (-). Digamos, uma versão em 1.2-0ubuntu1 , se você iniciar dch -i , ele será alterado para 1.2-0ubuntu2 , o que é bom para corrigir mas Se você precisar de uma nova versão, provavelmente desejará alterá-la para 1.3-0ubuntu1 .
Se você precisar corrigir, agora é a hora de adicionar suas alterações. Nas ramificações que têm apenas um diretório debian / , você pode usar bzr bd-do (requer o pacote bzr-builddeb) para mudar para uma árvore de trabalho onde você pode fazer mudanças , use o quilt ou qualquer sistema de patch e, em seguida, "exit 0" para que as alterações sejam copiadas de volta.
Se você quiser uma nova versão upstream, uma vez alterado o changelog, você provavelmente executaria um comando semelhante a este:
debian/rules get-orig-source
Isso geralmente faz o download do tarball correto do editor do desenvolvedor para você começar. Se mais alterações forem necessárias, proceda como descrito acima para "aplicar patches" ou alterar outros arquivos no diretório debian / , caso contrário, você está quase pronto:
bzr bd -S
bzr bd cuidará da construção. Chamá-lo sem argumentos começa a construir em seu sistema, enquanto chama-o com -S diz para preparar um pacote fonte, que incluirá um ..._ source.changes arquivo que é o que você deseja enviar para o seu PPA (use dput ppa: < yourname > / < nome do seu ppa > < altera o arquivo > para fazer isso).
Para pacotes do NetworkManager, é um pouco diferente. Vamos ver especificamente o openconnect:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect
Verifique se você também tem 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 criar o network-manager-openconnect. Você pode precisar de 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 voar e um tarball com um número de versão longo aparecerá. Esse é o código mais recente que você poderia obter para o nm-openconnect.
Você precisará atualizar o changelog com o número da versão do tarball, apenas mantendo o sufixo -0ubuntu1 intacto.
Ou, altere debian / changelog com o número da versão específica que você deseja e, em seguida, execute: debian / rules get-current-source
Como os plugins não mudam muito, você deve ser capaz de simplesmente construir o pacote a partir daí, usando bzr bd como acima. Caso contrário, aplique as alterações necessárias conforme acima.
Não se esqueça de bzr commit depois de fazer alterações.
Primeiramente, esqueci de adicionar, não hesite em usar o sistema de proposta de mesclagem ( Propor para mesclar link da página da sua filial no LP) quando as alterações que você fizer puderem beneficiar outras pessoas. Normalmente você pode apenas propor a fusão contra o ramo em que o seu é baseado (por exemplo, lp: ~ network-manager / network-manager / openconnect-ubuntu.head neste caso).