File macros.modular-kernel of Package kernel-default-image
%define get_moderr() \
KREL="$(sed -rne '\\%^(/usr)?/lib/modules/([^/]+)$%{s,.*/,,;p;q}' < kernel.flist)" \
%1="$(/usr/sbin/depmod -b $RPM_BUILD_ROOT -e -F /boot/System.map-$KREL $KREL 2>&1 >/dev/null)"
%global __kernel_scriptlets_dir /usr/lib/module-init-tools/kernel-scriptlets
# _kernel_scriptlet(t:s:n:v:r:k:i:f:a:c:)
# create kernel scriptlet invocation
# -t: package type (kernel, kmp, inkmp, ...)
# -s: scriptlet (pre, post, ...)
# -n: package name
# -v: package version
# -r: package release
# -k: kernel release (uname -r)
# -i: kernel image (e.g. vmlinuz)
# -f: flavor (e.g. default)
# -a: kernel-source variant (optional)
# -c: 8-digit hash of kernel cert
%define _kernel_scriptlet(t:s:n:v:r:k:i:f:a:c:) %{__kernel_scriptlets_dir}/%{-t*}-%{-s*} \\\
--name "%{-n*}" \\\
--version "%{-v*}" --release "%{-r*}" --kernelrelease "%{-k*}" \\\
--image "%{-i*}" --flavor "%{-f*}" --variant %{-a:"%{-a*}"}%{!-a:""} \\\
--usrmerged "0%{?usrmerged}" --certs "%{-c*}" "$@"
# module_scriptlet(s:m:f:)
# shortcurt for _kernel_scriptlet, create scriptlets for a module package
# -s: scriptlet
# -m: module name
# -f: flavor
%define module_scriptlet(s:m:f:) \
%{expand:%%%{-s*} -n %{-m*}-kmp-%{-f*}\
%%_kernel_scriptlet -t inkmp -s %{-s*} -n %{-m*}-kmp-%{-f*} -v %rpm_kver -r %release -k %kernelrelease -i %image -f %{-f*} %{?variant:-a %variant} -c %certs}
# all_module_scriptlets(m:f:)
# create code for all scriptlets for a module package
# -m: module name
# -f: flavor
%define all_module_scriptlets(m:f:) \
%{expand:%(for __x in pre post preun postun posttrans; do \
echo "%%module_scriptlet -s $__x -m %{-m*} -f %{-f*}"; \
done)}
# module subpackage definition
%define __module_subpackage(m:f:v:k:r:) \
%%package -n %{-m*}-kmp-%{-f*} \
Version: %{-v*} \
Release: %{release} \
Group: %{group} \
Summary: %{orig_summary} - module %{-m*} \
AutoReqProv: on \
Requires: %{package_name} \
Enhances: %{package_name} \
Provides: %{-m*}-kmp = %{-v*} \
Requires: coreutils grep \
Requires(pre): suse-kernel-rpm-scriptlets \
Requires(postun): suse-kernel-rpm-scriptlets \
\
%%description -n %{-m*}-kmp-%{-f*} \
This package is part of the modular kernel. It provides the %{-m*} module. \
\
%all_module_scriptlets -m %{-m*} -f %{-f*} \
\
%%files -n %{-m*}-kmp-%{-f*} \
%(/sbin/modinfo -F filename %{-m*})
%define module_subpackages(f:v:k:) \
%{expand:%(for __x in %*; do \
echo %%__module_subpackage -m ${__x} -f %{-f*} -v %{-v*} -k %{-k*}; \
done)}