Como criar e administrar PPAs de arquitetura múltipla?

13

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?

maxschlepzig
fonte
1
Também estou realmente interessado neste processo!
Marco Ceppi

Respostas:

7

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 changelogarquivo, 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: anyno debian/controlarquivo 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)

LassePoulsen
fonte
10

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 texto alternativo

Isaías
fonte
1
Isso parece interessante. Não posso usá-lo diretamente, pois não estou usando o bzr nem a barra de ativação para hospedagem de repositório (estou usando o Mercurial). Mas! Talvez seja viável criar um Repositório bzr na barra de ativação e despejar os últimos conjuntos de alterações do meu repositório principal, sempre que eu desejar acionar uma nova compilação de pacote.
Maxschlepzig # 01/09
Não codifico nada com tanta frequência e estou empolgado com isso.
Aperson
@maxschlepzig Faça uma pergunta separada sobre como importar seu material Hg para o Launchpad e eu responderei.
Jorge Castro
6

Em relação às convenções de nomenclatura, o padrão é fazer algo assim:

  • 1.0-0ubuntu1 para o pacote que acaba no arquivo oficial do Ubuntu
  • 1.0-0ubuntu1 ~ lucidppa1 para a versão do pacote que você colocou no seu PPA para lucid
  • 1.0-0ubuntu1 ~ karmicppa1 para a versão desse pacote para o Karmic

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.

Scott Ritchie
fonte
Scott - existe algum tipo de documentação sobre isso?
Bartosz Radaczyński 19/03/2013
O ~ e o material provavelmente estão rotulados em algum lugar obscuro. O resto são apenas convenções que observei entre outros desenvolvedores, não práticas documentadas oficiais.
Scott Ritchie
Ok, obrigado, sua convenção de nomenclatura sugerida funciona bem.
Bartosz Radaczyński
Devo acrescentar que algumas vezes isso é estendido ainda mais para colocar um ~ anterior ao ppa: 1.0-0ubuntu1 ~ karmic1 ~ ppa1 O motivo para isso é que uma atualização oficial estável do Karmic pode ser lançada como 1.0-0ubuntu1 ~ karmic1, e nós deseja que a versão do PPA seja menor que isso.
Scott Ritchie
Tinha que perguntar no #launchpad no Freenode e, aparentemente, isso é semi-documentado na Wiki do LaunchPad em Construindo um pacote de origem . Obrigado pelas informações sobre esta convenção, é bastante útil ^ _ ^ #
TrinitronX 16/12