对于开发者的Fedora 40 中的变化

PyTorch

Fedora 40 是第一个提供 PyTorch 的 Fedora 版本,PyTorch 是一个基于 Torch 库的机器学习框架,用于计算机视觉和自然语言处理等应用,最初由 Meta AI 开发,现在是 Linux 基金会旗下的一部分。它是在修改后的 BSD 许可证下发布的免费开源软件。

将 PyTorch 作为 Fedora 软件包提供,意味着用户现在可以使用 DNF 代替 pip 进行安装。Fedora 40 提供的初始版本是 2.1.2。要安装,请运行 dnf install python-torch

要开始使用 PyTorch,请参阅官方文档。那些对 Fedora 中的 PyTorch 特别感兴趣的人,如开发者、打包者、末端用户等,可以加入PyTorch Fedora 特殊兴趣组

PHP 8.3

PHP 编程语言解释器堆栈已升级到 8.3 版,该版本提供了多个错误修复和增强功能。值得注意的变化包括:

  • 指定类常量的显式类型

  • 动态类常量获取

  • 新的 #[\Override] 属性

  • 只读属性的深度拷贝

  • 新的 `json_validate()`函数

  • 新的 `Randomizer::getBytesFromString()`方法

  • 命令行linter支持多文件

有关更新的全部内容,请参阅 上游发行说明

Golang 1.22

Fedora 40 提供 Golang 1.22 版本。请参阅上游发布说明以获取完整的变更列表。

Python 3.7退役

从这一版本开始,Python 3.7 版本将被视为退役版本,因为自 2023 年 6 月起它的生命周期就终止了。但是Python 3.7不会被替换。

LLVM 18

所有 LLVM 子项目都已更新至第 18 版,其中包括 llvm 库的 soname 版本变更。新增了兼容包 clang17、llvm17 和 lld17,以确保目前依赖于 clang 和 llvm 第 17 版库的软件包能够继续工作。

其他显著变化包括:

  • clang 将默认发射 DWARF-5,而不是 DWARF-4。这与上游的默认值一致。由于 https://bugzilla.redhat.com/show_bug.cgi?id=2064052 的原因,Fedora 在过去几个版本中一直使用 DWARF-4 作为默认值。

  • 现在,兼容性软件包将包含与主软件包相同的内容。在以前的版本中,兼容性软件包只包含库和头文件,二进制文件和其他内容都被删除了。这些软件包将被支持作为其他 RPM 软件包的依赖包使用,但最终用户不能在通常情况下使用。Fedora 用户应使用 Clang/LLVM 18。

  • 为 Fedora 40 添加的兼容性软件包将在 Fedora 41 分支之前退役。

  • 如果该功能能在上游 LLVM 18 版本发布时完成,我们将在 redhat-rpm-config 中启用 Fat LTO。Fat LTO 是一项允许编译器生成包含 LTO 位码和传统 ELF 二进制码的库的功能,这样这些库就可以在 LTO 模式和非 LTO 模式下链接。在 Fedora 39 及更早版本中,启用 LTO 后,clang 生成的二进制文件只有 LTO 位码,因此我们需要在库上运行一个后处理脚本(brp-llvm-compile-to-elf),将其转换为 ELF 代码,以便其他软件包使用。启用 Fat LTO 可以让 Fedora 项目移除该脚本并简化编译过程。

参阅 上游发行说明以获取更多细节。

GNU 工具链更新

GNU 编译器集、GNU 二进制实用程序、GNU C 库和 GNU 调试器构成了 GNU 工具链的核心部分,在发布新的 Fedora 版本时,将这些组件作为一个完整的实现过渡给我们的用户是非常有用的。

在 Fedora 40 中,GNU 工具链的组件(gcc、glibc、binutils、gdb)已更新至以下版本:

Boost 1.83

Fedora 40 包含 Boost 1.83。更多信息,请参阅上游发布说明

Ruby 3.3

The Ruby language has been updated to version 3.3 in Fedora 40, up from version 3.2 provided in the previous Fedora release. The new version adds a new parser called Prism, uses Lrama as a parser generator, adds a new pure-Ruby JIT compiler called RJIT, and provides many performance improvements, especially YJIT.

有关详细信息,请参阅上游新闻发行公告

java-21-openjdk 作为系统 JDK

Fedora 40 中的系统 JDK 已从版本 17 升级到版本 21。

有关 Java 21 的更多信息,请参阅JDK 21 发行说明迁移指南

另请参阅更改页面,快速了解有关此更改的常见问题。

Pipenv 退役

从这个版本开始,pipenv 不再打包在 Fedora 中,因此在升级过程中可能会被移除。

需要继续使用 pipenv 的开发人员可以使用 pip install --user pipenv 直接从 pip 安装。