Bug 45638 - перепаковка src.rpm для noarch или некий вариант girar-options
Summary: перепаковка src.rpm для noarch или некий вариант girar-options
Status: NEW
Alias: None
Product: Infrastructure
Classification: Infrastructure
Component: girar (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P5 normal
Assignee: placeholder@altlinux.org
QA Contact: Andrey Cherepanov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-03-23 20:41 MSK by viy
Modified: 2023-03-24 10:03 MSK (History)
3 users (show)

See Also:


Attachments
спек (3.40 KB, text/x-rpm-spec)
2023-03-23 22:27 MSK, viy
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description viy 2023-03-23 20:41:02 MSK
Проблема на примере пакета 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,
Comment 1 Dmitry V. Levin 2023-03-23 21:33:50 MSK
Мне казалось, что src.rpm всегда перепаковываются, просто результат не публикуется.
Comment 2 viy 2023-03-23 22:13:08 MSK
(Ответ для 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
Comment 3 Dmitry V. Levin 2023-03-23 22:18:00 MSK
(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, то пакет соберется

А что в спеке написано?
Comment 4 viy 2023-03-23 22:26:41 MSK
(Ответ для 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
Comment 5 viy 2023-03-23 22:27:29 MSK
Created attachment 12791 [details]
спек
Comment 6 Dmitry V. Levin 2023-03-23 22:53:31 MSK
В спеке написано следующее:

%ifnarch %ix86 %arm
# required for test data
BuildRequires: perl(Net/Works/Network.pm) perl(Math/Int128.pm)
%else
%define _without_test 1
%endif

Непонятно, почему это не работает.
Comment 7 Dmitry V. Levin 2023-03-23 23:01:24 MSK
При сборке из .git выполняется hsh-rebuild --build-srpm-only --query-repackage,
при сборке из src.rpm - hsh-rebuild --install-only --query-repackage.

Непонятно, отчего оно перестало работать.
Comment 8 Anton Farygin 2023-03-24 10:03:56 MSK
А это случайно никак не связано с тем, что в некоторых сборочных заданиях по неизвестной мне причине на выходе из задания получаются бинарные пакеты, собранные не из того же самого src.rpm, который есть на выходе из задания ?

Отличается контрольной суммой. Т.е. иногда при перезапуске задания почему-то не выкладывается src.rpm, который был пересобран в процессе сборки, а остаётся старый.

Например: 316705, 316706