@@ -0,0 +1,72 @@
+%package -n %{-n*}-%1
+Version: %(echo %{-v*}-%3 | tr - _)
+Release: %{-r*}
+%(
+for spec in {%_sourcedir,%_specdir}/%name.spec /dev/null; do
+ [ -e $spec ] && break
+done
+awk '
+BEGIN { tags["summary"] = "Summary: %summary"
+ tags["group"] = "Group: %group" }
+/^%%/ { in_pkg_header = \
+ ($0 ~ /^%%package[ \t]+KMP[ \t]*$/ ||
+ $0 ~ /^%%package[ \t]+-n[ \t]*%name-KMP[ \t]*$/)
+ next }
+in_pkg_header && /^(Summary|Group):[ \t]*/ \
+ { tag = tolower($1) ; sub(/:$/, "", tag)
+ tags[tag] = $0 }
+END { print tags["summary"]
+ print tags["group"] }
+' $spec
+)
+Provides: %{-n*} = %(echo %{-v*}-%3 | tr - _)
+Requires: kernel-%1 coreutils grep
+AutoReqProv: on
+%{-p:%{expand:%(cd %_sourcedir; cat %{-p*})}}
+%description -n %{-n*}-%1
+%(
+for spec in {%_sourcedir,%_specdir}/%name.spec /dev/null; do
+ [ -e $spec ] && break
+done
+awk '
+/^%%/ { in_desc = \
+ ($0 ~ /^%%description[ \t]+KMP[ \t]*$/ ||
+ $0 ~ /^%%description[ \t]+-n[ \t]*%name-KMP[ \t]*$/)
+ next }
+in_desc { print; good = 1 }
+END { exit(! good) }
+' $spec || \
+awk '
+/^%%/ { in_desc = \
+ ($0 ~ /^%%description[ \t]*$/ ||
+ $0 ~ /^%%description[ \t]+-n[ \t]*%name[ \t]*$/)
+ next }
+in_desc { print; good = 1 }
+END { exit(! good) }
+' $spec
+)
+%post -n %{-n*}-%1
+version=%(echo %{-v*}-%3 | tr - _)
+nvr=%{-n*}-%1-$version-%{-r*}
+wm2=/usr/lib/module-init-tools/weak-modules2
+if [ -x $wm2 ]; then
+ $wm2 --add-kmp $nvr
+fi
+%preun -n %{-n*}-%1
+version=%(echo %{-v*}-%3 | tr - _)
+nvr=%{-n*}-%1-$version-%{-r*}
+set -o noclobber
+rpm -ql $nvr | grep '\.ko$' > /var/run/rpm-$nvr-modules
+%postun -n %{-n*}-%1
+version=%(echo %{-v*}-%3 | tr - _)
+nvr=%{-n*}-%1-$version-%{-r*}
+modules=( $(cat /var/run/rpm-$nvr-modules) )
+rm -f /var/run/rpm-$nvr-modules
+wm2=/usr/lib/module-init-tools/weak-modules2
+if [ -x $wm2 ]; then
+ printf '%s\n' "${modules[@]}" | $wm2 --remove-kmp $nvr
+fi
+%files -n %{-n*}-%1
+%{-f:%{expand:%(cd %_sourcedir; cat %{-f*})}}
+%{!-f:%defattr (-,root,root)}
+%{!-f:/lib/modules/%2}
|