PPA e embalagem: tendo versões de pacotes para várias distribuições

36

(citação do chat)

Tenho um PPA na barra de ativação para pacotes de origem para um projeto de bot de IRC ao qual estou associado (já que é todo o pacote intermediário para o material entre os lançamentos, é classificado como um PPA "experimental"). Pergunta: Eu já empacotei o material para uma construção lúcida. Alguma pista de como eu seria capaz de criar a mesma embalagem, exceto embalá-la para dissidente e colocá-la no mesmo PPA em que coloquei a embalagem lúcida?

Thomas Ward
fonte

Respostas:

42

Provavelmente, a maneira mais fácil é simplesmente copiar os binários no Launchpad:

  1. Vá para o seu PPA e clique em 'Visualizar detalhes do pacote':

    insira a descrição da imagem aqui

  2. Clique em 'Copiar pacotes':

    insira a descrição da imagem aqui

  3. Selecione os pacotes Lucid:

    insira a descrição da imagem aqui

  4. Selecione 'Maverick' para a série e escolha 'copiar binários existentes':

    insira a descrição da imagem aqui

  5. Clique em 'copiar pacotes' e pronto!

Nathan Osman
fonte
Muito obrigado. Suas instruções estavam prontas . Muito obrigado pela resposta rápida também.
Thomas Ward
@ Evil: Não há problema. Ainda bem que pude ajudar!
Nathan Osman
4
NOTA PARA OUTRAS PERGUNTAS QUE LIGAM AQUI !!! Copiar binários existentes NÃO FUNCIONA SEMPRE para programas destinados a outras versões do ubuntu! Veja meu PPA rkhunter e os changelogs da versão Lucid para entender o que quero dizer: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
Thomas Ward
@ Thomasmas: Bom ponto - nem sempre funciona.
Nathan Osman
2
@KhurshidAlam Desculpe pela resposta super super tardia. Isso falhará com um "Registro de Alterações Inválido" e, como tal, você precisará marcar cada um separadamente separadamente ao usar um PPA com uma versão diferente. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) é um bom exemplo disso, porque, para torná-lo compilado, tenho que adicionar a distribuição à versão para compilá-lo corretamente com todas as diferentes bibliotecas. (Eu mantenho os ppas da equipe nginx por enquanto, usando-os como exemplo).
Thomas Ward
11

Se a cópia dos binários para o pacote que você está construindo não funcionar, será necessário fazer o upload de um pacote de origem para cada versão da distribuição editando o debian/changelogarquivo.

Como reembalar para outra versão da distribuição

  1. Edite o debian/changelogarquivo no diretório do pacote de origem
  2. Alterar tanto a versão e distribuição alvo para refletir que distro você está construindo para

    Por exemplo:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Recrie o pacote de origem: debuild -S
  4. Faça o upload do .changesarquivo para o seu PPA:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Se a compilação for bem sucedida, parabéns, você acabou de criar um pacote para essa distribuição! Caso contrário, você deverá verificar o log de compilação na Barra de Ativação e solucionar os problemas encontrados.

Referências:

TrinitronX
fonte
Isto é o que eu faço! : D Os MOTUs (deuses do repositório do universo) explicaram isso quando eu precisei criar compilações diferentes para nginxe outros programas em um PPA, e eles ajudaram a resolver muitos dos meus problemas. Obrigado por postar isso! :)
Thomas Ward
Sim, imaginei que essas informações seriam úteis para documentar e disponibilizar para novos empacotadores, pois pode haver uma curva de aprendizado acentuada no uso de todas as ferramentas de empacotamento debian, uploads de PPA, convenções e compilações com falha de depuração.
TrinitronX
De fato. Não estou alterando a resposta aceita, porque, no momento desta pergunta, não havia necessidade de se preocupar com as diversas bibliotecas disponíveis nas várias versões do Ubuntu. Com nginxou rkhunteroutros pacotes que eu suporte frequentemente, há um enorme problema de dependência a ser resolvido (diferente depends:no arquivo de controle e outros), então eu sempre uso programversion-1~RELEASE0onde ~ RELEASE0 sempre tem algum número com o release fornecido. Geralmente, quando eu Esse é o caso do Debian para Ubuntu :)
Thomas Ward
Sim, as dependências são definitivamente um ponto problemático para o backporting ;-) Eu concordo, a resposta aceita deve ser suficiente na maioria dos casos, e para os usuários dos repositórios de controle de fonte de bazar, o uso da receita bzr-builder do Launchpad também parece atraente. No entanto, quando se trata de pacotes com muitas dependências, às vezes você precisa criar um pacote personalizado para sua distribuição de destino.
TrinitronX
E eu faço o backport nginxdo Debian Instável para Preciso, Quantal, Raring e Saucy (e Trusty em um PPA, mas também asseguro que Trusty, até o congelamento do Debian, tenha as últimas novidades do Debian mescladas em: P), para a equipe NGINX, mas, infelizmente, às vezes existem bugs que não consigo resolver e o Debian precisa lidar com isso ... é por isso que tenho um bom relacionamento com os mantenedores do Debian :) #
6263 Thomas Ward