为 FreeBSD 做贡献

商标

FreeBSD 是 FreeBSD 基金会的注册商标。

IEEE、POSIX 和 802 是美国电气电子工程师协会的注册商标。

制造商和销售商用来区分其产品的许多名称被认定为商标。当这些名称出现在本文档中时,如果 FreeBSD 项目知道商标声明,这些名称后将加上“™”或“®”符号。

摘要

本文介绍了个人或组织可以为 FreeBSD 项目做出贡献的不同方式。


您想为 FreeBSD 做贡献吗?太好了!FreeBSD 依赖其用户群的贡献才能生存。您的贡献不仅受到赞赏,而且对 FreeBSD 的持续发展至关重要。

越来越多的国际贡献者,他们年龄和技术专长各不相同,正在开发 FreeBSD。总是有比可用的人更多的工作要做,而且总是欢迎更多帮助。

作为志愿者,您能做的事情仅受您想做的事情的限制。但是,我们确实要求您了解 FreeBSD 社区的其他成员对您的期望。在决定志愿之前,您可能希望考虑这一点。

FreeBSD 项目负责整个操作系统环境,而不仅仅是内核或一些分散的实用程序。因此,我们的 TODO 列表涵盖了非常广泛的任务:从文档、beta 测试和演示,到系统安装程序和高度专业化的内核开发。几乎所有领域的任何技能水平的人员都可以帮助这个项目。

从事 FreeBSD 相关业务的商业实体也被鼓励与我们联系。您是否需要一个特殊的扩展来使您的产品工作?您会发现我们对您的请求持开放态度,前提是这些请求不太离谱。您是否正在开发增值产品?请告诉我们!我们可能能够在某些方面进行合作。自由软件世界正在挑战关于软件如何开发、销售和维护的许多现有假设,我们敦促您至少重新考虑一下。

1. 需要什么

以下任务和子项目列表代表了各种 TODO 列表和用户请求的混合。

1.1. 持续的非程序员任务

许多参与 FreeBSD 的人不是程序员。该项目包括文档编写者、网页设计师和支持人员。所有这些人都需要贡献的是投入时间和学习意愿。

  1. 定期阅读 FAQ 和手册。如果任何内容解释不清、模棱两可、过时或不正确,请告诉我们。更好的是,给我们发一个修复程序(AsciiDoc 不难学,但我们不反对使用纯文本提交)。

  2. 帮助将 FreeBSD 文档翻译成您的母语。如果您的语言已经存在文档,您可以帮助翻译其他文档或验证翻译是否是最新的和正确的。首先查看 FreeBSD 文档项目入门中的 翻译 FAQ。通过这样做,您不会承诺翻译所有 FreeBSD 文档 - 作为志愿者,您可以根据需要进行尽可能多的翻译。一旦有人开始翻译,其他人几乎总是会加入这个工作。如果您只有时间或精力翻译文档的一部分,请翻译安装说明。

  3. 偶尔(甚至定期)阅读 FreeBSD 通用问题邮件列表。分享您的专业知识并帮助人们解决他们的问题可能非常令人满意;有时你甚至可能会学到一些新东西!这些论坛也可以成为改进事物的想法来源。

1.2. 持续的程序员任务

这里列出的大多数任务可能需要大量时间投入、对 FreeBSD 内核的深入了解,或两者兼而有之。但是,也有许多有用的任务适合“周末黑客”。

  1. 如果您运行 FreeBSD-CURRENT 并拥有良好的互联网连接,则有一台名为 current.FreeBSD.org 的机器每天构建一次完整版本 - 有时尝试从该机器安装最新版本并报告过程中遇到的任何错误。

  2. 阅读 FreeBSD 问题报告邮件列表。可能存在您可以进行建设性评论或测试修补程序的问题。或者您甚至可以尝试自己解决其中一个问题。

  3. 如果您知道任何已成功应用于 -CURRENT 但在相当长的时间间隔(通常几周)后未合并到 -STABLE 的错误修复,请向提交者发送一个礼貌的提醒。

  4. 将贡献的软件移动到源代码树中的 src/contrib

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

  6. 使用额外启用的警告构建源代码树(或仅构建其中的一部分)并清理警告。您也可以从我们的 CI 中找到构建警告列表,方法是选择一个构建并检查“LLVM/Clang 警告”。

  7. 修复使用 gets() 或包含 malloc.h 等过时操作的端口的警告。

  8. 如果您贡献了任何端口并且您必须进行 FreeBSD 特定的更改,请将您的修补程序发回给原始作者(这将在他们发布下一个版本时让您的生活更轻松)。

  9. 获取 POSIX® 等正式标准的副本。将 FreeBSD 的行为与标准要求的行为进行比较。如果行为不同,尤其是在规范的细微或模糊的角落,请提交有关它的 PR。如果您能够,请弄清楚如何解决它并在 PR 中包含一个修补程序。如果您认为标准有误,请要求标准机构考虑这个问题。

  10. 为该列表建议更多任务!

