Eu tenho um programa que precisa ser recompilado para todas as versões do ubuntu.
Atualmente, estou empacotando-o usando o PPA do Ubuntu apenas para a distribuição atual.
Eventualmente, eu tenho que fornecer pacotes para a versão anterior do Ubuntu.
Não tenho certeza de como fazer isso.
Como o servidor de compilação PPA do Ubuntu funciona - apenas olha o campo de distribuição na entrada mais recente do changelog (no arquivo debian / changelog) para determinar para qual distribuição o pacote deve ser construído?
A especificação debian permite adicionar várias distribuições no campo de distribuição. Mas isso não parece me ajudar.
Alguns documentos do ubuntu falam sobre codificar o nome da distribuição no número da versão (no arquivo de registro de alterações debian).
Mas como isso funciona na prática? Uma nova versão do programa está disponível, e então? Eu adiciono para cada distribuição uma nova entrada no registro de alterações e o servidor de compilação do PPA cria automaticamente para cada distribuição novos pacotes após a dedução? Ou o servidor de compilação do PPA apenas analisa a primeira entrada no registro de alterações?
Respostas:
O caminho a percorrer é fazer o upload uma vez para cada versão do Ubuntu .
O Launchpad não criará pacotes para versões do Ubuntu que não são mais suportadas e apenas criará um pacote para uma versão específica do Ubuntu. A versão alvo é (como você já sabe) especificada no
changelog
arquivo, pela entrada mais recente!Lembre-se de estar ciente de que os pacotes dos quais seu programa depende podem não estar disponíveis na mesma versão em todas as versões do Ubuntu.
Você também fala sobre "multi-arquitetura" (arquitetura = tipo CUP, por exemplo, x86, LPIA, AMD64), isso não faz diferença, pois cada pacote carregado é criado para todas as arquiteturas disponíveis, desde que você tenha
Architecture: any
nodebian/control
arquivo de definição de pacote ( ), isso também permite que o pacote dependa de pacotes diferentes para arquiteturas diferentes (definindo o pacote mais de uma vez)fonte
O Launchpad possui um novo recurso atualmente em beta que permite criar seu pacote para várias versões do ubuntu de uma só vez, sem nenhum trabalho extra. Você pode até criar automaticamente seus pacotes todos os dias. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted
fonte
Em relação às convenções de nomenclatura, o padrão é fazer algo assim:
O motivo é que um ~ no campo da versão representa "menos que nada" para um número de versão. Portanto, se alguém adicionar seu PPA no Karmic, ele receberá o pacote ~ karmicppa1. Quando eles atualizarem para o Lucid (e lerem seu PPA), ele será substituído pelo pacote Lucid PPA. Se o seu pacote entrar no arquivo oficial, a transição para longe do seu PPA ocorrerá sem problemas.
A outra vantagem é que colocar o release no campo da versão deixa claro a qual release os arquivos se aplicam (e lembra sutilmente que você faça o upload de um por release). Você também pode precisar de ramificações diferentes para cada versão do Ubuntu para quando tiver dependências diferentes, por exemplo.
fonte