从debuild自动签名包文件并使用dput上传

我已经为我正在开发的I库创建了一个源包。 我使用debuild来构建它然后我可以使用debuild成功上传它。

现在我想设置它,以便我可以从Jenkins自动执行此操作。 我遇到的主要问题是签署.dsc和.changes文件。 我想要做的是用gpg签名包而不是debuild这样做。 这样我就可以使用gpg选项--passphrase-fd 0自动签名文件。

所以我使用debuild选项-uc-us然后使用gpg清除文件。 但是当我这样做时,它会创建一个单独的.dsc.ascsource.changes.asc 。 当我尝试使用dput上传时,我得到了错误

 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. 

这似乎表明我应该将.asc文件列为.asc的参数但我不能dput工作。

简单的答案是:Launchpad每日构建,他们相当安全地为您完成所有这些。

如果你想从Jenkins做源代码上传,那么我建议为这个Jenkins工作创建一个密钥。 如果Jenkins的工作必须知道密码短语,那么对它进行密码短语就不会极大地提高安全性,所以人们不妨保护它不受保护。

如果您确实想手动签署.dsc.changes文件,请使用gpg --clearsign对其进行gpg --clearsign ,并将.asc文件重命名为.asc文件。

我用debsign-p选项找到了以下解决方案:

  • 正如你所提到的,使用没有签名的debuild
  • 使用然后使用-p选项设置debsign ,设置要使用的密码,就像这样

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

仍然有一些其他问题,但这部分看起来像工作。 直接使用GPG签名文件不起作用,因为在debuild期间计算的校验和被更改。

我总是喜欢用密码存储密钥。