1.3. 浏览 PR 数据库

FreeBSD PR 列表 显示了由 FreeBSD 用户提交的所有当前活动的故障报告和增强请求。PR 数据库包括程序员和非程序员任务。浏览打开的 PR,看看是否有任何让您感兴趣的内容。其中一些可能是非常简单的任务,只需要多一双眼睛来查看它们并确认 PR 中的修复是一个好的修复。其他的可能更复杂,或者可能根本没有包含修复程序。

从未分配给任何人的 PR 开始。如果一个 PR 被分配给其他人,但它看起来像您可以处理的事情,请给分配给它的那个人发电子邮件并询问您是否可以处理它 - 他们可能已经准备好了一个要测试的修补程序,或者您可以与他们讨论的其他想法。

1.4. 持续的端口任务

端口集是一个持续进行的项目。我们希望为我们的用户提供一个易于使用、最新且高质量的第三方软件库。我们需要人们捐赠一些时间和精力来帮助我们实现这个目标。

任何人都可以参与,并且有很多不同的方法可以参与。为端口做贡献是帮助“回馈”项目的一种极佳方式。无论您是寻找持续的角色,还是寻找雨天消遣,我们都非常希望得到您的帮助!

有一些简单的方法可以让您为保持端口树最新和正常运行做出贡献

1.5. 从想法页面中选择一个项目

FreeBSD 志愿者项目和想法列表 也适用于愿意为 FreeBSD 项目做出贡献的人。该列表正在定期更新,并包含针对程序员和非程序员的项目,其中包含有关每个项目的的信息。

2. 如何贡献

对系统的贡献通常归类于以下 5 个类别之一或更多。

2.1. 错误报告和一般评论

一般技术兴趣的想法或建议应发送到 FreeBSD 技术讨论邮件列表。同样,对这类事情感兴趣(并且能够忍受大量邮件!)的人可以订阅 FreeBSD 技术讨论邮件列表。有关此列表和其他邮件列表的更多信息,请参见 FreeBSD 手册

如果您要向 src 库提交简单的修补程序,请考虑将其作为 拉取请求 提交到项目的 GitHub 镜像。合适的提交应

  • 已准备好或几乎准备好提交。提交者应该能够在不到 10 分钟的额外工作内合并此修补程序。

  • 它通过了所有 GitHub CI 任务。

  • 您可以快速回复反馈。

  • 它触及的少于大约 10 个文件,更改少于大约 200 行。大于此的更改可能是可以的,或者您可能会被要求提交多个更易于管理大小的拉取请求。

  • 每个逻辑更改都是拉取请求中一个单独的提交。每个更改的提交消息应遵循 提交日志指南

  • 所有提交都使用您的姓名和有效的电子邮件地址作为您希望在 FreeBSD 存储库中看到它们的方式作为作者。不能使用虚假的 github.com 地址。

  • 拉取请求的范围不应在审查期间更改。如果审查建议扩展范围的更改,请创建一个独立的拉取请求。

  • 修复提交应该与它们正在修复的提交合并。您分支中的每个提交都应该适合 FreeBSD 的存储库。

  • 提交应包含一个或多个 Signed-off-by: 行,其中包含完整姓名和电子邮件地址,以证明 开发者起源证书

更新拉取请求时,请使用强制推送而不是合并提交进行变基。更复杂的变化可以作为拉取请求提交,但如果它们太大、太笨拙、变得不活跃、需要在社区中进一步讨论,或需要大量修改,则可能会被关闭。请避免创建大型、范围广泛的清理补丁:它们太大,缺乏良好的审查所需关注。错误的补丁可能会被重定向到更合适的论坛,以便解决该补丁。

