Приветствуем всех борцов за чистоту сборки!

Если вы разработчик ПО для Astra Linux Special Edition закаленный в боях с испытательными лабораториями, то наверняка сталкивались с требованиями подготовки повторяемых сборок.

Это когда два раза собрал и опа, одинаковая контрольная сумма!

Что бывает непросто.

Проблема повторяемости сборок давно известна и неплохо решаема в современных дистрибутивах, каковым, надеемся, будет Астра 1.6. А пока имеем то что имеем.

Вот и мы, в канун Дня Победы, в очередной раз воевали за эти самые MD5 ФИКС-UNIX. Для облегчения жизни себе и вам собрали некоторые наработки в отдельный пакет и назвали его dpkg-lab50.

dpkg-lab50

Пакет предоставляет утилиту dpkg-deb для Astra Linux Special Edition, которая собирает пакеты с фиксированным временем изменения файлов в архивах. В зависимости включается пакет dh-strip-nondeterminism, решающий многие проблемы повторяемости сборок.

Для работы необходимо установить время в UNIX-формате в переменной окружения SOURCE_DATE_EPOCH. Типовой пример (вставить в начало файла debian/rules):

export SOURCE_DATE_EPOCH ?= $(shell dpkg-parsechangelog | grep -Po '^Date: \K.*' | date -f- +%s)

А в последовательность сборки debhelper’а необходимо добавить модуль lab50:

%:
        dh $@ --with lab50

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

Build-Depends: dpkg-lab50

Таки какие проблемы он устраняет, спросите вы?

  1. Повторяемое время файлов в deb-пакете.
  2. Коллекция утилиты dh_strip_nondeterminism:
    • исправление времени файлов в архивах AR, GZip, JAR/WAR и прочих;
    • чистит PNG, Gettext, Javadoc;
    • ну и по мелочи.

Где брать?

В нашем репозитории, собран для версий 1.4 и 1.5. Внимание! Тащит за собой нужные зависимости (оттуда же).

Победа будет за нами!

7 комментариев

  1. Что с этим делать?

    Настраивается пакет dpkg-lab50 (4) …
    Оставляется «отклонение /usr/bin/dpkg-deb в /usr/bin/dpkg-deb.orig из-за dpkg-lab50»
    ln: не удалось создать символьную ссылку «/usr/bin/dpkg-deb»: Файл существует
    dpkg: ошибка при обработке параметра dpkg-lab50 (—install):
    подпроцесс установлен сценарий post-installation возвратил код ошибки 1

Что у нас
нового

Блог

Astra Linux Special Edition 1.6.11

29 августа 2022

Вышло оперативное обновление 2022-0829 (№ 11) для Astra Linux Special Edition 1.6.

Astra Linux Special Edition 1.7.2

19 августа 2022

Вышло оперативное обновление Astra Linux Special Edition № 2022-0819.

Наши
контакты

Связаться с нами

Телефон: 8 (812) 981-68-09
Электронная почта: team@lab50.net





    Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь
    с Правилами обработки и использования персональных данных