Выпуск uutils 0.10, варианта GNU Coreutils на языке Rust
Опубликован выпуск проекта uutils coreutils 0.10.0 (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.
Rust Coreutils задействован по умолчанию в выпуске Ubuntu 25.10 и частично в Ubuntu 26.04. Rust Coreutils также применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora). В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils, procps и acl, а также программ sed и login.
В новой версии Rust Coreutils:
Уровень совместимости с эталонным набором тестов GNU Coreutils составил 93.48% (было 90.58%). Успешно выполнено 645 тестов, что на 20 больше, чем в прошлой версии (625). 29 тестов завершилось неудачей (было 56), один тест привёл к ошибке, а 15 тестов было пропущено (было 8).
Устранены отдельные расхождения с GNU Coreutils в поведении утилит pr, nproc, date, numfmt, ls, du, install, od, truncate, fold, head/tail, sum и stat.
Продолжена работа по усилению безопасности для предотвращения появления уязвимостей, вызванных состоянием гонки, позволяющим изменить данные в момент после проверки корректности информации, но до выполнения операции с ними, например, подменить файл на символическую ссылку в момент между завершением проверки и началом выполнения операции. В контексте использования утилит cp, chmod и mv в системных скриптах, запускаемых с правами root, подобные уязвимости позволяют скопировать или перезаписать произвольные файлы. Усилена защита утилит touch, mkfifo, mkdir, mknod, mv, chroot, head, split и chcon.
- Проведена работа по устранению аварийных заверений через механизм panic в утилитах shuf, printf, numfmt, fmt, pr, chroot, dircolors, install, ln, touch, stat, split, expand, more, kill, cp, du, rm, runcon, sort, chown/chgrp, dirname, expr, cksum, dd, truncate, hashsum.
Выполнена оптимизация производительности утилит cksum, sum, split, expand/unexpand, base*, tee, cat, cp, mv, expr, uniq, du.
- Добавлена поддержка сборочной цели wasm32-wasip2.
- В утилите mv реализована опция »--exchange» для замены местами двух файлов или каталогов.
В утилиту install добавлена опция »--reflink» и обеспечена возможность совместного использования опций »-C» и »--preserve-timestamps».
В утилиту rm добавлена опция »--one-file-system».
- В утилите cut предоставлена возможность работы с многобайтовыми кодировками при использовании не UTF-8 локалей.
- Для быстрого вычисления контрольных сумм задействован бэкенд OpenSSL.
Источник: http://www.opennet.ru/opennews/art.shtml? num=66037
© OpenNet
