Re: [PATCH] kbuild: rpm-pkg: add libelf-devel as alternative for BuildRequires

From: Nathan Chancellor
Date: Wed Dec 28 2022 - 19:27:18 EST


On Thu, Dec 29, 2022 at 04:10:14AM +0900, Masahiro Yamada wrote:
> Guoqing Jiang reports that openSUSE cannot compile the kernel rpm due
> to "BuildRequires: elfutils-libelf-devel" added by commit 8818039f959b
> ("kbuild: add ability to make source rpm buildable using koji").
> The relevant package name in openSUSE is libelf-devel.
>
> Add it an alternative package.
>
> BTW, if it is impossible to solve the build requirement, the final
> resort would be:
>
> $ make RPMOPTS=--nodeps rpm-pkg
>
> This passes --nodeps to the rpmbuild command so it will not verify
> build dependencies. This is useful to test rpm builds on non-rpm
> system. On Debian/Ubuntu, for example, you can install rpmbuild by
> 'apt-get install rpm'.
>
> NOTE1:
> Likewise, it is possible to bypass the build dependency check for
> debian package builds:
>
> $ make DPKG_FLAGS=-d deb-pkg
>
> NOTE2:
> The 'or' operator is supported since RPM 4.13. So, old distros such
> as CentOS 7 will break. I suggest installing newer rpmbuild in such
> cases.
>
> Link: https://lore.kernel.org/linux-kbuild/ee227d24-9c94-bfa3-166a-4ee6b5dfea09@xxxxxxxxx/T/#u
> Fixes: 8818039f959b ("kbuild: add ability to make source rpm buildable using koji")
> Reported-by: Guoqing Jiang <guoqing.jiang@xxxxxxxxx>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>

Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>

> ---
>
> scripts/package/mkspec | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/package/mkspec b/scripts/package/mkspec
> index dda00a948a01..adab28fa7f89 100755
> --- a/scripts/package/mkspec
> +++ b/scripts/package/mkspec
> @@ -51,7 +51,8 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
> URL: https://www.kernel.org
> $S Source: kernel-$__KERNELRELEASE.tar.gz
> Provides: $PROVIDES
> -$S BuildRequires: bc binutils bison dwarves elfutils-libelf-devel flex
> +$S BuildRequires: bc binutils bison dwarves
> +$S BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
> $S BuildRequires: gcc make openssl openssl-devel perl python3 rsync
>
> # $UTS_MACHINE as a fallback of _arch in case
> --
> 2.34.1
>