提交到端口库的拉取请求可能会或可能不会被处理,这取决于开发人员的意愿。目前,如果您遵循端口提交流程,您将获得更好的体验 为端口做出贡献.

文档团队也通过 GitHub 接受拉取请求,但尚未制定任何相关策略。

如果您发现错误或正在提交特定更改,请使用 错误提交表单 报告。尝试填写错误报告的每个字段。除非它们超过 65KB,否则请将任何补丁直接包含在报告中。如果补丁适合应用于源代码树,请在报告的摘要中添加 [PATCH]。包含补丁时,不要 使用剪切粘贴,因为剪切粘贴会将制表符转换为空格,使其无法使用。当补丁的大小远远超过 20KB 时,请考虑压缩它们(例如使用 gzip(1)bzip2(1))后再上传。

提交报告后,您应该会收到确认信息以及跟踪号。保留此跟踪号,以便您向我们提供有关问题的详细信息。

另请参阅 这篇文章,了解如何编写良好的问题报告。

2.2. 文档变更

文档变更由 FreeBSD 文档项目邮件列表 负责监督。请查看 FreeBSD 文档项目入门,了解完整的说明。使用与其他任何错误报告相同的方法发送提交和更改(即使是小的更改也欢迎!)

2.3. 现有源代码变更

对现有源代码的添加或更改是一个比较棘手的事情,它很大程度上取决于您对 FreeBSD 开发的当前状态的落后程度。有一个名为“FreeBSD-CURRENT”的特殊正在进行的 FreeBSD 版本,它以多种方式提供给开发人员,方便他们积极地参与系统开发。见 FreeBSD 手册,了解有关获取和使用 FreeBSD-CURRENT 的更多信息。

从较旧的源代码工作不幸意味着您的更改有时可能过于过时或过于不同,难以重新集成到 FreeBSD 中。可以通过订阅 FreeBSD 公告邮件列表FreeBSD-CURRENT 邮件列表 来最小化这种情况的发生概率,在这些邮件列表中,会进行关于系统当前状态的讨论。

假设您能够获得相当新的源代码来作为更改的基础,下一步是生成一组差异以发送给 FreeBSD 维护人员。这是使用 diff(1) 命令完成的。

提交补丁的首选 diff(1) 格式是由 diff -u 生成的统一输出格式。

% diff -u oldfile newfile

% diff -u -r -N olddir newdir

将为给定的源文件或目录层次结构生成一组统一的差异。

diff(1),了解更多信息。

获得一组差异后(您可以使用 patch(1) 命令对其进行测试),您应该将它们作为错误报告提交,以将其包含在 FreeBSD 中。不要 将差异直接发送到 FreeBSD 技术讨论邮件列表,否则它们将丢失!我们非常感谢您的提交(这是一个志愿者项目);因为我们很忙,我们可能无法立即处理它,但它会保留在 PR 数据库中,直到我们处理它。在报告的摘要中包含 [PATCH] 以指示您的提交。

如果您认为合适(例如,您添加、删除或重命名了文件),请将更改打包到一个 tar 文件中。使用 shar(1) 创建的存档也欢迎。

如果您的更改具有潜在的敏感性,例如,如果您不确定版权问题是否允许进一步分发,那么您应该直接将更改发送到 [email protected],而不是作为错误报告提交。 [email protected] 触达的范围较小,这些人主要负责 FreeBSD 的日常工作。请注意,这个团队也非常繁忙,因此您应该只在确实必要时才给他们发送邮件。

请参阅 intro(9)style(9),了解一些有关编码风格的信息。我们希望您在提交代码之前至少了解这些信息。

2.4. 新代码或主要增值包

对于大量工作的重大贡献,或向 FreeBSD 添加重要新功能,几乎总是需要将更改作为 tar 文件发送,或者将它们上传到网站或 FTP 站点,以便其他人访问。如果您没有访问网站或 FTP 站点的权限,请在适当的 FreeBSD 邮件列表中询问是否有人可以为您托管更改。

在处理大量代码时,版权问题也必然会引起争议。FreeBSD 优先考虑 BSD 或 ISC 等自由软件许可证。有时也允许 GPLv2 等版权许可证。完整的列表可以在 核心团队许可政策 页面上找到。

