Подпись ЗПС при сборке

Давно у нас в блоге мы не предлагали рецепты для разработчиков. Сегодня исправляемся.

Подпись ЗПС при сборке

Если вы разрабатываете для Astra Linux Special Edition и упаковываете ваше ПО в deb-пакеты, то наверняка сталкивались с задачей подписи исполняемых файлов для работы в ЗПС.

Производитель для этих целей предлагает скрипт, который распаковывает, подписывает и запаковывает. Устали от него? Мы сделали новый!

dh-gostsign

Не первый год в разработке? Все правильно: это модуль для devscripts, который подписывает ELF-файлы в процессе сборки пакета. Работает это так: после всех модификаций файлов, перед последними шагами сборки, запускается наша команда dh_gostsign. Утилита рыскает по содержимому будущих deb-пакетов и подписывает найденные ELF-файлы.

Какие плюсы? А вот они:

  1. Пакеты штатно собираются и пакуются стандартными средствами, без магии с контрольными суммами, правами и пользователями.
  2. Инструмент умеет подписывать с соблюдением требований по повторяемости сборки.
  3. Применяет грубую силу для обхода глюков bsign (а их хватает при работе не в лабораторных условиях).

Инструкция

Делай раз. Проверьте наличие подписи с ключём командой

gpg --list-keys

Делай два. Добавьте зависимость для сборки вашего пакета (debian/control):

Build-Depends: dh-gostsign-lab50

Делай три. В последовательность сборки debhelper’а (debian/rules) добавьте модуль gostsign:

%:
        dh $@ --with gostsign

Что еще нужно знать

  • Команда dh_gostsign следует всем канонам devscripts и понимает стандартные аргументы команд и флаги DH_VERBOSE.
  • При подписи ставит отметку времени из SOURCE_DATE_EPOCH.
  • Может подбирать идентификатор необходимой подписи из переменной окружения GOSTSIGN.
  • Собранный пакет dh-gostsign-lab50 для ALSE 1.6 лежит в нашем репозитории.
  • Все остальное искать здесь: gitlab.com/lab50/dh-gostsign.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *