Linux Kernel的开发,都是通过邮件发patch的形式来review的。如果用自己的邮件服务器当然没问题。
不过如果想用gmail帐号来发patch,必须翻墙才行;
如果你的gmail帐号开通了两步认证(如果没有,建议开通),还需要额外的App-Specific密码。
这里介绍一个简便的方法。
前提
有一个翻墙的方式,比如Shadowsocks
开通了gmail两步认证。
原理
- 配置
git
使用msmtp
来发送邮件; - 通过
proxychains
来翻墙; - 通过App-Specific密码来登录Google的SMTP server
步骤(以shadowsocks为例)
- 安装
msmtp
,proxychains
sudo apt-get install msmtp proxychains
- 配置
msmtp
使用gmail的SMTP服务$ cat ~/.msmtprc # Example for a user configuration file # Set default values for all following accounts. defaults tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt logfile ~/msmtp.log # My email service account gmail host smtp.gmail.com port 587 from <your-gmail-id>@gmail.com auth on user <your-gmail-id> @gmail.com password # Set a default account account default : gmail
- 配置
proxychains
使用shadowsocks$ cat /etc/proxychains.conf ... [ProxyList] # add proxy here ... socks5 127.0.0.1 1080 ## Set socks5 proxy to your sslocal ip/port
- 配置App-Specific Password
- 登录到https://security.google.com/settings/security/apppasswords
- Generate一个密码,建议设置一个
custom name
,比如说linux-kernel
- 这个密码一般是16个ascii码,保留好这个密码,建议保存在KeePass里。
- 生成git patch并发送邮件
# 生成patch # 生成patch git format-patch --to=<kernel-mailing-list> --cc=<reviewer> --subject-prefix="PATCH linux" <revision range> # 启动shadowsocks sslocal -c <your-ss-config.json>& # 通过proxychains来发送邮件 proxychains git send-email <your patches>.patch
当它提示要输密码的时候,不要输gmail的密码,输入之前generate的
linux-kernel
的密码password for <your-gmail-id>@gmail.com at smtp.gmail.com:
Done!