Eu gostaria de criar uma versão atualizada do pacote network-manager-openconnect no Ubuntu. Aparentemente, preciso obter a fonte do pacote mais recente:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
Então o que? O pacote parece ter uma maneira de se atualizar a partir do código upstream mais recente usando o git. Mas como faço para fazer isso?
installation
network-manager
launchpad
package-management
James Ward
fonte
fonte
Respostas:
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:
Em seguida, mude para ele e atualize o log de alterações:
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:
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 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:
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:
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).
fonte
Ok, atualizado sobre como extrair o código da plataforma de lançamento
Qual é a dose retirada do código do lp (serviço de hospedagem da barra de ativação). Precisamos descobrir onde está o código.
Tente mudar para o diretório em que deseja trabalhar ou adicione o diretório para onde você e o código devem ir.
Se você já fez isso, provavelmente terá um diretório no diretório home
Deve haver um fiel do README nesse diretório para ver o que deve estar lá. Dê uma olhada no código do projeto , aqui está um link para o README.source
O README deve ter instruções para criar esse projeto individual.
Outras ferramentas bzr úteis para instalar
O bzr-explorere permitirá que você navegue em seus repositórios bzr que você criou em sua máquina em uma GUI.
Outra nota. Pode ser necessário extrair toda a fonte do gerenciador de rede para criar a conexão aberta de um componente. Pode haver muitas dependências e entre componentes diferentes.
Você precisa criar uma correção para o pacote opneconnect atual e, em seguida, criar um patch usando todas as ferramentas que você usa. E envie para o mantenedor do pacote.
Ou, se você deseja usar o seu novo pacote de correção localmente, deseja criar um arquivo de pacote .deb.
A criação de um pacote está bastante envolvida, leia os seguintes links
fonte