|
Michal Marek |
411abb |
# A few cross-distro definitions:
|
|
Michal Suchanek |
7e857f |
%kernel_build_shell_package %{lua: \
|
|
Michal Suchanek |
7e857f |
if ((tonumber(rpm.expand("0%{?suse_version}")) > 1500) or (tonumber(rpm.expand("0%{?sle_version}")) > 150300)) then \
|
|
Michal Suchanek |
7e857f |
print( "bash-sh" ) \
|
|
Michal Suchanek |
7e857f |
else \
|
|
Michal Suchanek |
7e857f |
print( "" ) \
|
|
Michal Suchanek |
981687 |
end
|
|
Michal Suchanek |
7e857f |
}
|
|
Michal Marek |
411abb |
%kernel_module_package_release 1
|
|
|
888e01 |
%kernel_module_package_buildreqs modutils kernel-syms kmod-compat suse-kernel-rpm-scriptlets %kernel_build_shell_package
|
|
Michal Marek |
411abb |
|
|
Michal Suchanek |
5dc40a |
%cpu_arch %(case %_target_cpu in \
|
|
Michal Suchanek |
5dc40a |
# from rpm --eval '%ix86' \
|
|
Michal Suchanek |
5dc40a |
(i?86 | pentium3 | pentium4 | athlon | geode) \
|
|
Michal Suchanek |
5dc40a |
echo "i386" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Michal Suchanek |
5dc40a |
(aarch64) \
|
|
Michal Suchanek |
5dc40a |
echo "arm64" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Michal Suchanek |
5dc40a |
(*)\
|
|
Michal Suchanek |
5dc40a |
echo "%_target_cpu" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Michal Suchanek |
5dc40a |
esac)
|
|
Michal Suchanek |
5dc40a |
|
|
Michal Suchanek |
5dc40a |
%linux_arch %(case %cpu_arch in \
|
|
Michal Suchanek |
5f24fb |
(x86_64 | i386) \
|
|
Michal Suchanek |
5f24fb |
echo "x86" \
|
|
Michal Suchanek |
5f24fb |
;; \
|
|
Michal Suchanek |
5dc40a |
(ppc*) \
|
|
Michal Suchanek |
5dc40a |
echo "powerpc" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Michal Suchanek |
5dc40a |
(s390x) \
|
|
Michal Suchanek |
5dc40a |
echo "s390" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Michal Suchanek |
5dc40a |
(arm64) \
|
|
Michal Suchanek |
5dc40a |
echo "arm64" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Michal Suchanek |
5dc40a |
(armv*) \
|
|
Michal Suchanek |
5dc40a |
echo "arm" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Andreas Schwab |
c2885e |
(riscv*) \
|
|
Andreas Schwab |
c2885e |
echo "riscv" \
|
|
Andreas Schwab |
c2885e |
;;
|
|
Michal Suchanek |
5dc40a |
(*) \
|
|
Michal Suchanek |
5dc40a |
echo "%cpu_arch" \
|
|
Michal Suchanek |
5dc40a |
;; \
|
|
Michal Suchanek |
5dc40a |
esac)
|
|
Michal Suchanek |
5dc40a |
|
|
Michal Suchanek |
5dc40a |
%linux_make_arch ARCH=%linux_arch
|
|
Michal Suchanek |
5dc40a |
|
|
Michal Marek |
411abb |
# Defines %flavors_to_build and %kernel_source() as a side effect.
|
|
Michal Marek |
d8f177 |
%_kernel_module_package(n:v:r:t:f:Xp:bc:) \
|
|
Michal Marek |
5575c3 |
%{expand:%( \
|
|
Michal Marek |
411abb |
subpkg=%{-t*}%{!-t:/usr/lib/rpm/kernel-module-subpackage} \
|
|
Michal Marek |
d8f177 |
echo "%%define _suse_kernel_module_subpackage(n:v:r:f:p:bc) %%{expand:%%(cd %_sourcedir; cat $subpkg; echo %%%%nil)}" \
|
|
Michal Marek |
411abb |
flavors_to_build= \
|
|
Michal Marek |
411abb |
flavors="%*" \
|
|
Michal Marek |
411abb |
for flavor in $(ls /usr/src/linux-obj/%_target_cpu 2>/dev/null); do \
|
|
Michal Marek |
411abb |
case " $flavors " in \
|
|
Michal Marek |
411abb |
(*" $flavor "*) \
|
|
Michal Marek |
411abb |
[ -n "%{-X}" ] && continue ;; \
|
|
Michal Marek |
411abb |
(*) \
|
|
Michal Marek |
411abb |
[ -z "%{-X}" -a -n "$flavors" ] && continue ;; \
|
|
Michal Marek |
411abb |
esac \
|
|
Michal Suchanek |
5dc40a |
krel=$(make -si -C /usr/src/linux-obj/%_target_cpu/$flavor/ %linux_make_arch kernelrelease 2>/dev/null) \
|
|
Michal Marek |
411abb |
kver=${krel%%-*} \
|
|
Michal Marek |
411abb |
flavors_to_build="$flavors_to_build $flavor" \
|
|
Michal Suchanek |
66bd9b |
echo "%%_suse_kernel_module_subpackage -n %{-n*}%{!-n:%name} -v %{-v*}%{!-v:%version} -r %{-r*}%{!-r:%release} %{-f} %{-p} %{-b} %{-c:-c} $flavor $kver" \
|
|
Michal Marek |
411abb |
done \
|
|
Michal Marek |
411abb |
echo "%%global flavors_to_build${flavors_to_build:-%%nil}" \
|
|
Michal Marek |
411abb |
echo "%%{expand:%%(test -z '%flavors_to_build' && echo %%%%internal_kmp_error)}" \
|
|
Michal Marek |
411abb |
echo "%%global kernel_source() /usr/src/linux-obj/%_target_cpu/%%%%{1}" \
|
|
Michal Marek |
411abb |
echo "%%global kernel_module_package_moddir() updates" \
|
|
Michal Marek |
411abb |
\
|
|
Michal Marek |
411abb |
echo "%package -n %{-n*}%{!-n:%name}-kmp-_dummy_" \
|
|
Michal Marek |
411abb |
echo "Version: %version" \
|
|
Michal Marek |
411abb |
echo "Summary: %summary" \
|
|
Michal Marek |
411abb |
echo "Group: %group" \
|
|
Michal Marek |
411abb |
echo "%description -n %{-n*}%{!-n:%name}-kmp-_dummy_" \
|
|
Michal Marek |
d8f177 |
%{-c:
|
|
Michal Marek |
d8f177 |
for fmt in DER PEM; do h=$(openssl x509 -inform $fmt -fingerprint -noout -in %{-c*}); if test -n "$h"; then break; fi; done \
|
|
Michal Suchanek |
d9a135 |
cert=$(echo "$h" | sed -rn 's/^SHA1 Fingerprint=//; T; s/://g; s/(.{8}).*/\\1/p')
|
|
Michal Marek |
d70480 |
: The -n expanstion in kernel-cert-subpackage only works if
|
|
Michal Marek |
d70480 |
: -n is actually passed to the macro. Fix this here, so that
|
|
Michal Marek |
d70480 |
: we do not have to modify the modsign-repackage script
|
|
Michal Marek |
d70480 |
sed "s|@CERTS@|$cert|g; s|%%{-n.}|%{-n*}%{!-n:%name}|g" /usr/lib/rpm/kernel-cert-subpackage \
|
|
|
52805e |
echo "%%global __spec_install_pre %%__spec_install_pre \\\\\
|
|
Michal Suchanek |
d9a135 |
mkdir -p %%buildroot/etc/uefi/certs; openssl x509 -in %{-c*} -inform $fmt -out %%buildroot/etc/uefi/certs/${cert}.crt -outform DER" } \
|
|
Michal Marek |
411abb |
)}
|
|
Michal Marek |
411abb |
|
|
Michal Marek |
411abb |
# kernel_module_package: simply pass on all options and arguments.
|
|
Michal Marek |
d8f177 |
%kernel_module_package(n:v:r:t:f:xp:bc:) \
|
|
Gary Lin |
34808f |
%{expand:%%_kernel_module_package %{-x:-X} %{-n} %{-v} %{-r} %{-t} %{-f} %{-p} %{-b} %{-c} %*}
|
|
Michal Marek |
411abb |
|
|
Michal Marek |
411abb |
# suse_kernel_module_package: invert the meaning of the -x flag. (You are not
|
|
Michal Marek |
411abb |
# supposed to understand why a simple %{-x:}%{!-x:-x} won't work.)
|
|
Michal Marek |
d8f177 |
%suse_kernel_module_package(n:v:r:s:f:xp:bc:) \
|
|
Gary Lin |
34808f |
%{expand:%%_kernel_module_package %{-x: }%{!-x:-X} %{-n} %{-v} %{-r} %{-s:-t %{-s*}} %{-f} %{-p} %{-b} %{-c} %*}
|
|
|
22ec56 |
|