3.3. Hasher: работа с существующим пакетом
Кроме создания пакетов с нуля в hasher существует возможность установки окружения вокруг некоторого уже существующего пакета. Это необходимо для проверки работоспособности сборки некоторого пакета или для внесения обновлений или изменений в его структуру. Для начала обсудим особенности сопровождения пакетов.
Одним из параметров RPM-пакета является указание информации о разработчике и / или сопровождающем этот пакет. Макросы, описывающие основные параметры утилит RPM-сборки, включая информацию о разработчике, описаны в специальном файле .rpmmacros:
@builder
[builder@localhost ~]$ cat .rpmmacros
%_tmppath /usr/src/tmp
%_topdir /usr/src/RPM
%packager Automated package hasher <hasher@localhost>
%buildhost user.hasher.altlinux.org
%__BTE hasher
%__nprocs 2
%_pkg_contents_index_bin /.host/contents_index_bin
%_rpmbuild_clean 0
%_rpmbuild_packagesource 1
[builder@localhost ~]$
При создании окружения hasher автоматически добавляет информацию о мнимом пользователе Automated package hasher <hasher@localhost>. При сборке пакета в его метаданные записывается информация из spec-файла, а также добавляется информация о разработчике из .rpmmacros. Вообще говоря, для spec-файлов существует специальная директива Packager для указания разработчика, но допустимо (и рекомендуется) её не указывать:
@builder
[user@VM ~]$ rpm -qip hasher/chroot/usr/src/RPM/SRPMS/null-pkg-1.0-alt1.src.rpm
Name : null-pkg
Version : 1.0
Release : alt1
Architecture: x86_64
Install Date: (not installed)
Group : Development/Other
Size : 281
License : GPL-3.0-or-later
Signature : (none)
Source RPM : (none)
Build Date : Вт 08 июл 2025 17:41:43
Build Host : user.hasher.altlinux.org
Relocations : (not relocatable)
Packager : Automated package hasher <hasher@localhost>
Vendor : ALT Linux Team
Summary : Null package
Description :
This is the smallest ever alt package without any functionality
[user@VM ~]$
При создании окружения вокруг пакета запускается автоматическая сборка, а также проводится проверка соответствия сборки пакетов правилам Sysiphus с помощью встроенной в hasher утилиты sysiphus_check. По правилам ALT Linux Team пакет должен принадлежать разработчику <User@altlinux.org>, все комментарии в директиве %changelog должны также принадлежать только таким пользователям. При создании окружения также и текущий разработчик должен соответствовать формату.
Если попробовать без предварительной настройки собрать окружение вокруг пакета, sysiphus_check выдаст ошибку и прервёт сборку:
@user
[user@VM ~]$ hsh null-pkg-1.0-alt1.src.rpm # src.rpm предварительно сохранен в домашней директории
<...>
/usr/src/in/srpm/null-pkg-1.0-alt1.src.rpm: wrong PACKAGER: Automated package hasher <hasher@localhost>
sisyphus_check: check-packager ERROR: packager name violation
/usr/src/in/srpm/null-pkg-1.0-alt1.src.rpm: wrong packager in CHANGELOGNAME: UsamG1t <usamstudent21@gmail.com> 1.0-alt1
sisyphus_check: check-changelog ERROR: changelog format violation
hsh-rebuild: null-pkg-1.0-alt1.src.rpm: sisyphus_check failed.
[user@VM ~]$