Como copio um pacote do Debian para o meu PPA?


10

Eu gostaria de adicionar o pacote gourmet mais recente do Debian sid ao PPA da nossa equipe, para que os usuários do Ubuntu que gostariam de executar uma versão atualizada do Gourmet possam adicionar esse PPA às suas fontes de software. (Dependendo da dependência, isso não deve ser um problema, pois praticamente todas as nossas dependências atuais já estão disponíveis em todas as versões atualmente suportadas do Ubuntu.)

Eu baixei o *.dscarquivo e o tarian debian e orig, e até descobri que poderia usá- lo para o source.changesarquivo do pacote . Também baixei a chave pública do mantenedor do Debian para dputvalidar o pacote. Tentei fazer o upload do pacote para o nosso PPA usando dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(tentei também sem o tilda.) Isso pareceu ter êxito, mas não recebi um email de confirmação e agora nenhum pacote é exibido no nosso PPA , o que me leva a acreditar que o pacote foi rejeitado porque a chave do mantenedor do Debian obviamente não está entre as chaves dos membros da nossa equipe.

Então, qual é a maneira mais fácil de "copiar" um pacote do Debian (sid) para um PPA do Launchpad? Eu realmente preciso reconstruir o pacote inteiro localmente antes de poder carregá-lo?


BTW, como a versão de desenvolvimento do Ubuntu sincroniza automaticamente seus pacotes do Debian (antes do DebianImportFreeze), aceitarei com satisfação uma resposta dizendo como copiar um pacote do Utopic.
Bernhard Reiter

Respostas:


12

Você precisa reconstruir o pacote de origem localmente antes de fazer o upload para ajustar o log de alterações e gerar novamente o arquivo de alterações. Embora desde que o backport de um pacote seja uma tarefa bastante comum, isso tenha sido script. Confira o backportpackage Ícone da página de manualcomando ubuntu-dev-toolsInstale o ubuntu-dev-tools package.

Para fazer o backport de um pacote do Debian, simplesmente forneça a série de distribuição de destino, PPA e o arquivo dsc para o pacote:

backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc

É ainda mais simples fazer o backport de um pacote de uma versão do Ubuntu para outra, pois você não precisa encontrar o arquivo dsc. Digamos que queremos fazer backport de utópico para confiável:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet

Impressionante! A única coisa que me parece um bug é que o pacote acabou no meu PPA pessoal (~ ockham-razor / ppa), embora eu tenha passado ~gourmet/ppacomo argumento o -uparâmetro. (Mas eu estava felizmente capaz de copiá-lo do meu PPA para a equipe Gourmet via Launchpad.)
Bernhard Reiter

1

Há algumas maneiras de fazer isto.

Quando fiz isso no Rhythmbox, segui a seguinte receita:

uma. Pegue o arquivo de origem e os arquivos debian

insira a descrição da imagem aqui

b. Descompacte a fonte (.orig.tar.xz)

c. renomear a pasta de origem algo comorhythmbox-3.0.3

c. descompacte o arquivo debian (.debian.tar.xz)

d. mova a pasta debian para o diretório fonte

e dch -ialterar o arquivo de registro de alterações

f. mude o nome do pacote "instável" para o nome do destino do ubuntu - aqui eu usei o preciso para o 12.04. Altere a versão conforme apropriado para seu aplicativo. Aqui rhythmbox era 3.0.3 - então eu acabei de adicionar-1~ppafossfreedom

rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low

  * rebuild

 -- fossfreedom <fossfreedom@somewheremail.com>  Thur, 07 Jun 2012 13:19:18 +0100

g. crie um novo pacote de origem:dh_build --createorig

h. Crie apenas a fonte com sua chave: debuild -S -k0xABCDEFGonde ABCDEFGestá sua chave

Eu. faça o upload do seu pacote para construção:

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    

Bem, isso basicamente reconstrói o pacote. Ah bem. Eu esperava alguma maneira mais fácil, mas acho que não há.
Bernhard Reiter

Dê uma olhada no dgetcomando do devscriptspacote. Isso simplificará bastante.
andrewsomething

@andrewsomething - transforme isso em uma resposta com um exemplo :) - Eu estaria interessado em ver se isso também pode simplificar minha embalagem.
fossfreedom

Bem, eu tenho uma resposta totalmente diferente, mas você ainda deve aprender sobre dget=) O arquivo dsc contém todas as informações sobre as outras partes do pacote de origem. Então, dgetele pega tudo e extrai-o corretamente se você der um link para o arquivo dsc. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
andrewsomething

resposta elegante - bem feito +1
fossfreedom
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.