Debian 正式宣布官方源码站开放
2017-12-09 09:47:02 阿炯

本站赞助商链接,请多关照。 对于希望轻松浏览所有 Debian 软件包源代码的人,Debian 项目已帮你们实现这个心愿了。

2017年12月7日,Debian 项目宣布已启用 sources.debian.org 站点,广大用户可通过该站点浏览和搜索 Debian 发行版以及附带的每个软件包的源代码。你可能已经知道这个服务是以前托管在 sources.debian.net 上的,当时是被部署到非官方的 Debian 基础架构,现在它已经被部署到官方的 Debian 基础架构 -- 正式在 debian.org 上运行。

网站名称为 Debian Sources,访问它可以方便地查看和搜索 Debian 庞大的源码数据库;它还提供了源代码的版权文件,可轻松查看给定软件包的补丁。根据名称搜索特定包的源代码时,会提供源代码的多个版本 -- 来自 Debian mirror networkarchive.debian.org。可以查看官方的发布说明网站文档手册以了解更多。


Debian 移植 RISC-V 64 架构已接近完成

Debian 移植 RISC-V 64 进展迅速,截止到2019年6月已经完成了近 90% 的软件包移植。


上图展示的是目前 Debian 软件包移植到各个架构平台上的情况,其中 RISC-V 64(灰线)已经完成了近 90%,而这距离刚开始向该平台迁移才经过短短几个月。Debian 开发者在博客中指出,因为与架构无关的软件包大约占 Debian 的一半,而且只要所依赖的编程语言解释器之类的软件存在,那么所有移植版本其实都可以使用与架构无关的软件包。这意味着一开始就有大约 90% 的软件包可用于 RISC-V 64 架构。

但是剩下的大约 10% 是怎么回事呢?答案是与 LLVM 和 Rust 相关的软件,RISC-V 目前仍然缺乏对 LLVM 编译器的支持。Rust 其实也基于 LLVM,并且没有基于 GCC 或其它工具链的 Rust 编译器,LLVM 是唯一的选择,所以归结起来就是 LLVM 成了移植障碍。目前 Debian 中有超过 500 个来自 Rust 生态的软件包(约占 4%),在 Rust 支持 RISC-V 64 之前,它们都无法构建和使用。值得注意的是,Firefox 是依赖于 Rust 的主要高级包,但许多包也依赖于 librsvg2 渲染 SVG 图像,此库已切换到 Rust 上,而 Debian 当前还在使用 C 版本,这不是长久之计。 除了 Rust,其它软件包也在某种程度上直接依赖或使用 LLVM,这些都造成了移植 RISC-V 64 困难。不过开发者预计今年将会完成对 LLVM for RISC-V 64 的支持。开发者也介绍了接下来几个月的优化计划:
改进对 Debian RISC-V 64 可用硬件的支持,改进引导加载选项,改进 RISC-V 64 上 Debian 的命令。
完成 Debian RISC-V 的 wiki 页,其中包含了一个 chroot 在 HiFive Unleashedboard 中运行而不会破坏初始工厂设置的说明。
引导系统的完善,同时有设置 riscv64 Qemu VM 并使用 u-boot 和 opensbi 引导的说明。此外还有增加 debian-installer 支持,这是安装 Debian 系统的主要/规范方式。
提供 Qemu 和可用硬件的系统镜像支持。



Debian Project 发布 Linux 安全更新以修补最新的 Intel CPU 缺陷

Debian Project 为其受支持的 Debian GNU / Linux 版本在2019年11月发布了新的 Linux 内核安全更新,以解决影响英特尔 CPU 微体系结构的最新漏洞。

正如此前所透露的一样,Linux内核中发现了四个新的安全漏洞,它们对 Intel CPU 产生了影响,分别是 CVE-2019-11135,CVE-2018-12207,CVE-2019-0154 和 CVE-2019-0155。这些漏洞可能会导致特权升级,信息泄漏以及拒绝服务。紧随 Canonica 和 Red Hat 之后,Debian Project 也发布了新的 Linux 内核安全补丁,以及新的英特尔微代码更新,以缓解 Debian GNU / Linux 9 "Stretch" 和 Debian GNU / Linux 10 "Buster" 操作系统中的这些新漏洞。Debian Project 建议 Debian GNU / Linux 9 "Stretch" 和 Debian GNU / Linux 10 "Buster" 操作系统的所有用户尽快将其安装更新到新的 Linux 内核版本。

