<?xml version="1.0" encoding="utf-8"?>


为 FreeBSD 提供帮助


Jordan Hubbard

原著 
修订: 797a990cf7
FreeBSD 是 FreeBSD 基金会的注册商 
IEEE, POSIX, 和 802 是 Institute of Electrical and Electronics Engineers,
Inc. 在美国的注册商 。
许多制 商和经销商使用一些称为商 的图案或文字设计来彰显自己的产品。
本文档中出现的， 为 FreeBSD Project 所知晓的商 ，后面将以
“™” 或 “®” 符号来 注。
2013-11-14 00:20:51 +0000 由 Xin LI.
摘要
 论是作为个人还是组织机构，如果您希望为FreeBSD项目提供帮助，
都可以在本文中找到合适的方法。
[ _节模式 / 完整模式 ]
-------------------------------------------------------------------------------
目录


  1._我们的需求

  2._如何提供帮助

  索引

您希望给 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
项目做出贡献的人们的。 这 清单一直在被定期更新着，
包含了对程序员和非程序员有用的每个项目的信息。

2. 如何提供帮助

帮助改进系统基本上可以分为 5 类：

2.1. 错误报告和一般的注解

通常， 一般意义上的 技术想法和建议应该发到 FreeBSD
技术讨论邮件列表。 同 地， 对于这些东西有兴趣的人
(当然， 他们同时还要能够容忍 大量的 邮件！)
可以考虑订阅 FreeBSD_技术讨论邮件列表。 参见 FreeBSD
使用手册 以了解关于这个邮件列表，
以及其它邮件列表的详细情况。
如果您发现了 bug 或者想要提交某些修改， 请通过 send-pr(1)
程序或使用 基于_WEB_的提交页面 来提交。 请试着填写 bug
报告的每一项。 一般来说， 我们建议在 bug
报告中直接附上补丁， 除非它超过了 65KB。
如果补丁可以直接应用到源代 上， 则建议您在报告的
synopsis 一 写上 [PATCH]。 在附带补丁时， 请 不要
通过复制和粘贴来进行，  为这 做会把 tab 变成空 ，
结果补丁很可能就不能用了。 如果补丁超过 20KB 很多，
应考虑将其压缩 (例如使用 gzip(1) 或 bzip2(1)) 之后用 uuencode(1)
进行编 之后再放进您的问题报告中。
一旦报告被存档，
您会收到一封确认邮件以及一个事件追踪编号。
请保留这个编号，  为您可以在之后使用这个编号，
发邮件到 <bug-followup@FreeBSD.org>
来提供关于该事件的进一步信息。
您需要做的是将编号放到邮件的 题中， 例如 "Re: kern/
3377"。
关于同一问题更进一步的情况应该通过这种方式来提交。
如果您在一段时间之后仍然没有收到确认信 (超过 3 天甚至 1
周， 这取决于您的邮件服务) 或者由于某种原  法使用
send-pr(1) 命令， 则可以发信给 FreeBSD_问题报告邮件列表
要求别人代您发送它。
请参见 这篇文_ 了解如何撰写好的问题报告。

2.2. 对于文档的修订

对于文档的修改由 FreeBSD_文档计划邮件列表 来审查。
请参见 FreeBSD_文档计划初级读本 来获得完整的指导。
请按照 第_2.1_节_“错误报告和一般的注解”
中介绍的方法使用 send-pr(1)
来发送新的文档或者对于现有文档的完善
(哪怕是很小的改进也是欢迎的！)。

2.3. 对于现有源代 的修改

在现有代 上进行修改或增 功能在某种程度上是需要更多技巧的事情，
并且还和您对于目前 FreeBSD 的开发现状的了解有关。
有多种方式可以得到被称作 “FreeBSD-CURRENT” 的 FreeBSD
开发版本， 您可以通过它来了解最近的开发情况。 请参见
FreeBSD_使用手册 来了解使用 FreeBSD-CURRENT 的进一步详情。
在旧的代 上进行修改， 则通常可能由于代 已经过时，
或与新的开发版本差异太大而 法被重新集成到 FreeBSD 中。
如果您订阅了 FreeBSD_公告邮件列表 以及 FreeBSD-CURRENT
邮件列表 邮件列表，
则可以通过它们来大体了解目前的开发状态。
假如说您能够基于尽可能新的代 来完成您的修改，
则下一步要做的事情就是生成您所进行的修改的差异文件，
并将它发给 FreeBSD 的维护人员。 这项工作可以通过 diff(1)
命令来完成。
提交补丁时推荐的 diff(1)  式是一致差异 (unified diff)，
它可以通过 diff -u 来生成。 不过，
如果您修改了大量的代 ， 则使用 diff -
c 来生成的上下文 式 (context diff) 的差异可能更容易阅读，
 而推荐使用。
例如：

  % diff -c oldfile newfile

或者

  % diff -c -r olddir newdir

将分别生成给定文件或目录结构的 context diff。
类似地，

  % diff -u oldfile newfile

或

  % diff -u -r olddir newdir

的作用与前面的类似， 但采用的 式是 unified diff。
请参见 diff(1) 联机手册了解更多细节。
一旦您使用 diff(1) 生成了差异集 (可以使用 patch(1)
命令来测试一下)， 就可以提交它们， 以便被 FreeBSD 收录。
通过使用 第_2.1_节_“错误报告和一般的注解” 中所介绍的
send-pr(1) 程序就可以完成这项工作。 不要 只是把差异集发到
FreeBSD_技术讨论邮件列表， 否则它们可能会被丢掉！
我们会非常感激您提交的修改 (这是一个志愿者项目！)；
 为我们都很忙，  此有时不一定能够立即修正问题， 但
