Die Version 0.6.0 des Projekts uutils coreutils (Rust Coreutils) wurde veröffentlicht. Dieses Projekt entwickelt eine alternative Implementierung des GNU Coreutils-Pakets in der Programmiersprache Rust. Die coreutils umfassen mehr als hundert Tools, darunter sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln und ls. Ziel des Projekts ist es, eine plattformübergreifende alternative Umsetzung der Coreutils zu schaffen, die unter anderem auf Windows-, Redox- und Fuchsia-Plattformen läuft.
Rust Coreutils wird standardmäßig in der Version Ubuntu 25.10 eingesetzt und kommt in den Distributionen AerynOS (Serpent OS) und Apertis (entwickelt von Collabora) zum Einsatz. Im Gegensatz zu GNU Coreutils wird die Rust-Implementierung unter der permissiven MIT-Lizenz veröffentlicht, anstelle der Copyleft-Lizenz GPL. Darüber hinaus entwickelt dasselbe Entwicklerteam auch Rust-Alternativen zu den Toolkits util-linux, diffutils, findutils, procps und acl, sowie zu den Programmen sed und login.
In der neuen Version von Rust Coreutils:
- Der Kompatibilitätsgrad mit der Referenz-Testreihe der GNU Coreutils wurde auf 96,28 % erhöht (zuvor 87,75 %). Es wurden 622 Tests erfolgreich abgeschlossen, was 56 mehr ist als in der vorherigen Version (566). 16 Tests (vorher 55) sind fehlgeschlagen, und 7 Tests (vorher 23) wurden übersprungen. Der bedeutendste Anstieg der Kompatibilität wurde bei den Tools sort, ls, date, cksum und tail verzeichnet.
- Der Code, der das Schlüsselwort „unsafe“ in den Tools date, sort, locale.rs und anderen verwendete, wurde entfernt.
- Aufrufe an die Standardbibliothek libc wurden durch äquivalente sichere Aufrufe ersetzt, die vom Paket nix bereitgestellt werden.
- Die Fehlerbehandlung wurde verbessert, und ungeplante Beendigungen beim Schreiben in /dev/full wurden ausgeschlossen.
- Im Tool date wurde eine Lokalisierung für die Namen von Monaten und Tagen unter Berücksichtigung von ICU implementiert. Die Formatierung von Uhrzeiten und Kalendern erfolgt mit Berücksichtigung der lokalen Einstellungen.
- Das Dienstprogramm sort unterstützt die Sortierung von Zahlen mit Tausendertrennzeichen und implementiert die Verarbeitung von Parametern +POS/-POS.
- Im Dienstprogramm join wurde die Unterstützung für die Locale-Eigenschaften 'collation' hinzugefügt, die es ermöglichen, Vergleiche unter Berücksichtigung der Bedeutung von Zeichen durchzuführen (z.B. kann bei Vergleichen der Akzent nicht berücksichtigt werden).
- Die Leistung der Dienstprogramme base32, base64, basenc und df wurde optimiert.
- Im Dienstprogramm uniq wurde der Speicherbedarf beim Arbeiten ohne Berücksichtigung der Groß-/Kleinschreibung gesenkt.
- Im Dienstprogramm shuf wurde die numerische Ausgabe optimiert und die Option '—random-seed' hinzugefügt.
- Im tsort wurde die Speicherung aller Eingabedaten im Speicher ausgeschlossen.
- Im Dienstprogramm tail wurde das Flag '—debug' hinzugefügt.
- Im Dienstprogramm chmod wurden Probleme mit dem rekursiven Ausführen von Operationen gelöst und die Option '—preserve-root' hinzugefügt.
- Auf Unix-ähnlichen Systemen wurde die Sicherheit beim Durchsuchen von Verzeichnisinhalten verbessert.
- In die Dienstprogramme ls, id, mkdir, mkfifo und mknod wurde die Unterstützung des Systems für mandatorische Zugriffskontrolle SMACK eingeführt.
- Im kontinuierlichen Integrationssystem wurde die Überprüfung von Builds auf 64-Bit-RISC-V-Systemen mit der musl-Bibliothek hinzugefügt.
- Die Funktionalität unter Windows mit Verwendung von Cygwin wurde verbessert.
- Die Funktionen wurden erweitert, Probleme behoben und fehlende Optionen für die Utilities arch, base64, basename, cat, chgrp, chmod, chroot, cksum, comm, cp, csplit, date, dd, df, dir, dirname, du, echo, env, expand, expr, fmt, fold, groups, hashsum, head, hostid, id, install, join, kill, ln, logname, ls, mkdir, mkfifo, mknod, mktemp, more, mv, nice, nl, nohup, nproc, numfmt, pr, printenv, printf, ptx, readlink, rm, rmdir, runcon, seq, shred, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, tee, test, timeout, touch, truncate, tsort, uname, unexpand, uniq, uptime, users, wc, yes, ucore, uucore, uudoc.
Quelle: opennet.ru