2.5. 金钱或硬件

我们非常乐意接受捐款,以促进 FreeBSD 项目的发展,而且在像我们这样的志愿者项目中,一点点就能产生很大的影响!硬件捐赠对扩展我们支持的外设列表也至关重要,因为我们通常没有足够的资金来购买这些东西。

2.5.1. 捐款

FreeBSD 基金会 是一个非营利性、免税基金会,旨在促进 FreeBSD 项目的目标。作为 501(c)3 实体,基金会通常免除美国联邦所得税以及科罗拉多州所得税。对免税实体的捐赠通常可以在应税联邦收入中扣除。

捐款可以通过支票形式发送到

FreeBSD 基金会
3980 Broadway Street
STE #103-107
Boulder CO 80304
USA

FreeBSD 基金会还能够通过各种付款方式接受 在线捐赠

有关 FreeBSD 基金会的更多信息,请参阅 FreeBSD 基金会——简介。要通过电子邮件联系基金会,请写信给 [email protected]

2.5.2. 捐赠硬件

FreeBSD 项目很乐意接受硬件捐赠,以便找到合适的用途。如果您有兴趣捐赠硬件,请联系 捐赠联络处

3. 为端口做出贡献

3.1. 认领未维护的端口

3.1.1. 选择未维护的端口

接管未维护端口的维护工作是参与其中的一种好方法。只有在有人自愿为其工作时才会更新和修复未维护的端口。有大量未维护的端口。最好从认领您经常使用的端口开始。

未维护的端口的 MAINTAINER 设置为 [email protected]。许多未维护的端口可能存在待更新,这可以在 FreeBSD 端口发行文件扫描仪 上看到。

PortsFallout 上可以看到带有错误的未维护端口列表。

由于依赖关系和二级端口关系,一些端口会影响大量其他端口。一般来说,我们希望人们在维护此类端口之前具有一定的经验。

您可以通过查看称为 INDEX 的端口主索引来了解端口是否有依赖关系或二级端口。(文件名称因 FreeBSD 版本而异;例如,INDEX-13。)一些端口具有条件依赖关系,这些依赖关系未包含在默认的 INDEX 构建中。我们希望您能够通过查看其他端口的 Makefile 来识别此类端口。

3.1.2. 如何认领端口

首先确保您了解 端口维护人员面临的挑战。还可以阅读 端口维护人员手册请不要承诺超出您觉得可以轻松处理的范围。

只要您愿意,就可以请求维护任何未维护的端口。只需将 MAINTAINER 设置为您自己的电子邮件地址,并发送包含更改的 PR(问题报告)。如果端口存在构建错误或需要更新,您可能希望在同一个 PR 中包含任何其他更改。这将有所帮助,因为许多提交者不太愿意将维护工作分配给那些没有 FreeBSD 经验的人。提交修复构建错误或更新端口的 PR 是建立良好记录的最佳方法。

使用产品 Ports & Packages 提交您的 PR。提交者将检查您的 PR,提交更改,最后关闭 PR。有时这个过程可能需要一些时间(提交者也是志愿者 :)。

3.2. 端口维护人员面临的挑战

本节将让您了解为什么需要维护端口,并概述端口维护人员的职责。

3.2.1. 端口为什么需要维护

创建端口是一次性任务。确保端口保持最新状态,并继续构建和运行需要持续的维护工作。维护人员是将一些时间投入到实现这些目标的人。

端口需要维护的最主要原因是将第三方软件的最新和最棒的功能带给 FreeBSD 社区。另一个挑战是让单个端口在端口集合框架不断发展的同时保持工作状态。

作为维护人员,您需要管理以下挑战

  • 新软件版本和更新。 现有移植软件的新版本和更新一直在发布,需要将这些版本和更新合并到端口集合中,以提供最新的软件。

  • 对依赖关系的更改。 如果对您的端口的依赖关系进行了重大更改,可能需要对其进行更新,使其能够继续正常工作。

  • 影响依赖端口的更改。 如果其他端口依赖于您维护的端口,您对端口的更改可能需要与其他维护人员协调。

  • 与其他用户、维护人员和开发人员的互动。 作为维护人员的一部分是承担支持角色。您不应提供一般性支持(但如果您选择这样做,我们欢迎您这样做)。您应该提供的是 FreeBSD 特定问题在您的端口方面的协调点。

  • 错误追踪。 端口可能受到特定于 FreeBSD 的错误的影响。当报告错误时,您需要调查、查找和修复这些错误。在错误进入端口集合之前,彻底测试端口以识别问题会更好。

  • 端口基础设施和策略变更. 构建端口和软件包的系统偶尔会更新,或者出现影响基础设施的新建议。您应该了解这些变更,以防您的端口受到影响并需要更新。

  • 基础系统变更. FreeBSD 正在不断开发中。软件、库、内核甚至策略变更都会导致端口的后续变更需求。

