2022-12-28 19:17:04

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH] kbuild: rpm-pkg: add libelf-devel as alternative for BuildRequires

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/[email protected]/T/#u
Fixes: 8818039f959b ("kbuild: add ability to make source rpm buildable using koji")
Reported-by: Guoqing Jiang <[email protected]>
Signed-off-by: Masahiro Yamada <[email protected]>
---

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


2022-12-29 00:30:24

by Nathan Chancellor

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

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/[email protected]/T/#u
> Fixes: 8818039f959b ("kbuild: add ability to make source rpm buildable using koji")
> Reported-by: Guoqing Jiang <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>

Reviewed-by: Nathan Chancellor <[email protected]>

> ---
>
> 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
>

2022-12-29 02:59:12

by Guoqing Jiang

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



On 12/29/22 03:10, 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/[email protected]/T/#u
> Fixes: 8818039f959b ("kbuild: add ability to make source rpm buildable using koji")
> Reported-by: Guoqing Jiang <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---
>
> 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

Thanks for the quick fix! I verified the above works for openSUSE leap 15.4.

Tested-by: Guoqing Jiang <[email protected]>

Thanks,
Guoqing

2022-12-29 08:46:52

by Jonathan Toppins

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

On 12/28/22 14:10, 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/[email protected]/T/#u
> Fixes: 8818039f959b ("kbuild: add ability to make source rpm buildable using koji")
> Reported-by: Guoqing Jiang <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>

Acked-by: Jonathan Toppins <[email protected]>