Rust Coreutil Re-Write So Subpar I Don't Even Have Words Says Developer
Le remplacement des utilitaires système GNU éprouvés par des réécritures en Rust, comme le projet uutils, se heurte à une complexité inattendue et livre des outils défaillants, notamment à cause de l'impossibilité légale d'étudier le code source original sous licen...

SYNTHÈSE STRUCTURÉE
Un constat d’échec brutal des développeurs
Les développeurs du projet uutils, une réécriture en Rust des utilitaires de base GNU, admettent eux-mêmes que leur travail est largement inférieur à l’original. L’exemple le plus frappant est la commande timeout, décrite comme “totalement cassée”. Un contributeur déclare avec frustration : “GNU timeout is just absurdly full of undocumented edge cases and we don’t even cover half. Our actual implementation is so subpar I don’t even have words.” Ce constat sévère intervient alors que ces outils sont intégrés par défaut dans Ubuntu.
Une intégration prématurée dans une distribution majeure 🚨
Malgré ces problèmes connus, Ubuntu a décidé d’inclure ces utilitaires Rust dans sa prochaine version LTS (Long Term Support). L’intervenant juge cette décision irresponsable, car elle expose des millions d’utilisateurs et d’innombrables scripts système à des bugs et des comportements erratiques. Il ironise sur les notes de version en proposant ce titre : “Unnecessary rustbased replacement of well-tested code now slightly less broken.”
Une montagne de bugs et des tests insuffisants
Le nombre de bugs ouverts, notamment sur des cas limites non gérés, est très important et ne cesse de croître. Pire, la suite de tests des uutils est minimaliste et ne couvre pas ces cas complexes. L’amélioration entre deux versions est dérisoire : “The number of test cases that are passing… has increased by 0.15%”, soit probablement un seul test supplémentaire. Cela laisse présager la découverte future d’une quantité bien plus grande de problèmes.
Le frein juridique et idéologique de la licence GPL
Le cœur du problème est légal et idéologique. Le code GNU original est sous licence GPL, tandis que uutils est sous licence MIT. Pour éviter une “contamination” par la GPL (qui obligerait à licencier tout le projet sous GPL), les développeurs Rust doivent opérer en “salle blanche” : “The Rust devs legally cannot look at the GNU code for core utils”. Ils se privent ainsi de la meilleure documentation possible : le code source lui-même, qui contient justement la logique pour tous les cas limites.
Un effort de ré-ingénierie colossal et risqué
Cette contrainte transforme le projet en un gigantesque travail de ré-ingénierie à l’aveugle. Recréer des décennies de raffinement, de correctifs de sécurité et de gestion de cas obscurs sans pouvoir s’inspirer du modèle original est un défi démesuré. L’intervenant estime que le temps et les efforts nécessaires n’ont pas été investis, ce qui rend l’entreprise prématurée et dangereuse pour la stabilité des systèmes.
La question sous-jacente de la motivation réelle
La vidéo remet en cause la motivation officielle (la sécurité mémoire) derrière ce remplacement. Elle suggère que l’objectif principal est en réalité “getting rid of the GPL”. Si la sécurité était la priorité, il aurait été plus simple et plus sûr de modifier le code C existant ou d’utiliser d’autres outils de sécurisation mémoire, plutôt que de tout réécrire dans un nouveau langage avec une nouvelle licence.
CONCEPTS CLÉS
- GNU core utils : Ensemble d’utilitaires de base (comme
ls,cp,timeout) pour les systèmes d’exploitation de type Unix/Linux, développés par le projet GNU. - uutils : Projet visant à réécrire les utilitaires GNU core utils en langage de programmation Rust.
- GPL (General Public License) : Licence libre “copyleft” qui impose que tout travail dérivé soit distribué sous les mêmes conditions. Elle est souvent perçue comme “virale” par ses détracteurs.
- Licence MIT : Licence libre très permissive, qui impose peu de restrictions sur la réutilisation du code, contrairement à la GPL.
- Développement en salle blanche (Clean room) : Méthode de développement où une équipe recrée une fonctionnalité sans avoir accès au code source original, pour éviter les problèmes de propriété intellectuelle.
CONCLUSION
Le message principal est un avertissement contre le remplacement précipité d’infrastructures logicielles critiques et parfaitement fonctionnelles, au nom d’idéologies (comme le rejet d’une licence) ou de tendances technologiques (comme l’adoption d’un nouveau langage). L’histoire des uutils illustre que la complexité et la robustesse acquises sur des décennies ne se répliquent pas facilement, et qu’ignorer cette sagesse accumulée au nom d’une “modernisation” peut compromettre la stabilité et la sécurité de systèmes essentiels. Cela compte car ces décisions, prises en haut lieu, ont un impact direct et concret sur la fiabilité de l’informatique quotidienne de millions de personnes.