Changements dans Fedora 42 pour les développeur·ses
Le framework de vérification en runtime Copilot
Fedora 42 fournit le langage et système de vérification en runtime Copilot, un framework de vérification en runtime axé sur les flux pour la génération de code C temps réel, développé pour la NASA. Il permet aux utilisateur·rices d’écrire des programmes concis d’une manière simple mais puissante à l’aide d’une approche axée sur les flux.
Les programmes peuvent être interprétés à des fins de tests, traduits en code C99 pour être incorporés dans un projet ou exécutés sous la forme d’une application autonome. Le backend C99 garantit que la sortie est constante en temps et en mémoire, la rendant viable pour des systèmes avec des exigences temps réel strictes.
Vous pouvez commencer à l’utiliser en installant le paquet ghc-copilot
. Pour plus d’informations, consultez les documentations upstream suivantes :
Ruby 3.4
La dernière version du langage de programmation est maintenant disponible dans Fedora 42. Les changements à noter comprennent :
-
L’analyseur par défaut parse.y a été remplacé par Prism pour amélioré la maintenabilité, la tolérance aux erreurs, la portabilité et les performances.
-
Le compilateur YJIT offre désormais de meilleures performances dans la plupart des benchmarks sur les architectures CPU x86-64 et arm64.
-
La bibliothèque socket utilise maintenant la version 2 de Happy Eyeballs pour des connexions réseaux efficaces et fiables, adaptées aux environnements Internet modernes.
-
Le passage de blocs en index n’est plus autorisé.
-
Le nom toplevel
::Ruby
est maintenant réservé. -
rb_newobj
etrb_newobj_of
(et les macros associéesRB_NEWOBJ
,RB_NEWOBJ_OF
,NEWOBJ
,NEWOBJ_OF
) ont été retirées. -
La fonction déconseillée
rb_gc_force_recycle
a été retirée.
Pour plus de détails, consultez les notes de version upstream.
PHP 8.4
La dernière version stable du langage de programmation est maintenant disponible dans Fedora 42. Les changements à noter comprennent :
-
Les hooks de propriétés, permettant l’utilisation de propriétés calculées prises en charge nativement par les IDE et les utilitaires statiques sans aucun commentaire docblock.
-
La portée d’écriture d’une propriété est maintenant indépendante de sa portée de lecture.
-
Le nouvel attribut
#[\Deprecated]
. -
Les nouvelles fonctions
array_find()
,array_find_key()
,array_any()
etarray_all()
. -
Les nouvelles sous-classes
Pdo\Dblib
,Pdo\Firebird
,Pdo\MySql
,Pdo\Odbc
,Pdo\Pgsql
etPdo\Sqlite
.
Pour plus de détails, consultez les notes de version upstream.
LLVM 20
Les sous-projets LLVM dans Fedora ont été mis à jour vers la version 20.
Cette mise à jour entraîne un changement de version soname pour les bibliothèques LLVM, le paquet de compatibilité llvm19
a donc été ajouté pour garantir le bon fonctionnement des paquets qui dépendent actuellement de la version 19 des bibliothèques Clang et LLVM.
Autres changements notables :
-
Changements relatifs aux préfixes d’installation : Le préfixe d’installation pour tous les nouveaux paquets LLVM sera
/usr/lib64/llvm$VERSION/
, au lieu de/usr/
. Un lien symbolique sera ajouté à/usr/
pour chaque binaire et bibliothèque, et pointera vers le binaire correspondant dans/usr/lib64/llvm$VERSION/
. L’objectif de ce changement est de réduire les différences entre les versions issues des paquets de compatibilité et celles qui ne le sont pas, afin de simplifier le passage d’une version de LLVM à une autre pour les paquets qui en dépendent. -
Fusion d’autres paquets dans
llvm
: Dans Fedora 41, nous avons fusionné les paquetsclang
,libomp
,compiler-rt
,lld
,python-lit
etlldb
avec le SRPMllvm
. Pour Fedora 42, nous fusionneronsllvm-bolt
,polly
,libcxx
etmlir
avec le SRPMllvm
.
Haskell GHC 9.8 et Stackage LTS 23
Pour Fedora 42, le paquet principal du compilateur GHC Haskell est passé de la version 9.6.6 à la 9.8.4 (dernière version stable, obtenue en rebasant le paquet ghc sur le paquet ghc9.8). De plus, les paquets Haskell dans Stackage (la distribution stable de paquets de code source Haskell) ont été mis à jour des versions LTS 22 vers celles de la toute dernière LTS 23. Les paquets Haskell absents de Stackage ont été mis à jour vers la dernière version appropriée dans le dépôt de paquets upstream Hackage.
Pour connaître toutes les informations à propos de cette version, consultez les notes de version upstream et le guide de migration.
Golang 1.24
La dernière version stable du langage de programmation Go est maintenant disponible dans Fedora 42. Les changements à noter comprennent :
-
Les modules Go peuvent désormais suivre les dépendances exécutables en utilisant les directives
tool
dansgo.mod
. -
Le nouveau flag
-tool
pourgo get
engendre l’ajout d’une directivetool
au module actuel pour les paquets nommés, en plus de l’ajout de directivesrequire
. -
Le nouveau métamotif
tool
fait référence à l’ensemble des outils dans le module actuel. Il est possible d’en tirer partie en les mettant tous à jour avecgo get tool
ou en les installant dans votre répertoire GOBIN avecgo install tool
. -
Les exécutables créés par
go run
et le nouveau comportement dego tool
sont maintenant mis dans le cache de build Go. Cela permet d’accélérer les exécutions répétées, au prix d’un cache plus lourd. -
Les commandes
go build
etgo install
acceptent désormais un flag-json
qui a pour effet d’envoyer sur la sortie standard les sorties et les échecs de build sous la forme d’un JSON structuré. Pour connaître les détails sur le format du rapport, exécutezgo help buildjson
. -
De plus,
go test -json
intercale les résultats de tests au format JSON dans les sorties et échecs de build. Ces résultats sont distinguables grâce aux nouveaux typesAction
, mais s’ils causent des problèmes dans un système de tests d’intégration, vous pouvez revenir à la sortie de build au format texte en définissant le paramètre GODEBUGgotestjsonbuildtext=1
. -
La nouvelle variable d’environnement
GOAUTH
fournit une manière flexible de s’authentifier lors de la récupération de modules privés. Exécutezgo help goauth
pour plus d’informations. -
La commande
go build
définit maintenant la version du module principal dans le binaire compilé en se basant sur le tag et/ou le commit du système de contrôle des versions. Un suffixe+dirty
sera ajouté s’il existe des modifications en attente. Utilisez le flag-buildvcs=false
pour omettre les informations relatives au contrôle des versions dans le binaire. -
Le nouveau paramètre GODEBUG
toolchaintrace=1
peut être utilisé pour tracer le processus de sélection de suite d’outils de la commande Go.
Pour plus d’informations, consultez les notes de version upstream.
Tcl/Tk 9
Tcl (Tool Command Language) et Tk (suite d’outils graphiques Tcl) ont été rebasés sur la version 9 dans Fedora 42. Il y a des incompatibilités majeures et il n’est pas réaliste de porter tous les paquets dépendant de la version 8, c’est pourquoi des paquets de compatibilité (tcl8
et tk8
) ont été ajoutés.
Les nouvelles fonctionnalités comprennent :
-
Capacités 64 bits : valeurs de données supérieures à 2 Go.
-
Unicode et encodages : prise en charge de l’ensemble des codepoints, ajout d’encodages et de profils d’encodage pour gouverner les entrées/sorties, et plus encore.
-
Accès aux capacités de l’OS : notifications, impression et barres système.
-
SVG : prise en charge partielle des images, utilisation étendue permettant la création de widgets et de thèmes pouvant être mis à l’échelle.
-
Fonctionnalités et conventions des plateformes : nombreuses améliorations, dont la prise en charge des gestes à deux doigts.
Pour plus d’informations à propos de cette version, consultez les notes de version upstream.
Générateur de dépendances pour les extensions GNOME Shell
Fedora 42 fournit un nouveau générateur de dépendances pour les extensions GNOME Shell, sous la forme du paquet gnome-shell-extension-rpm-macros
.
Les extensions GNOME Shell sont fournies avec un fichier metadata.json
listant les versions prises en charge de GNOME Shell. Ces données n’étaient jusqu’ici pas utilisées dans Fedora lors du packaging d’une extension, sauf si lae mainteneur·se avait décidé de transférer explicitement ces informations dans la spec et de les maintenir à jour.
À partir de Fedora 42, le RPM binaire déclare automatiquement sa dépendance sur les versions correctes de GNOME Shell, garantissant que nous puissions découvrir les extensions devant être mises à jour après un rebuild de masse. Cela améliore l’expérience utilisateur Fedora en augmentant la probabilité qu’une extension fonctionne une fois installée.
Mise à jour de Intel Compute Runtime et matériel abandonné
Les paquets intel-compute-runtime
et intel-igc
ont été rebasés sur leurs dernières versions upstream, fournissant la prise en charge du dernier matériel Intel. Notez néanmoins que ces nouvelles versions abandonnent la prise en charge du calcul sur les GPU Intel dont la date de sortie est antérieure à 2020 (Gen 12 et antérieurs). Consultez ce fichier pour connaître les architectures abandonnées.
Ce changement n’affecte pas le pilote intel-media-driver
inclus dans l’ensemble de paquets par défaut, qui continue pour l’instant à prendre en charge le matériel ancien sur les branches de développement principales.
Anciens JDK tiers
Dans Fedora 42, les directives provides
et requires
des paquets java
et java-devel
ont été ajustées de manière à déclarer obsolètes tous les JDK LTS, à l’exception du JDK système. En pratique, cela signifie que :
-
java-1.8.0-openjdk
,java-11-openjdk
etjava-17-openjdk
sont maintenant déconseillés dans Fedora 39, 40, and 41. Un message d’avertissement s’affichera lors de l’utilisation. -
java-1.8.0-openjdk
,java-11-openjdk
etjava-17-openjdk
ont été retirés de Fedora 42.
Les personnes ayant besoin de ces paquets devraient utiliser le paquet adoptium-temurin-java-repository
qui active le dépôt Adoptium Temurin. Cela vous permet alors d’installer les paquets suivants :
-
temurin-8-jdk
-
temurin-8-jre
-
temurin-11-jdk
-
temurin-11-jre
-
temurin-17-jdk
-
temurin-17-jre
-
temurin-21-jdk
-
temurin-21-jre
Le paquet adoptium-temurin-java-repository
est disponible à partir de Fedora 39.
Pour obtenir des informations plus détaillées, consultez la page Change sur le wiki Fedora. Une liste des problèmes connus est disponible sur GitHub.
Setuptools 74
Fedora 42 met à jour le paquet python3-setuptools
vers la version 74.
Notez que cette version n’est pas 100 % rétrocompatible. Entre autres changements, la version 72.0.0 a retiré la prise en charge de la commande setup.py test
(déconseillée depuis il y a 5 ans). Il s’agit d’un changement majeur qui va casser la création des paquets Fedora utilisant cette commande. Ils devront être adaptés de manière à utiliser un autre exécuteur de tests tel que unittest
, pytest
, etc.
Consultez la documentation upstream pour plus d’informations sur cette version.
Mise à jour de NumPy vers la version 2
Le paquet NumPy a été mis à jour de la version 1.26 vers la version 2.2.4. La mise à jour de la bibliothèque fournit une grand nombre d’améliorations.
Consultez la documentation upstream pour obtenir une liste des changements ainsi qu’un guide de migration, et des conseils pour les auteur·rices de paquets downstream. Les développeur·ses ont aussi écrit un post de blog qui traite de certains changements haut niveau dans la version 2.x.
Django 5.1
La pile Django a été mise à jour vers la version 5.1 dans Fedora 42.
En reprenant l’approche utilisée pour packager l’interpréteur Python lui-même, Fedora passe à un RPM à source unique pour chaque version majeure de Django. Les paquets binaires de la version majeure fournie initialement avec une version de Fedora donnée n’auront pas de suffixe (ex. python3-django
), tandis que toutes les versions ultérieures ou antérieures en auront un (e.g. python3-django5
). Le suffixe des paquets (binaires ou de code source) ne comportera que la version majeure (soit python-django5
au lieu de python-django5.1
).
Pour obtenir des informations à propos de la version 5.1, consultez les notes de version upstream.
Retrait de Python 3.8
Le paquet python3.8
sera retiré de Fedora Linux 42 et ne sera pas remplacé. Python 3.8 est en fin de vie depuis le 07/10/2024. Le flux Python 3.8 de RHEL 8 n’existe plus depuis mai 2023. Debian Buster contenait Python 3.7 et Bullseye contient Python 3.9. Ubuntu 20.04 LTS (Focal Fossa) contient Python 3.8, mais sa prise en charge standard se termine en avril 2025, date à laquelle Fedora 42 sortira. Python 3.8 a été conservé dans Fedora seulement pour permettre à ses utilisateur·rices d’exécuter les tests de leurs logiciels, mais puisque les autres distributions le retirent aussi, ce cas d’utilisation n’est plus suffisant pour justifier son maintien.
Notez que python3.6
demeurera disponible à moyen terme en raison de son utilisation par les développeur·ses ciblant RHEL 8.
Retrait de PyO3 v0.19, v0.20 et v0.21
Les paquets des versions obsolètes de PyO3 (v0.21, v0.20 et v0.19) et ses bindings Rust pour CPython et PyPy ont été retirés de Fedora. Tous les paquets Python contenant des extensions Python natives écrites en Rust sont maintenant compilées avec PyO3 v0.22 ou ultérieure, ce qui ajoute la prise en charge officielle de Python 3.13 et la prise en charge des interpréteurs Python à fils d’exécution libres (free-threaded).
python-pytest-runner est maintenant déconseillé
Le paquet python-pytest-runner
(python3-pytest-runner
) est déconseillé dans Fedora 42. Ce projet est déconseillé par l’upstream depuis 2019 et son dépôt upstream est archivé depuis 2023. Les paquets qui en dépendent sont encouragés à appeler directement pytest
.
Pour effectuer la migration, suivez ces étapes :
-
Retirez
pytest-runner
dessetup_requires
, de préférence en supprimant directement l’optionsetup_requires
. -
Retirez
pytest
et tout autre dépendance de test detests_require
, de préférence en supprimant directement l’optionsetup_requires
. -
Consultez les directives Fedora relatives à la création de paquets pour apprendre à spécifier les dépendances de test.
-
Invoquez les tests avec
pytest
. -
Une autre option intéressante est de configurer un fichier
tox.ini
à côté de votresetup.cfg
. https://tox.readthedocs.io/en/latest/
Retrait de zbus v1
Les paquets de la version 1 de la crate zbus
(et les paquets de la v2 de la crate zvariant
) ont été retirés de Fedora 42. Les paquets qui en dépendent doivent être portés vers une version non obsolète de ces crates (c.-à-d. zbus v4 ou v5) ou être retirés.
Les paquets fournissant des bibliothèques Rust ne sont pas censées être installées sur les systèmes des utilisateur·rices finaux·les, et sont presque exclusivement installés dans les environnements de build éphémères (comme les chroots), donc ce changement ne devrait avoir aucun impact sur les utilisateur·rices finaux·les.
gtk3-rs est maintenant déconseillé
Les bindings Rust pour GTK3 sont obsolètes et leur maintenance est officiellement terminée. Les paquets associés ont été marqués comme déconseillés pour empêcher que de nouveaux paquets qui en dépendent ne soient ajoutés à Fedora, et seront retirés de la distribution dans une prochaine version.
Want to help? Learn how to contribute to Fedora Docs ›