# 为 FreeBSD 提供帮助

### Jordan Hubbard

$FreeBSD: doc/zh_CN.GB2312/articles/contributing/article.sgml,v 1.6 2010/02/12 23:30:05 delphij Exp $

法律通告

无论是作为个人还是组织机构，如果您希望为FreeBSD项目提供帮助， 都可以在本文中找到合适的方法。

[ 章节模式 / 完整模式 ]

您希望给 FreeBSD 项目做点什么吗？ 太好了， 我们欢迎您。 FreeBSD 正是 依靠 广大用户的贡献才得以发展壮大的。 我们不仅非常感谢您所做的贡献，而且，这些工作对于 FreeBSD 的持续发展也至关重要。

也许与您想象的不同， 您既不必是一名出色的程序员， 也无须和 FreeBSD 核心团队成员有很好的私交， 我们会一视同仁的对待您的工作。 FreeBSD 的开发人员遍布全球， 大家技术专长各异， 年龄分布也非常广泛。 每天， 我们都在面对持续增长的工作而苦于没有足够的人手， 因此我们随时欢迎您的帮助。

FreeBSD 项目处理的是一个完整的操作系统环境， 而不只是一个内核或是一些零散的工具包。 因此， 我们的 `TODO` 任务列表里包含各种各样的工作， 从文档、用户测试、演示， 到系统安装程序和高度专业的内核开发。 因此无论您的技术水平如何， 从事何种领域， 都可以帮助这个项目。

我们鼓励从事和 FreeBSD 相关工作的企业和我们联系。 您需要一些特殊的扩展来使您的产品运转起来么？ 您会发现我们很乐意答应您的请求， 除非是特别稀奇古怪的。 您是否正从事相关的增值业务？ 让我们来帮助您吧， 我们也许可以在其中的某些方面相互协作。 自由软件世界正在努力打破旧有的关于软件开发、 销售和维护的框框， 我们希望恳请您至少能给它一次机会。

# 1 我们的需求

下面列出了一些需要完成的任务和子项目， 它们基本上可以被等同于 `TODO`(任务列表) 列表， 以及用户的要求。

## 1.1 正在进行中的非开发任务

很多参加FreeBSD项目的人不是程序员。 这个项目里有文档撰写者、 网页设计师、 以及技术支持人员。 对于这些志愿者来说， 他们只需要贡献一些时间， 并且具有学习的意愿。

1. 您可以经常通读FAQ和手册， 如果您发现了繁琐的解释， 或者是过时的知识， 甚至完全不正确的地方， 都请告诉我们。 如果您能顺手把他们改过来那就更好了 (SGML其实并不难学， 但我们也不反对您直接提交 ASCII 的版本)。

2. 帮助我们把 FreeBSD 文档翻译成您的母语。 如果您的母语版本已经存在了， 您也可以翻译一些其他的文档或者检查那些已有的文档是否是最新更新过的。 您可以先简单看看 FreeBSD 文档计划中有关 翻译的常见问题。 参加翻译工作并不是说您要孤军奋战翻译所有的 FreeBSD 文档。 作为一个志愿者， 做多少工作完全取决于您的意愿。 一旦某个人开始翻译了， 其他人几乎一定会参与到这些工作中来。 如果您只有有限的时间或者精力去翻译部分文档， 您可以首先去翻译安装指南。

3. 阅读 FreeBSD 一般问题邮件列表 并偶尔看一看 the comp.unix.bsd.freebsd.misc newsgroup (甚至有规律地这样做)。 与别人分享您的专业知识， 并帮助他们解决问题是一件令人愉悦的事情； 有些时候您甚至可以在这个过程中学到一些新东西！ 这些论坛有时也会为您提供一些有价值的主意。

## 1.2 正在进行的开发任务

列在这里的大部分任务都需要您投入可观的时间， 或者需要您在 FreeBSD 内核方面有丰富的知识， 或者两者都要。 当然这里也有很多重要的任务也许您一个 “周末开发人员” 就可以干完。

1. 如果您正在运行 FreeBSD-CURRENT 版本并且有一条高速的 Internet接入线路， 您可以访问 `current.FreeBSD.org`， 这里每天会有一个新版本 ── 如果您有空， 您可以隔三岔五地下载一份并且安装它， 其间如果出了什么问题，请告诉我们。

2. 阅读 FreeBSD 问题报告邮件列表。 您可能会为这些问题提供具有建设性意义的评论， 或者帮忙测试一些补丁。 此外， 您甚至可以尝试修正其中的一些问题。

3. 如果您知道有一些修正已经在 -CURRENT 上成功地进行， 但在经过一段时间之后仍然没有合并到 -STABLE (通常是 2周左右)， 给相关的 committer 发一封礼貌的提示信。

4. 将第三方软件加入到源代码中的 `src/contrib` 目录。

5. 确保 `src/contrib` 中的代码是最新的

6. 以更高的警告级别构建源代码 (或一部分源代码) 并清理这些警告。

7. 更新那些在 ports 中使用过时的东西， 例如 `gets()` 或包含 `malloc.h` 所产生的警告。

8. 如果您制作了 ports， 并进行了一些针对 FreeBSD 的改动， 将您的补丁发回给原作者 (这样下次升级时您的工作会变得轻松一些)。

9. 获取一份正式的标准， 如 POSIX® 的副本。 您可以在 FreeBSD C99 & POSIX 标准顺应项目 网站上得到相关的链接。 将 FreeBSD 的行为同标准进行比较。 如果与标准不同， 特别是那些细节地方的微小差异， 请发送一个关于它的 PR (问题报告)。 如果可能， 请指出如何修正它， 并随 PR 提交补丁。 如果您认为标准有问题， 请向标准化团体要求对其进行重新的考虑。

10. 为这份列表建议更多的内容！

## 1.3 查看整个 PR 数据库

FreeBSD PR 列表 展示了所有当前处于活跃状态的问题报告， 以及由 FreeBSD 用户提交的改进建议。 PR 数据库同时包括了开发人员和非开发人员的任务。 查看那些尚未解决的 PR， 并看看是否有您感兴趣的任务。 这其中可能有一些是非常简单的问题， 只需要看一看并确认 PR 是正确的。 另外一些可能会非常复杂， 或者完全没有包括任何修正。

首先看一看那些还没有人接手的 PR。 如果 PR 已经分配给了其它人， 但看起来是您能够处理的， 您可以给那个人发信， 并询问您是否可以提供帮助 ── 他们可能已经有了可供测试的补丁， 或有一些可供讨论的意见。

## 1.4 从 “点子” 网页上认领项目

FreeBSD 志愿者项目和点子清单 也是提供给愿意为 FreeBSD 项目做出贡献的人们的。 这张清单一直在被定期更新着， 包含了对程序员和非程序员有用的每个项目的信息。

|  | 下一页
|  | 如何提供帮助

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.