Проблема на примере пакета perl-MaxMind-DB-Reader. В этом пакете есть BuildRequires: на perl(Math/Int128.pm). По факту это ТеstRequires:, собранному пакету Int128 не нужен. Я внес их под %if(n)arch, чтобы тесты выполнялись только на тех архитектурах, где есть Math/Int128.pm. Проблема в проверках girar. Если собрать пакет без BuildArch: noarch, пакет не проходит girar: error (#100): the whole perl-MaxMind-DB-Reader source package should be made noarch Если указать BuildArch: noarch, то src.rpm не перепаковывается при сборке, и на архитектурах без Math/Int128.pm вылезает BuildRequires: на perl(Math/Int128.pm). либо можно задуматься для проверок girar об аналоге файла конфигурации, к примеру, в федоре все пакеты проверяются rpmlint, но в пакет можно упаковать файл rpmlint (файла конфигурации для rpmlint) который проверки настраивает более гибко. У нас это могло бы быть что-то вроде girar-options. Где можно было бы написать force_srpm_repack или force_noarch или force_arch, к примеру. либо надо всегда включать перепаковку src.rpm при сборке, не исключая noarch,
Мне казалось, что src.rpm всегда перепаковываются, просто результат не публикуется.
(Ответ для Dmitry V. Levin на комментарий #1) > Мне казалось, что src.rpm всегда перепаковываются, просто результат не > публикуется. Вот пример: #317338 FAILED #1 [test-only] sisyphus perl-MaxMind-DB-Reader.git=1.000014-alt4.testonly [i586] E: Couldn't find package perl(Net/Works/Network.pm) Если убрать BuildArch: noarch, то пакет соберется error (#100): the whole perl-MaxMind-DB-Reader source package should be made noarch
(In reply to viy from comment #2) > (Ответ для Dmitry V. Levin на комментарий #1) > > Мне казалось, что src.rpm всегда перепаковываются, просто результат не > > публикуется. > > Вот пример: > #317338 FAILED #1 [test-only] sisyphus > perl-MaxMind-DB-Reader.git=1.000014-alt4.testonly Это сборка из .git, там в любом случае всё вычисляется для каждой архитектуры в отдельности. > [i586] E: Couldn't find package perl(Net/Works/Network.pm) > Если убрать BuildArch: noarch, то пакет соберется А что в спеке написано?
(Ответ для Dmitry V. Levin на комментарий #3) > А что в спеке написано? Прикладываю спек к примеру 317338. чтобы обойти error (#100): the whole perl-MaxMind-DB-Reader source package should be made noarch я делал грязный хак, пакуя пустой каталог в %_libdir/perl/auto/... но в приложенном спеке этот хак выключен через %def_enable girar_repacks_srpm
Created attachment 12791 [details] спек
В спеке написано следующее: %ifnarch %ix86 %arm # required for test data BuildRequires: perl(Net/Works/Network.pm) perl(Math/Int128.pm) %else %define _without_test 1 %endif Непонятно, почему это не работает.
При сборке из .git выполняется hsh-rebuild --build-srpm-only --query-repackage, при сборке из src.rpm - hsh-rebuild --install-only --query-repackage. Непонятно, отчего оно перестало работать.
А это случайно никак не связано с тем, что в некоторых сборочных заданиях по неизвестной мне причине на выходе из задания получаются бинарные пакеты, собранные не из того же самого src.rpm, который есть на выходе из задания ? Отличается контрольной суммой. Т.е. иногда при перезапуске задания почему-то не выкладывается src.rpm, который был пересобран в процессе сборки, а остаётся старый. Например: 316705, 316706