Publication de Rust Coreutils 0.4. Divergences de comportement de l'outil du dans uutils et GNU Coreutils.

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

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster