Une nouvelle version du projet uutils coreutils 0.4.0 (Rust Coreutils) a Ă©tĂ© publiĂ©e. Ce projet dĂ©veloppe une alternative au package GNU Coreutils, Ă©crite en Rust. Coreutils comprend plus d'une centaine d'utilitaires, dont sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln et ls. L'objectif du projet est de crĂ©er une mise en Ćuvre alternative multiplateforme de Coreutils, capable de fonctionner sur les plateformes Windows, Redox et Fuchsia.
Rust Coreutils est utilisĂ© par dĂ©faut dans la version Ubuntu 25.10 et est intĂ©grĂ© dans les distributions AerynOS (Serpent OS) et Apertis (dĂ©veloppĂ© par Collabora). Contrairement Ă GNU Coreutils, l'implĂ©mentation en Rust est distribuĂ©e sous une licence permissive MIT, plutĂŽt que sous la licence copyleft GPL. De plus, la mĂȘme Ă©quipe de dĂ©veloppeurs travaille sur des analogues Ă©crits en Rust des ensembles d'utilitaires util-linux, diffutils, findutils et procps, ainsi que sur les programmes sed et login.
Dans la nouvelle version de Rust Coreutils :
- La compatibilité avec le jeu de tests de référence GNU Coreutils a été améliorée, avec 544 tests réussis, soit 12 de plus que dans la version précédente (532). 56 (68) tests ont échoué, tandis que 33 (33) tests ont été ignorés. Le niveau de compatibilité annoncé est de 85,80 % (contre 83,91 %).
- Dans l'utilitaire data, la compatibilitĂ© avec la date GNU a Ă©tĂ© amĂ©liorĂ©e lors du traitement des fuseaux horaires (ajout de la possibilitĂ© de spĂ©cifier des abrĂ©viations de fuseaux horaires dans l'option âset).
- Dans l'utilitaire factor, le package num_prime a été utilisé pour accélérer la factorisation des types u64/u128.
- Dans l'utilitaire tsort, l'implémentation de l'algorithme de parcours DFS a été convertie d'une méthode récursive à une méthode itérative pour éviter le débordement de pile.
- Dans l'utilitaire cksum, la prise en charge des hachages sha2 et sha3 a été ajoutée. Des tests ont été ajoutés pour suivre les changements de performance de cksum. La fonctionnalité hashsum a été intégrée à cksum.
- Dans l'utilitaire mkdir, un dĂ©bordement de pile Ă l'origine de l'arrĂȘt brutal lors de la crĂ©ation d'un grand nombre de rĂ©pertoires imbriquĂ©s (plus de 200) a Ă©tĂ© corrigĂ©.
- Dans les utilitaires stdbuf et uptime, la prise en charge de la plateforme OpenBSD a été ajoutée.
- La construction et les tests sur la plateforme FreeBSD ont été améliorés.
- Des améliorations générales ont été apportées pour augmenter la portabilité.
- Les capacités ont été étendues, les problÚmes ont été résolus et des options manquantes ont été ajoutées pour les utilitaires base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.
De plus, il convient de noter une divergence dans le comportement de l'utilitaire « du » entre les ensembles uutils et GNU Coreutils, apparue aprĂšs le passage d'Ubuntu 25.10 Ă uutils. Les dĂ©veloppeurs n'ont pas encore dĂ©cidĂ© comment interprĂ©ter cette divergence, car d'une part, le comportement de uutils a sa logique et le jeu de tests GNU Coreutils ne rĂ©vĂšle pas de problĂšmes, mais d'autre part, les incompatibilitĂ©s avec GNU Coreutils doivent ĂȘtre considĂ©rĂ©es comme des erreurs et le comportement de Busybox correspond Ă GNU Coreutils.
Un comportement différent est observé lors de la spécification de plusieurs répertoires en tant qu'arguments à l'outil « du », lorsque certains répertoires sont des sous-répertoires d'autres répertoires (par exemple, /var et /var/log). Uutils affiche la taille réelle de chaque répertoire distinct, et dans la ligne de total, il affiche la taille cumulée de tous les répertoires spécifiés. GNU Coreutils affiche dans la ligne de total la taille réelle occupée par les répertoires indiqués sur le disque, mais dans une liste séparée, il montre les tailles de chaque répertoire en soustrayant les sous-répertoires, ce qui entraßne une taille inférieure à la taille réelle. De plus, les valeurs affichées par GNU Coreutils et Busybox varient en fonction de l'ordre dans lequel les répertoires sont spécifiés.
Par exemple, lors de la vérification des tailles des répertoires « /var/log » et « /var », dont les tailles réelles sont respectivement de 1540 et 35495 octets, GNU Coreutils affichera : du -smc /var/log /var 1540 /var/log 33955 /var # inférieur à la taille réelle 35495 total du -smc /var /var/log 35495 /var # affiche uniquement /var et ne montre pas /var/log 35495 total
Chez uutils : du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # supérieur à la taille réelle, mais correspond à la somme de /var et /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # supérieur à la taille réelle, mais correspond à la somme de /var et /var/log
Chez Busybox : du -smc /var/log /var 1540 /var/log 33955 /var # inférieur à la taille réelle 35495 total du -smc /var /var/log 35495 /var # affiche uniquement /var et ne montre pas /var/log 35495 total
Source : opennet.ru