PR 数据库将一直保持着这些记录，
 此只要有人有了时间它们就能被改正了。
如果您的问题报告中包括补丁， 一定不要忘了在 题上用
[PATCH] 来强调一下。
如果您认为合适 (例如您添 、  除或重命名了文件)，
还可以考虑使用 tar 来将文件打包， 然后用 uuencode(1)
来编 。 我们也欢迎用 shar(1) 创建的包。
如果您的修改可能存在潜在的争议， 例如，
您不确定与之相关的版权问题，
或者感觉需要经过更严 的复审才可以发布它们，
则应直接发给 FreeBSD  心团队， 而不是通过 send-pr(1)
来发送。 FreeBSD  心团队 是一个小组， 其成员更多的从事
FreeBSD 的日常工作。 需要注意的是， 这个小组也 此
很忙，  此只有在非常必要的时候才应给他们写信。
请参考 intro(9) 和 style(9)
以了解关于编  惯和约定的详情。 如果您了解这些约定，
则对我们来说将是极大的帮助。

2.4. 新代 或重要的增值软件包

如果您打算提供规模较大的代 ， 或者为 FreeBSD
增 重要的新功能， 则可能必须将它们通过 uuencode
进行编 ， 或 到某个 Web 或 FTP 站点，
以便更多的人能够得到它。 如果您没有这 的服务器，
请到相关的 FreeBSD 邮件列表提出，
看看是否有人愿意帮您放置它们。
对于大量的代 而言， 关于版权的问题肯定会被提出。
FreeBSD 基本系统中能够使用的版权声明包括：

  1. BSD 版权。 我们倾向于使用这类授权的代 ，  为它
     “不附 多余的条件”，
      而更能够吸引商业企业使用。 FreeBSD
     并不反对商业公司使用它的代 ， 相反，
     我们积极地鼓励商业公司使用我们的代 ， 当然，
     如果它们最终把一部分代 重新捐 给 FreeBSD
     就更好了。
  2. GNU General Public License， 或简称 “GPL”。
     我们并不很欢迎使用这 授权的代 ，
      为商业公司使用它需要做更多的工作。 不过，
     由于很多使用 GPL 授权的代 目前是 法避免的
     (编译器、 汇编器， 文本排版程序等等)，
     拒绝使用所有采用这 授权的软件是很不明智的。 采用
     GPL 授权的代 会被放到源代 的一些专门的位置， 例如
     /sys/gnu 或 /usr/src/gnu， 以方便那些使用 GPL
     代 可能会给他们带来问题的人识别。

使用其它授权的代 在进入 FreeBSD
之前必须经过慎重的复审和考虑。
采用包含严厉限制的商业授权的代 ， 一般来说会被拒绝，
但我们鼓励这些代 的作者通过自己的 道来发布它们。
要在您的成果上 入 “BSD式” 的版权，
请把下列文本放到每一个源文件的最开始部分，
并用适当的文字替换 %% 之间的文字。

  Copyright (c) %%proper_years_here%%
          %%your_name_here%%, %%your_state%%  %%your_zip%%.
  	All rights reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:
  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer as
     the first lines of this file unmodified.
  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

  THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``AS IS'' AND ANY EXPRESS OR
  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  IN NO EVENT SHALL %%your_name_here%% BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

          $Id$

为了方便您的使用， 在 /usr/share/examples/etc/bsd-style-copyright
也可以找到此授权的副本。

2.5. 资金、 硬件或 Internet 接入

我们非常愿意接受各种形式的捐 ， 以进一步拓展 FreeBSD
Project 的事业，  为有您的支持，
像我们这 的志愿者努力才能够有更大的成就！
捐 硬件也非常重要，
 为这 能够帮助我们增 可以支持的硬件种类，
而我们中的很多人并没有足够的资金来购置这些硬件。

2.5.1. 捐款

FreeBSD 基金会是一个非营利的、 有课税豁免权的基金会，
建立这个基金会的目 是为了让 FreeBSD Project
能够达成更 长远的目 。 作为 501(c)3 实体，
一般而言基金会可以免予上缴美国联邦收入税，
以及科罗拉多州收入税。
通常对于课税豁免的实体进行捐 ，
可以折抵联邦收入中应课税部分的金额。
您可以把支票寄往：

    The FreeBSD Foundation
    7321 Brockway Dr.
    Boulder, CO 80303
    USA
  
FreeBSD 基金会现在可以通过 PayPal 从网上接受捐款。
如果您想向基金会捐款， 请访问它的 web_站点。
关于 FreeBSD 基金会的更多详情， 可以在 FreeBSD_基金会_-
-_介绍 找到。 要联络基金会， 请发送电子邮件到
<bod@FreeBSDFoundation.org>。

2.5.2. 捐 硬件

FreeBSD 计划欢迎任何人捐 可以使用的硬件。
如果您有兴趣捐 硬件， 请联系 捐_联络人办公室。

2.5.3. 捐  Internet 接入

我们欢迎新的 FTP、 WWW 或 cvsup 镜像。
如果您希望成为这 的镜像， 请参见 如何架设_FreeBSD_镜像
一文， 以了解进一步的情况。

索引


符号



  捐 ，捐_硬件

  提交文档，对于文档的修订

  贡献 ，为_FreeBSD_提供帮助

  问题报告数据库，查看整个_PR_数据库


B



  BSD 版权声明，新代_或重要的增值软件包


D



  diff，对于现有源代_的修改


F



  FreeBSD-CURRENT，对于现有源代_的修改


G



  GNU General Public License，新代_或重要的增值软件包

  GPL (见 GNU General Public License)


U



  uuencode，对于现有源代_的修改

