FreeBSD 2023 年第四季度状态报告
这是 2023 年的第四份状态报告,共包含 18 篇条目。
这是 2023 年的最后一个季度。你可能已经注意到,本次状态报告比往常发布时间更晚,且报告数量少于上一季度。事实上,每年最后一个季度对于我们社区的许多成员来说,都是圣诞节和新年庆祝的季节,这意味着他们会花更多时间陪伴家人,而留给自己热爱的自由软件项目的时间会相应减少。因此,本季度的报告较少,提交时间也相对较晚。但最终,它们还是如期而至。
祝阅读愉快!
—— Lorenzo Salvadore,代表状态报告团队
FreeBSD 团队报告
来自 管理页面 中各个官方及半官方团队的报告。
FreeBSD 核心团队
联系方式: FreeBSD 核心团队 <core@FreeBSD.org>
FreeBSD 核心团队是 FreeBSD 的管理机构。
与发布工程团队共同努力,项目将 FreeBSD 14.0-RELEASE 献给已故的 Hans Petter Selasky 以示纪念。
14.0-RELEASE
FreeBSD 14.0 于 2023 年第四季度末发布。
可在以下链接找到发布说明:https://www.freebsd.org/releases/14.0R/relnotes/
新的发布工程团队
经过多年服务,原发布工程师 gjb@ 退任。
cperciva@ 接任为新的发布工程师,karels@ 担任新的副发布工程师。
核心团队对 gjb@ 长期以来的贡献以及他所主导的多次准时发布表示感谢。
FreeBSD 2024 社区调查
2023 年底,核心团队与 FreeBSD 基金会合作开展了 2024 年社区调查。
FreeBSD 基金会
相关链接: FreeBSD 基金会 链接:https://freebsdfoundation.org/ 技术路线图 链接:https://freebsdfoundation.org/blog/technology-roadmap/ 捐赠 链接:https://freebsdfoundation.org/donate/ 基金会合作计划 链接:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/ FreeBSD 期刊 链接:https://freebsdfoundation.org/journal/ 基金会活动 链接:https://freebsdfoundation.org/our-work/events/
联系方式: Deb Goodkin <deb@FreeBSDFoundation.org>
FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于支持和推广 FreeBSD 项目及全球社区,并推动 FreeBSD 的技术发展。我们通过技术和非技术方式来实现这一目标。基金会 100% 依靠个人和企业的捐款,这些资金用于:
赞助软件开发项目,为 FreeBSD 实现新功能和特性,
赞助和组织会议及开发者峰会,提供合作机会并推广 FreeBSD,
购买和维护硬件,以改进和维护 FreeBSD 基础设施,
提供资源,提升安全性、质量保证和持续集成,
提供推广、教育和宣传 FreeBSD 所需的材料和人员,
促进商业供应商与 FreeBSD 开发者之间的合作,
代表 FreeBSD 项目执行合同、许可证协议及其他法律事务。
在 2023 年第四季度,基金会通过以下方式支持 FreeBSD:
操作系统改进
在 2023 年第四季度,共有 236 次 src
提交、47 次 ports
提交和 33 次 doc
树提交注明了 FreeBSD 基金会为其赞助方。其中部分由基金会赞助的工作已在单独的报告条目中描述:
本季度有三位新承包商加入:
Cheng Cui 开始全职从事无线网络开发,主要目标是协助 Bjoern Zeeb 在
iwlwifi
设备上实现 802.11ac 支持。Tom Jones 开始将 Vector Packet Processor (VPP) 移植到 FreeBSD。VPP 是一款开源的高性能用户态网络栈,能够快速处理数据包,适用于软件定义网络(SDN)和网络功能虚拟化(NFV)应用。
Olivier Certner 作为 FreeBSD 基金会的一般 FreeBSD 开发者加入,其贡献包括:
审查、修复并加强了多个安全策略,以限制进程可见性,这些策略基于用户身份、用户组成员资格或
jail
子系统的层级关系;在
login
类代码中修复了多个问题,包括一个允许非特权用户绕过资源限制的漏洞;为 AMD Zen2 处理器的 Zenbleed 漏洞实施了一个安全的硬件修复方案。
此外,在 2023 年第四季度,基金会赞助的其他部分工作包括:
arm64:添加 Armv8
rndr
随机数生成器支持网络:改进
net80211
、LinuxKPI
和iwlwifi
的功能和修复OpenSSL:更新至 3.0.11 和 3.0.12
freebsd-update:修复多个问题,以为 14.0 版本做准备
SSH:更新至 OpenSSH 9.5p1
IOMMU:多个错误修复
文件系统:
makefs
/ZFS
相关修复
关于基金会在 2023 年全年的软件开发工作,请参阅: https://freebsdfoundation.org/blog/2023-in-review-software-development/
FreeBSD 基础设施
我们批准了 10 余万美元 用于 FreeBSD 集群更新,该项目于 2023 年底启动,并将持续到新的一年。此项目包括采购和运送 15 台新服务器,它们将被部署在 NYI 公司慷慨捐赠的芝加哥数据中心的 4 个机架 里。集群管理团队根据需求确定了以下硬件配置:
5 台
package
构建服务器3 台
web
服务器2 台
package
镜像服务器2 台
CI
服务器2 台 防火墙/路由器
1 台 管理堡垒机
关于 2023 年的基础设施支持详情,请参阅: https://freebsdfoundation.org/blog/2023-in-review-infrastructure/
持续集成与工作流改进
作为对 FreeBSD 项目持续支持的一部分,基金会提供了一名全职员工,专门负责改进 FreeBSD 的持续集成(CI)和测试基础设施。完整的更新内容可在本季度状态报告中查看。
合作伙伴关系与研究
在 2023 年第四季度,我与以下个人、公司和组织进行了交流:
Phil Shafer(Juniper Networks)在 All Things Open 会议上介绍了 libxo 库,并分享了他在输出重写与过滤方面的持续研究。
Simon Gerraty(Juniper Networks)在 Vendor Summit 上介绍了 SecureBoot。
其他企业与机构:AMD、Ampere、互联网安全中心(CIS)、创新英国、Michael Dexter、Metify、微软、NetApp、NetScaler、NIST、Nozomi Networks、英伟达、Open Container Initiative 社区成员、OpenSSF、RG Nets、Doug Rabson。
2023 年 10 月,我有幸参加 NetApp 年度大会,与 NetApp 及其合作伙伴和客户就 AI 及 AI 数据管道、混合云、绿色计算 等主题进行了深入交流。我还借机分发了一些 FreeBSD 胸针 🙂,并与一位 NetApp 客户公司的 FreeBSD 用户建立了联系。
2023 年第四季度,我们发布了 FreeBSD SSDF 认证 计划,以帮助 FreeBSD 商业用户满足 美国政府采购法规 的新要求。该计划得到了 NetApp、Metify 和 NIST 的宝贵反馈,并受到了 OSI 的 Open Policy Alliance 社区的启发。
2023 年 12 月,Open Container Initiative(开放容器标准)技术监督委员会通过了 Doug Rabson 提出的提案,将成立工作组扩展 OCI 运行时规范,以支持 FreeBSD。感谢所有贡献者!FreeBSD 的 OCI 运行时扩展是社区最常请求的功能之一,我很高兴能在协调工作中尽一份力。
2023 年 11 月的 供应商峰会 取得了圆满成功,特别感谢 John Baldwin 和 Anne Dickison 在组织和协调方面的辛勤付出。我在会议上受益匪浅,尤其是:
与众多 FreeBSD 用户的交流
CHERI 项目演讲
最终用户小组讨论
Allan Jude 关于“Upstream First”策略的演讲
关于基金会在 2023 年的 合作伙伴关系与研究 方面的完整回顾,请参阅: https://freebsdfoundation.org/blog/2023-in-review-partnerships-and-research/
宣传
从组织和参加活动,到创建技术内容进行教育,再到扩大 FreeBSD 在媒体中的覆盖面,以下是我们在上个季度为支持 FreeBSD 所做的一些工作:
帮助组织并赞助了 2023 年 11 月在 NetApp(圣何塞) 举办的 Vendor Summit。许多人认为这是迄今为止最好的峰会之一。请务必查看 视频。
在 北卡罗来纳州 的 All Things Open 大会上,向新老朋友介绍了 FreeBSD。
提供了 FreeBSD 14 的概述:安全性、性能与互操作性;介绍 FreeBSD 14
与核心团队合作,发布了 2024 FreeBSD 社区调查:2024 FreeBSD Community Survey
参与了关于 FreeBSD 的访谈:What the Dev Podcast: FreeBSD 项目的演变
发布了 2023 年 9 月/10 月 期的 FreeBSD Journal,现在提供 HTML 版本的文章:FreeBSD Journal
想要了解我们在 2023 年宣传 FreeBSD 的详细回顾,请查看 2023 年宣传回顾:https://freebsdfoundation.org/blog/2023-in-review-advocacy/ 或查阅我们的月度通讯:https://freebsdfoundation.org/our-work/latest-updates/?filter=newsletter。
筹款
感谢上个季度所有为支持 FreeBSD 项目工作做出财务贡献的人。你们的支持让我们离目标更近了,我们对你们的投资表示感谢!我们仍在收到邮寄捐款,最终金额将在 2 月中旬公布。
请考虑在 2024 年继续支持我们的工作,捐赠链接如下:https://freebsdfoundation.org/donate/。
或者,了解我们的合作伙伴机会:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/。
法律/FreeBSD 知识产权
基金会拥有 FreeBSD 商标,并且我们有责任保护这些商标。我们还为核心团队提供法律支持,帮助他们解决相关问题。
请访问 https://freebsdfoundation.org 了解更多我们如何支持 FreeBSD,以及我们如何能帮助你!
FreeBSD 发布工程团队
链接: FreeBSD 13.3-RELEASE 日程 URL:https://www.freebsd.org/releases/13.3R/schedule/ FreeBSD 发布 URL:https://download.freebsd.org/releases/ISO-IMAGES/ FreeBSD 开发快照 URL:https://download.freebsd.org/snapshots/ISO-IMAGES/
联系方式:FreeBSD 发布工程团队, <re@FreeBSD.org>
FreeBSD 发布工程团队负责制定和发布 FreeBSD 项目的官方发布日程,宣布代码冻结以及维护相关分支等工作。
在 2023 年第四季度,团队继续推进 14.0-RELEASE,并于 11 月发布了最终的 RELEASE 版本。接下来的 13.3-RELEASE 和 14.1-RELEASE 循环的规划已开始。
发布工程团队继续提供 main 和 stable/13 分支的每周开发快照,并在 14.0-RELEASE 发布后,开始为 stable/14 提供每周快照。
在担任发布工程负责人十多年后,Glen Barber 退休了;他的副手 Colin Percival 接任发布工程负责人,而 Mike Karels 担任副发布工程负责人。
集群管理团队
链接: 集群管理团队成员 URL:https://www.freebsd.org/administration/#t-clusteradm
联系方式:集群管理团队 <clusteradm@FreeBSD.org>
FreeBSD 集群管理团队成员负责管理 FreeBSD 项目依赖的机器,以同步其分布式工作和通信。
在本季度,团队完成了以下工作:
定期支持 FreeBSD.org 用户账户。
定期为所有物理主机和镜像提供磁盘和零部件支持(以及更换)。
启用在 FreeBSD 项目管理的镜像站中同步 https://www.FreeBSD.org 和 https://docs.FreeBSD.org。
集群刷新,将所有主机和 jails 升级至最新版本的 15-CURRENT、14-STABLE、13-STABLE 和 12-STABLE。
开始逐步淘汰 12-STABLE 基础设施,因为该分支接近生命周期结束。
除了这些项目外,在 Modirum 慷慨赞助了 Philip 在 10 月的大部分时间后,我们成功地将 pkgbase 推进到“预览”生产阶段,及时为 14.0-RELEASE(11 月发布)做好准备。
我们还在瑞典 Sjöbo 安装了一个新的欧洲镜像站,该站由 Teleservice Skåne AB 赞助。现在,欧洲的流量大致均匀地分配在我们现有的法兰克福镜像(由 Equinix 赞助)和新的瑞典镜像之间。在服务超过十年后,我们计划在 2024 年第一季度停用位于英国的镜像站。我们感谢 Bytemark Hosting 长期以来对该镜像的支持。
下个季度,在 FreeBSD 基金会的支持下,我们计划在芝加哥建立一个新的主集群站点。
FreeBSD 官方镜像概览
当前镜像站位置包括澳大利亚、巴西、德国、日本(两个完整镜像站)、马来西亚、南非、瑞典、台湾、英国(完整镜像站)、美国(加利福尼亚、新泽西【主站点】和华盛顿)。
硬件和网络连接由以下公司慷慨提供:
Bytemark Hosting(2024Q1 期间停用)
BroadBand Tower, Inc 的云计算和 SDN 实验室
Teleservice Skåne AB(2023Q4 新增)
持续集成
链接: FreeBSD Jenkins 实例 URL:https://ci.FreeBSD.org FreeBSD CI Tinderbox 视图 URL:https://tinderbox.freebsd.org FreeBSD CI 工件存档 URL:https://artifact.ci.FreeBSD.org 托管 CI 维基 URL:https://wiki.FreeBSD.org/HostedCI 第三方软件 CI URL:https://wiki.FreeBSD.org/3rdPartySoftwareCI 与 freebsd-testing@ 相关的工单 URL:https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status= FreeBSD CI 存储库 URL:https://github.com/freebsd/freebsd-ci dev-ci 邮件列表 URL:https://lists.FreeBSD.org/subscription/dev-ci
联系方式:Jenkins 管理员 <jenkins-admin@FreeBSD.org> 联系方式: 許立文 <lwhsu@FreeBSD.org> 联系方式:freebsd-testing 邮件列表 联系方式:IRC #freebsd-ci 频道(EFNet)
在 2023 年第四季度,我们与项目贡献者和开发者合作,解决他们的测试需求。同时,我们与外部项目和公司合作,通过在 FreeBSD 上进行更多测试来增强他们的产品。
完成的重要任务:
添加构建 amd64 架构的工作,使用 GCC 13(感谢 jhb@)
为 stable-14 添加 powerpc64le 作业配置(感谢 alfredo@)
更新 main 和 stable/14 分支的构建环境至 14.0-RELEASE
进行中的任务:
设计并实现基于预提交的 CI 构建和测试系统,以及基于拉取/合并请求的系统(以支持 工作流程工作组)
概念验证系统正在进行中
设计并实施使用 CI 集群构建发布工件,类似发布工程的做法,从快照构建开始
简化 CI/测试环境的设置,方便贡献者和开发者使用
设置 CI 阶段环境,并将实验性作业放置在其上
重新设计硬件测试实验室,增加更多硬件进行测试
待处理或排队的任务:
收集和整理 CI 任务和想法
为运行测试的 VM 客户机设置公共网络访问
实施使用裸金属硬件运行测试套件
添加 drm Port 构建测试,针对 -CURRENT
计划运行 ztest 测试
帮助更多软件在其 CI 流水线中获得 FreeBSD 支持(维基页面:3rdPartySoftwareCI,HostedCI)
与托管 CI 提供商合作,改善 FreeBSD 的支持
请查看 与 freebsd-testing@ 相关的工单 以获取更多关于工作进行中的信息,欢迎加入我们的努力!
赞助商:FreeBSD 基金会
Ports
链接: 关于 FreeBSD Ports URL:https://www.FreeBSD.org/ports/ 为 Ports 贡献 URL:https://docs.freebsd.org/en/articles/contributing/#ports-contributing
Ports 管理团队 URL:https://www.freebsd.org/portmgr/ Ports Tarball URL:http://ftp.freebsd.org/pub/FreeBSD/ports/ports/
联系方式:Tobias C. Berner <portmgr-secretary@FreeBSD.org> 联系方式:FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>
Ports 管理团队负责监督 Ports 的整体方向,构建包以及人事事务。以下是本季度的工作概况。
根据 INDEX,目前 Ports 中共有 31,942 个 ports。当前大约有 3,100 个开放的 ports PR。这个季度,主分支共进行了 9,424 次提交,涉及 157 名提交者,2023Q4 分支共进行了 781 次提交,涉及 71 名提交者。与上个季度相比,主分支的提交次数显著减少(从 11,454 次减少),而季度分支的回溯提交也略有减少(从 828 次减少)。ports 数量也有所下降(从 34,600 个减少)。
在第四季度,主分支共进行了约 9,424 次提交,最活跃的提交者如下:
在第四季度,我们欢迎 Michael Osipov (michaelo) 和 Timothy Beyer (beyert) 成为新的提交者,但也遗憾地告别了 bland、sbruno、hselasky 和 gjb。
我们邀请了 arrowd、flo 和 riggs 成为 portmgr-lurkers,加入未来几个月的工作。
在季度末,FreeBSD 12.x 的支持被移除。
第四季度结束时,还引入了子包到 Ports。与引入 flavor 时类似,新子包将需要得到 portmgr 的批准,才能推送到树中。使用子包后,可以从单个 ports 构建生成多个包。
基础设施方面发生了以下变化:
构建了 14.0-RELEASE 的包
更新了 Poudriere 至 release-3.4
不再维护的 www/qt5-webkit 被移除。
以下软件包被移除:
postgresql11, php80, mysql57, percona57, ghostscript9
以下默认版本发生了变化:
perl 升级至 5.36
ghostscript 升级至 10
corosync 升级至 3
更新的主要 ports 包括:
ports-mgmt/pkg 升级至 1.20.9
ports-mgmt/poudriere 升级至 3.4.0(支持子包)
KDE-bits 升级至 plasma-5.27.10, frameworks-5.112, gear-23.08.4 和 beta-2
www/chromium 升级至 120.0.6099.129
www/firefox 升级至 121.0(rc1)
lang/rust 升级至 1.74.1
… 还有更多 …
在上个季度,pkgmgr@ 执行了 26 次 exp-run,测试了各种 ports 升级、默认版本更新、子包支持和基本系统更改。
Bugmeister 团队和 Bugzilla
链接: Bugmeister 团队 URL:https://www.freebsd.org/administration/#t-bugmeister FreeBSD Bugzilla URL:https://bugs.freebsd.org/bugzilla/
联系方式:Bugmeister <bugmeister@FreeBSD.org>
最近对我们的 Bugzilla 实例进行了以下维护:
每周提醒邮件现在包括了参数
mfc-*
查询的正确值;仪表板页面删除了一个过时的查询。(我们不再使用关键字
patch-ready
;它带来了过多的文书工作。因此,该字段的查询已经没有意义。)限制报告 PR 的最大数量的上限已从 10000 提高到 12500。
此外,我们已更新了关于 Bugzilla 的 Wiki 文档:
页面 https://wiki.freebsd.org/Bugzilla/SearchQueries 进行了大幅重构:
特别地,添加了如何按标志值进行搜索的文档。(这之前可能没有做过。)例如:搜索设置了参数
mfc-stable14
的 PR;该页面对所有提交者和贡献者可能都有兴趣;
页面 https://wiki.freebsd.org/Bugmeister/BugmeisterQA 也已更新;虽然与上述页面类似,但它更具体地面向 Bugmeister 和审查者。
此外,针对 FreeBSD 12 的 PR 正在被筛选,因为 12 已于 2023 年 12 月 31 日停止支持。
我们还在努力记录 Bugzilla 的设置,特别是关于我们的定制部分。这是为了使我们的仓库与生产环境中运行的版本保持一致。
过去一个季度(和年度)的 PR 数量保持稳定。然而,我们似乎现在处理 PR 的速度更快了。参考:https://bugs.freebsd.org/bugzilla/page.cgi?id=dashboard.html&days=90。
PR 总数保持在 11,400 左右。
Bugmeister 也在努力重新启动 Bugathons。请参见更新后的页面 https://wiki.freebsd.org/Bugathons。
Bugmeister 感谢一批协助处理 bug 的人员,包括 Mina Galić、Graham Perrin、Lorenzo Salvadore 和 Fernando Apesteguìa 等人。
此外,Bugmeister 感谢所有帮助处理 PR 的 FreeBSD 提交者。在过去的几个月里,我们似乎已经接近稳定状态。
用户空间
影响基本系统及其程序的变更。
服务 jail — 自动 jailrc.d 服务
链接: D40370: 自动 jail rc.d 服务的基础设施 URL:https://reviews.freebsd.org/D40370 D40371: 自动服务 jail:为自动服务 jail 中服务的完全功能设置一些配置 URL:https://reviews.freebsd.org/D40371 D42779: 手册 / rc 文章更新,关于服务 jail URL:https://reviews.freebsd.org/D42779
联系方式:Alexander Leidinger <netchild@FreeBSD.org>
服务 jail 扩展了 rc(8) 系统,允许自动 jail rc.d 服务。服务 jail 继承父主机或 jail 的文件系统,但默认使用 jail 的其他所有限制(进程可见性、受限的网络访问、文件系统挂载权限、sysvipc 等)。额外的配置可继承父主机的 IP、sysvipc、内存页面锁定,并使用 bhyve 虚拟机监控器 (vmm(4))。
如果你想将例如 local_unbound 放入服务 jail 并允许 IPv4 和 IPv6 访问,只需将 rc.conf(5) 更改为:
注意:所有基本系统服务都已在补丁中覆盖,使用 name_svcj_options 或在服务 jail 功能不适用的地方进行硬编码禁用(例如,纯服务,它们改变运行时配置但不启动守护进程,或者运行无法在 jail 内以合理方式运行的程序)。因此,上面的 local_unbound_svcj_options
这行是多余的,仅作为示例,说明所需配置的数量。
虽然这没有手动 jail 设置(具有独立文件系统和 IP/VNET)那样的安全优势,但它更容易设置,同时提供了 jail 的一些安全优势,如隐藏同一用户的其他进程。
自 上次服务 jail 状态报告 以来,添加了以下内容:
在服务 jail 框架中支持 NFS(未经测试),
允许将
start
和stop
之外的其他服务命令 jail ,D40371 中补丁的所有基本系统服务的服务 jail 选项/配置,
在手册中开始记录服务 jail 。
并非所有服务都经过测试,但所有服务都有配置。
欢迎任何测试和反馈(即使是简单的“服务 X 在服务 jail 中正常工作”)。
内核
更新内核子系统/功能、驱动程序支持、文件系统等。
Packrat——非易失性存储上的 NFS 客户端缓存
联系方式:Rick Macklem <rmacklem@FreeBSD.org>
NFSv4.1/4.2 支持一种称为“委托”的功能。当一个 NFSv4.1/4.2 客户端持有委托时,该客户端对文件拥有一定的权限,包括保证除非委托被召回,否则其他客户端不能更改该文件。因此,当客户端持有文件的委托时,它可以积极地缓存文件的数据,因为它知道在返回委托之前,其他客户端不会修改该文件。
该项目旨在允许 NFSv4.1/4.2 客户端在客户端本地非易失性存储上积极缓存文件数据,当客户端持有文件的委托时。我很久以前创建了一个补丁,试图为 NFSv4.0 做到这一点,但它从未达到可以使用的阶段。这个项目是对该补丁的完全重写,部分原因是 NFSv4.1/4.2 加上其他最近的 NFSv4 相关变化使得这一操作变得更加可行。
我现在有代码运行得相当好,并希望在冬季为其他人提供补丁进行测试。早期测试显示了希望。在进行“make buildkernel”的测试时,启用和未启用 packrat 的测试结果如下:
表格 1. NFS 操作计数
启用 packrats
433506
99254
0
0
371736
未启用 packrats
2359913
97954
10748
0
2318810
表格 2. 运行耗时
这是你需要的表格:
5561
6203
如你所见,启用 packrat 的情况运行得稍快,且 RPC 数量较少。尽管此测试是在我的小型局域网中进行的,但预计 NFSv4.1/4.2 在广域网中的挂载会显示出更大的性能差异。我会提到,packrat 缓存是通过将 FreeBSD 的 /usr/src
解压到 NFSv4.1/4.2 挂载点来启动的。
这将是一个非常实验性的功能,但希望它能让 NFS 挂载在 WAN 环境中(例如移动笔记本电脑)更有效地使用。
仍然需要做一些工作,特别是在 NFSv4.1/4.2 客户端重启后恢复委托方面。希望下一次状态报告中会提供一个 URL,允许下载供用户测试的补丁。
架构
更新平台特定的功能并引入对新硬件平台的支持。
armv7 Ports 质量保证
联系人:Robert Clausecker <fuz@FreeBSD.org>
作为长期项目的一部分,旨在提高 FreeBSD armv7 架构的 Ports 质量,已修复了基本系统和各种 Port 中的多个问题。通过这一举措,能够成功构建自 2023Q4 分支的二进制包的数量从 2023 年 10 月 4 日的 30018 增加到 2023 年 11 月 24 日的 31118。
已识别并解决了两个影响包构建的内核错误(PR 267788 和 PR 274705),这两个问题单独就导致了 900 多个构建失败。其他常见的构建失败原因包括:
缺乏 FreeBSD 特定的 armv7 支持代码
数据对齐问题(armv7 是少数不支持非对齐内存访问的架构之一)
构建过程中出现地址空间耗尽问题(通常与 LTO 相关;PR 274705 解决了许多这种情况)
armv7 FreeBSD 上缺少 OpenMP 支持
如果你是 armv7 上使用 FreeBSD Ports 的用户,遇到任何问题,请随时在我们的 bug 跟踪器 上提交错误报告。
amd64 的 SIMD 增强
链接: FreeBSD 基金会博客文章 simd(7) 正在接受测试的工作
联系人:Robert Clausecker <fuz@FreeBSD.org>
该项目已完成,旨在通过 SIMD 实现增强 amd64 上的 libc 字符串函数。总共编写了 17 个 libc 函数的 SIMD 实现,并根据需要补充了标量实现。通过这次重写,平均长度为 64 个字符的字符串函数的性能提高了 5.54 倍。此外,还有 9 个其他库函数被重写,以调用 SIMD 增强的例程,从而带来好处,而不需要额外的汇编实现。详情请参见上述的 FreeBSD 基金会博客文章。
部分 SIMD 工作已出现在 CURRENT 分支中,其余部分目前正在接受测试,若没有问题,将进行合并。计划将所有改进反向移植到 14-STABLE,以便包含在 FreeBSD 14.1 中。
赞助商:FreeBSD 基金会
云
更新云特定功能并引入对新云平台的支持。
FreeBSD 上的 OpenStack
链接: OpenStack OpenStack on FreeBSD
联系人:Chih-Hsin Chang <starbops@hey.com> 联系人:許立文 <lwhsu@FreeBSD.org>
在第四季度,我们成功地将最初虚拟化的 OpenStack 平台迁移到运行 FreeBSD 14.0-STABLE 的物理机器上。迁移的 OpenStack 组件包括 Keystone、Glance、Placement、Neutron 和 Nova。作为这一过程的一部分,我们借此机会更新了 安装文档和依赖列表。
接下来,我们鼓励有兴趣的用户和开发者按照此文档在他们的 FreeBSD 环境中轻松重建 OpenStack 平台。任何遇到的问题或困难欢迎在 GitHub 项目页面 上报告。你的贡献将有助于改进我们的安装文档以及整体移植工作。
在下一个季度,我们的重点将转向将迁移过程中生成的各种补丁和解决方法,以更结构化的代码形式整合到项目中。此外,我们计划为每个 OpenStack 组件开发 FreeBSD Port,从而进一步简化安装过程。
赞助商:FreeBSD 基金会
FreeBSD 与微软 HyperV & Azure
链接: Microsoft Azure 文章在 FreeBSD wiki 上 Microsoft HyperV 文章在 FreeBSD wiki 上
联系人:Microsoft FreeBSD 集成服务团队 <bsdic@microsoft.com> 联系人:freebsd-cloud 邮件列表 联系人:The FreeBSD Azure 发布工程团队 <releng-azure@FreeBSD.org> 联系人:Wei Hu <whu@FreeBSD.org> 联系人:Souradeep Chakrabarti <schakrabarti@microsoft.com> 联系人:許立文 <lwhsu@FreeBSD.org>
在本季度,我们解决了所有阻碍问题,并发布了 14.0-RELEASE 在 Azure Marketplace,提供完整的架构(amd64, arm64)和虚拟机生成(gen1, gen2)支持,并且可以选择 UFS 和 ZFS 作为根文件系统。
正在进行的任务:
自动化镜像构建和发布过程,并合并到
src/release/
。构建并发布快照构建到 Azure 社区画廊。
以上任务由 FreeBSD 基金会赞助,由微软提供资源。
待办事项
更新 FreeBSD 相关文档至 Microsoft Learn
在 Azure Pipelines 中支持 FreeBSD
更新 Azure 代理 Port 到最新版本
赞助商:微软(为微软内部人员提供)及资源提供给其他人员 赞助商:FreeBSD 基金会(为其他所有事项提供赞助)
FreeBSD EC2
联系人:Colin Percival <cperciva@FreeBSD.org>
FreeBSD 可用于 amd64(Intel 和 AMD)和 arm64(Graviton)EC2 实例。工作持续进行,确保即将推出的实例类型得到支持;最近,需要进行一些更改以支持“第 7 代”Intel 和 AMD 实例。
FreeBSD 14.0-RELEASE 携带了实验性的 ZFS 根 AMI 和 "cloud-init" AMI。还计划提供其他 "flavored" FreeBSD AMI,包括 "AMI Builder" 和 "minimal"(没有调试符号)。
发布构建过程中发现的一个错误,导致 14.0-RELEASE AMI 包含 /etc/rc.conf
中重复的行,已被修正,未来的发布版本应该不会受到影响。
ec2-aws-imdsv2-get 工具中的一个错误导致 14.0-RELEASE AMI 不支持二进制用户数据文件,现已修正,未来的发布版本不再受此影响。
此工作由 Colin 的 FreeBSD/EC2 Patreon 支持。
文档
文档树、手册页或新的外部书籍/文档中的重要变化。
文档工程团队
链接: FreeBSD 文档项目 FreeBSD 文档项目新贡献者入门指南 文档工程团队
联系人:FreeBSD Doceng 团队 <doceng@FreeBSD.org>
doceng@ 团队负责处理与 FreeBSD 文档项目相关的一些元项目问题;有关更多信息,请参见 FreeBSD Doceng 团队章程。
在过去的一个季度:
Glen Barber 离开了 doceng。doceng 感谢 gjb@ 的服务。
应 Ceri Davies 的要求,他的提交权限被暂时保管。doceng 感谢 ceri@ 的贡献。
mhorne@ 将由 carlavilla@ 指导,以获得文档提交权限。
FreeBSD 手册:
手册已更新,显示 FreeBSD 14.0 是最新发布版本。
FreeBSD Weblate 翻译
链接: 在 Weblate 上翻译 FreeBSD FreeBSD Weblate 实例
2023 年第四季度状态
17 支团队语言
203 名注册用户
语言
简体中文 (zh-cn) (进度:7%)
繁体中文 (zh-tw) (进度:3%)
荷兰语 (nl) (进度:1%)
法语 (fr) (进度:1%)
德语 (de) (进度:1%)
印度尼西亚语 (id) (进度:1%)
意大利语 (it) (进度:5%)
韩语 (ko) (进度:33%)
挪威语 (nb-no) (进度:1%)
波斯语 (fa-ir) (进度:2%)
波兰语 (进度:1%)
葡萄牙语 (进度:0%)
巴西葡萄牙语 (pt-br) (进度:22%)
西班牙语 (es) (进度:35%)
土耳其语 (tr) (进度:2%)
我们感谢所有贡献翻译或审阅文档的人员。
请帮助在你的本地用户组中推广这一努力,我们总是需要更多的志愿者。
FreeBSD 手册工作组
联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>
下一部分将是文件系统部分:UFS、ZFS、其他文件系统
FAQ 工作组
联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>
新的 FAQ 与 FreeBSD 14.0 一起发布。
FreeBSD 网站改版 - WebApps 工作组
联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>
工作组负责创建新的 FreeBSD 文档门户,并重新设计 FreeBSD 主网站及其组件。FreeBSD 开发者可以通过 FreeBSD Slack 渠道 #wg-www21 跟进并加入工作组。该工作将分为三个阶段:
网站上的手册页重新设计 使用 mandoc 生成 HTML 页面脚本。(已完成,Doceng 审批,部署日期尚未决定)公开实例见 https://man-dev.FreeBSD.org
FreeBSD 主网站重新设计 新设计,响应式和黑暗主题。(几乎完成,已在 EuroBSDCon 上展示)
网站上的 Ports 页面重新设计 用于创建应用程序门户的 Ports 脚本。(进行中)
FreeBSD 在线编辑器和手册页编辑器
链接: FreeBSD 在线文档编辑器 FreeBSD 在线手册页编辑器
联系人:Yan-Hao Wang <bses30074@gmail.com> 联系人:許立文 <lwhsu@FreeBSD.org>
本报告继续概述 FreeBSD 在线编辑器和手册页编辑器项目,概述了近期提升文档和手册页编辑过程的努力。为了优化项目的结构完整性,我们聘请了专业的前端程序员。我们计划尽快发布编辑器,并且目前有一些任务需要额外的支持。
我们正在积极寻找合适的人选,进行项目的全面前端安全审查。
需要仔细检查 JavaScript 代码,确保其稳健性和效率。我们正在寻找具备专业技能的人来深入检查代码库,找出任何问题,并提出优化建议以提高性能。
由于目前没有现成的 JavaScript 库来渲染 mandoc,我不得不自己创建一个。然而,在编辑过程中仍然存在一些隐藏的错误。我们正在寻求帮助解决这些渲染问题。
FreeBSD Wiki
链接: Wiki
联系人:Wiki 管理团队 <wiki-admin@FreeBSD.org>
目前正在计划向 Discord 上的观众介绍 Wiki(我们在 FreeBSD 社区中有太多的“孤岛”)。欲了解更多信息,请联系 FreeBSD Discord 上的 Setesh。
正在进行对 Wiki 软件本身的更新工作。继续使用 MoinMoin 需要一个包含较低版本 Python 的 jail。MoinMoin 项目本身似乎在重新设计的过程中停滞;至少需要完成后端数据库的升级。
考虑中的替代方案包括 MediaWiki 和 DocuWiki;详见 https://wiki.freebsd.org/Wiki/NextGeneration。大多数讨论正在 Matrix 上进行;如果你想参与,请联系 wiki-admin@FreeBSD.org。
Ports
影响 Ports 的变化,无论是涉及大多数树的广泛变化,还是个别 Port 的变化。
KDE 在 FreeBSD 上
链接: KDE/FreeBSD 项目 FreeBSD — KDE 社区 Wiki
联系人:Adriaan de Groot <kde@FreeBSD.org>
KDE 在 FreeBSD 上的项目为 FreeBSD Ports 打包了 CMake、Qt 和来自 KDE 社区的软件。该软件包括一个完整的桌面环境 KDE Plasma(支持 X11 和 Wayland),以及可以在任何 FreeBSD 机器上使用的数百个应用程序。
KDE 团队 是 desktop@ 和 x11@ 的一部分,负责构建软件栈,使 FreeBSD 成为美观且可用的日常图形桌面工作站。以下笔记主要描述 KDE 的 Port,但也包括对整个桌面栈重要的项目。
基础设施
CMake 已更新多次,目前版本为 3.28.1,为最新的上游版本。FreeBSD 的 Ports 再次完全更新。
Qt5 现在进入长期支持阶段,更新频率较低。KDE 补丁集是 Qt 的一个社区支持分支,拉取 KDE 社区的上游补丁和修复,并更新到 5.15.12。Qt5 Port 中有几个废弃项(见下文)。
Qt6 和 KDE 即将发布的 KDE Plasma 6 大版本(计划于 2024 年第一季度发布)是 KDE 团队的下一个主要里程碑。Qt6 已更新到 6.6.1 版本,同时更新了 Qt 的 Python 绑定 PySide。KDE Frameworks 6 的 alpha 版本已添加到 Ports 中。
KDE 栈
KDE Gear 每季度发布一次,KDE Plasma 每月更新一次,KDE Frameworks 每月都有新版本发布。这些(大型)更新在上游发布后不久就会推出,并未单独列出。
KDE Frameworks 达到了 5.112 版本。KDE Frameworks 5 系列即将结束,尽管它仍会有几个月的长期支持。
KDE Plasma 桌面已更新到 5.27.10 版本。
KDE Gear 更新到 23.08.4 版本。
KDE Frameworks 6(alpha)更新到 5.247 版本,并已在 Ports 中更新。
KDE Plasma 桌面 6(beta 2)更新到 5.91.0,并已在 Ports 中更新。
相关 Port
KDE 生态系统包含海量的 Port——大多数由 kde@ 维护,所有 Port 都建立在 Qt 和 KDE Frameworks 的共享基础上。KDE 团队根据需要更新这些 Port。本季度,KDE 团队再次感谢 Tobias C. Berner、Gleb Popov 和 Jason E. Hale 持续更新 Port。
许多 Port 已“风味化”,支持在 Ports 中使用 Qt5 和 Qt6 版本。
特别提到:
新 Port x11/xwaylandvideobridge。按照设计,X11 应用程序无法访问 Wayland 客户端的窗口或屏幕内容。视频桥接改善了 Wayland 对屏幕共享工具(如 Discord、MS Teams、Skype 等)的支持。屏幕共享完全由 Wayland 用户控制。
multimedia/mlt7 更新到 7.20.0。
sysutils/bsdisks 更新到 0.33。
修复了 devel/llvm15 中的 bug,使 devel/kdevelop 再次工作。
对 www/qt5-webengine 和 www/qt6-webengine 进行的安全修复。
废弃项
网页浏览器体积庞大,具有相当大的安全面。已于 2023 年最后一天移除了备受推崇的 Port www/qt5-webkit WebKit 。
GNOME 44 的状态
联系人:FreeBSD GNOME 团队 <gnome@FreeBSD.org> 联系人:Olivier Duchateau <duchateau.olivier@gmail.com>
GNOME 是一款完整的桌面环境,主要基于 GLib、GTK3/GTK4 和 libadwaita。它提供了两个窗口管理器或合成器:x11-wm/mutter 和 x11-wm/metacity。
目前在 Ports 中,x11/gnome-shell 上游不再支持。由于这项工作量较大,为了让用户能够使用 GNOME 44,我决定将更新分开进行,因为它影响到多个 Port。
作为 x11/budgie 和 Pantheon 桌面的维护者(Pantheon 是一款基于 x11-wm/mutter 的窗口管理器,专为 elementary OS 开发),我需要一些更新版的 GNOME 库。
首先,我着手处理 WebKitGTK。4.0 “legacy” API 几乎不再被 GNOME 的库使用。最低要求是 4.1 API。我为 Mk/Uses 框架创建了 webkit.mk,以便为 www/webkit2-gtk3 添加“风味”。目前有一个 进行中的努力,但它目前不稳定。像 Epiphany、邮件客户端(Geary、Evolution)或包:sysutils/gnome-control-center 中的在线帐户面板等应用程序经常崩溃。
尽管如此,桌面的其余部分是可用的,最新的 GNOME Shell 版本(44.7)是可用的。我已经开始提交我的第一个补丁进行审查(以及 Bugzilla 中的补丁)。
我还移植了 GNOME Flashback 会话模块。它依赖于 x11-wm/metacity 和 x11-toolkits/libwnck3。
GNOME 45 已接近完成,除了 GNOME Shell 扩展。对于这个版本,我将专注于 Wayland 支持(bug #258042 和 bug #271836)。
欢迎进行测试和补丁,特别是 WebKitGTK。
接下来几个月我计划进行以下工作:
允许在显示管理器(gdm)中选择会话,这是我们补丁的回归问题。
修复 sysutils/gnome-control-center 中的网络共享(VNC、SSH)面板,并为 bug #275900 提供回溯。
继续更新 GNOME 45 的应用程序和库。
FreeBSD 上的 GCC
链接: GCC 项目 GCC 10 版本系列 GCC 11 版本系列 GCC 12 版本系列 GCC 13 版本系列
联系人:Lorenzo Salvadore <salvadore@FreeBSD.org>
将 GCC 默认版本更新为 13 的工作正在推进。感谢 Antoine Brodin 进行的实验运行以及所有其他开发者和 Ports 维护者的参与。
正如你可能记得的,上个季度,额外的补丁与默认版本更新一起进行了测试,其中一些已经合并:
lang/gcc11 已切换回 STANDARD_BOOTSTRAP,并更新到 11.4.0 版本;
lang/gcc13 已更新到 13.2.0 版本。
大约一半的公开 bug 已经修复,但还有一半未解决。如果你维护任何受影响的 Port,请尝试修复你的 Port 并/或使其能够在基础编译器下构建。
本季度,关于 GCC 的多个 bug 报告也已被打开。待默认 GCC 版本更新完成,所有这些 bug 都将得到解决。
第三方项目
许多项目在 FreeBSD 上构建或将 FreeBSD 的组件纳入其项目中。由于这些项目可能对更广泛的 FreeBSD 社区感兴趣,我们有时会在季度报告中包括这些项目提交的简要更新。FreeBSD 项目不对这些提交中的任何声明的准确性或真实性做出任何声明。
容器与 FreeBSD:Pot、Potluck 和 Potman
联系人:Luca Pizzamiglio (Pot) <pizzamig@FreeBSD.org> 联系人:Bretton Vine (Potluck) <bv@honeyguide.eu> 联系人:Michael Gmelin (Potman) <grembo@FreeBSD.org>
Pot 是一个 Jail 管理工具,还支持通过 Nomad 进行编排。
在本季度,Pot 0.16.0 发布,包含 多个新特性和修复,其中包括 一个新设置,用于防止 VNET pots 之间的直接流量 和 新属性,用于配置 pot 停止行为。还发布了维护/稳定版本的 potnet (0.5.0) 和 nomad-pot-driver (0.10.0)。
Potluck 旨在成为 FreeBSD 和 Pot 的 Dockerhub,类似于 Docker 对 Linux 和 Docker 的作用:一个存储 Pot 风味和完整容器镜像的仓库,用于与 Pot 配合使用,在许多情况下也可与 Nomad 配合使用。
在上个季度中,新增的一个容器镜像是 Zincsearch,这是一个用 Go 编写的轻量级 Elasticsearch 替代品。
同时,Mastodon 容器 正在为公共的 mastodon.africa 实例提供服务。
此外,我们获得了更多的宣传:BSD Now 第536集 标题为 “Pot-flavored Jails”。
像往常一样,欢迎提供反馈和补丁。
赞助商:Nikulipe UAB、Honeyguide Group
最后更新于
这有帮助吗?