GNU tar 1.29

good-penguin.png

После почти двухлетнего молчания, состоялся релиз GNU tar 1.29, новой стабильной версии классического архиватора проекта GNU. Релиз объявил Сергей Позняков 16 мая 2016 года в списке рассылки info-gnu; исходные тексты доступны в форматах tar.gz, tar.bz2, tar.xz и cpio.gz, вместе с отделёнными GPG-подписями для проверки целостности.

GNU tar используется для создания, распаковки, просмотра и обновления архивов, объединяющих множество файлов в один архивный файл. Несмотря на возраст формата, утилита остаётся базовым компонентом Unix- и GNU/Linux-систем, а изменения в ней важны не только для пользователей, но и для сборочных систем, дистрибутивов и проектов, занимающихся воспроизводимыми сборками.

Главным изменением GNU tar 1.29 стала новая опция --verbatim-files-from, меняющая обработку списков файлов, переданных через --files-from или -T. Теперь можно явно указать, что строки из такого списка нужно воспринимать строго как имена файлов, даже если они начинаются с дефиса. Это важно для автоматически создаваемых списков, например полученных через find, где имя файла теоретически может выглядеть как параметр командной строки. Обратное поведение включается через --no-verbatim-files-from.

Также исправлено поведение режима --null: при чтении списков имён файлов, разделённых нулевым байтом, tar снова обрабатывает имена «как есть». В объявлении подчёркивается, что это восстанавливает документированное поведение, которое было нарушено в версии 1.27.

В выпуск добавлены параметры --owner-map=FILE и --group-map=FILE, позволяющие тонко управлять подстановкой имён и идентификаторов пользователей и групп при добавлении файлов в архив. Файл сопоставления задаёт правила преобразования старого имени или числового UID/GID в новое имя и, при необходимости, новый идентификатор.

Для проектов, заботящихся о воспроизводимости сборок, появилась опция --clamp-mtime. Она используется вместе с --mtime и позволяет заменять время изменения только у тех файлов, которые новее заданной даты. Такой подход даёт возможность не затирать лишнюю временную информацию, но при этом стабилизировать временные метки файлов, изменённых во время сборки.

Отдельно улучшена работа с разреженными файлами. На системах, где поддерживаются SEEK_DATA и SEEK_HOLE, GNU tar теперь использует эти возможности ядра для более быстрого обнаружения «дыр» в файлах. Для управления алгоритмом добавлена опция --hole-detection: режим seek использует соответствующие возможности lseek(2), а raw выполняет полное сканирование файла. По умолчанию tar выбирает seek, если это возможно, и откатывается к raw в остальных случаях.

Из устаревшего кода удалена давно deprecated-опция --preserve. Релиз был подготовлен с использованием Autoconf 2.69, Automake 1.14, Makeinfo 5.9.93 и Gnulib v0.1-538-g1029a81.

Кратко об изменениях:

  • добавлены --verbatim-files-from и --no-verbatim-files-from;
  • --null снова читает имена файлов буквально;
  • добавлены --owner-map=FILE и --group-map=FILE;
  • добавлена --clamp-mtime для воспроизводимых сборок;
  • удалена устаревшая опция --preserve;
  • ускорено обнаружение разреженных файлов через SEEK_DATA/SEEK_HOLE;
  • добавлен выбор алгоритма через --hole-detection=seek и --hole-detection=raw.

>>> Источник

©  Linux.org.ru