Dne 25. 02. 21 v 18:19 Miro Hrončok napsal(a):
> What I do is use "rpmspec -q --srpm" to do queries on
packages for dependencies.
>
> For example, you can do something like:
>
> rpmspec --target x86_64 -q --srpm --buildrequires package.spec
>
> That gets you a list of BRs for x86_64.
I suppose this doesn't support %generate_buildrequires, so it's not always
possible. (But I have not verified this
assumption.)
Neal is correct that you only need to **query** on different architecture.
However, I agree that keeping 6 SRPM files with identical *content*
and only different *metadata* is incredibly wasteful.
The SPEC file is always the same. On all arches. [*] So the different metadata you
mentioned are result of **query** of
that SRPM on that architecture. Even dynamic buildrequires.
Therefore I propose to:
* still generate only one SRPM like we do now.
* only generate list of builddeps on that architecture.
I.e., even in your case with "Qt5WebEngine on ppc64le and s390x" if you generate
SRPM on s390x and then run
mock --installdeps foo.src.rpm
on x86_64, then Mock should install Qt5WebEngine. Because it evaluates the SPEC file on
x86_64 architecture.
Browsing through code of Koji - I see no use of `--installdeps`. Therefore I think the
Builrequires used are **always**
correct and relevant on that architecture. There is only one issue - it is hardly visible.
It can be seen only in
root.log, which is pretty verbose.
And the "(info)" page on Koji, e.g.:
https://koji.fedoraproject.org/koji/buildinfo?buildID=1715542
-> src - > info ->
https://koji.fedoraproject.org/koji/rpminfo?rpmID=25390046
lies, because its Requires section (which is in case of SRC.RPM actually BuildRequires of
RPM) contains the
BuildRequires from just one architecture.
There what we actually needs:
* move the src.rpm on info page to each architecture (but still keep only one src.rpm)
* query for install deps on each architecture
* have separate (info) page for each architecture
Query the deps can be tricky as Mock does not support it. There is only --installdeps, but
not --querydeps. But I can
add it.
[*] the exception is
%ifarch FOO
SourceX: bar
but as you mentioned **that** is forbidden in Fedora.
--
Miroslav Suchy, RHCA
Red Hat, Associate Manager, Community Packaging Tools, #brno, #fedora-buildsys