Como posso assinar corretamente um pacote modificado e recompilado?

17

Eu corri dpkg-buildpackage depois de obter um apt-get source nginx de uma versão backports do nginx e modifiquei debian/rules para incluir o módulo uwsgi. Os últimos resultados do comando foram:

dpkg-deb: building package 'nginx' in '../nginx_0.7.67-3~bpo50+1_i386.deb'.
dpkg-deb: building package 'nginx-dbg' in '../nginx-dbg_0.7.67-3~bpo50+1_i386.deb'.
 signfile nginx_0.7.67-3~bpo50+1.dsc
gpg: keyring '/home/shogun/.gnupg/secring.gpg' created
gpg: skipped "Faidon Liambotis <[email protected]>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available

 dpkg-genchanges  >../nginx_0.7.67-3~bpo50+1_i386.changes
dpkg-genchanges: warning: the current version (0.7.67-3~bpo50+1) is smaller than the previous one (0.7.67-3)
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT included)
dpkg-buildpackage: warning: Failed to sign .dsc and .changes file

Ele reclama que, por não ser o mantenedor original do pacote, minha chave não combinava.

Isso é realmente necessário? Se sim, como posso usar minhas chaves para fazer a correspondência gpg?

    
por meder omuraliev 17.10.2010 / 12:30

3 respostas

29

Os pacotes Debian de assinatura PGP não são necessários se você os criou para seu próprio uso privado. É apenas o método comum de autenticação para desenvolvedores Debian (oficiais) quando eles carregam novos pacotes na ramificação "unstable" do Debian.

Para evitar a mensagem de erro, use:

dpkg-buildpackage -uc -us

(veja também o manpage do dpkg-buildpackage)

    
por 17.10.2010 / 12:35
6

Quando você faz uma versão diferente de um pacote (como você fez, desde que você alterou as regras de compilação), você deve realmente adicionar uma entrada de changelog. Dessa forma, o seu pacote terá um número de versão diferente (assim você saberá imediatamente que não é o pacote padrão da distribuição), e você terá um rastreamento do que mudou.

Edite debian/changelog e adicione uma entrada que imite o formato das entradas existentes. Data a partir de hoje, e escolha um número de versão like 0.7.67-3~bpo50+meder1 (você quer algo para o qual dpkg --compare-versions diz que sua versão é mais recente). Coloque seu endereço de e-mail como mantenedor; Dessa forma, você tem uma indicação clara de que esse é um pacote que você modificou e dpkg-buildpackage solicitará sua senha GPG.

Se você é um usuário do Emacs, instale o pacote dpkg-dev-el e use os comandos C-c C-a e C-c C-c para adicionar e finalizar sua entrada do changelog.

    
por 17.10.2010 / 15:13
5

Embora a assinatura de um pacote não seja necessária e as opções -uc -us possam ser usadas para evitar essa etapa, também pode ser útil assinar um pacote, especialmente se outras pessoas o usarem, ou você estará enviando através de caminhos de comunicação inseguros. E não é nada difícil.

Para gerar uma boa assinatura, consulte a página man do dpkg-buildpackage . Por padrão, ele assina pacotes com gpg. Das mensagens de erro impressas, parece que você ainda não tinha gerado uma chave gpg ainda. Veja por exemplo GnuPrivacyGuardHowto - Documentação do Ubuntu da comunidade para obter algumas instruções e informações básicas.

Como @Gilles observa, você também deve alterar o número da versão do pacote através do arquivo changelog, e fornecer o endereço de e-mail para a chave gpg que você estará usando. Uma maneira fácil de fazer isso é simplesmente executar o comando dch --local foo , em que "foo" é uma palavra-chave para a alteração. Se você realmente não quiser fazer isso e precisar especificar um nome / endereço do mantenedor ou do usuário do remetente diferente, ou uma chave específica a ser usada ao assinar, também poderá usar o -m , -e ou -k opção ao construir.

Veja Como reconstruir os pacotes Debian para mais dicas.

A parte complicada vem quando alguém está tentando decidir se um determinado pacote é assinado por alguém em quem confiam. Confira a rede de confiança do PGP para lidar com as questões sutis envolvidas.

    
por 01.03.2012 / 22:53

Tags