Hi everybody,

I was reported that 'dnf builddep kernel' fails on RHEL8 on s390 with

        No matching package to install: 'pesign >= 0.10-4'

which doesn't make sense as the kernel.spec only adds pesign as build
requirement for x86_64 and aarch64. While looking into this I think I fond  a
rather fundamental problem in the building process not only affecting RHEL8 but
also RHEL7 and Fedora (guess CentOS too, but haven't checked). So I'm reaching
out to you in the hope we can find a solution together.

My theory is that the BuildRequires in the .spec file are only evaluated once
during the creation of the srpm and then stored in a simple list in some rpm
meta data in the header [1]. After that the meta data is fixed and any
condition (architecture, with_* flags) are fixed to what was chosen while
creating the srpm. Thus by sharing a srpm among the architectures all
architectures get the same build requirements regardless of what's been defined
for them in the kernel.spec.

To proof the theory I took a closer look at a freshly downloaded the srpm (dnf
download --source kernel) for RHEL8 on s390 and indeed its architecture (rpm
-qi) is x86_64. After rebuilding the srpm (rpmbuild -rs) on s390 pesign is no
longer listed as build requirement and dnf builddep works again.

As said above RHEL7 and Fedora are also affected by the problem. The only
reason why it does not show is that their srpms are build on ppc
(3.10.0-1152.el7) and armv7hl (5.7.7-200.fc32), which both don't require pesign
(which of course is missing for x86 in these cases...). Using the same trick
from above, i.e. rebuilding the srpm on x86 and running dnf builddep on s390
triggers the same error as for RHEL8.

To be honest I'm not really sure what I shall make of this problem myself.
Currently it only seems to affect the build requirements, which is annoying but
no real deal beaker. But it is easy to create cases where, e.g. Conflicts or 
even
the License are affected, which elevates the problem to completely different
levels.

Sorry for the long mail
Philipp

P.S. Checking resent RHEL8 brew builds I see in the root.log that it too calls
'dnf builddep' on s390. Apparently without any problem. I have absolutely no
clue what kind of magic is responsible for that.

[1] 
http://ftp.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html#S2-RPM-FILE-FORMAT-HEADER
_______________________________________________
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org

Reply via email to