Megjelent az uutils coreutils 0.4.0 (Rust Coreutils) kiadása, amely a GNU Coreutils csomag hasonmásának fejlesztését célozza a Rust nyelven. A coreutils több mint száz segédeszközt tartalmaz, beleértve a sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln és ls parancsokat. A projekt célja egy platformfüggetlen alternatív megvalósítás létrehozása a Coreutils számára, amely többek között Windows, Redox és Fuchsia platformokon is működik.
A Rust Coreutils alapértelmezés szerint szerepel az Ubuntu 25.10 verzióban, és az AerynOS (Serpent OS) és az Apertis (a Collabora által fejlesztett) disztribúciókban használják. A GNU Coreutils-tól eltérően a Rust-alapú megvalósítás MIT permisszív licenc alatt terjed, nem GPL copyleft licenc alatt. Ezen kívül ugyanaz a fejlesztőcsapat Rust nyelven készít analógokat az util-linux, diffutils, findutils és procps segédprogram-csomagokhoz, valamint a sed és login programokhoz.
Az új Rust Coreutils verzióban:
- Javították a GNU Coreutils referencia tesztkészlettel való kompatibilitást, amely során 544 tesztet teljesítettek sikeresen, ami 12-vel több, mint az előző verzióban (532). 56 (68) teszt sikertelenül zárult, míg 33 (33) tesztet kihagytak. A kompatibilitás szintje 85.80% (korábban 83.91%).
- A data segédeszközben javították a GNU date-tel való kompatibilitást az időzónák kezelésekor (mostantól lehetőség van az időzónák rövidített neveinek megadására a —set opcióval).
- A factor segédeszközben a num_prime csomagot használták a u64/u128 típusok gyorsabb faktorálására.
- A tsort segédeszközben a DFS bejárási algoritmus rekurzív megvalósítását átállították iteratív módszerre a verem túlcsordulásának elkerülése érdekében.
- A cksum segédeszközben bevezették a sha2 és sha3 hash támogatását. Teszteket adtak hozzá a cksum teljesítményének nyomon követésére. A hashsum funkciót áttelepítették a cksum-ba.
- A mkdir segédeszközben megszüntették a verem túlcsordulását, amely a nagy (200+ darab) beágyazott könyvtár létrehozásakor összeomláshoz vezetett.
- A stdbuf és uptime segédeszközökben megvalósították az OpenBSD platform támogatását.
- Javították a buildelést és a tesztelést a FreeBSD platformon.
- Általános fejlesztéseket végeztek a hordozhatóság növelése érdekében.
- Kiterjesztették a lehetőségeket, megszüntették a hibákat, és hozzáadták a hiányzó opciókat a base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc segédeszközökhöz.
Továbbá említésre méltó a 'du' segédeszköz viselkedésének eltérése az uutils és GNU Coreutils készletei között, amely az Ubuntu 25.10 uutils-ra való átállását követően merült fel. A fejlesztők még nem döntöttek arról, hogy ezt az eltérést hibának tekintsék-e, mivel egyrészt az uutils viselkedésében van logika, és a GNU Coreutils tesztkészlet nem jelzett problémát, másrészt azonban a GNU Coreutils-hez való inkompatibilitást hibaként kell kezelni, és a Busybox viselkedése a GNU Coreutils-nek felel meg.
Különböző viselkedés figyelhető meg a »du« segédprogram argumentumai között, amikor több könyvtár van megadva, és ezek közül néhány más könyvtárak alkönyvtára (például /var és /var/log). Az uutils megmutatja minden egyes könyvtár tényleges méretét, míg az összegző sorban az összes megadott könyvtár összesített méretét tünteti fel. A GNU Coreutils az összegző sorban azt a tényleges méretet mutatja, amelyet a megadott könyvtárak elfoglalnak a lemezen, de a különlistában a könyvtárak méretét a beágyazott könyvtárak levonásával mutatja, ami miatt méretük kisebbnek tűnik a ténylegesnél. Ezenkívül a GNU Coreutils és a Busybox által megjelenített értékek a könyvtárak megadásának sorrendjétől függően változnak.
Például, a »/var/log« és a »/var« könyvtárak méretének ellenőrzésekor, amelyek ténylegesen 1540 és 35495 bájt méretűek, a GNU Coreutils a következőket fogja kiírni: du -smc /var/log /var 1540 /var/log 33955 /var # kisebb mint a tényleges 35495 total du -smc /var /var/log 35495 /var # csak /var jelenik meg, és /var/log nem 35495 total
Az uutils-ban: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # nagyobb, mint a tényleges, de megfelel a /var és /var/log összegének du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # nagyobb, mint a tényleges, de megfelel a /var és /var/log összegének
A Busyboxban: du -smc /var/log /var 1540 /var/log 33955 /var # kisebb mint a tényleges 35495 total du -smc /var /var/log 35495 /var # csak /var jelenik meg, és /var/log nem 35495 total
Forrás: opennet.ru
