È stata rilasciata la versione stabile del pacchetto di utilità di base GNU Coreutils 9.5, che include programmi come sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, ecc.
Novità principali:
- Nelle utilità cp, mv, install, cat e split sono state ottimizzate le operazioni di lettura e scrittura. La dimensione del blocco minimo leggibile o scrivibile è stata aumentata da 128KiB a 256KiB, portando a un aumento della capacità di lettura dei file memorizzati in cache del 10-20%.
- Nelle utilità env, kill e timeout è stata aggiunta la supporto per segnali non nominati.
- Grazie all'esclusione della traduzione di etichette non necessarie MCS/MLS, è stata migliorata l'efficienza delle operazioni di copia nel sistema SELinux.
- È stato ridotto il tempo di avvio dell'utilità sort interrompendo il collegamento dinamico con la libreria libcrypto in situazioni in cui non è specificata l'opzione '-R'.
- È stata notevolmente accelerata l'esecuzione dell'utilità wc in ambienti con localizzazioni a byte singolo e leggermente accelerata su sistemi con localizzazioni multibyte.
- Nell'utilità chgrp è stata aggiunta la supporto per l'opzione '--from=OWNER:GROUP' per applicare modifiche solo ai file con il proprietario e il gruppo specificati.
- Nell'utility chmod, analogamente alle utility chown e chmod, sono state implementate le opzioni «-h», «-H», «-L», «-P» e «—dereference», che forniscono ulteriori capacità di elaborazione dei collegamenti simbolici.
- Nell'utility cp è stata aggiunta l'opzione «—keep-directory-symlink» per mantenere e seguire i collegamenti simbolici esistenti alle directory.
- Nelle utility cp e mv è stata aggiunta l'opzione «—update=none-fail», che ricorda l'opzione «—no-clobber», eccetto che l'esecuzione termina con un errore se i file esistono già.
- Nell'utility env è stata aggiunta l'opzione -a (—argv0) per sovrascrivere il parametro nullo della riga di comando (il percorso del file eseguibile).
- Nell'utility mv è stata aggiunta l'opzione «—exchange» per scambiare il contenuto della sorgente e della destinazione (ad esempio, eseguendo «mv —exchange A B», il contenuto di A e B sarà scambiato, cioè A sarà spostato in B e B in A).
- Nell'utility tail è stato aggiunto il supporto per monitorare l'output da più processi attraverso la reiterazione di più opzioni «—pid».
Nei giorni scorsi è stata pubblicata la versione 0.0.25 del progetto uutils coreutils, che sviluppa un'alternativa al pacchetto GNU Coreutils, riscritto in Rust. Il pacchetto coreutils comprende oltre cento utilità, tra cui sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln e ls. L'obiettivo del progetto è creare un'implementazione alternativa di Coreutils che sia multipiattaforma e in grado di funzionare anche su Windows, Redox e Fuchsia. A differenza di GNU Coreutils, l'implementazione in Rust è distribuita con una licenza permissiva MIT, invece della licenza copyleft GPL.
Nella nuova versione di uutils è stato utilizzato come riferimento il rilascio di GNU Coreutils 9.4. È stata migliorata la compatibilità con il set di test di riferimento di GNU Coreutils, che ha visto il superamento di 437 test (rispetto ai 422 della versione precedente), 117 test (132) sono risultati falliti, e 50 (50) test sono stati saltati. È garantita la completa compatibilità con GNU Coreutils per le utilità base64, basename, cat, chgrp, chmod, chown, dirname, expand, fold, groups, join, ln, mktemp, nice, nl, nproc, paste, pathchk, printenv, realpath, shuf, sleep, split, sync, unexpand, uniq, wc e yes.
Sono state ampliate le funzionalità, migliorata la compatibilità e aggiunte le opzioni mancanti per gli utilità base32, base64, basenc, basename, cat, chcon, chmod, cksum, cp, csplit, cut, dd, df, du, echo, env, expand, factor, fmt, hashsum, install, ln, ls, more, numfmt, odd, printf, pr, seq, shuf, sort, split, stat, tsort, tty, truncate, uname e uniq.

Fonte: opennet.ru
