Changements dans Fedora 40 pour les développeurs

PyTorch

Fedora 40 est la première version de Fedora fournissant PyTorch, un framework d’apprentissage automatique basé sur la bibliothèque Torch, utilisé pour des applications telles que la vision par ordinateur et le traitement automatique des langues. Torch a été développé à l’origine par Meta AI, et est désormais sous l’égide de la Linux Foundation. Il s’agit de logiciels libres et open-source, publiés sous la licence BSD modifiée.

Le fait que PyTorch soit fourni sous la forme d’un paquet Fedora signifie que vous pouvez désormais utiliser DNF pour l’installer, au lieu de pip. La version initiale fournie dans Fedora 40 est la version 2.1.2. Pour l’installer, exécutez dnf install python-torch.

Pour bien débuter avec PyTorch, consultez la documentation officielle. Les personnes particulièrement intéressées par PyTorch dans Fedora – pour le développement, l’empaquetage, l’utilisation et autre – peuvent rejoindre le PyTorch Fedora Special Interest Group.

PHP 8.3

La pile de l’interprète du langage de programmation PHP a été mise à jour vers la version 8.3, qui contient de nombreuses corrections de bugs et améliorations. Les changements à noter comprennent :

  • le typage explicite des constantes de classe ;

  • la récupération dynamique des constantes de classe ;

  • le nouvel attribut #[\Override] ;

  • le deep-cloning des propriétés readonly ;

  • la nouvelle fonction json_validate() ;

  • la nouvelle méthode Randomizer::getBytesFromString() ;

  • le linter en ligne de commande prend en charge plusieurs fichiers à la fois.

Pour en savoir plus sur les nouveautés de la mise à jour, consultez les notes de version upstream.

Golang 1.22

Fedora 40 fournit Golang version 1.22. Consultez les notes de version upstream pour la liste complète des changements.

Retrait de Python 3.7

À partir de cette version de Fedora, Python 3.7 est considéré comme abandonné, sans solution de remplacement, puisqu’il est considéré comme étant en fin de vie depuis juin 2023.

LLVM 18

Tous les sous-projets LLVM ont été mis à jour vers la version 18, qui inclut un changement de version soname pour les bibliothèques llvm. Les paquets de compatibilité clang17, llvm17 et lld17 ont été ajoutés afin de s’assurer que les paquets qui dépendent actuellement des bibliothèques clang et llvm en version 17 continuent de fonctionner.

Les autres changements à noter comprennent :

  • clang émettra du DWARF-5 par défaut, au lieu de DWARF-4. Cela correspond au comportement upstream. Fedora a été contraint d’utiliser DWARF-4 par défaut pendant plusieurs versions en raison de https://bugzilla.redhat.com/show_bug.cgi?id=2064052.

  • Les paquets de compatibilité incluront désormais le même contenu que le paquet principal. Dans les versions précédentes de Fedora, les paquets de compatibilité contenaient uniquement les bibliothèques et les en-têtes, les binaires et autres fichiers étaient retirés. Ces paquets seront pris en charge en tant que dépendances d’autres paquets RPM, mais pas pour l’utilisation par l’utilisateur final. Nous recommandons aux utilisateurs de Fedora d’utiliser Clang/LLVM 18.

  • Les paquets de compatibilité ajoutés pour Fedora 40 seront retirés avant la création de la branche Fedora 41.

  • Nous allons activer Fat LTO dans redhat-rpm-config si cette fonctionnalité est terminée à temps pour la sortie upstream de LLVM 18. Fat LTO est une fonctionnalité qui permet au compilateur de produire des bibliothèques qui contiennent du bitcode LTO en plus du code binaire ELF traditionnel, afin que les bibliothèques puissent être liées à la fois en mode LTO et non LTO. Cette fonctionnalité est également prise en charge dans GCC ; elle est activée dans Fedora. Avant Fedora 40, lorsque le mode LTO était activé, clang produisait des binaires contenant uniquement du bitcode LTO, nous devions donc exécuter un script post-traitement (brp-llvm-compile-to-elf) sur les bibliothèques afin de les convertir en code ELF pour qu’elles puissent être utilisées par d’autres paquets. Activer Fat LTO permet donc au Fedora Project de supprimer ce script et de simplifier le processus de compilation.

Consultez les notes de version upstream pour connaître les détails.

GNU toolchain updates

The GNU Compiler Collection, GNU Binary Utilities, GNU C Library, and the GNU Debugger make up the core part of the GNU Toolchain and it is useful for our users to transition these components as a complete implementation when making a new release of Fedora.

Components of the GNU Toolchain (gcc, glibc, binutils, gdb) have been updated to the following versions in Fedora 40:

Boost 1.83

Fedora 40 includes Boost 1.83. For more information, see the upstream release notes.

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.

For full details, see the upstream NEWS and the release announcement.

java-21-openjdk as the system JDK

The system JDK has been updated from version 17 to version 21 in Fedora 40.

For more information about Java 21, see the JDK 21 release notes, and the migration guide.

Also see the Change page for a quick FAQ about this change.

Retire Pipenv

Starting with this release, pipenv is no more packaged in Fedora and obsoleted, thus it might be removed during the upgrade process.

Developers in need of still using pipenv can install it directly from pip with pip install --user pipenv.