La publication de la version 0.10.0 du projet uutils coreutils (Rust Coreutils) a été réalisée, développant une alternative au package GNU Coreutils, écrite en Rust. Coreutils contient plus de cent utilitaires, y compris sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln et ls. L'objectif du projet est de créer une implémentation alternative multiplateforme de Coreutils, capable de fonctionner sur des plateformes telles que Windows, Redox et Fuchsia.
Rust Coreutils est utilisĂ© par dĂ©faut dans la distribution Ubuntu 25.10 et partiellement dans Ubuntu 26.04. Rust Coreutils est Ă©galement appliquĂ© dans les distributions AerynOS (Serpent OS) et Apertis (dĂ©veloppĂ© par Collabora). Contrairement Ă GNU Coreutils, l'implĂ©mentation en Rust est distribuĂ©e sous la licence permissive MIT, au lieu de la licence copyleft GPL. De plus, la mĂȘme Ă©quipe de dĂ©veloppeurs travaille sur des analogues en Rust des ensembles d'utilitaires util-linux, diffutils, findutils, procps et acl, ainsi que des programmes sed et login.
Dans la nouvelle version de Rust Coreutils :
- Le niveau de compatibilité avec l'ensemble de tests de référence GNU Coreutils est de 93,48 % (contre 90,58 % précédemment). 645 tests ont été réussis, ce qui représente 20 de plus que dans la version précédente (625). 29 tests ont échoué (contre 56), un test a entraßné une erreur, et 15 tests ont été ignorés (contre 8).
- Des divergences avec GNU Coreutils dans le comportement des utilitaires pr, nproc, date, numfmt, ls, du, install, od, truncate, fold, head/tail, sum et stat ont été corrigées.
- Le travail sur le renforcement de la sécurité pour prévenir les vulnérabilités causées par des conditions de course, permettant de modifier les données aprÚs la vérification de la validité des informations mais avant l'exécution d'opérations sur celles-ci, a été poursuivi. Par exemple, cela peut permettre de remplacer un fichier par un lien symbolique entre la fin de la vérification et le début de l'opération. Dans le cadre de l'utilisation des utilitaires cp, chmod et mv dans des scripts systÚme exécutés avec des droits root, de telles vulnérabilités permettent de copier ou d'écraser des fichiers arbitraires. La protection des utilitaires touch, mkfifo, mkdir, mknod, mv, chroot, head, split et chcon a été renforcée.
- Des efforts ont été déployés pour résoudre les plantages via le mécanisme de panic dans les utilitaires shuf, printf, numfmt, fmt, pr, chroot, dircolors, install, ln, touch, stat, split, expand, more, kill, cp, du, rm, runcon, sort, chown/chgrp, dirname, expr, cksum, dd, truncate et hashsum.
- Une optimisation des performances des utilitaires cksum, sum, split, expand/unexpand, base*, tee, cat, cp, mv, expr et uniq a été réalisée.
- La prise en charge de l'objectif de compilation wasm32-wasip2 a été ajoutée.
- Une option «âexchange» a Ă©tĂ© implĂ©mentĂ©e dans l'utilitaire mv pour Ă©changer deux fichiers ou rĂ©pertoires.
- L'outil install a implĂ©mentĂ© l'option «âreflink» et permet dĂ©sormais l'utilisation conjointe des options «-C» et «âpreserve-timestamps».
- L'outil rm a ajoutĂ© l'option «âone-file-system».
- L'outil cut permet désormais de travailler avec des encodages multibyte lors de l'utilisation de locales autres que UTF-8.
- Pour le calcul rapide des sommes de contrÎle, le backend OpenSSL a été utilisé.
Source : opennet.ru
