阅读OpenSSL自带的CONTRIBUTING文档,其中要注意的有以下几点:
- 签署Contributor License Agreement (CLA),详细访问https://www.openssl.org/policies/cla.html
- 代码需要遵循他们的coding style
在GitHub上forkOpenSSL的项目
克隆fork之后的OpenSSL到本地
1git clone https://github.com/[username]/openssl.git(可选)对于已克隆到本地的项目,要让fork的项目和原项目保持同步,使用以下指令更新本地和远端项目
1234cd path/to/repogit fetch --allgit merge [original_repo_name]/mastergit push -u origin定位缺陷
在issue页面提交issue。Title要写清楚缺陷位置及内容,如#6822中写道
Missing return value check of BN_sub() in crypto/rsa/rsa_ossl.c
;在comment位置适当加上详细的描述,包括具体位置、为什么这是一个缺陷并附上一小段代码片段。(可选)新建分支用于修改代码
1git checkout -b [new_branch_name]修复缺陷,保存
提交修改
12git add [modified_files]git commitcommit message一般包含两部分:
- title:用简短的话说明本次修改的内容,一般格式为:
[file_name]: do something
。如#6585中写道ssl/statem/statem_srvr.c: add missing check for EVP_PKEY_get0_DH()
。 - body:解释本次修改的原因,如果修复了某个issue,使用
Fixes #[issue_ID]
来引用。
- title:用简短的话说明本次修改的内容,一般格式为:
push commit
1git push在fork项目网页上可以发现可以create pull request,如果前面步骤规范的话,直接点击create即可