Michal Marek 7c6395
%package -n %{-n*}-kmp-%1
Michal Suchanek 556809
%define _this_kmp_kernel_version k%(echo %2 | sed -r 'y/-/_/; s/^(2\.6\.[0-9]+)_/\\1.0_/; # use 2.6.x.0 for mainline kernels')
Michal Suchanek 556809
%define _this_kmp_version %{-v*}_%_this_kmp_kernel_version
Michal Marek 411abb
Version: %_this_kmp_version
Michal Marek 411abb
Release: %{-r*}
Michal Marek 411abb
%(
Michal Marek 411abb
for spec in {%_sourcedir,%_specdir}/%name.spec /dev/null; do
Michal Marek 411abb
    [ -e $spec ] && break
Michal Marek 411abb
done
Michal Marek 411abb
awk '
Michal Marek 411abb
BEGIN		{ tags["summary"] = "Summary: %summary"
Takashi Iwai 552ec9
		  tags["group"] = "" }
Michal Marek 411abb
/^%%/		{ in_pkg_header = \
Michal Marek 411abb
		  ($0 ~ /^%%package[ \t]+KMP[ \t]*$/ ||
Michal Marek 411abb
		   $0 ~ /^%%package[ \t]+-n[ \t]*%name-KMP[ \t]*$/)
Michal Marek 411abb
		  next }
Michal Marek 411abb
in_pkg_header && /^(Summary|Group):[ \t]*/ \
Michal Marek 411abb
		{ tag = tolower($1) ; sub(/:$/, "", tag)
Michal Marek 411abb
		  tags[tag] = $0 }
Michal Marek 411abb
END		{ print tags["summary"]
Takashi Iwai 552ec9
		  if ( tags["group"] != "" ) print tags["group"] }
Michal Marek 411abb
' $spec
Michal Marek 411abb
)
Michal Marek 7c6395
Provides: %{-n*}-kmp = %_this_kmp_version
Michal Marek 7c6395
Provides: %{-n*}-kmp = %{-v*}
Michal Suchanek adade9
Provides: multiversion(kernel)
Michal Suchanek 556809
Provides: %{-n*}-kmp-%1-%_this_kmp_kernel_version
Michal Marek 411abb
Requires: coreutils grep
Michal Suchanek a133bf
Requires(pre):  suse-kernel-rpm-scriptlets
Michal Suchanek a133bf
Requires(postun): suse-kernel-rpm-scriptlets
Michal Marek d8f177
%{-c:Requires: %{-n*}-ueficert}
Michal Marek 411abb
Enhances: kernel-%1
Michal Marek b1fe84
Supplements: packageand(kernel-%1:%{-n*})
Michal Suchanek 556809
Conflicts: %{-n*}-kmp-%1-%_this_kmp_kernel_version
Andreas Schwab 19ba52
%if "%1" == "default"
Michal Marek 5295c1
Obsoletes: %{-n*}-kmp-trace
Michal Marek 71e9f1
%ifarch %ix86
Michal Marek 5295c1
Obsoletes: %{-n*}-kmp-vmi
Michal Marek bf5547
%endif
Michal Marek 0a2490
%ifarch x86_64
Michal Marek 5295c1
Obsoletes: %{-n*}-kmp-desktop
Michal Marek 0a2490
%endif
Michal Marek 0a2490
%ifarch %ix86 x86_64
Michal Marek 5295c1
Obsoletes: %{-n*}-kmp-xen
Michal Marek 0a2490
%endif
Michal Marek 0a2490
%endif
Andreas Schwab 19ba52
%if "%1" == "pae"
Michal Marek 5295c1
Obsoletes: %{-n*}-kmp-desktop
Michal Marek bf5547
%endif
Michal Marek 411abb
AutoReqProv: on
Michal Suchanek ab8dd2
Michal Suchanek ab8dd2
%define run_if_exists run_if_exists() { \
Michal Suchanek ab8dd2
if [ -x "$1" ] ; then                   \
Michal Suchanek ab8dd2
  "$@"                                  \
Michal Suchanek ab8dd2
else                                    \
Michal Suchanek ab8dd2
  echo Cannot execute "$1" >&2          \
Michal Suchanek ab8dd2
fi                                      \
Michal Suchanek ab8dd2
}                                       \
Michal Suchanek ab8dd2
run_if_exists
Michal Suchanek ab8dd2
Michal Marek 411abb
%{-p:%{expand:%(cd %_sourcedir; cat %{-p*})}}
Michal Marek 7c6395
%description -n %{-n*}-kmp-%1
Michal Marek 411abb
%(
Michal Marek 411abb
for spec in {%_sourcedir,%_specdir}/%name.spec /dev/null; do
Michal Marek 411abb
    [ -e $spec ] && break
Michal Marek 411abb
done
Michal Marek 411abb
awk '
Michal Marek 411abb
/^%%/		{ in_desc = \
Michal Marek 411abb
		  ($0 ~ /^%%description[ \t]+KMP[ \t]*$/ ||
Michal Marek 411abb
		   $0 ~ /^%%description[ \t]+-n[ \t]*%name-KMP[ \t]*$/)
Michal Marek 411abb
		  next }
Michal Marek 411abb
in_desc		{ print; good = 1 }
Michal Marek 411abb
END		{ exit(! good) }
Michal Marek 411abb
' $spec || \
Michal Marek 411abb
awk '
Michal Marek 411abb
/^%%/		{ in_desc = \
Michal Marek 411abb
		  ($0 ~ /^%%description[ \t]*$/ ||
Michal Marek 411abb
		   $0 ~ /^%%description[ \t]+-n[ \t]*%name[ \t]*$/)
Michal Marek 411abb
		  next }
Michal Marek 411abb
in_desc		{ print; good = 1 }
Michal Marek 411abb
END		{ exit(! good) }
Michal Marek 411abb
' $spec
Michal Marek 411abb
)
Michal Suchanek e98096
%pre -n %{-n*}-kmp-%1
Michal Suchanek 152a06
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
Michal Suchanek 152a06
/usr/lib/module-init-tools/kernel-scriptlets/kmp-pre --name "%{-n*}-kmp-%1" \
Michal Suchanek e98096
  --version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
