Scott Little 494c52a7db Add missing BuildRequires to allow kmods to build reliably
The original update that broke layered build was
https://review.opendev.org/#/c/727908

all kmods failed to build due to a missing BuildRequires
on elfutils-libelf-devel.

The actual error message was:

Makefile:977: *** "Cannot generate ORC metadata for
CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or
elfutils-libelf-devel". Stop.
make: *** [default] Error 2
RPM build errors:

In the case of centos, it is elfutils-libelf-devel that we need.
The need for the kmod appears to relate to the new 4.18 kernel.
It might be that kernel-devel should now have a 'Require
elfutils-libelf-devel'

Reproducibility depends on one of a few factors.  If
elfutils-libelf-devel may already be present within the mock
environment due to build of a prior package, the build will pass.
The kernel build pulls in elfutils-libelf-devel, and produces
kernel-devel which is required for kmod builds.  So it's easy to
overlook this defect.

So we need a build where mock is clean yet the kernel is already
built.  Two possibilities.
1) clean mock after building the kernel, but before building the kmods.
2) build avoidance when the kernel has not changed, but the kmod has.

CENGN layered build hit the second scenario.

This fix tackles the problem from the kmod side by adding BuildRequires
elfutils-libelf-devel to each kmod.

An alternative approach might be to add a Requires elfutils-libelf-devel
to kernel-devel.  That option has not yet been explored.  So I'll call
that a partial fix only.

Partial-Bug: 1878072
Partial-Bug: 1880248
Change-Id: I472a5a285c2b47401fa6594358c0578d81e3f678
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-05-25 15:34:03 +00:00
..