aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorTimothy Day <[email protected]>2023-03-22 12:22:52 -0400
committerGitHub <[email protected]>2023-03-22 09:22:52 -0700
commit1eca40f3ade7ffc1847c66dd5cad67c94ba8fd35 (patch)
treeb8ba4d3801ffa816ada39cffff5e91a249a965a3 /scripts
parent0f9e7354145ca3196f77b18b3d02858121ece31c (diff)
Fix kmodtool for packaging mainline Linux
kmodtool currently incorrectly identifies official RHEL kernels, as opposed to custom kernels. This can cause the openZFS kmod RPM build to break. The issue can be reproduced by building a set of mainline Linux RPMs, installing them, and then attempting to build the openZFS kmod package against them. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Timothy Day <[email protected]> Closes #14617
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/kmodtool30
1 files changed, 15 insertions, 15 deletions
diff --git a/scripts/kmodtool b/scripts/kmodtool
index 6eea8fe50..0d6af2c7f 100755
--- a/scripts/kmodtool
+++ b/scripts/kmodtool
@@ -333,36 +333,36 @@ print_customrpmtemplate ()
{
for kernel in ${1}
do
- if [[ -e "${buildroot}/usr/src/kernels/${kernel}" ]] ; then
- # this looks like a Fedora/RH kernel -- print a normal template (which includes the proper BR) and be happy :)
- kernel_versions="${kernel_versions}${kernel}___${buildroot}%{_usrsrc}/kernels/${kernel} "
+ if [[ -e "${prefix}/lib/modules/${kernel}/build/Makefile" ]]; then
+ # likely a user-build-kernel with available buildfiles
+ # fixme: we should check if uname from Makefile is the same as ${kernel}
- # parse kernel versions string and print template
- local kernel_verrelarch=${kernel%%${kernels_known_variants}}
- print_rpmtemplate_per_kmodpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}}
+ kernel_versions="${kernel_versions}${kernel}___${prefix}/lib/modules/${kernel}/build/ "
+ print_rpmtemplate_per_kmodpkg --custom "${kernel}"
# create development package
if [[ -n "${devel}" ]]; then
# create devel package including common headers
- print_rpmtemplate_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}}
+ print_rpmtemplate_kmoddevelpkg --custom "${kernel}"
# create devel package
- print_rpmtemplate_per_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}}
+ print_rpmtemplate_per_kmoddevelpkg --custom "${kernel}"
fi
- elif [[ -e "${prefix}/lib/modules/${kernel}/build/Makefile" ]]; then
- # likely a user-build-kernel with available buildfiles
- # fixme: we should check if uname from Makefile is the same as ${kernel}
+ elif [[ -e "${buildroot}/usr/src/kernels/${kernel}" ]]; then
+ # this looks like a Fedora/RH kernel -- print a normal template (which includes the proper BR) and be happy :)
+ kernel_versions="${kernel_versions}${kernel}___${buildroot}%{_usrsrc}/kernels/${kernel} "
- kernel_versions="${kernel_versions}${kernel}___${prefix}/lib/modules/${kernel}/build/ "
- print_rpmtemplate_per_kmodpkg --custom "${kernel}"
+ # parse kernel versions string and print template
+ local kernel_verrelarch=${kernel%%${kernels_known_variants}}
+ print_rpmtemplate_per_kmodpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}}
# create development package
if [[ -n "${devel}" ]]; then
# create devel package including common headers
- print_rpmtemplate_kmoddevelpkg --custom "${kernel}"
+ print_rpmtemplate_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}}
# create devel package
- print_rpmtemplate_per_kmoddevelpkg --custom "${kernel}"
+ print_rpmtemplate_per_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}}
fi
else
error_out 2 "Don't know how to handle ${kernel} -- ${prefix}/lib/modules/${kernel}/build/Makefile not found"