Corri dpkg-buildpackage
depois de obter uma apt-get source nginx
versão de backports do nginx e modificar 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 correspondeu.
Isso é realmente necessário? Em caso afirmativo, como posso usar minhas chaves para fazer a correspondência de gpg?
ls -al
. Falha ao criá-los devido à falha na verificação do gpg, certo? Significado com seu novo comando, ele deve criá-los? Ou estou enganado?Ao criar uma versão diferente de um pacote (como você fez, desde que alterou as regras de compilação), você deve realmente adicionar uma entrada no registro de alterações. Dessa forma, seu pacote terá um número de versão diferente (para que você saiba imediatamente que não é o pacote padrão da distribuição) e terá um rastro do que mudou.
Edite
debian/changelog
e adicione uma entrada imitando o formato das entradas existentes. Data de hoje e escolha um número de versãolike 0.7.67-3~bpo50+meder1
(você deseja algo quedpkg --compare-versions
diga que sua versão é mais recente). Coloque seu endereço de email como mantenedor; Dessa forma, você tem uma indicação clara de que este é um pacote que você modificou edpkg-buildpackage
solicitará sua senha do GPG.Se você é um usuário do Emacs, instale o
dpkg-dev-el
pacote e use os comandosC-c C-a
eC-c C-c
para adicionar e finalizar sua entrada no registro de alterações.fonte
Embora a assinatura de um pacote não seja necessária e as
-uc -us
opções possam ser usadas para evitar essa etapa, também pode ser útil assinar um pacote, especialmente se outros o usarem, ou você o enviará por caminhos de comunicação inseguros. E não é nada difícil.Para gerar uma boa assinatura, consulte a página de manual do dpkg-buildpackage . Por padrão, assina pacotes com gpg. A partir das mensagens de erro impressas, parece que você simplesmente ainda não havia gerado uma chave gpg. Veja, por exemplo, GnuPrivacyGuardHowto - Documentação da Comunidade Ubuntu para obter algumas instruções e informações.
Como observa o @Gilles, você também deve alterar o número da versão do pacote por meio do arquivo changelog e fornecer o endereço de e-mail da chave gpg que você usará. Uma maneira fácil de fazer isso é simplesmente executar o
dch --local foo
comando, onde "foo" é uma palavra-chave para a alteração. Se você realmente não quer fazer isso, e necessidade de especificar a / endereço, ou uma chave específica mantenedor ou Uploader nome diferente para ser usado quando assinatura, você também pode usar o-m
,-e
ou-k
opção ao construir.Veja Como reconstruir pacotes Debian para mais dicas.
A parte complicada ocorre quando alguém está tentando decidir se um determinado pacote é assinado por alguém em quem confia. Confira a PGP web of trust para lidar com os problemas sutis envolvidos.
fonte