# FreeBSD 2008 年 1-3 月状态报告

* 原文链接：<https://www.freebsd.org/status/report-2008-01-2008-03.html>

## 引言

本状态报告涵盖了 2008 年 1 月至 3 月间与 FreeBSD 相关的项目。在此期间，FreeBSD 7.0 发布了。[BSDCan](http://www.bsdcan.org/) 也即将举行，开发者峰会将于 14 日开始，会议则于 16 日开始。

感谢所有报告者的出色工作！我们希望你喜欢阅读这份报告。

## [谷歌编程之夏](https://www.freebsd.org/status/report-2008-01-2008-03.html#Google-Summer-of-Code)

### [finstall - FreeBSD 的图形化安装器](https://www.freebsd.org/status/report-2008-01-2008-03.html#finstall---Graphical-installer-for-FreeBSD)

| 链接                                                  |
| --------------------------------------------------- |
| <http://www.freebsd.org/projects/summerofcode.html> |
| <http://wiki.freebsd.org/SummerOfCode>              |

联系人：Ivan Voras <<ivoras@freebsd.org>>

“finstall”是一个 FreeBSD 的图形化安装器项目，由 Google 在 2007 年的编程之夏期间赞助。其目标是创建一个现代化的安装器，既适合新手用户，也适合专家用户。由于它分为前端和后端，因此可以潜在地用于系统配置、远程安装和自定义安装等高级用途。该项目已经推出了一个适用于 i386 的简单安装器 ISO 镜像，可以用于在空硬盘上进行新安装。开发在 SoC 之后继续进行，但进展较慢；最近实现的功能包括 ZFS 支持和 BSDStats 支持。为了吸引更多潜在开发者（尤其是那些没有 FreeBSD 官方开发系统帐户的人），该项目已经迁移到 SourceForge。未来的开发计划包括支持无头/远程安装、分区等。关于 finstall 的演讲将在 BSDCan 2008 上进行。

#### 待办任务

1. 支持远程/无头安装。
2. 在前端提供更好的分区支持。
3. 支持 GPT 启动。
4. 提供细粒度的包选择支持。

### [编程之夏](https://www.freebsd.org/status/report-2008-01-2008-03.html#Summer-of-Code)

| 链接                                                  |
| --------------------------------------------------- |
| <http://www.freebsd.org/projects/summerofcode.html> |
| <http://wiki.freebsd.org/SummerOfCode>              |

联系人：Murray Stokely <<murray@FreeBSD.org>>\
联系人：Robert Watson <<rwatson@FreeBSD.org>>

编程之夏的学生申请期已经结束，导师和管理员正在仔细审查申请，澄清项目参数，并决定推荐哪些学生获得谷歌的资助。

今年我们收到了来自 26 个不同国家的 100 多份学生申请。我们目前有超过 60 名潜在导师，正在与学生匹配。我们将很快在编程之夏网站上公布获奖学生，并开始将这些学生引入我们的开发社区。

每位学生将再次获得 Perforce 和 wiki 访问权限，我们推荐所有开发者联系所有在相关领域工作的学生，因为我们希望学生不仅通过他们正式指定的导师获得与社区的接触。

#### 待办任务

1. 帮助介绍我们的新编程之夏学生了解 FreeBSD 开发。部分学生在 FreeBSD 上有丰富的开发经验，而其他学生则是新手，可能需要更多帮助。
2. 更新项目数据库，添加你希望看到的明年编程之夏项目创意。

## [项目](https://www.freebsd.org/status/report-2008-01-2008-03.html#Projects)

### [FreeBSD 的 ProPolice 支持](https://www.freebsd.org/status/report-2008-01-2008-03.html#ProPolice-support-for-FreeBSD)

| 链接                                                          |
| ----------------------------------------------------------- |
| [FreeBSD/SSP](http://tataz.chchile.org/~tataz/FreeBSD/SSP/) |

联系人：Jérémie Le Hen <<jeremie@le-hen.org>>

此补丁修改了构建基础设施，以便在构建 world、内核和 port 时使用 GCC 的栈破坏保护（SSP，亦称 ProPolice）。不要忘记查看网站，特别是 FAQ，了解哪些 port 在使用 ProPolice 时无法构建。该补丁扩展了 src.conf(5) 中 WITHOUT\_SSP 的含义，以防止在编译时同时构建 libssp 和使用 ProPolice。一个有趣的地方是，libssp 是 GNU 许可的（它随 GCC 4.2.1 提供），但由于 libc 包括了必需的符号，程序不会链接到 GNU libssp。还为 port 基础设施添加了一个新开关 USE\_SSP，你可以在 make.conf(5) 中将其设置为 "yes"，并在命令行中使用 USE\_SSP= 来禁用某些 port 的 ProPolice。该补丁已审查完毕，希望很快被提交。port 部分尚未审查。

### [重写 TTY 层](https://www.freebsd.org/status/report-2008-01-2008-03.html#Rewriting-the-TTY-layer)

| 链接                                                                                         |
| ------------------------------------------------------------------------------------------ |
| [Perforce 分支](http://p4web.freebsd.org/@md=d\&cd=/\&c=7ru@/depot/user/ed/mpsafetty/?ac=83) |

联系人：Ed Schouten <<ed@80386.nl>>

大约 10 周前，我开始重写 TTY 层。现有的 TTY 代码已有 20-25 年历史，并且经过反复扩展，但没有真正改善其设计。

新的 TTY 层将使我们能够从驱动程序中移除对 Giant 的使用。它还包括改进的缓冲机制，具有更多的常量时间操作，并防止在将数据移动到用户空间时多次复制数据。

目前，这些代码对大多数用户来说应该工作得相当好。Perforce 中的代码包括一个新的伪 TTY 驱动程序，该驱动程序最终能够在需要时销毁 TTY 及其关联的缓冲区。syscons、uart 和 ucom 驱动程序也已移植到新的 TTY 层。

代码相当完整，但仍缺少驱动程序交互以进行载波/连接检测和发送断点。许多驱动程序仍需移植。

#### 待办任务

1. 有意测试的人。若无法执行 Perforce 检出，请联系我。
2. 并非所有驱动程序已移植。欢迎提供补丁或硬件。
3. 一些更改可以已经进行回溯。

### [USB](https://www.freebsd.org/status/report-2008-01-2008-03.html#USB)

| 链接                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [当前 USB 文件](http://p4web.freebsd.org/@md=d\&cd=/depot/projects/usb/src/sys/dev/usb/\&c=A2y@/depot/projects/usb/src/sys/dev/usb/?ac=83)                                                                       |
| [当前 USB API README 文件](http://p4web.freebsd.org/@md=d\&cd=/depot/projects/usb/src/sys/dev/usb/\&cdf=/depot/projects/usb/src/sys/dev/usb/README\&sr=136513\&c=2Ro@/depot/projects/usb/src/sys/dev/usb/README) |
| [安装说明](http://www.selasky.org/hans_petter/usb4bsd)                                                                                                                                                           |

联系人：Hans Petter Sirevaag Selasky <<hselasky@freebsd.org>>

在过去的三个月里，主要进行了 bug 修复和文档提交。目前，代码处于稳定且功能完整的状态。FreeBSD P4 USB 项目现在拥有一个完整对称的 USB 栈，且已在 API 层面经过测试，能够与 AT91RM9200 ARM 基板和 USS820 基设备配合使用。目前已实现了两个 USB 设备端驱动程序，分别是 CDC 以太网和大容量存储（SCSI+BBB），因此现在你可以使用 FreeBSD 制作自定义的 USB 闪存盘。请勿将 USB 设备端驱动程序与 USB 主机端驱动程序混淆。

目前，USB P4 项目正在审查中。

关于新 USB API 的想法和评论，请通过 FreeBSD [USB 邮件列表](http://lists.freebsd.org/mailman/listinfo/freebsd-usb) 提出。

## [FreeBSD 团队报告](https://www.freebsd.org/status/report-2008-01-2008-03.html#FreeBSD-Team-Reports)

### [FreeBSD Bugbusting 团队](https://www.freebsd.org/status/report-2008-01-2008-03.html#FreeBSD-Bugbusting-Team)

| 链接                                                                                 |
| ---------------------------------------------------------------------------------- |
| [GNATS](http://www.freebsd.org/support.html#gnats)                                 |
| [BugBusting 资源](http://wiki.freebsd.org/BugBusting/Resources)                      |
| [2008 年 2 月 Bugathon](http://wiki.freebsd.org/Bugathons/February2008)              |
| [过去 7 天的新 PR](http://people.freebsd.org/~linimon/studies/prs/recentprs.txt)        |
| [推荐给提交者评估的 PR](http://people.freebsd.org/~linimon/studies/prs/recommended_prs.txt) |
| [2 个月内无更改的反馈 PR](http://people.freebsd.org/~linimon/studies/prs/stalefeedback.txt) |

联系人：Ceri Davies <<bugmeister_at_freebsd_dot_org>>\
联系人：Remko Lodder <<bugmeister_at_freebsd_dot_org>>\
联系人：Mark Linimon <<bugmeister_at_freebsd_dot_org>>

作为我们 1 月和 2 月 Bugathon 的成果之一，我们已经授予 Volker Werth (vwe@) 直接访问 GNATS 的权限。在过去的几个月里，他在处理几百个 PR（主要是与源代码相关）中发挥了重要作用，既关闭了它们，又帮助用户解决他们遇到的问题。已经有几个直接源自这些工作的提交到源代码树中。欢迎 Volker！

此外，几位新成员正在协助我们分类传入的 PR，和用户合作，并审查补丁。其中最活跃的包括 Bruce Cran、Dylan Cochran 和 Harrison Grundy。我们非常感激每个人的努力。

由于上述工作，我们已经能够将总 PR 数量控制在约 5300 个左右（峰值约为 5500）。尽管 PR 提交量最近有所上升，且 port PR 积压比近期趋势略高（由于长时间的冻结/缓冲周期）。然而，最令人鼓舞的是，我们不仅控制了绝对数字，还能够更迅速、更全面地处理传入的 PR。尽管我们还未完全达到理想状态，但这一趋势非常令人鼓舞。

此外，Bugbusting 团队还总结了一些如何最好地让新人参与 bugbusting 的经验，比如如何最大化利用具有不同经验水平和兴趣领域的人。我们过去的回应是“只是浏览 bug 报告并告诉我们是否发现需要处理的事项”，这往往会使除最具动力的人以外的人感到气馁。我们正在研究一些新的思路，以优化我们的流程。

仍有一些来自两次 Bugathon 的技术建议需要整理和讨论。前几项已经导致了以下改进：有了几个新网页，包括：过去 7 天的新 PR、"bugbusting 团队推荐的 PR 列表"、以及“2 个月内没有变化的反馈 PRs”（见上文）。还有许多内容需要补充。

第二次 Bugathon 的大部分工作集中在识别和关闭那些已提交修复的 PR。其他一些 PR 被识别并标记为“已修复”，以便进一步处理。

#### 待办任务

1. 思考一些方法，使提交者仅能查看那些已经“审查”或“确认”的 PR。
2. 为我们已建立的工作内容和计划中的工作增加更多宣传。
3. 定义新的 PR 类别、分类和状态，以更好地匹配我们的工作流。

### [FreeBSD 基金会](https://www.freebsd.org/status/report-2008-01-2008-03.html#The-FreeBSD-Foundation)

| 链接                                                                  |
| ------------------------------------------------------------------- |
| [FreeBSD 基金会官网](http://www.freebsdfoundation.org/)                  |
| [FreeBSD 基金会邮件列表](http://www.freebsdfoundation.org/subscribe.shtml) |

联系人：Deb Goodkin <<deb@FreeBSD.org>>

基金会为项目提供了法律咨询，帮助项目了解 GPLv3 对项目的影响，并制定了软件许可证政策。我们批准了 2008 年的预算为 25 万美元。我们是 AsiaBSDCon 的赞助商，并为三位参会者提供了差旅资助。我们是 BSDCan 和 BSDCan 开发者峰会的赞助商，已为 10 位参会者提供了差旅资助。我们正在支持一些项目，旨在为 FreeBSD 6.3 和 7.0 提供 Java 1.6 二进制文件。加入我们的邮件列表，接收每月更新。期待在 BSDCan 与你见面！

### [Ports](https://www.freebsd.org/status/report-2008-01-2008-03.html#The-Ports-Collection)

| 链接                                                                                                 |
| -------------------------------------------------------------------------------------------------- |
| [FreeBSD Ports](http://www.freebsd.org/ports/)                                                     |
| [如何为 FreeBSD Ports 贡献](http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/)    |
| [FreeBSD Ports 无法获取的 distfile 调查 (Bill Fenner 的报告)](http://people.freebsd.org/~fenner/portsurvey/) |
| [FreeBSD Ports 监控系统](http://portsmon.freebsd.org/index.html)                                       |
| [FreeBSD Ports 管理团队](http://www.freebsd.org/portmgr/index.html)                                    |
| [marcuscom Tinderbox](http://tinderbox.marcuscom.com/)                                             |

联系人：Mark Linimon <<linimon@FreeBSD.org>>

portmgr 高兴地宣布，Florent Thoumie (flz) 加入了我们。我们立即安排他开始清理 pkg\_\* 工具。

在 7.0R 版本的长时间冻结和缓冲期后，我们终于能够开始处理在此期间积累的积压工作。

目前 port 数量已超过 18,200 个。PR 数量仅下降到约 1000 个。我们仍然能较快地处理 PR，但在积压的处理上没有取得进展。

我们最近仅能进行 2 次 -exp 运行。虽然一些 PR 已被关闭，但我们仍有 57 个 portmgr PR。

在此期间，GNOME 已更新至 2.22.0。同时，我们为 Linux 仿真引入了一个新的 port（emulators/linux\_base-f8），供一般测试使用。

XFree86 被移除（已被废弃一段时间，现代开发似乎已转向 X.Org）。这简化了基础设施。几个其他过时的 port 也已被删除。

以下是计划中的一些重大更改：

* KDE 升级至 4.0（正在测试）
* automake 升级至 1.10.1
* gettext 升级至 0.17
* libtool 升级至 1.5.26（目前不使用 2.x）
* m4 升级至 1.14.11
* 引入 Perl 5.10

我们目前正在为 amd64-5、amd64-6、amd64-7、amd64-8、i386-5、i386-6、i386-7、i386-8、sparc64-6 和 sparc64-7 构建包。但请注意，RELENG\_5 将于 2008 年 5 月 31 日结束支持，届时这两个构建环境的包构建将停止。

我们已使用一些新机器来加速包构建（特别是 amd64 架构），实际上，速度快到超出了部分镜像站点的处理能力。我们正在调查解决方案。

自上次报告以来，我们新增了 4 名提交者。

#### 待办任务

1. 大部分剩余的 port PR 是“现有 port /PR 已分配给提交者”。尽管维护者超时政策有助于减少积压，但我们还需要做更多工作，使 port 达到所需的质量。
2. 虽然我们已经增加了许多维护者，但仍有、

## [内核](https://www.freebsd.org/status/report-2008-01-2008-03.html#Kernel)

### [多 IPv4/v6/无 IP jail](https://www.freebsd.org/status/report-2008-01-2008-03.html#Multi-IPv4/v6/no-IP-jails)

| 链接                                                                                                                   |
| -------------------------------------------------------------------------------------------------------------------- |
| [定期更新和补丁网页](http://sources.zabbadoz.net/freebsd/jail.html)                                                           |
| [Perforce 树](http://p4web.freebsd.org/@md=d\&cd=/depot/user/bz/jail/\&rc=s\&c=kmz@/depot/user/bz/jail/?ac=43\&mx=50) |

联系：Bjoern A. Zeeb <<bz@FreeBSD.org>>

多 IPv4/v6 jail 项目在 2006 年停滞后于 1 月初恢复。

作为完整网络堆栈虚拟化的替代方案，该工作为多 IP 虚拟化提供了一种轻量级解决方案。这些变化变得更加重要，因为 IPv6 的需求日益增长。

当前状态包括更新的用户空间工具。内核方面已增加对 jail 中两种地址族的多个 IP 地址支持，以及完全没有 IP 地址的支持。实现了 32 位和 jail 版本 1 的向后兼容性。

开发已转移至 Perforce，早期采用者的补丁可供使用。

#### 待办事项

1. 可在 Perforce 中的 TODO 文件中找到待办事项列表。
2. 回归测试和审查。

### [UnionFS 改进](https://www.freebsd.org/status/report-2008-01-2008-03.html#UnionFS-Improvements)

| 链接                                             |
| ---------------------------------------------- |
| <http://people.freebsd.org/\\~daichi/unionfs/> |

联系：Daichi GOTO <<daichi@freebsd.org>>\
联系：Masanori OZAWA <<ozawa@ongs.co.jp>>

我们已将 UnionFS 的实现合并到 HEAD、7-stable 和 6-stable 中。现在，我们正在进行 UnionFS 稳定性改进。我们已经开发了以下 5 个补丁。如果你感兴趣，请尝试并报告你的结果。

* [unionfs-p20-1.diff](http://people.freebsd.org/~daichi/unionfs/experiments/unionfs-p20-1.diff)
* [unionfs-p20-2.diff](http://people.freebsd.org/~daichi/unionfs/experiments/unionfs-p20-2.diff)
* [unionfs-p20-3.diff](http://people.freebsd.org/~daichi/unionfs/experiments/unionfs-p20-3.diff)
* [unionfs-p20-4.diff](http://people.freebsd.org/~daichi/unionfs/experiments/unionfs-p20-4.diff)
* [unionfs-p20-5.diff](http://people.freebsd.org/~daichi/unionfs/experiments/unionfs-p20-5.diff)

#### 待办事项

1. Robert Watson 指出 unionfs-p20-5.diff 在处理套接字时存在一些问题。我们正在研究这些问题。

## [文档](https://www.freebsd.org/status/report-2008-01-2008-03.html#Documentation)

### [创意网页应用](https://www.freebsd.org/status/report-2008-01-2008-03.html#Ideas-Web-Application)

| 链接                                          |
| ------------------------------------------- |
| [创意数据库](http://apps.stokely.org/ideas/)     |
| [设计文档](http://wiki.freebsd.org/IdeasWebApp) |

联系：Murray Stokely <<murray@FreeBSD.org>>

一个原型网页应用已经为 `http://www.FreeBSD.org` 网站编写，经过认证的用户能添加新的开发创意，或评论和投票已有的创意。该应用是目前用于维护项目创意（为暑期编码学生及其他希望参与 FreeBSD 的人提供）的静态网页的拟替代方案。

目前提供的一些功能包括：

* 允许任何人提出新创意。
* 允许任何人评论和投票已有创意。
* 提供最新创意的 RSS 订阅。
* 提供特定创意的评论/投票的 RSS 订阅。
* 允许按类别、提案人、投票、摘要标题或完整文本对创意列表进行排序和搜索，并订阅搜索结果的 RSS。
* 匿名创意/评论默认隐藏，直到由管理员清除。
* 为某些用户设置管理员权限，使其能够管理上述内容（可以订阅未审核的创意和评论的 RSS 文件，关注需处理的内容）。
* 导入功能，用于将当前的 ideas.xml 文件导入到数据库中。
* 提供关于数据库中创意的图表和统计数据。

代码已检查到 Perforce **//depot/user/murray/www/apps/django/ideas/...** 下，最终我希望能将其托管在 FreeBSD.org 的硬件上，从主网站链接并检查到 **www/apps/django/ideas**。

#### 待办事项

1. 需要对代码进行彻底的安全审查。如果你有审查网页应用的经验，尤其是在 SQL 注入、跨站脚本和其他漏洞方面，请联系我。该应用使用 Django 框架。
2. 需要更好的导入/导出工具，以将我们当前的 ideas.xml 网页应用的数据导入数据库并导出。
3. 需要更多的可用性审查和建议，以使其成为当前静态 XML 系统的有力替代方案。

### [匈牙利文档项目](https://www.freebsd.org/status/report-2008-01-2008-03.html#The-Hungarian-Documentation-Project)

| 链接                                                            |
| ------------------------------------------------------------- |
| [匈牙利网站](http://freebsd.org/hu)                                |
| [匈牙利文档](http://www.freebsd.org/doc/hu_HU.ISO8859-2/articles/) |

联系：Gábor Kévesdán <<gabor@FreeBSD.org>>\
联系：Gábor Páli <<pgj@FreeBSD.org>>

我们很高兴欢迎 Gábor Páli 成为文档提交者。他已成功完成 FreeBSD 手册的翻译。现在他的工作正在进行最终审查，我们将很快将其导入仓库。我们认为，发布说明的翻译是该翻译项目的下一个重要里程碑。

#### 待办事项

1. 审查已翻译的手册。
2. 翻译 - CURRENT 和 7.X 的发布说明。

### [西班牙文档项目](https://www.freebsd.org/status/report-2008-01-2008-03.html#The-Spanish-Documentation-Project)

| 链接                                                    |
| ----------------------------------------------------- |
| [FreeBSD 西班牙网站](http://freebsd.org/es)                |
| [西班牙文翻译](http://www.freebsd.org/doc/es_ES.ISO8859-1/) |

联系：José Vicente Carrasco Vayá <<carvay@FreeBSD.org>>\
联系：Gábor Kévesdán <<gabor@FreeBSD.org>>

最近，我们的进展有所好转。我们已对网站和手册进行了一些更新，包括对 jail 章节的完整翻译。我们还新增了一个文章翻译，并且另一个翻译正在审查中。

#### 待办事项

1. 完成网站的更新。
2. 更新手册并翻译新章节。