3.2.2. 维护者责任

3.2.2.1. 保持您的端口更新

本节概述了保持端口更新的流程。

这是一个概述。有关升级端口的更多信息,请参阅 端口维护者手册

  1. 监控更新

    监控上游供应商以获取软件的新版本、更新和安全修复。公告邮件列表或新闻网页对此很有用。有时用户会联系您,询问您的端口何时更新。如果您忙于其他事情,或者由于任何原因暂时无法更新,请询问他们是否可以帮忙提交更新。

    您可能还会收到来自 FreeBSD Ports Version Check 的自动电子邮件,告知您您的端口的 distfile 有更新版本可用。该系统(包括如何停止未来的电子邮件)的更多信息将在邮件中提供。

  2. 合并变更

    当变更可用时,将它们合并到端口中。您需要能够在原始端口和更新端口之间生成补丁。

  3. 审查和测试

    彻底审查和测试您的变更

    • 在尽可能多的平台和架构上构建、安装和测试您的端口。端口在一个分支或平台上工作,而在另一个平台上失败是很常见的。

    • 确保您的端口依赖项完整。推荐的方法是安装您自己的端口 tinderbox。有关更多信息,请参见 端口维护者和贡献者的资源

    • 检查打包列表是否最新。这包括添加任何新文件和目录,并删除未使用的条目。

    • 使用 portlint(1) 作为指南来验证您的端口。有关使用 portlint 的重要信息,请参见 端口维护者和贡献者的资源

    • 考虑您的端口变更是否会导致其他端口出现故障。如果是,请与这些端口的维护者协调变更。如果您的更新更改了共享库版本,这一点尤其重要;在这种情况下,至少,依赖端口需要获得 PORTREVISION 升级,以便它们能够被自动工具(例如 ports-mgmt/poudriere)自动升级。

  4. 提交变更

    通过提交包含变更说明和包含原始端口与更新端口之间差异的补丁的 PR 来发送您的更新。有关如何撰写优秀的 PR 的信息,请参阅 编写 FreeBSD 问题报告

    请不要提交整个端口的 shar(1) 存档;而是使用 git-format-patch(1)diff(1) -ruN。这样,提交者可以更轻松地查看所做的确切变更。端口维护者手册中关于 升级 的部分提供了更多信息。

  5. 等待

    提交者会在某个阶段处理您的 PR。这可能需要几分钟,也可能需要一两周 - 所以请耐心等待。如果时间更长,请在邮件列表 (FreeBSD 端口邮件列表)、IRC: #bsdports(EFNet)或 #freebsd-ports(Libera)等上寻求帮助。

  6. 提供反馈

    如果提交者发现您的变更存在问题,他们很可能会将它退回给您。及时回复有助于更快地提交您的 PR,并且在尝试解决任何问题时更有利于维护对话线程。

  7. 最后

    您的变更将被提交,您的端口将被更新。然后提交者将关闭 PR。就这样!

3.2.2.2. 确保您的端口继续正确构建

本节介绍如何发现和修复阻止端口正确构建的问题。

FreeBSD 仅保证端口集合在 -STABLE 分支上工作。理论上,您应该能够通过运行每个稳定分支的最新版本来解决问题(因为 ABI 不应该更改),但如果您能够运行该分支,那就更好了。

由于大多数 FreeBSD 安装都运行在 PC 兼容机器上(称为 i386 架构),因此我们希望您能够使端口在该架构上工作。我们希望端口也能在运行原生 amd64 架构上工作。如果您没有这些机器,完全可以要求帮助。

x86 机器常见的故障模式是原始程序员假设例如指针是 int,或者正在使用相对宽松的旧版 gcc 编译器。越来越多的应用程序作者正在重构他们的代码以消除这些假设,但如果作者没有积极维护他们的代码,您可能需要自己进行更改。

