又是一个德比辛图书馆
pydebsign的Python项目详细描述
动机
debsign是使用gpg对debian.changes和.dsc文件pare进行签名的devscripts命令, 该命令不能在没有tty的环境中使用,例如由ci调用eking。
我试着使用python的子流程模块debsign,如下所示, 但始终返回输入密码短语提示。 在使用gnupg代理和keyring的情况下也是一样的。
>>> import subprocess >>> import shlex >>> command0 = 'echo -e "%s\n%s\n"' % (`passphrase`, `passphrase`) >>> command1 = '/usr/bin/debsign -k %s %s' % (`keyid`, `.changes`) >>> process0 = subprocess.Popen(shlex.split(command0), ... stdin=subprocess.PIPE, ... stdout=subprocess.PIPE, ... stderr=subprocess.PIPE) >>> process1 = subprocess.Popen(shlex.split(command1), ... stdin=process0.stdout, ... stdout=subprocess.PIPE, ... stderr=subprocess.PIPE) >>> stdout, stderr = process.communicate()
所以,我决定创建一个python库来执行同样的行为debsign。
目标
- 它可以使用gpg对和文件进行签名,而无需输入交互式密码。
- 它还可以被用户使用,不能登录shell上的ci,如jenkins。
需要
- Debian系统,或从Debian派生的系统。
- debian gnu/linux喘息
- debian gnu/linux杰西/sid
- ubuntu 14.04 LTS
- Debian包如下;
- gnupg
- dput
- 林寻
- Python(=Python2.7)或Python3
- python包如下;
- python_gnupg(因为debian包是python gnupg或python3 gnupg)
- python_debian(因为debian包是python debian或python3 debian)
- chardet(因为debian包是python chardet或python3 chardet)
用法
一般用法;:
>>> from pydebsign import debsign >>> debsign.debsign_process('/path/to/some.changes', passphrase='secretkey')
当使用另一个GPG密钥环而不是默认的GPG密钥环时;:
>>> from pydebsign import debsign >>> debsign.debsign_process('/path/to/some.changes', passphrase='secretkey', ... keyid='keyid', gnupghome='/path/to/gpghome')
历史记录
0.1.5(2015-08-25)
- 将狮身人面像主题更改为狮身人面像主题。
- 来自mkouhei/travis包的合并拉取请求9
- 添加执行apt get update。
- 显式启用sudo。
0.1.4(2014-12-21)
- 不支持的Python 3.2
- 添加Sphinx文档并应用阅读文档
- 已将pep8、pyflakes、pychecker、pylint迁移到tox
0.1.3(2014-05-31)
- 已修复6 dput check local section失败
- 不受支持的python2.6
0.1.2(2014-05-27)
- 修正3无法解码元音变音符。
0.1.1(2014-05-26)
- 解决了python_gnupg 0.3.0(喘息版本)的向后兼容性问题。
0.1.0(2014-05-26)
- 初始版本
待办事项
- 添加命令行界面。