Michal Suchanek e98096
  --flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
Michal Marek 7c6395
%post -n %{-n*}-kmp-%1
Michal Suchanek 152a06
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
Michal Suchanek 152a06
/usr/lib/module-init-tools/kernel-scriptlets/kmp-post --name "%{-n*}-kmp-%1" \
Michal Suchanek e98096
  --version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
Michal Suchanek e98096
  --flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
Michal Marek 7c6395
%preun -n %{-n*}-kmp-%1
Michal Suchanek 152a06
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
Michal Suchanek 152a06
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/kmp-preun --name "%{-n*}-kmp-%1" \
Michal Suchanek e98096
  --version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
Michal Suchanek e98096
  --flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
Michal Marek 7c6395
%postun -n %{-n*}-kmp-%1
Michal Suchanek 152a06
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
Michal Suchanek 152a06
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/kmp-postun --name "%{-n*}-kmp-%1" \
Michal Suchanek e98096
  --version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
Michal Suchanek e98096
  --flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
Michal Suchanek e98096
%posttrans -n %{-n*}-kmp-%1
Michal Suchanek 152a06
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
Michal Suchanek 152a06
/usr/lib/module-init-tools/kernel-scriptlets/kmp-posttrans --name "%{-n*}-kmp-%1" \
Michal Suchanek e98096
  --version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
Michal Suchanek e98096
  --flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
Michal Marek 7c6395
%files -n %{-n*}-kmp-%1
Michal Marek 411abb
%{-f:%{expand:%(cd %_sourcedir; cat %{-f*})}}
Michal Marek 411abb
%{!-f:%defattr (-,root,root)}
22ec56
%{!-f:%{kernel_module_directory}/%2-%1}