Git Takes Another Step Towards Making Rust Mandatory

La version 2.55 de Git introduit une dépendance obligatoire au compilateur Rust pour la construction, sauf désactivation explicite via un flag, ce que l’intervenant critique comme une décision technique injustifiée.

Voir la source

SYNTHÈSE STRUCTURÉE

L’obligation de Rust dans Git 2.55

Avec cette version, le compilateur Rust est requis par défaut pour compiler Git. L’intervenant précise : « With this 2.55 release, the Rust compiler is required unless you explicitly disable it in the build system. » Un nouveau flag permet de contourner cette exigence : --no-rust=yes,please. Ce flag est jugé « ridiculous » par l’intervenant, qui ironise sur son nom.

Le flag de contournement

Pour construire Git sans Rust, il faut passer explicitement l’option --no-rust=yes,please lors de la configuration. L’intervenant montre ce flag en disant : « Let me show you the flag. The flag is if you’re building Git, you now have to say no Rust equals yes, please. Then it will ignore Rust. » Cela signifie que les administrateurs système doivent désormais ajouter cette option manuellement pour éviter la dépendance.

L’objectif à long terme des développeurs

Les développeurs de Git ont annoncé que l’objectif final est de rendre Rust obligatoire pour toute compilation. L’intervenant cite leur déclaration : « Bringing Rust into Git has been an ongoing and unfinished effort. » Il ajoute que ce n’est pas un secret : « This is part of their long-term roadmap is to require Rust to build Git. »

L’incompatibilité avec certains systèmes

L’obligation de Rust rend Git incompatible avec les systèmes où Rust est absent ou instable. L’intervenant souligne : « This effectively renders Git incompatible with systems for which Rust is either nonexistent or too buggy, which is actually a pretty large number of systems. » Cela inclut des environnements embarqués, des distributions minimalistes ou des architectures exotiques.

Aucune nouvelle fonctionnalité justifiant Rust

L’intervenant insiste sur l’absence de bénéfice utilisateur tangible : « There are no significant new features being added to Git which require Rust in any way. » Il ajoute : « There’s no use case for an end-user where they’d use Git if only it required Rust to build it. » Aucune fonctionnalité existante n’est non plus améliorée par ce changement.

Aucun problème de sécurité résolu

Malgré l’argument de la sécurité mémoire souvent avancé pour Rust, l’intervenant affirme : « There’s also no known security problem that is fixed because you moved to Rust. » Il concède que Rust améliore la sécurité mémoire en théorie, mais aucun problème concret n’est corrigé par cette migration.

Une motivation non technique

L’intervenant conclut que la motivation derrière ce changement n’est ni technique ni utilitaire : « The reason for making this change, for changing to Rust, for requiring Rust, does nothing but harm the project. » Il suggère que d’autres motivations, non précisées, sont en jeu.

L’évolution vers une obligation totale

Bien que le flag --no-rust=yes,please permette encore de contourner Rust, l’intervenant prévient : « They’ve made it clear that the goal very, very soon is to not allow building without Rust. » La version 3.0 est évoquée comme un jalon probable, mais le changement pourrait intervenir plus tôt.

Les alternatives pour les utilisateurs

Face à cette situation, l’intervenant recommande : « Migrate to something else, fork Git, do something if you want to continue using Git on platforms where you either don’t want to or cannot use Rust. » Il suggère de considérer des forks ou des alternatives comme une solution à long terme.

CONCEPTS CLÉS

  • Flag de build : Option passée au système de construction (./configure --no-rust=yes,please) pour désactiver une fonctionnalité par défaut.
  • Dépendance obligatoire : Exigence d’un outil (ici le compilateur Rust) pour compiler un logiciel, sans possibilité de l’ignorer sans intervention manuelle.
  • Sécurité mémoire : Propriété d’un langage (comme Rust) qui prévient les erreurs de gestion mémoire (buffer overflow, use-after-free) par des vérifications à la compilation.

CONCLUSION

L’introduction de Rust comme dépendance obligatoire dans Git 2.55 est critiquée comme une décision technique injustifiée, car elle n’apporte ni nouvelles fonctionnalités ni correctifs de sécurité concrets, tout en excluant des systèmes où Rust n’est pas disponible. Pour les administrateurs système, la seule parade actuelle est le flag --no-rust=yes,please, mais cette option pourrait disparaître dans les futures versions. L’intervenant invite à envisager des forks ou des alternatives pour préserver la compatibilité avec des environnements hétérogènes.

Du même canal

Tout voir