Проект GNU объявил о выпуске coreutils 9.10 — новой стабильной версии важнейшего набора базовых утилит для работы с файлами, командной оболочкой и текстом, которые составляют основу практически любой системы Linux и Unix-подобных систем.
В выпуске устранены несколько регрессий, введенных в версии 9.9, влияющих на cp, install и mv при копировании разреженных файлов с использованием SEEK_HOLE. Эта проблема могла возникнуть в файловых системах, таких как ext4, когда разреженные файлы активно обновлялись, а выгрузка копирования была недоступна.
Также улучшена обработка сигналов. Команда timeout теперь надежно передает все завершающие сигналы отслеживаемому процессу, предотвращая случаи, когда родительский процесс завершает работу, оставляя дочерний процесс запущенным.
В то же время игнорируемые сигналы теперь обрабатываются корректно, что улучшает работу фоновых процессов в оболочке. Связанные с этим исправления гарантируют, что tail -f --pid больше не будет неожиданно завершать работу при получении сигналов, не приводящих к завершению процесса.
Несколько других утилит также получили исправления для корректной работы. Команда date больше не выдает ошибку, если директивы форматирования приводят к пустому выводу, а dd не перезаписывает существующие файлы в случае сбоя при усечении. В du и ls были исправлены давние проблемы с переносимостью, из-за которых они изменяли строки, возвращаемые getenv.
Более того, такие инструменты, как fmt, numfmt, md5sum и sha*sum семейство также получили исправления, касающиеся обработки ошибок, синтаксического анализа суффиксов и перевода конца строки.
Помимо вышеупомянутых исправлений, в Coreutils 9.10 появилось несколько функциональных улучшений. Команда paste теперь полностью поддерживает многобайтовые символы, в том числе многобайтовые разделители. В -A для du добавлена новая опция --apparent-size short, повышающая совместимость с FreeBSD.
Утилиты stat и tail распознали тип файловой системы guest-memfd, и теперь tail предлагает опцию --debug для отображения информации о том, как реализован режим следования.
Наконец, мы усовершенствовали документацию и повысили удобство использования: теперь все команды выделяют названия параметров жирным шрифтом в --help выводе и на страницах руководства, а гиперссылки ведут непосредственно на соответствующую онлайн-документацию.
Более подробный технический обзор всех изменений в Coreutils 9.10 см. в анонсе.