Опубликована стабильная версия набора базовых системных утилит GNU Coreutils 9.4, в состав которого входят такие программы, как sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls и т.д.
Ключевые новшества:
- В утилитах comm, cut, join, od и uniq реализовано безотлагательное прекращение выполнения, в случае возникновения ошибок при записи.
- В утилите split реализована поддержка переменной окружения $TMPDIR для определения местоположения временных файлов, а также оптимизирована обработка очень больших входных данных. При загрузке с SSD-накопителей производительность split увеличилась примерно на 5%.
- В утилите tac обеспечен откат на использование каталога ‘/tmp’, если не выставлена переменная окружения $TMPDIR.
- В утилитах cp, mv и install прекращено использование системного вызова copy_file_range на системах с ядрами Linux до версии 5.3.
- При выполнении команды ‘who -a’ обеспечен показ времени загрузки в Alpine Linux, OpenBSD, Cygwin, Haiku и некоторых платформах на базе Android.
- В утилите ‘uptime’ реализована поддержка некоторых платформ на базе Android и обеспечен учёт времени нахождения в спящем режиме виртуальных машин с Linux, Hurd, kFreeBSD, NetBSD, OpenBSD, Minix и Cygwin.
- На платформах GNU/Linux, на которых используются файлы utmp с 32-разрядным полем для времени, в утилитах inky, uptime и who реализована сборочная опция “–enable-systemd”, решающая проблему 2038 года при наличии systemd.
- Команды ‘cp -v’ и ‘mv -v’ теперь не будут по умолчанию выводить сообщения о каждом пропущенном файле при использовании опций “-i” или “-u”, если явно не указан флаг “–debug” (возвращено поведение coreutils до выпуска 9.3).
- В команде ‘cksum -b’ прекращён вывод контрольных сумм в формате base64 для приближения поведения к отдельным утилитам для расчёта контрольных сумм.
- Изменён текст сообщения об ошибке, выводимый если при выполнении команды ‘mv dir x’ в каталоге “x” имеется не пустой подкаталог “dir” (x/dir). Вместо вывода ошибки “mv: cannot move ‘dir’ to ‘x/dir’: Directory not empty” теперь отображается “mv: cannot overwrite ‘x/dir’: Directory not empty”.
Также доступен выпуск проекта uutils coreutils 0.0.21, развивающего аналог пакета GNU Coreutils, переписанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, способной работать в том числе на платформах Windows, Redox и Fuchsia. В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL.
В новой версии uutils в качестве эталонного задействован выпуск GNU Coreutils 9.4. Улучшена совместимость с эталонным тестовым набором GNU Coreutils, при прохождении которого успешно выполнено 372 теста (в прошлой версии 373), 181 (178) тест завершился неудачей, а 49 (49) тестов были пропущены. Расширены возможности, улучшена совместимость и добавлены недостающие опции для утилит cat, chown, cp, csplit, date, dd, factor, fmt, hashsum, mktemp, mknod, mv, nl, rm, seq, sum, stat, stty, test, touch и tsort.