写在前面
其实在写提交补丁之前,需要开篇大概讲一下开源社区运作模式和流程,并讲下在开源社区如何参与讨论以及一些注意事项,但是因为内容限制,这里无法展开讲述。但既然提交补丁已经涉及到与其他参与者交流,我还是大概讲下提交补丁需要注意的事情:
- 提交补丁之前请仔细检查补丁,并通过checkpatch.pl工具仔细检查(后面会提到这个工具),确保提交上去的正确性(毕竟邮件发送完毕后无法撤回);
- 在提问或者提交相关补丁之前,一定要先查阅相关资料,保证自己对这块已经吃透,提问或者提交的补丁确实算是“问题”(至少自己看来是问题)。主要避免自己什么都不懂张口就问,然后发现是一些低级问题。
- 请遵从LTP提交补丁规则习惯。比如标题一般 [LTP][PATCH xx] 主题,其实这个很简单,订阅邮件列表后先看看别人怎么提交的。
- 有好的idea,尽量以代码方式体现,言语是苍白的(”show me the code”)。
- 讨论问题尽量有根有据,礼貌客气,大家欢快讨论。千万不要争论,有意见可以适当辩论,必须带有依据(证据),更不能辱骂(全世界参与者都在看着哈)。
嗯,如果还是怕出问题,那么还是多看看邮件列表其他人的邮件交流方式吧。
补丁提交方式
1.先自己造个bugfix,以testcases/kernel/syscalls/open/open01.c为例
static void setup(void)
{
SAFE_MKDIR(TEST_DIR, 0755);
}
static void cleanup(void)
{
if (fd > 0)
SAFE_CLOSE(fd);
}
setup()通过mkdir(TEST_DIR)创建了TEST_DIR,那么cleanup()需要rmdir(TEST_DIR) (哎呀,没准真是问题呢)。
2.进行修改,添加SAFE_RMDIR()删除目录