Debian 开启了一项决议以改变对闭源固件的态度

众所周知,Debian 目前默认不会在其系统上加载 non-free 固件;此举意味着相关硬件会缺乏硬件加速支持,也可能意味着会错过安全更新或解决相应的可用性问题。对此,Debian 在2022年早些时候进行了有关改变其闭源固件立场的讨论;现如今则已进行到了一个全面的决议过程,以征求利益相关者对如何处理 non-free 固件的投票。讨论期截至2022年9月初,正在考虑的提案有三个:

提案 A - 将在官方安装媒介上包括来自 Debian 存档的 non-free-firmware。所包含的固件二进制文件通常会在系统确定需要的情况下默认启用,但在可能的情况下,也会提供让用户在启动时禁用的方法(通过启动菜单选项、内核命令行等)。

当 Installer/live system 运行时,将向用户提供有关已加载固件的信息(free 和 non-free),并将该信息存储在目标系统上,以便用户后续查找。默认情况下,目标系统也将被配置为在 apt sources.list 文件中默认使用 non-free-firmware 组件。“我们的用户应该像任何其他已安装的软件一样收到固件二进制文件的安全更新和重要修复。”这些镜像将作为官方 Debian media 发布,替换当前不包含 non-free firmware 包的 media sets。

提案 B - 按照与提案 A 类似的方式将 non-free firmware 包含到官方媒介中。但不同之处在于,虽然会以官方形式发布这些镜像,但它们不会取代当前不包含 non-free firmware 包的 media sets,而是与之并列提供。包含 non-free firmware 的镜像将更突出地呈现,以方便查找;fully-free 的镜像不会被隐藏;它们将从相同的项目页面链接,但视觉优先级较低。

提案 C - Debian 项目允许将包含来自 Debian 存档的 non-free 部分的软件包的分发媒介,并使其与 free media 一起可供下载,以在下载之前通知用户哪些是 free 的。

更多详情可查看 Debian general resolution page

Debian 将允许安装非自由固件


接上文,考虑到现在越来越多的设备拥有开源 Linux 驱动程序,但它们需要闭源固件来实现任何级别的功能。Debian 开发者此前希望通过投票决定采用新方案来处理非自由固件。2022年10月上旬,关于非自由固件的投票现已结束并完成了统计工作;在关于是否允许默认加载非自由固件的投票中,提供了六个选项:
Option 1 "Only one installer, including non-free firmware"
Option 2 "Recommend installer containing non-free firmware"
Option 3 "Allow presenting non-free installers alongside the free one"
Option 4 "Installer with non-free software is not part of Debian"
Option 5 "Change SC for non-free firmware in installer, one installer"
Option 6 "Change SC for non-free firmware in installer, keep both installers"
Option 7 "None of the above"

最终第五选项(Option 5) ——“Change SC for non-free firmware in installer, one installer” 获选,即“改变安装程序中的非自由固件的社会契约(SC),采用单个安装程序”。

SC 指的是 Social Contract,是 Debian 项目的一份基础文件,它将添加一句话,声明 Debian 项目官方媒介将会包含原本不属于 Debian 的非自由固件,如果硬件工作需要将会默认加载安装。即在 Debian 的官方介质中包含非自由固件,并在《Debian 社会契约》的第 5 点的末尾增加以下一句话以说明:
“Debian 官方介质可以包括原本不属于 Debian 系统的固件,以使 Debian 能够在需要此类固件的硬件上使用”。

"The Debian official media may include firmware that is otherwise not part of the Debian system to enable use of Debian with hardware that requires such firmware."

Debian 项目表示,如果硬件需要非自由固件将会默认启用,它考虑同时提供启动菜单选项和内核命令行等方式允许用户在启动时禁用非自由固件。允许非自由固件是为了改进可及性,如盲人用户需要在文本语音模式下运行安装程序,可能需要先加载音频固件。

当安装程序/实时系统运行时,将向用户提供有关已加载固件的信息(自由和非自由),Debian 还将把这些信息存储在目标系统上,以便用户以后能够找到它。在发现需要非自由固件的情况下,目标系统也将默认配置为使用 apt sources.list 文件中的非自由固件组件。用户可以像任何其他已安装的软件一样收到固件二进制文件的安全更新和重要修复。另外,团队将把这些镜像作为官方 Debian 媒介发布,替换当前不包含非自由固件包的媒介集。