3 # kmodtool - Helper script for building kernel module RPMs
4 # Copyright (c) 2003-2007 Ville Skyttä <ville.skytta@iki.fi>,
5 # Thorsten Leemhuis <fedora@leemhuis.info>
7 # Modified by Simon Wilkinson for OpenAFS
9 # Permission is hereby granted, free of charge, to any person obtaining
10 # a copy of this software and associated documentation files (the
11 # "Software"), to deal in the Software without restriction, including
12 # without limitation the rights to use, copy, modify, merge, publish,
13 # distribute, sublicense, and/or sell copies of the Software, and to
14 # permit persons to whom the Software is furnished to do so, subject to
15 # the following conditions:
17 # The above copyright notice and this permission notice shall be
18 # included in all copies or substantial portions of the Software.
20 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 knownvariants=@(BOOT|PAE?(-debug)|@(big|huge)mem|debug|enterprise|kdump|?(large)smp?(-debug)|uml|xen?([0U])?(-PAE))
40 verrel=${1:-$(uname -r)}
41 verrel=${verrel%%$knownvariants}
44 verrel="`echo ${verrel} | sed -e 's/^\(.*.el[6-9].elrepo[^\.]*\)\.[^\.]\+.\?$/\1/'`" ;;
45 *.el[6-9]*) verrel="`echo ${verrel} | sed -e 's/^\(.*.el[6-9][^\.]*\)\.[^\.]\+.\?$/\1/'`" ;;
47 verrel="`echo ${verrel} | sed -e 's/^\(.*.fc[1-9][0-9][^\.]*\)\.[^\.]\+.\?$/\1/'`" ;;
48 *.fc9*) verrel="`echo ${verrel} | sed -e 's/^\(.*.fc9[^\.]*\)\.[^\.]\+.\?$/\1/'`" ;;
61 variant=${1:-$(uname -r)}
62 variant=${variant##$verrel}
63 variant=${variant:-'""'}
76 local dashvariant="${variant:+-${variant}}"
79 kdep="kernel-%{_target_cpu} = ${verrel}${variant}" ;;
80 *.EL*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;;
81 *) kdep="kernel-%{_target_cpu} = ${verrel}${variant}" ;;
85 kname="${verrel}.%{_target_cpu}${variant:+.${variant}}" ;;
87 kname="${verrel}.%{_target_cpu}${variant:++${variant}}" ;;
89 kname="${verrel}.%{_target_cpu}${variant:+.${variant}}" ;;
90 *.fc9*) kname="${verrel}.%{_target_cpu}${variant:+.${variant}}" ;;
91 *) kname="${verrel}${variant}" ;;
95 %package -n kmod-${kmod_name}${dashvariant}
96 Summary: ${kmod_name} kernel module(s)
97 Group: System Environment/Kernel
98 Provides: kernel-modules = ${kname}
99 Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
100 Provides: openafs-kernel = %{PACKAGE_VERSION}
102 Requires: ${kmod_name}-kmod-common >= %{?epoch:%{epoch}:}%{version}
103 Requires(post): /sbin/depmod
104 Requires(postun): /sbin/depmod
105 Release: %{pkgrel}.%(echo ${verrel} | tr - _)
106 BuildRequires: kernel${dashvariant}-devel-%{_target_cpu} = ${verrel}
107 %description -n kmod-${kmod_name}${dashvariant}
108 This package provides the ${kmod_name} kernel modules built for the Linux
109 kernel ${kname} for the %{_target_cpu} family of processors.
110 %post -n kmod-${kmod_name}${dashvariant}
111 /sbin/depmod -aeF /boot/System.map-${kname} ${kname} > /dev/null || :
112 %postun -n kmod-${kmod_name}${dashvariant}
113 /sbin/depmod -aF /boot/System.map-${kname} ${kname} &> /dev/null || :
114 %files -n kmod-${kmod_name}${dashvariant}
115 %defattr(644,root,root,755)
116 /lib/modules/${kname}/extra/${kmod_name}/
128 if [ -z "${kmod_name}" ] ; then
129 echo "Please provide the kmodule-name as first parameter." >&2
131 elif [ -z "${kver}" ] ; then
132 echo "Please provide the kver as second parameter." >&2
134 elif [ -z "${verrel}" ] ; then
135 echo "Couldn't find out the verrel." >&2
139 for variant in "$@" ; do
140 get_rpmtemplate "${variant}"
147 You called: ${invocation}
149 Usage: ${myprog} <command> <option>+
152 - Get "base" version-release.
154 - Get variant from uname.
155 rpmtemplate <mainpgkname> <uname> <variants>
156 - Return a template for
158 - Output version number and exit.
162 invocation="$(basename ${0}) $@"
163 while [ "${1}" ] ; do
177 print_rpmtemplate "$@"
181 echo "${myprog} ${myver}"
185 echo "Error: Unknown option '${1}'." >&2
195 # indent-tabs-mode: nil