以下是在确保端口可构建时需要执行的任务

  1. 监控构建失败

    检查您的邮件,查看来自 [email protected]distfiles 扫描器 的邮件,以查看是否有任何构建失败的端口已过期。

  2. 收集信息

    一旦您意识到存在问题,请收集信息以帮助您解决它。pkg-fallout 报告的构建错误会附带日志,这些日志将向您显示构建失败的位置。如果故障是由用户报告给您的,请让他们向您发送可能有助于诊断问题的信息,例如

    • 构建日志

    • 用于构建端口的命令和选项(包括在 /etc/make.conf 中设置的选项)

    • pkg-info(8) 显示的其系统上安装的软件包列表

    • uname(1) -a 显示的他们正在运行的 FreeBSD 版本

    • 他们的端口集合上次更新的时间

    • 他们的端口树和 INDEX 上次更新的时间

  3. 调查并找到解决方案

    不幸的是,没有一个简单的流程可以遵循来做到这一点。但请记住:如果您遇到困难,请寻求帮助!FreeBSD 端口邮件列表 是一个不错的起点,上游开发者通常非常乐于助人。

  4. 提交变更

    就像更新端口一样,您现在应该合并变更,审查和测试,在 PR 中提交您的变更,并在需要时提供反馈。

  5. 向上游作者发送补丁

    在某些情况下,您需要对端口进行修补以使其在 FreeBSD 上运行。一些(但并非所有)上游作者将在下一个版本中接受这些补丁回到他们的代码中。如果是这样,这甚至可以帮助他们在其他基于 BSD 的系统上的用户,并且可能避免重复工作。请考虑出于礼貌将任何适用的补丁发送给作者。

本节介绍如何发现和修复错误。

特定于 FreeBSD 的错误通常是由关于构建和运行时环境的假设引起的,这些假设不适用于 FreeBSD。您不太可能遇到此类问题,但它可能更微妙,更难诊断。

以下是在确保端口继续按预期工作时需要执行的任务

  1. 回复错误报告

    可以通过 问题报告数据库 通过电子邮件向您报告错误。用户也可能会直接向您报告错误。

    您应该在 14 天内回复 PR 和其他报告,但请尽量不要花那么长时间。尝试尽快回复,即使只是说您需要更多时间才能处理 PR。

    如果您在 14 天后没有回复,任何提交者都可以通过 maintainer-timeout 从您没有回复的 PR 中提交。

  2. 收集信息

    如果报告错误的人没有提供修复方案,您需要收集允许您生成修复方案的信息。

    如果错误可重现,您可以自己收集大多数必要的信息。如果不是,请让报告错误的人为您收集信息,例如

    • 对其操作、预期程序行为和实际行为的详细描述

    • 触发错误的输入数据的副本

    • 有关其构建和执行环境的信息,例如已安装软件包的列表和 env(1) 的输出

    • 核心转储

    • 堆栈跟踪

  3. 消除不正确的报告

    一些错误报告可能不正确。例如,用户可能只是错误地使用了程序;或者他们的已安装软件包已过期,需要更新。有时报告的错误不特定于 FreeBSD。在这种情况下,请将错误报告给上游开发者。如果错误在您的能力范围内可以修复,您也可以修补端口,以便在下一个上游版本发布之前应用修复。

  4. 找到解决方案

    与构建错误一样,您需要解决问题。同样,请记住,如果您遇到困难,请寻求帮助!

  5. 提交或批准变更

    就像更新端口一样,您现在应该合并变更,审查和测试,并在 PR 中提交您的变更(或者如果该问题已存在 PR,则发送后续邮件)。如果另一个用户已在 PR 中提交了变更,您也可以发送后续邮件表示您是否批准这些变更。

3.2.2.4. 提供支持

作为维护者的一部分是提供支持 - 而不是针对软件本身 - 而是针对端口以及任何特定于 FreeBSD 的怪癖和问题。用户可能会就问题、建议、问题和补丁与您联系。大多数情况下,他们的通信将特定于 FreeBSD。

