start maintaining the SLE11-SP1 package in a branch of an upstream git clone
[opensuse:module-init-tools.git] / suse / module-init-tools.spec.in
1 #
2 # spec file for package module-init-tools (Version @VERSION@)
3 #
4 # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
5 #
6 # All modifications and additions to the file contributed by third parties
7 # remain the property of their copyright owners, unless otherwise agreed
8 # upon. The license for this file, and modifications and additions to the
9 # file, is the same license as for the pristine package itself (unless the
10 # license for the pristine package is not an Open Source License, in which
11 # case the license is the MIT License). An "Open Source License" is a
12 # license that conforms to the Open Source Definition (Version 1.9)
13 # published by the Open Source Initiative.
14
15 # Please submit bugfixes or comments via http://bugs.opensuse.org/
16 #
17
18 # norootforbuild
19
20
21 Name:           module-init-tools
22 BuildRequires:  zlib-devel
23 Version:        @VERSION@
24 Release:        1
25 License:        GPL v2 or later
26 Group:          System/Kernel
27 # for grepping /etc/SUSE-release
28 PreReq:         grep
29 # nm and rpmsort (rpm) are required by the weak-modules script which is invoked
30 # in post, it also requires getopt (coreutils) and sed
31 PreReq:         coreutils rpm
32 # XXX: this should be nm OR eu-nm, the script works with both
33 PreReq:         /usr/bin/eu-nm /bin/sed
34 Provides:       modules modutils
35 Obsoletes:      modules modutils
36 # the update kernel requires this symbol to make sure m-i-t is updated first
37 Provides:       module-init-tools_fix_bnc480524
38 AutoReqProv:    on
39 Summary:        Utilities to Load Modules into the Kernel
40 Url:            http://www.kerneltools.org/
41 Source0:        http://www.kernel.org/pub/linux/kernel/people/jcm/module-init-tools/module-init-tools-%{version}.tar.bz2
42 Source1:        README.SUSE
43 Source2:        modprobe.conf.tar.bz2
44 Source3:        depmod.conf
45 Source4:        unsupported-modules
46 Source5:        weak-modules
47 Source6:        weak-modules2
48 Source7:        kernelversion
49 Patch1:         module-init-tools-upstream.diff
50 Patch2:         module-init-tools-suse.diff
51 Patch3:         module-init-tools-manpages.diff
52 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
53
54 %description
55 Utilities for loading kernel modules. Included are 'insmod', 'lsmod',
56 'rmmod', 'depmod', and 'modprobe'. The configuration file
57 /etc/modprobe.* can be used to pass parameters to the modules. 'depmod'
58 should be used after compiling a new kernel to generate the dependency
59 information. 'insmod' does not use the dependency nor the options file.
60 Therefore, 'modprobe' is normally used to load a module.
61
62
63
64 Authors:
65 --------
66     Rusty Russell <rusty@rustcorp.com.au>
67     Adam J. Richter <adam@yggdrasil.com>
68     Jon Masters <jcm@jonmasters.org>
69
70 %prep
71 %setup -q -a2
72 %patch1 -p1
73 %patch2 -p1
74 %patch3 -p1
75
76 %build
77 autoreconf --force --install
78 CFLAGS="$RPM_OPT_FLAGS" \
79         ./configure \
80         --prefix=/ \
81         --mandir=%{_mandir} \
82         --enable-zlib
83 make %{?jobs:-j%jobs}
84
85 %install
86 make DESTDIR=$RPM_BUILD_ROOT install
87 rm $RPM_BUILD_ROOT/sbin/insmod.static
88 install -m755 %_sourcedir/kernelversion $RPM_BUILD_ROOT/sbin
89 install -m644 %_sourcedir/README.SUSE .
90 ln -sf /bin/lsmod $RPM_BUILD_ROOT/sbin/lsmod
91 #
92 # now assemble the parts for modprobe.conf
93 #
94 cd modprobe.conf
95 cp modprobe.conf.common modprobe.conf
96 if [ -f modprobe.conf.$RPM_ARCH ] ; then
97         cat modprobe.conf.$RPM_ARCH >> modprobe.conf
98 fi
99 cat modprobe.conf.last >> modprobe.conf
100 install -d -m 755 $RPM_BUILD_ROOT/etc/modprobe.d
101 install -m644 %_sourcedir/unsupported-modules $RPM_BUILD_ROOT/etc/modprobe.d
102 install -m644 modprobe.conf $RPM_BUILD_ROOT/etc/modprobe.conf
103 install -m644 modprobe.conf.local $RPM_BUILD_ROOT/etc/modprobe.conf.local
104 install -d -m 755 $RPM_BUILD_ROOT/etc/depmod.d
105 install -m 644 %_sourcedir/depmod.conf $RPM_BUILD_ROOT/etc/
106 install -d -m 755 $RPM_BUILD_ROOT/usr/lib/%name
107 install -m 755 %_sourcedir/weak-modules{,2} $RPM_BUILD_ROOT/usr/lib/%name/
108
109 %clean
110 rm -rf $RPM_BUILD_ROOT
111
112 %post
113 test_allow_on_install()
114 {
115         # configure handling of unsupported modules
116         # default is to allow them
117         allow=1
118         # if the obsolete LOAD_UNSUPPORTED_MODULES_AUTOMATICALLY variable is
119         # set to no, don't allow (this was used in SLES 9 and 10)
120         if test -e /etc/sysconfig/hardware/config; then
121                 . /etc/sysconfig/hardware/config
122                 if test "x$LOAD_UNSUPPORTED_MODULES_AUTOMATICALLY" = "xno"; then
123                         allow=0
124                 fi
125                 # obsolete
126                 rm /etc/sysconfig/hardware/config
127         fi
128         # if this is a _new_ SLES install, don't allow unsupported modules
129         if test "$1" != 1; then
130                 return
131         fi
132         if grep -qs "Enterprise Server" /etc/SuSE-release; then
133                 allow=0
134         else
135                 return
136         fi
137         # unless the admin passed "oem-modules=1" to the kernel during install
138         if grep -qs '\<oem-modules=1\>' /proc/cmdline; then
139                 allow=1
140                 return
141         fi
142         # or if the installer already loaded some unsupported modules
143         # (see TAINT_NO_SUPPORT in /usr/src/linux/include/linux/kernel.h)
144         tainted=$(cat /proc/sys/kernel/tainted 2>/dev/null || echo 0)
145         if test $((tainted & (1<<30))) != 0; then
146                 allow=1
147                 return
148         fi
149 }
150 test_allow_on_install "$@"
151 if test "$allow" = "0"; then
152         sed -ri 's/^( *allow_unsupported_modules *) 1/\1 0/' \
153                 /etc/modprobe.d/unsupported-modules
154 fi
155
156 %files
157 %defattr(-,root,root)
158 %config /etc/modprobe.conf
159 %config /etc/depmod.conf
160 %dir /etc/depmod.d
161 %config(noreplace) /etc/modprobe.d/unsupported-modules
162 %config(noreplace) /etc/modprobe.conf.local
163 %doc AUTHORS COPYING ChangeLog FAQ NEWS README TODO
164 %doc README.SUSE
165 %doc %{_mandir}/man?/*
166 /bin/*
167 /sbin/*
168 /usr/lib/%name
169 /etc/modprobe.d
170
171 %changelog