随着一切逐渐回归新常态,是时候再次为 FreeBSD 项目提供一份状态报告了。
你可能已经注意到,这份报告也稍微有些延迟,很遗憾花了这么长时间才完成。不过,得益于一些热心人士的帮助,加上团队中那些在幕后默默付出的人,未来的报告应该能更按时发布。
那么,首先让我做一下介绍,我非常高兴接受 Pau Amma 的帮助,他已经在进行审阅工作了一段时间;Lorenzo Salvadore 也在积极投入,为报告制作提供工具,以减少这项工作的负担;还有 Sergio Carlavilla,他将协助处理那些无法轻易自动化的工作。
本报告涉及了非常多样的主题,包括但不限于可访问性、系统启动加速、GEOM 联合体的实现、WiFi 状况的变化,以及其他许多内容。
我们希望你会喜欢阅读这份报告!
Daniel Ebdrup Jensen,代表状态报告团队。
来自各个官方和半官方团队的报告条目,见于 管理页面。
链接: FreeBSD 基金会 URL: https://www.FreeBSDFoundation.org 技术路线图 URL: https://FreeBSDFoundation.org/blog/technology-roadmap/ 捐赠 URL: https://www.FreeBSDFoundation.org/donate/ 基金会合作伙伴计划 URL: https://www.FreeBSDFoundation.org/FreeBSD-foundation-partnership-program FreeBSD Journal URL: https://www.FreeBSDFoundation.org/journal/ 基金会新闻和活动 URL: https://www.FreeBSDFoundation.org/news-and-events/
联系人:Deb Goodkin <deb@FreeBSDFoundation.org>
FreeBSD 基金会是家 501(c)(3) 非营利组织,致力于支持和推动 FreeBSD 项目及全球社区的发展。来自个人和企业的捐赠用于赞助和管理软件开发项目、会议和开发者峰会。我们还提供旅行补助,帮助 FreeBSD 贡献者,购买并支持硬件以改善和维护 FreeBSD 基础设施,并提供资源以改善安全性、质量保证和发布工程工作。我们发布营销材料以推广、教育和宣传 FreeBSD 项目,促进商业供应商与 FreeBSD 开发者之间的合作,最后,代表 FreeBSD 项目执行合同、许可协议和其他需要有合法实体的法律安排。
以下是基金会在 2022 年第一季度的一些亮点。
如承诺所言,我们更新了 2022 年的筹款目标。截至目前,我们已经筹集了超过 84,000 美元,目标为 1,400,000 美元。我们感谢个人和企业捐赠者对我们今年工作的支持。同时,我们还要特别感谢我们的金牌赞助商 Facebook、银牌赞助商 VMware 和 Tarsnap,以及为项目提供免费托管服务的公司:Bytemark、365 数据中心、NYI、NextArray、Sentex 数据通信和國立陽明交通大學資訊工程學系。
你可以在本报告和我们的春季通讯中了解我们如何使用这些捐款。
如果你今年还没有捐赠,请考虑现在捐赠,链接:https://freebsdfoundation.org/donate/
我们还为较大规模的商业捐赠者提供了合作伙伴计划。你可以通过以下链接了解更多:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/
在 2022 年第一季度,进行了 372 次 src、41 次 ports 和 16 次 doc tree 提交,并在每个仓库中标识了 FreeBSD 基金会作为赞助商。这些提交分别占总提交数的 16%、0.4% 和 5%。
你可以在各自的季度报告条目中阅读基金会赞助的项目:
WireGuard 的加密更改
支持 Intel 无线驱动程序
以下是基金会开发者在本季度进行的一些其他基本系统改进,它们没有单独的报告条目。
SV48 是针对虚拟地址空间为 39 位的系统不足的情况设计的。此更改将用户映射的大小从 256GB 增加到 128TB。内核映射暂时保持不变。
目前,SV48 模式默认禁用,但可以通过调节参数启用。请注意,现有硬件并不支持 SV48,但 QEMU 支持。
在 pmap_bootstrap() 中,分配一个 L0 页并尝试启用 SV48 模式。如果写入 SATP 不成功,内核将继续在 SV39 模式下运行。
定义 VM_MAX_USER_ADDRESS 以引用 SV48 限制。在 SV39 模式下,区域 [VM_MAX_USER_ADDRESS_SV39, VM_MAX_USER_ADDRESS_SV48] 是不可映射的。
CTF,紧凑型 C 类型格式,是一种表示类型信息的方式,通常包含在 ELF 二进制文件中。这些类型信息对诸如 DTrace 之类的探测工具非常有用。Mark Johnston 最近的工作使得不同的 DTrace 提供者(如 FBT(函数边界跟踪)提供者)能够与 CTF 的版本 3 一起使用。
两位基金会工作人员,Ed Maste 和 Mark Johnston,以及几位开发者和社区成员现在都可以使用 Framework 笔记本。该笔记本旨在让普通用户能够轻松升级硬件、进行维修和定制。此工作的目标是确保在这些笔记本上运行 FreeBSD 的体验能够达到 FreeBSD 用户所期望的稳定性。
近期的改进和修复包括:
在插入或拔出耳机时,确保音频在扬声器和耳机插孔之间正确切换。
修复 Bug 259230,该问题会导致 Framework 笔记本在使用触摸板时重启或关机。
添加 Tempo Semiconductor 92HD95B HDA 编解码器 ID。
临时修复停滞的 USB 枚举、蓝牙和 S3 恢复。临时修复方法是避免连接到一些较新的 Intel 控制器,这些控制器需要加载固件,与 ng_ubt_intel
和 iwmbtfw
实现的方式不同,因此它们暂时无法使用。
避免 16 秒的启动延迟,通过更早探测 TSC 频率。这使我们能够使用 TSC 实现早期 DELAY,从而减少使用有时不可靠的 8254 PIT。
你可以在以下链接关注 FreeBSD 在 Framework 笔记本上的相关工作:https://wiki.freebsd.org/Laptops/Framework_Laptop。
基金会提供全职工作人员并赞助项目,以改善 FreeBSD 项目的持续集成、自动化测试和整体质量保证工作。
基金会为项目提供硬件和支持。截至撰写时,将成为新澳大利亚镜像站的服务器已到达澳大利亚,进行了全新的 FreeBSD 安装,并将很快加入集群。
我们的大部分工作专注于项目的宣传。这可能涉及突出有趣的 FreeBSD 工作、制作文献、参加活动或进行演讲。我们制作的文献旨在教授 FreeBSD 基础知识,帮助人们更容易地采用或贡献 FreeBSD。除了参加和演讲外,我们还鼓励并帮助社区成员举办自己的 FreeBSD 活动、进行演讲或参与 FreeBSD 展台的工作。
FreeBSD 基金会赞助了全球多个会议、活动和峰会。这些活动可能与 BSD 相关、开源或面向弱势群体的技术活动。我们支持与 FreeBSD 相关的活动,帮助提供知识共享、共同开展项目和促进开发者与商业用户之间合作的场所。这一切都有助于提供健康的生态系统。我们支持非 FreeBSD 相关的活动,目的是宣传和提高 FreeBSD 的知名度,增加 FreeBSD 在不同应用中的使用,并招募更多的贡献者。我们继续参加虚拟活动,并开始规划 2022 年 6 月的开发者峰会。
以下是我们在上个季度进行的一些宣传与教育工作:
承诺在 SCALE 19x 举办 FreeBSD 研讨会并担任媒体赞助商 - 2022 年 7 月 28-31 日,洛杉矶,CA
参加 FLOSS Weekly 播客 - 2022 年 1 月 5 日 https://twit.tv/shows/floss-weekly/episodes/662
发送了 2021 年影响报告,展示了我们如何支持项目 https://freebsdfoundation.org/blog/2021-freebsd-foundation-impact-report/
在 FOSDEM 2022 上设立展台 - 展台视频可以在此观看:https://youtube.com/playlist?list=PLugwS7L7NMXxwqIRg1PlhgzhNRi1eVdRQ
参加 Open Source Voices 播客 - 该期播客将于 4 月底播出 [报告团队注:该期播客已经播出,现已在 https://www.opensourcevoices.org/29 可供收听;遗憾的是,将不提供转录。]
开始规划 2022 年 6 月 16-17 日举行的虚拟 FreeBSD 开发者峰会 https://wiki.freebsd.org/DevSummit/202206
举办了新的 FreeBSD Friday - 如何使用 Git 跟踪 FreeBSD 第二部分 https://youtu.be/Fe-dJrDMK_0
2022 年 3 月 9 日在圣路易斯 Unix 用户组进行演讲 https://ow.ly/1QXn50Ivj75
作为管理员并被接受为 2022 年谷歌编程之夏的导师组织
举办了关于谷歌编程之夏的办公时间会议 https://youtu.be/x-4U1xurmBE
在 2022 年 3 月 29 日的虚拟 Open Source 101 大会上设立展台
新的操作指南:FreeBSD Jails 简介
新的 FreeBSD 期刊文章:如何使用 Git 贡献 FreeBSD ports
我们通过出版专业制作的 FreeBSD 期刊帮助世界了解 FreeBSD。如前所述,FreeBSD Journal 现在是免费的出版物。了解更多并访问最新期刊:https://www.FreeBSDfoundation.org/journal/
你可以通过访问 https://www.FreeBSDfoundation.org/news-and-events/ 来了解我们参加的活动和即将举行的活动。
基金会拥有 FreeBSD 商标,我们有责任保护它们。我们还为核心团队提供法律支持,调查出现的问题。
访问 https://www.FreeBSDFoundation.org 了解更多关于我们如何支持 FreeBSD 以及我们如何为你提供帮助的信息!
链接: FreeBSD 13.1-RELEASE 时间表 FreeBSD 13.1 版本信息 FreeBSD 版本发布 FreeBSD 开发快照
联系方式:FreeBSD 发布工程团队,re@FreeBSD.org
FreeBSD 发布工程团队负责为 FreeBSD 项目的正式发布设置和发布版本计划,宣布代码冻结以及维护相应的分支等任务。
在 2022 年第一季度,发布工程团队完成了 13.1-RELEASE 时间表的工作,并提交给开发人员。这将是 stable/13 分支的第二个点版本。截至撰写时,已运行了三次 BETA 构建,并计划在最终发布之前进行至少两次 RC 构建,最终发布计划在 2022 年 4 月 21 日。
我们期待在这个周期结束时推出又一个稳定的版本,并希望未来能推出更多稳定版本,涵盖其他分支。
此外,在整个季度期间,发布了多个开发快照构建,适用于 main、stable/13 和 stable/12 分支。
赞助商:Rubicon Communications, LLC ("Netgate") 赞助商:FreeBSD 基金会
链接: 集群管理团队成员
联系方式:集群管理团队 clusteradm@FreeBSD.org
FreeBSD 集群管理团队负责管理项目所依赖的机器,以便同步其分布式工作和通信。本季度,团队完成了以下工作:
改善 Web 服务性能和安全性
将一些关键服务迁移到更新的机器
对所有服务进行检查,确保支持 TLS v1.2 和 v1.3,并禁用 v1 和 v1.1
为主要 FreeBSD Web 服务启用了双栈证书。 与 secteam@ 讨论过,ECDSA 和 RSA 证书,优先使用 ECDSA,这对项目在安全性和性能上有益。
主要站点的基础设施改进
清除了部分非常旧的硬件
将集群内部服务迁移到更新的硬件
构建主机
部分 LDAP、Kerberos、DNS 和 NTP 服务
安装了额外的 aarch64 包构建器
ampere3.nyi.freebsd.org
与 ampere[12].nyi.freebsd.org 配置相同
将 ftp0.nyi.freebsd.org 迁移到 aarch64 机器。
主要分布式镜像站点 download.freebsd.org 的增强
更新了镜像中的 离线文档(PDF 和 HTML)。 旧的 /doc
目录现在位于 ftp-archive,其中包含 Hugo/Asciidoctor 迁移之前的文件。
将 ports INDEX 文件迁移到分布式镜像站点 download.freebsd.org
从 download.freebsd.org 的标准链接中移除了 /ftp
。 旧的链接仍然有效。
清理了 Handbook/Mirrors 部分 清理了大量过时信息;现在有更多关于官方镜像和位置的信息。之前的官方镜像现在被称为“社区镜像”。
日常集群管理工作
集群刷新
更换故障硬盘
维护 pkgsync
进行中的工作:
改进包构建基础设施
审查服务 jail 和服务管理员操作
设置 powerpc pkgbuilder/ref/universal 机器
与 doceng@ 合作,改进 https://www.freebsd.org 和 https://docs.freebsd.org
改进 Web 服务架构
改进集群备份计划
改进日志分析系统
设置澳大利亚镜像
硬件更新
链接: FreeBSD Jenkins 实例 FreeBSD CI 工件存档 FreeBSD Jenkins 维基 托管 CI 维基 第三方软件 CI 与 freebsd-testing@ 相关的工单 FreeBSD CI 仓库 dev-ci 邮件列表
联系方式:Jenkins 管理员 jenkins-admin@FreeBSD.org 联系方式: 許立文 lwhsu@FreeBSD.org 联系方式:freebsd-testing 邮件列表 联系方式:IRC #freebsd-ci 频道(EFNet)
FreeBSD CI 团队负责维护 FreeBSD 项目的持续集成系统。CI 系统会检查提交的更改是否能够成功构建,然后对新构建的结果进行各种测试和分析。这些构建生成的工件会被存档到 artifact server 以供进一步的测试和调试。CI 团队成员会检查失败的构建和不稳定的测试,并与该领域的专家合作修复代码或调整测试基础设施。
在 2022 年第一季度,我们继续与项目中的贡献者和开发人员合作,以满足他们的测试需求,并与外部项目和公司合作,改善他们的产品和 FreeBSD。
重要变化:
DTrace 测试 现在使用 KASAN 进行测试。
修复并恢复了 powerpc64le 测试任务。
已退休的任务:
移除了 mips* 分支上的主任务。
进行中的工作和待办事项
设计并实现提交前的 CI 构建和测试(支持 工作流工作组)
设计并实现使用 CI 集群构建发布工件,类似发布工程的做法
在 这里 收集和整理 CI 任务和想法
测试并合并 FreeBSD-ci 仓库 中的拉取请求
简化 CI/测试环境设置过程,方便贡献者和开发者
设置 CI 阶段环境并放置实验性任务
为运行测试的虚拟机客机设置公共网络访问
实施使用裸金属硬件运行测试套件
添加针对 -CURRENT 的 drm 包构建测试
计划运行 ztest 测试
添加更多与外部工具链相关的任务
改进硬件实验室的成熟度,并增加更多待测试硬件
帮助更多软件在其 CI 流程中支持 FreeBSD(维基页面:3rdPartySoftwareCI,HostedCI)
与托管 CI 提供商合作,提升对 FreeBSD 的支持
有关更多进行中的信息,请参阅 freebsd-testing@ 相关工单,并欢迎加入我们的工作!
赞助商:FreeBSD 基金会
链接: 关于 FreeBSD Ports 如何贡献到 Ports FreeBSD Ports 监控 Ports 管理团队 Ports Tarball
联系方式:René Ladan portmgr-secretary@FreeBSD.org 联系方式:FreeBSD Ports 管理团队 portmgr@FreeBSD.org
Ports 管理团队负责监督 Ports 的整体方向、构建软件包和人员管理。以下是上个季度的情况。
在开始讲述常规统计数据之前,portmgr 很高兴地宣布其“lurker”计划成功重启。前两位“lurker”是 pizzamig@ 和 se@;他们将学习 portmgr 的内部运作,并带来新的想法。
portmgr 还开始了每两周的会议,部分公开成果如下:
重启了“lurker”计划
修复了版本倒退的 Port
删除了 bsd.port.mk 中的 DragonFlyBSD 版本检查
删除了 Port中转使用 Python 2.7 的弃用说明
目前,Ports 中共有 46,800 多个 Port。目前有 2,700 个开放的 Port PR,其中 680 个没有分配人员。上个季度,主分支共进行了 9,403 次提交,157 位提交者参与其中,2022Q1 分支进行了 683 次提交,由 63 位提交者完成。与上个季度相比,这意味着主分支的活动略有下降,而开放的 PR 数量略有增加。
在上个季度,没有新的提交者加入,portmgr 因为近期没有提交,因此接管了一个提交权限以妥善保管。
集群管理团队为 portmgr 提供了第三个 aarch64 构建器,用于软件包构建。
Git 中发生的变化:
引入了两个新的 USES:
elfctl,用于更改 ELF 二进制文件的特征控制注释
minizip,用于获取正确的 minizip 库依赖
移除了两个关键字:
fcfontsdir(现在由 USES=fonts 处理)
glib-schemas,已被触发器替代
更改了默认版本:
Lazarus 切换到 2.2.0
PHP 切换到 8.0
一些主要 Port 的升级:
Chromium 100.0.4896.60
Electron 13.6.9
Firefox 99.0
Firefox ESR 91.8.0
Gnome 41
KDE Frameworks 5.92.0
KDE Plasma 5.24.4
涵盖多个类别的项目,从内核和用户空间到 Ports 或外部项目。
链接: 无障碍性 wiki 页面 邮件列表介绍、目标、受众和基本规则
联系方式:Pau Amma pauamma@gundo.com 联系方式:FreeBSD 无障碍性讨论 freebsd-accessibility@freebsd.org
在过去几个月里,我开始整合工具和资源,帮助让 FreeBSD 生态系统对残障人士更加友好:
一个 邮件列表
工具,包括一个 可搜索的无障碍性 Bugzilla 关键字 和一个 无障碍性 Phabricator 小组
我需要尽可能多的帮助:
规范化、设计、实施和测试愿望清单上的项目
在我们经验不足或遗漏的领域增加愿望清单内容
不仅限于软件和文档,还包括流程和文化的改进
链接: Wiki 页面 操作系统启动时间比较
联系方式:Colin Percival cperciva@FreeBSD.org
Colin Percival 正在协调一个加速 FreeBSD 启动过程的工作。为了进行基准测试,他主要使用 EC2 c5.xlarge 实例作为参考平台,并测量虚拟机进入 EC2 "运行" 状态到能够 SSH 进入实例之间的时间。
该工作始于 2017 年,截至 2021 年 12 月底,FreeBSD 的启动时间已从大约 30 秒减少到约 10 秒。在 2022Q1 期间,进一步改进将启动过程的时间缩短至大约 8 秒。
目前仍然有两个主要问题:
第一次启动 EC2 实例时,dhclient 获取 IPv4 地址的时间比正常多出约 2 秒。此问题原因尚不明确,需要调查。
IPv6 配置包括两个 1 秒钟的 sleep(1) 调用,一个来自 /etc/rc.d/netif
,另一个来自 /etc/rc.d/rtsold
。可能可以简单地删除这些调用;但要小心,以避免在 IPv6 地址配置之前启动过程过早推进。这里需要 IPv6 专家的意见。
问题会在 wiki 页面上列出,并提供执行性能分析的说明。鼓励用户在自己的系统上进行启动过程的性能分析,以便发现那些在 Colin 测试的系统中未出现的延迟。
此项工作得到了 Colin 的 FreeBSD/EC2 Patreon 的支持。
赞助商:https://www.patreon.com/cperciva
内核子系统/功能、驱动支持、文件系统等方面的更新。
链接: ENA README
联系方式:Michal Krawczyk mk@semihalf.com 联系方式:Dawid Gorecki dgr@semihalf.com 联系方式:Marcin Wojtas mw@semihalf.com
ENA(Elastic Network Adapter)是 Amazon Web Services(AWS)虚拟化环境中的智能网卡。ENA 驱动支持多个发送和接收队列,并且可以处理高达 100 Gb/s 的网络流量,具体取决于使用的实例类型。
自上次更新以来,已完成的工作:
向驱动程序添加 IPv6 层 4 校验和卸载支持
向驱动程序添加 NUMA 感知,当启用内核选项 RSS 时
重新设计 Tx 请求 ID 的验证
更改驱动程序定时器服务的生命周期
在设备无响应时避免触发重置
正在进行的工作:
将驱动程序移植到 iflib 框架的原型开发
测试即将发布的 ENA 驱动程序版本(v2.5.0)
赞助商:亚马逊公司
联系方式:Marshall Kirk McKusick mckusick@mckusick.com
gunion 功能用于跟踪只读磁盘上的更改,并将其保存在可写磁盘上。从逻辑上讲,一个可写磁盘覆盖在只读磁盘上。写入请求会被拦截并存储在可写磁盘上。读取请求首先检查它们是否已经写入到上层(可写磁盘),如果发现,便返回该数据。如果数据没有被写入到上层磁盘,则从下层磁盘读取。
如果你有一个包含损坏文件系统的大磁盘,且不确定如何修复它,gunion 功能尤其有用。你可以使用 gunion 将另一个磁盘覆盖在损坏的磁盘上,然后尝试修复文件系统。如果修复失败,你可以撤销上层磁盘上的所有更改,恢复到下层磁盘未更改的状态,从而允许你尝试其他修复方法。如果修复成功,你可以将所有记录在上层磁盘的写入操作提交到下层磁盘。
gunion 功能的另一个用途是尝试对你的系统进行升级。将上层磁盘放置在你要升级的文件系统所在的磁盘上,然后执行升级。如果成功,则提交升级;如果失败,则撤销升级。
gunion(8) 工具用于创建和管理 gunion 实例。更多细节和使用示例请参见 gunion(8) 手册页。目前,gunion(8) 仅在 14.0 中可用。
赞助商:奈飞
链接: rtw88 状态 FreeBSD wiki 页面 rtw89 状态 FreeBSD wiki 页面
联系方式:Bjoern A. Zeeb bz@FreeBSD.org
尽管 Intel 无线驱动更新项目是带来对新芯片组和最终新 IEEE 802.11 标准支持的主要驱动力,但也有正在进行的努力,旨在支持更多的驱动程序。接下来排队的两个驱动程序是 Realtek 的 rtw88 和 rtw89。
尽管 rtw88 和 rtw89 驱动的初始移植工作是在个人时间完成的,但 LinuxKPI 的集成必须越来越多地与 Intel 无线驱动的工作配合,因此也要感谢 FreeBSD 基金会的支持。
rtw88 驱动已开始在主内存小于 4GB 的一些机器上工作,并已提交到 FreeBSD git 仓库以供更广泛的测试。尽管我们版本的驱动程序已经意识到这些限制,但目前问题被认为是在与 LinuxKPI 和 busdma 的交互中,而不在驱动程序本身。
rtw89 驱动已经能够成功发送数据包,目前在接收帧方面存在问题。待解决问题待 rtw88 解决,将会进一步调查,预计 rtw89 也将及时提交到 FreeBSD 的 git 仓库中。
目前已知编译这两个驱动的要求已经大多进入了 stable/13 和 releng/13.1。
有关开发的最新进展,请查看上述 wiki 页面,并关注 freebsd-wireless 邮件列表。
赞助商:FreeBSD 基金会(部分)
链接: iwlwifi 状态 FreeBSD wiki 页面
联系方式:Bjoern A. Zeeb bz@FreeBSD.org
Intel 无线驱动更新项目旨在带来对新芯片组的支持,并结合 mac80211 LinuxKPI 兼容代码。该双许可证的 Intel 驱动代码过去已经为 iwm(4) 本地驱动移植;使用 LinuxKPI 兼容框架允许我们直接使用该驱动,并支持所有最新芯片组,只需进行少量本地修改。在将驱动程序移植到 FreeBSD 的过程中,一些变更已友好地并入到上游的 Linux 驱动中。
在第一季度,工作继续进行,共有大约 70 次提交。驱动和固件的更新减少了与 Linux 版本的差异,并为我们带来了错误修复和改进。对 LinuxKPI 802.11 兼容层的改动旨在避免固件崩溃和可能导致的恐慌,并进行了其他改进。
已提交了 LinuxKPI PCI 驱动的自动加载支持。这意味着,iwlwifi(4) 驱动将自动在启动时加载,如果检测到支持的卡,不需要用户交互。考虑到当前驱动的状态和下一个版本,已决定 iwm(4) 支持的芯片组将继续连接到 iwm(4),只有更新的和其他不支持的芯片组才会使用 iwlwifi(4) 驱动。这一点可能会在 CURRENT 中发生变化,待 iwlwifi(4) 提供比 iwm(4) 更好的支持。
代码已合并到 stable/13 分支,并将在即将发布的 13.1-RELEASE 中包含。
除了 FreeBSD 基金会的支持外,还要感谢所有测试并反馈的用户,或者耐心等待下一次更新的用户。有关开发的最新进展,请关注邮件列表 freebsd-wireless 。
赞助商:FreeBSD 基金会
联系方式:John Baldwin jhb@FreeBSD.org
在过去的一个季度里,我继续改进 FreeBSD WireGuard 驱动程序的工作。在 FreeBSD 端,我增加了对 XChaCha20-Poly1305 AEAD 密码的支持。我还为小的平坦缓冲区添加了一个专用 API,以支持 [X]ChaCha20-Poly1035。最后,我为来自 libsodium 的 curve25519 实现添加了一个 API 包装器。
对于 WireGuard 驱动程序,我编写了一系列补丁,更新驱动程序,使用像上述提到的加密 API 来替代内部的密码实现。该系列还包括一个修复,避免调度过多的加密任务,以及一些其他小修复。这些补丁目前正在等待审核。
赞助商:FreeBSD 基金会
更新特定平台的功能,并为新硬件平台提供支持。
链接 开发 https://github.com/mcusim/freebsd-src/tree/lx2160acex7-dev/sys/dev/dpaa2
联系方式:Dmitry Salychev dsl@mcusim.org 联系方式:Bjoern A. Zeeb bz@FreeBSD.org
一些 NXP 的 SoC(如 LX2160A、LS1088A)配备了 DPAA2,即数据路径加速架构的第二代。它允许动态配置和连接数据包处理“对象”(如用于网络接口的 DPNI、用于媒体访问控制的 DPMAC 等),以形成一个片上网络。
Honeycomb LX2,作为 SolidRun 提供的强大 ARM64 开发板之一,构建于 NXP LX2160A 上,但在 FreeBSD 中缺乏板载 GbE 支持。这些驱动程序旨在解决这一问题。
这仍然是一个进行中的工作,目前提供了对一些 DPAA2 对象的粗略驱动实现。一个新的网络接口(dpni)可以在 Honeycomb 上用于测试。
待办事项
更新 dpaa2_mc_fdt 驱动程序以支持 Traverse Ten64 开发板
审查并修复 DPAA2 资源分配,以支持尽可能多的 DPNIs
正确释放驱动程序资源
为 DPIO 和 DPNI 实现 CPU 亲和性
实现缓存的内存支持的软件门户
进行性能分析并缓解瓶颈
赞助商:Bare Enthusiasm :)
文档树、手册页或新的外部书籍/文档中值得注意的更改。
链接:FreeBSD 文档项目 链接:FreeBSD 文档项目新贡献者指南 链接:文档工程团队
联系方式:FreeBSD Doceng 团队 doceng@FreeBSD.org
doceng@ 团队负责处理与 FreeBSD 文档项目相关的一些元项目问题;更多信息,请参见 FreeBSD Doceng 团队章程。
在过去的一个季度里,没有授予新的文档提交权限,仅保留了一个提交权限。
在过去的一个季度里,完成了与文档树相关的多个任务:
修复与 PO 文件和 Weblate 相关的翻译工作流中的一些问题,这些问题与 po4a 程序有关。更多信息请见 此处。
更新 离线文档(PDF 和 HTML)。
旧目录 /doc
现在位于 ftp-archive;其中包含 Hugo/Asciidoctor 迁移之前的文件。
从文档和网站中删除谷歌分析。
在文档和网站页面中添加最后修改信息。
为 13.1-RELEASE 标签 FreeBSD 文档集。
将首个印尼语翻译添加到文档树中。
链接:在 Weblate 上翻译 FreeBSD 链接:FreeBSD Weblate 实例
Weblate 上的翻译工作流现在更加成熟。PO 文件与 po4a 程序之间的多个问题已被修复。
我们欢迎大家尝试我们的 Weblate 实例,翻译一些文档。
首个印尼语翻译已被添加到 FreeBSD 项目中。我们感谢 Azrael JD 的贡献,期待看到更多的印尼语翻译。
2022 年 Q1 状态
12 种语言(新增 1 种语言)
142 名注册用户
语言列表
简体中文 (zh-cn)
繁体中文 (zh-tw)
荷兰语 (nl)
法语 (fr)
德语 (de)
印尼语 (id) - 新增
意大利语 (it)
挪威语 (nb-no)
波斯语 (fa-ir)
葡萄牙语 (pt-br)
西班牙语 (es)
土耳其语 (tr)
我们感谢所有参与翻译或审阅文档的人员。
请帮助在你所在的本地用户组推广这一努力,我们总是需要更多的志愿者。
联系方式:Sergio Carlavilla <carlavilla@FreeBSD.org>
该工作组负责创建新的 FreeBSD 文档门户并重新设计 FreeBSD 主网站及其组件。FreeBSD 开发者可以在 FreeBSD Slack 频道 #wg-www21 上关注并加入该工作组。工作将分为四个阶段:
文档门户的重新设计 创建一个新的设计,响应式,并具备全局搜索功能。 (已完成)
网站上的手册页重新设计 使用 mandoc 脚本生成 HTML 页面。 (进行中)
网站上的 Ports 页面重新设计 使用 Ports 脚本创建应用程序门户。 (进行中)
FreeBSD 主网站的重新设计 新的设计,响应式,并带有黑暗主题。 (尚未开始)
影响 Ports 的更改,无论是涉及大多数树的广泛更改,还是单个 Port 本身。
链接: KDE FreeBSD URL: https://freebsd.kde.org/ KDE Community FreeBSD URL: https://community.kde.org/FreeBSD
联系方式:Adriaan de Groot <kde@FreeBSD.org>
FreeBSD 上的 KDE 项目为 FreeBSD Ports 打包了来自 KDE 社区的软件及其依赖和相关软件。这些软件包括一个完整的桌面环境 KDE Plasma(支持 X11 和 Wayland)以及数百个可以在任何 FreeBSD 机器上使用的应用程序。
KDE 团队(kde@)也是 desktop@ 和 x11@ 的一部分,负责构建使 FreeBSD 成为美观且可用的日常桌面图形机器的软件堆栈。
KDE Qt 补丁集 Qt 公司在 2021 年没有以开源许可证发布 Qt 5.15 更新,导致开源版本 5.15 滞后于专有发布版本。Qt 6 以开源许可证发布,但对于仍需要 Qt 5 的开源软件世界,仍然需要更新。KDE 社区通过维护一组精心挑选的补丁来填补这一需求——这些补丁通常是从 Qt6 回移植过来的,以维持开源版 Qt 5。FreeBSD ports 现在使用这个 KDE Qt 补丁集,而不是 Qt 公司发布的过时的最后一个 Qt 5.15.2 版本。这个补丁集已于 2021 年进入主分支和最后的季度分支,因为它带来了重要的 bug 修复。
KDE Plasma Desktop(所有的 Port /plasma5-
)在年初更新到了 5.23.5。由于这是在季度分支发布后不久发生的,所以已经通过 MFH 处理。长期支持版本 5.24 于二月中旬发布。FreeBSD ports 并不坚持 LTS 版本,将遵循常规发布计划。5.24.3 按时在三月发布。
KDE Gear(KDE 库和应用程序,不包括 Frameworks 和 Plasma Desktop 组)更新到 21.12.1,并已通过 MFH 处理。每月发布也按计划进行:2 月份发布了 21.12.2。
KDE Frameworks 按月发布,所以 5.90 于 1 月发布,5.91 于 2 月发布,5.92 于 3 月发布。
KDE PIM 当前不支持存储在 Google 帐户中的联系人,因为 Google 更改了可用的 REST API。
astro/kstars 按计划更新。
deskutils/kalendar 更新至 1.0 版本。
deskutils/kodaskanna 被添加到 Ports 中。它是一个简单的桌面二维码扫描器。
deskutils/latte-dock 是 KDE Plasma Desktop 和其他环境的替代启动器。它在每月的发布中更新到 0.10.7 版本。
devel/okteta,一个二进制数据编辑器和查看器,更新到 0.26.7,这是一个常规的 bug 修复版本。
graphics/digikam,数字摄影管理器,更新到 7.6.0。(感谢 Dima Panov)
graphics/kf5-kimageformats 新增了一个选项,支持 libheif 和 HEIC 格式。
graphics/kontrast 被添加到类别 accessibility
。它是一个检查颜色组合(例如网站)是否具有足够对比度和可读性的工具。
graphics/krita 更新至下一个重大版本 Krita 5。(感谢 Max Brazhnikov)
lang/kross-interpreters 已修复 Ruby 3 支持。(感谢 Yasuhiro Kimura)
sysutils/plasma5-discover 更新以解决 KDE 基础设施中的一些拒绝服务漏洞。
www/falkon 更新。在等待了两年后,基于 Qt WebEngine(本身是 Chromium 内核的封装)的 KDE 网页浏览器的新版本上线,并已进入 ports。
devel/qtcreator 更新到 6 版本。上游引入了一个新的版本管理模型,因此此后将定期按主要版本号发布。(感谢 Florian Walpen)
irc/quassel 更新。Quassel 是一个分布式 IRC 客户端(可以将其视为你自己的个人 IRC 中继)。
misc/tellico 更新。Tellico 是一个 "收藏管理器",例如书籍、音乐、邮票或 FreeBSD 版本的收藏。
net-im/nheko 更新。这是 Ports 中可用的十几款 Matrix 客户端之一。
archivers/7-zip 是处理 7zip 文件的首选工具;这影响了与档案相关的 KDE 应用程序(如 archivers/ark)。我们感谢 makc@ 承担了该更新。
devel/libphonenumber 每两周更新一次,跟踪电信领域的最新动态。
graphics/poppler 更新至 22.01 版本。此版本需要 C++17,这也推动了许多消费者更新到新的 C++ 标准。大多数消费者已经提前进行了修复。
链接: FreeBSD Office 项目 URL: https://wiki.freebsd.org/Office FreeBSD Office 邮件列表 URL: https://lists.freebsd.org/subscription/freebsd-office
联系方式:FreeBSD Office 团队 ML <office@FreeBSD.org> 联系方式:Dima Panov <fluffy@FreeBSD.org> 联系方式: 許立文 <lwhsu@FreeBSD.org>
FreeBSD 办公团队致力于多个与办公相关的软件套件和工具,如 OpenOffice 和 LibreOffice。
本季度的工作集中在为所有 FreeBSD 用户提供 LibreOffice 套件及其配套应用程序的最新稳定版本。
在 2022Q1 期间,我们向季度分支推送了 Port LibreOffice 7.2 的维护补丁,并将最新的 7.3 版本及所有配套库(如 MDDS、libIxion 等)带入了 Ports。
此外,我们仍在积极工作以将最新的 Boost 库带入 ports,相关工作可以在 Boost WIP 仓库 查看。
我们正在寻找帮助来解决以下待办事项
开放错误列表 包含所有需要关注的已报告问题
补丁、评论和异议都欢迎在邮件列表和 Bugzilla 中提出。
链接: GCC 项目 URL: https://gcc.gnu.org GCC 11 发布系列 URL: https://gcc.gnu.org/gcc-11/
联系方式:toolchain@FreeBSD.org 联系方式:Gerald Pfeifer <gerald@pfeifer.com>
在大约二十年的时间里维护 FreeBSD 的 Port lang/gcc* 之后,到了交接的时刻,并且大部分时间需要退居二线。不幸的是,尽管多次呼吁求助,接力棒基本掉到了地板上。
以下是一些具体任务,需要帮助:
将 Mk/bsd.default-versions.mk 中的 GCC_DEFAULT 从 10 升级到 11,并修复(幸运的是是小问题)-exp 运行的后果:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258378
与上游 GCC 进行三项更改(需要源代码专家,不是 ports):
上游化 lang/gcc11/patch-gets-no-more
上游化 lang/gcc11/patch-arm-unwind-cxx-support
我们已经移除了不再维护的 Port lang/gcc9-devel 和 lang/gcc10-devel ,不幸的是保留了 Port lang/gcc11-devel 和 lang/gcc12-devel ,最好能看到它们至少不每周更新,也能有些许定期更新。
链接: PortConfig 仓库 URL: https://gitlab.com/alfix/portconfig/
联系方式:Alfonso Sabato Siciliano (上游) <asiciliano@FreeBSD.org> 联系方式:Baptiste Daroussin (Port) <bapt@FreeBSD.org>
FreeBSD 提供了 Ports,为用户和管理员提供了简单的应用安装方式。可以在构建和安装之前配置 Port。PortConfig 是一个用于通过文本用户界面设置 Ports 选项的工具。
由于每个终端的属性不同,PortConfig 可以通过环境变量自定义用户界面设置,例如:菜单大小、主题、边框等;每个功能在手册中都有文档。此外,如果某个 Port 有特定的 'pkg-help' 文件,PortConfig 会显示一个帮助按钮,打开一个包含帮助信息的 "弹出窗口"。
FreeBSD 提供了成千上万的 Port,因此不可能为每个使用情况都测试 PortConfig;请报告任何问题。
Alfonso 想感谢 Baptiste Daroussin 提供 Port、建议、帮助和对该工具及其库的测试。
链接:
项目 GitHub 页面
Port net/wifibox
联系方式:PÁLI Gábor János <pali.gabor@gmail.com>
Wifibox 是一个实验性项目,旨在探索在 FreeBSD 主机系统上部署虚拟化的 Linux 客户机以驱动无线网卡的方式。互联网已有一些指南建议使用这些技术来改善无线网络体验,而 Wifibox 旨在将这些方法实现为一个易于使用的软件包。
bhyve(8) 被用来运行嵌入式的 Linux 系统。这有助于实现低资源占用。它需要一个具有 I/O MMU(AMD-Vi、Intel VT-d)的 x64 CPU、约 150 MB 的物理内存,并且需要一定的磁盘空间来存储客户机的虚拟磁盘映像,这在某些情况下甚至只需要约 30 MB。它适用于 FreeBSD 12 及更高版本,尽管某些网卡可能需要较新的 13-STABLE。
客户机使用 Alpine Linux 构建,这是一个以安全为导向、基于 musl libc 和 BusyBox 的轻量级发行版。
配置文件与主机系统共享。客户机使用 wpa_supplicant(8),因此可以直接导入主机的 wpa_supplicant.conf(8) 文件,无需任何更改。
配置后,客户机可以暴露 wpa_supplicant(8) 控制套接字,这使得可以直接从主机使用相关的工具,如 wpa_cli(8) 或 wpa_gui(8),这些工具可以通过 Port/包 net/wpa_supplicant_gui
安装。
一切都包含在一个易于安装和卸载的单一软件包中。这个包提供了一个 rc(8) 系统服务,在启动时自动启动客户机,并在关机时停止它。
为笔记本提供了一个解决方法,以支持挂起/恢复。
到目前为止,Wifibox 主要在 Intel 芯片组上进行了测试,表现出了很好的性能和稳定性。因此,它可以作为临时解决方案,直到 Intel 无线支持足够成熟。已经确认 Wifibox 也能与 Atheros 芯片组一起工作,并欢迎其他芯片组的反馈。对 Broadcom 芯片组的支持尚未完成,目前仍在开发中。
许多项目建立在 FreeBSD 之上,或将 FreeBSD 的组件融入到他们的项目中。由于这些项目可能对更广泛的 FreeBSD 社区有兴趣,因此我们有时会在季度报告中包括这些项目提交的简要更新。FreeBSD 项目并不对这些提交中的任何声明的准确性或真实性作出任何表示。
链接: 文档 URL: https://hellosystem.github.io/
联系方式:Simon Peter <probono@puredarwin.org>
联系方式:#helloSystem
在 irc.libera.chat
,镜像到 #helloSystem:matrix.org
在 Matrix
helloSystem 是预配置为桌面操作系统的 FreeBSD,注重简洁、优雅和可用性。其设计遵循“少即是多”的理念。
helloSystem 0.8.0 版本正在开发和测试中
helloSystem 0.8.0 将基于 FreeBSD 13.1-RELEASE
基于 FreeBSD 13.1-BETA3 的实验性 Live ISO 可用
开始支持使用可选的 Debian 运行时运行 Linux AppImage 文件
用户界面中开始支持 AppImage 格式
通过使用 fuse-archive 改进了挂载归档的可靠性和性能
各种 bug 修复
可安装的实验性 Live ISO 镜像可在 https://github.com/helloSystem/ISO/releases/tag/experimental-13.1 获取。
链接: Pot 项目在 GitHub 上的组织 URL: https://github.com/bsdpot
联系方式: Luca Pizzamiglio (Pot) <pizzamig@freebsd.org> Stephan Lichtenauer (Potluck) <sl@honeyguide.eu> Michael Gmelin (Potman) <grembo@freebsd.org>
Pot 是一个监控工具, 也支持通过 Nomad 进行编排。
作为在实际集群部署中进行生产测试的结果,Pot 和相关项目在控制 pot 生命周期(即 pot 准备/启动/停止)方面得到了稳定性改进。 为了更好地支持 nomad 编排和批量作业(例如,在克隆过程中更改 dns 配置、禁用 tmpfs 的能力、新的 last-run-stats 命令),开发了各种属性和命令。一个新的 Pot 版本将很快发布。
Potluck 旨在成为 FreeBSD 和 pot 的平台,就像 Dockerhub 是 Linux 和 Docker 的平台一样:一个 pot 风味和完整容器映像的仓库,可供 Pot 使用,并且在许多情况下也可供 Nomad 使用。
许多核心映像,如 Nomad、Consul 和 Vault,可用于构建私有云和编排平台,此外还包括 Prometheus 或 PostgreSQL Patroni,这些映像在过去的一个季度中达到了稳定状态,并且现在正在生产中使用。
为了方便导航不断发展的 pot 生态系统,项目的主要资源已集中在一个专用的 GitHub 项目中:https://github.com/bsdpot
在这里,我们计划发布 ansible playbooks,允许用户从零开始基于这些工具创建一个 FreeBSD 基础的编排环境。
一如既往,反馈和补丁欢迎提供。
链接: 项目网站和文档 URL: https://www.fpart.org 开发 URL: https://github.com/martymac/fpart Port URL: https://www.freshports.org/sysutils/fpart
联系方式:Ganael Laplanche <martymac@FreeBSD.org>
Fpart 是一个 文件系统分区工具。它帮助你对文件树进行排序并将它们打包到“分区”中。
它使用 FreeBSD 的 fts(3) 实现(GNU/Linux 构建也可以将其用作选项),使得它可以非常快速地遍历文件系统。
提供了一个钩子功能,用于在产生的分区上触发操作。
Fpsync 是一个配套脚本,它在后台使用 fpart 来并行化 rsync(1) 或 cpio(1) 作业,成为一个简单而强大的数据迁移工具。这些作业可以本地运行,也可以远程运行(使用 SSH)。Fpsync 通常被研究人员和云服务提供商使用,在需要大量数据迁移并且可以利用集群加速传输的场景中。
这两个工具继续发展并修复了多个 bug;请参阅 更新日志。
此外,有用户报告了一个关于我们 fts(3) 实现的重大 bug,指出它忽略了 readdir(3) 错误。我已经在 Bugzilla 中报告了这个问题:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262038
它应该很快合并(希望如此)。
最后但同样重要的是,fpart 已被 法国政府的 “SILL” 引用。
如果你有兴趣贡献,可以查看 TODO 列表。
任何贡献都欢迎,特别是在单元测试方面。