您偶尔可能需要调用您的外交技巧,并礼貌地将寻求一般支持的用户引导到适当的资源。更不常见的是,您会遇到一个人问为什么 RPMS 没有更新,或者他们如何才能使软件在 Foo Linux 下运行。抓住这个机会告诉他们您的端口是最新的(如果确实是,当然!),并建议他们尝试 FreeBSD。

有时用户和开发者会认为您是一个时间宝贵且工作繁忙的人,并会为您做一些工作。例如,他们可能会

  • 提交 PR 或向您发送补丁来更新您的端口,

  • 调查并可能提供对 PR 的修复,或者

  • 否则向您的端口提交更改。

在这些情况下,您的主要义务是及时回复。同样,对没有响应的维护者的超时时间为 14 天。在此期限后,更改可能会在未经批准的情况下提交。他们已经为您费心做到这一点;因此,请至少尝试及时回复。然后尽快查看、批准、修改或与他们讨论他们的更改。

如果您能让他们感觉到他们的贡献得到了认可(应该如此),您将更有可能说服他们在将来为您做更多的事情:-)。

3.3. 查找和修复损坏的端口

有一些非常好的地方可以找到需要关注的端口。

您可以使用 网页界面 搜索问题报告数据库并查看未解决的 PR。大多数端口 PR 是更新,但只需搜索和浏览摘要,您就可以找到一些有趣的内容来处理。

PortsFallout 显示从 FreeBSD 软件包构建中收集的端口问题。

发送已维护端口的更改也是可以的,但请记住,如果维护者已经在处理该问题,请向他们询问。

找到错误或问题后,收集信息、调查并修复!如果存在现有的 PR,请跟进该 PR。否则,创建一个新的 PR。您的更改将被审核,如果一切检查都通过,则会提交。

3.4. 何时放弃

随着您的兴趣和承诺发生变化,您可能会发现您不再有时间继续您的一些(或全部)端口贡献。这没关系!如果您不再使用某个端口或由于其他原因而不再有时间或兴趣成为维护者,请告知我们。这样,我们就可以继续让其他人尝试处理端口中的现有问题,而无需等待您的回复。请记住,FreeBSD 是一个志愿者项目,因此,如果维护端口不再有趣,那么可能是时候让其他人来做这件事了!

无论如何,端口管理团队 (portmgr) 保留权利,如果您在一段时间内没有积极维护您的端口,则重置您的维护权限。(目前,此设置时间为 3 个月。)我们指的是,在这段时间内存在未解决的问题或待处理的更新尚未得到解决。

3.5. 针对端口维护者和贡献者的资源

端口维护者手册 是您通往端口系统的搭车指南。请妥善保管!

编写 FreeBSD 问题报告 描述了如何最好地制定和提交 PR。2005 年提交了超过一万一千个端口 PR!遵循本文将极大地帮助我们减少处理您的 PR 所需的时间。

FreeBSD Ports distfile 扫描器 (portscout) 可以向您显示无法获取 distfile 的端口。您可以检查自己的端口,也可以使用它来查找需要更新其 MASTER_SITES 的端口。

ports-mgmt/poudriere 是通过安装、打包和卸载的整个周期来测试端口的最彻底的方法。文档位于 poudriere GitHub 存储库

portlint(1) 是一款应用程序,可用于验证您的端口是否符合许多重要的风格和功能指南。portlint 只是一个简单的启发式应用程序,因此您应该仅将其用作指南。如果 portlint 建议的更改似乎不合理,请参阅 端口维护者手册 或寻求建议。

FreeBSD 端口邮件列表 用于一般与端口相关的讨论。它是寻求帮助的好地方。您可以订阅或阅读和搜索列表存档。阅读 FreeBSD 端口错误邮件列表 的存档和 ports 树的 SVN 提交消息 也可能很有趣。

PortsFallout 是一个可以帮助搜索 FreeBSD 软件包故障存档 的地方。

4. 在其他领域入门

正在寻找本文中其他地方没有提到的有趣的内容来入门?FreeBSD 项目有几个 Wiki 页面,其中包含新贡献者可以从中获得如何入门的建议。

初级工作 页面列出了可能让刚开始接触 FreeBSD 的人感兴趣的项目,并希望处理有趣的事情来熟悉环境。

想法页面 包含在项目中需要“很不错”或“很有趣”的各种内容。


最后修改时间:2024 年 9 月 20 日,由 Fernando Apesteguía 修改