Byl vydán nový díl projektu uutils coreutils 0.11.0 (Rust Coreutils), který rozvíjí alternativu balíčku GNU Coreutils napsanou v programovacím jazyce Rust. Sada coreutils zahrnuje více než stovku utilit, včetně sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln a ls. Cílem projektu je vytvořit multiplatformní alternativní implementaci Coreutils, schopnou mezi jinými fungovat na platformách Windows, Redox a Fuchsia.
Rust Coreutils je ve výchozím nastavení použit ve verzi Ubuntu 25.10 a částečně v Ubuntu 26.04. Rust Coreutils se také používají v distribucích AerynOS (Serpent OS) a Apertis (vyvíjeno společností Collabora). Na rozdíl od GNU Coreutils se implementace v Rustu vydává pod permisivní licencí MIT místo copyleftové licence GPL. Dodatkově stejný tým vývojářů pracuje na Rust verzích utilit util-linux, diffutils, findutils, procps a acl, jakož i na programech sed a login.
V nové verzi Rust Coreutils:
- Úroveň kompatibility s referenčním testovacím balíčkem GNU Coreutils činila 95.33 % (předtím 94.44 %). Bylo úspěšně provedeno 653 testů, což je o 8 více než v předchozí verzi (645). 22 testů selhalo (předtím 29), a 15 testů bylo přeskočeno (předtím 15).
- Byl integrován nový engine pro diagnostiku problémů, založený na knihovně ariadne a vypisující při spuštění utilit v terminálu přehledné zprávy o chybách s označením argumentů příkazového řádku, které problém způsobily. Vizualizace chyb je aktivována v utilitách chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df a du. Pro deaktivaci diagnostických zpráv byla navržena proměnná prostředí UUTILS_DIAG.

- Při sestavování verzí byly aktivovány optimalizace založené na výsledcích profilování kódu (PGO — Profile-guided optimization), které umožňují generovat optimalizovanější kód na základě analýzy vykonávání programu. Podle odhadů vývojářů došlo ke zlepšení výkonu při některých operacích až o 31 %.
- Byla provedena optimalizace výkonu utilit cp (+32.93 %), join (2.5x rychlejší než GNU díky vypnutí zbytečných porovnání lokalizace), od, ptx (+4 %), nl, tail, expand, unexpand, numfmt a sort. Jako chyby byly nyní považovány situace, kdy operace probíhaly výrazně pomaleji než v GNU Coreutils.
- Byly odstraněny jednotlivé nesrovnalosti s GNU Coreutils v chování utilit pr, numfmt, join, id, mkdir, fold, sort, stat, od a date.
- Byly implementovány specifické možnosti pro GNU Coreutils: „uname -A“, „uname —all-labeled“, „cut -F“, „cut —whitespace-delimited“, „pr —columns“, „pr —join-lines“, „pr -f“.
- V utilitách mv, cp, rm, chmod, stdbuf byla provedena práce na posílení bezpečnosti, aby se předešlo zranitelnostem způsobeným stavem závodu, které umožňují změnit data v okamžiku po ověření správnosti informací, ale před provedením operace s nimi, například vyměnit soubor za symbolický odkaz mezi dokončením kontroly a začátkem provádění operace. V kontextu používání utilit cp, chmod a mv ve systémových skriptech spuštěných s právy root takové zranitelnosti umožňují kopírovat nebo přepisovat libovolné soubory.
- Byla provedena práce na odstranění havarijních ukončení v utilitách split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac, who.
- Byly implementovány varianty utilit kill a uptime pro Windows.
- Bylo ukončeno používání balíčků byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (ten byl nedávno kompromitován), exacl a dns-lookup ve prospěch funkcí z knihoven std, rustix a windows-sys.
- Do utilit ls a comm byla přidána podpora vlastností místní kontextu „collation“, která umožňuje provádět porovnání s ohledem na význam symbolů (například při porovnávání může být ignorována diakritika).
- Bylo vylepšeno zpracování vícím znaků v utilitách nl a cut.
Dále lze zmínit publikaci společnosti Canonical dvou experimentálních obrazů kontejnerů s prostředím pro vývoj aplikací v jazyce Rust, odpovídajících specifikaci Dev Container. První obraz obsahuje Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (interpretátor pro odhalování neurčitého chování), cargo-auditable (audit sestavení), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh a curl. Druhý obraz kromě toho obsahuje balíčky pro vývoj Ubuntu: git-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.
Zdroj: opennet.ru

