Buggy Rust Clone of Coreutil Breaks Ubuntu Builds
Un bogue critique dans le clone Rust de la commande cp a cassé les builds d’Ubuntu, forçant Canonical à revenir à la version GNU originale, et soulève des questions profondes sur la faisabilité de remplacer les coreutils GPL par des clones MIT en Rust sans accès à leur code so...

SYNTHÈSE STRUCTURÉE
Le bogue qui a tout fait planter
Un bug dans le clone Rust de cp (la commande de copie) a rendu les builds d’Ubuntu 26.10 complètement inutilisables. L’intervenant le décrit comme « utterly utterly broken ». Ce n’est pas un simple ralentissement : les images système ne pouvaient même plus être construites. Ubuntu a donc immédiatement reverti vers la version GNU originale, bien testée.
Un calendrier irréaliste
Canonical avait annoncé que 100 % des GNU coreutils seraient remplacés par des clones Rust sous licence MIT d’ici Ubuntu 26.10, prévu pour octobre (soit dans environ 4 mois au moment de la vidéo). L’intervenant souligne l’écart entre l’ambition et la réalité : « They’re setting themselves up for a massive failure. »
Les edge cases, talon d’Achille des clones
Les bogues des clones Rust ne sont pas des bugs triviaux : ils apparaissent sur des cas d’usage rares mais critiques, appelés « edge cases ». L’intervenant explique que « 9 utilisateurs sur 10 n’utiliseraient pas l’outil de cette façon », mais que les coreutils GNU ont été affinés pendant des décennies pour gérer des milliers de ces cas. Les clones Rust n’ont tout simplement pas eu le temps de les couvrir.
L’impossible accès au code source GPL
C’est le point central et le plus technique. Les coreutils GNU sont sous licence GPL, tandis que les clones Rust sont sous licence MIT. Or, la GPL interdit de réutiliser du code sous une licence incompatible. L’intervenant insiste : « The developers are legally forbidden from ever looking at the source code for the GNU core utilities. » Cela signifie que les développeurs Rust ne peuvent pas étudier comment les edge cases sont gérés dans le code original. Ils doivent tout réinventer à l’aveugle.
Les edge cases ne sont documentés nulle part ailleurs
L’intervenant précise que « the edge cases are only documented in the source code ». Il n’existe pas de cahier des charges exhaustif listant tous les comportements attendus de cp sur tous les systèmes Unix, fuseaux horaires, permissions, etc. Sans accès au code GNU, les développeurs Rust ne peuvent même pas savoir quels cas tester.
Un problème de fond, pas de compétence
L’intervenant insiste sur le fait que ce n’est pas une question de talent : « The developers working on the Rust core utils could be the most talented developers and engineers in all the land, but it doesn’t matter. » Le problème est structurel : sans accès à la base de connaissances des coreutils GNU, il est impossible d’atteindre le même niveau de robustesse en si peu de temps.
Le changement de licence comme motivation cachée
L’intervenant suggère que la volonté de passer du GPL au MIT est un moteur important, peut-être même plus que la sécurité mémoire de Rust. Il cite l’investissement de Canonical dans la Trifecta Computing Foundation (40 000 £ par an) pour remplacer du code C/C++ GPL par du Rust MIT. Il ajoute : « There’s certainly a lot of people who have theories about that being a critical piece of the puzzle. »
Des bugs et des failles de sécurité en série
Ce n’est pas un incident isolé. L’intervenant rappelle avoir prédit ce genre de problèmes l’année précédente et avoir été « proven wildly more correct than I thought I would be ». Il mentionne « a huge number of security vulnerabilities » dans ces clones Rust, ce qui aggrave le problème.
La solution pragmatique ignorée
L’intervenant recommande une approche prudente : « If they were smart, they would revert everything back to the GNU core utilities until they decided that the Rust versions were well battle-tested enough. » Mais Canonical semble déterminé à maintenir le cap, au risque de livrer un système « ridiculously buggy ».
CONCEPTS CLÉS
- Edge case : Cas d’utilisation rare ou extrême qui n’est pas couvert par les tests standards. Dans les coreutils, il en existe des milliers, liés à des combinaisons de permissions, de fuseaux horaires, de systèmes de fichiers, etc.
- GPL vs MIT : La GPL est une licence « copyleft » qui impose que les œuvres dérivées soient également sous GPL. La licence MIT est permissive et permet la réutilisation dans des projets propriétaires. Leur incompatibilité empêche les développeurs de s’inspirer du code GNU pour écrire des clones MIT.
- Coreutils : Ensemble de commandes essentielles d’un système Unix/Linux (cp, mv, rm, ls, cat, etc.). Leur fiabilité est critique pour le fonctionnement du système.
- Clone Rust : Réécriture complète d’un outil existant dans le langage Rust, sans utiliser le code original, en s’appuyant uniquement sur les spécifications publiques et les tests.
CONCLUSION
Le message principal est que remplacer des logiciels extrêmement matures comme les GNU coreutils par des clones développés en peu de temps, sans accès au code source original à cause de contraintes de licence, est une recette pour l’échec. Ce n’est pas une critique de Rust en soi, mais une mise en garde contre une approche trop ambitieuse et politiquement motivée. L’intervenant résume bien : « There is no chance. Every engineering manager knows this. » Pour les administrateurs système, la leçon est claire : la stabilité d’un système repose sur des outils éprouvés, et remplacer le cœur de l’OS par des alternatives immatures expose à des pannes critiques, comme ce bogue de cp qui a bloqué les builds d’Ubuntu.