Assina automaticamente arquivos de pacote a partir de debuild e upload com dput

0

Eu criei um pacote fonte para a biblioteca em que estou trabalhando. Eu uso debuild para construí-lo e então posso carregá-lo com sucesso com dput .

Agora eu quero configurá-lo para que eu possa fazer isso automaticamente a partir do Jenkins. O principal problema que estou correndo é assinar os arquivos .dsc e .changes. O que estou tentando fazer é assinar os pacotes com gpg em vez de ter debuild . Dessa forma eu posso assinar os arquivos automaticamente com a opção gpg --passphrase-fd 0 .

Portanto, uso debuild com as opções -uc e -us e desmarque os arquivos com gpg . Mas quando faço isso, criam .dsc.asc e source.changes.asc separadas. Quando eu tento fazer o upload com dput , recebo o erro

Checking signature on .changes
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.

Isso parece sugerir que devo listar o arquivo .asc como um argumento para dput , mas não consigo fazer isso funcionar.

    
por Sean Lynch 02.12.2012 / 20:54

2 respostas

0

A resposta fácil é: as compilações diárias do Launchpad fazem tudo isso para você com bastante segurança.

Se você quiser fazer upload de fontes do Jenkins, sugiro criar uma chave apenas para esse trabalho no Jenkins. Ter uma senha nele não melhoraria muito a segurança, se o trabalho de Jenkins tivesse que saber a frase secreta, então seria melhor deixá-la desprotegida.

Se você realmente deseja assinar os arquivos .dsc e .changes manualmente, assine-os com gpg --clearsign e renomeie os arquivos .asc dos originais.

    
por tumbleweed 09.12.2012 / 17:42
6

Eu encontrei a seguinte solução com debsign e a opção -p :

  • use debuild sem a assinatura, como você mencionou
  • use então debsign com -p opção definindo a senha para usar, assim

    debsign \
      -p'gpg --passphrase-file /home/myname/my_passphrase_file.txt --batch --no-use-agent'\
      -S -kMYKEYID package_source.change
    

Ainda tendo alguns outros problemas, mas esta parte parece funcionar. Assinar arquivos com GPG diretamente não funciona, pois as somas de verificação calculadas durante o debuild são alteradas.

Eu sempre prefiro armazenar chaves com senha de qualquer maneira.

    
por Raffi 24.08.2015 / 22:01