/[packages]/cauldron/dkms/current/SPECS/dkms.spec
ViewVC logotype

Contents of /cauldron/dkms/current/SPECS/dkms.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2180708 - (show annotations) (download)
Sat May 3 19:01:23 2025 UTC (2 months, 2 weeks ago) by wally
File size: 7733 byte(s)
- recompress .config file after reading it
1 %global __requires_exclude /bin/awk
2
3 Summary: Dynamic Kernel Module Support Framework
4 Name: dkms
5 Version: 2.0.19
6 URL: https://linux.dell.com/dkms
7 Release: %mkrel 49
8 License: GPL
9 Group: System/Base
10 BuildArch: noarch
11 Requires: kernel-devel
12 Recommends: kernel-devel-latest
13 Requires: %{name}-minimal = %{version}-%{release}
14 Requires(pre): rpm-helper
15 Requires(post): rpm-helper >= %{rpmhelper_required_version}
16 Requires(preun): rpm-helper >= %{rpmhelper_required_version}
17 Requires: patch
18 Source: https://linux.dell.com/dkms/%{name}-%{version}.tar.gz
19 Source1: template-dkms-mkrpm.spec.temp
20 Source2: dkms.depmod.conf
21 Source3: autoload.awk
22 Patch1: dkms-2.0.19-norpm.patch
23 Patch2: dkms-2.0.19-mgaify.patch
24 Patch3: dkms-fix-kernel-make-prepare.patch
25 Patch4: dkms-2.0.17.6-compressed-module.patch
26 Patch5: dkms-2.0.19-weak_module_name.patch
27 Patch7: dkms-2.0.19-procconfig.patch
28 Patch8: dkms-2.0.19-mdkrpm-split-ver-rel.patch
29 Patch9: dkms-2.0.19-bash-completion-update.patch
30 Patch10: dkms-2.0.19-binary_only.patch
31 Patch11: dkms-2.0.17.5-min-max-kernel.patch
32 Patch12: dkms-2.0.17.6-test-dkms.conf-existence.patch
33 Patch13: dkms-2.0.17.6-status_default.patch
34 Patch14: dkms-2.0.17.6-stdout.patch
35 Patch15: dkms-2.0.19-no_custom_rpm_provides.patch
36 Patch16: dkms-2.0.19-binary.patch
37 Patch17: dkms-2.0.19-autoalias.patch
38 Patch18: dkms-2.0.19-mkrpm_status.patch
39 Patch19: dkms-2.0.19-skip-unused-check.patch
40 Patch20: dkms-2.0.19-uninstall-speedup.patch
41 Patch21: dkms-2.0.19-init-mdv-interactive.patch
42 Patch22: dkms-symvers.patch
43 Patch23: dkms-2.0.19-autoload_instead_of_udevadm.patch
44 Patch24: dkms-2.0.19-suggest-devel-not-source.patch
45 Patch25: dkms-2.0.19-xz-support.patch
46 # (doktor5000) remove explicit usage of " > /dev/stdout" as standard output
47 # this breaks systemd logging and is unnecessary for standard output
48 Patch26: dkms-2.0.19-mga-remove_dev_stdout_output_loc.patch
49 Patch27: dkms-2.0.19-parallel-build.patch
50 Patch28: dkms-no-autoload-during-install.patch
51 Patch29: dkms-display-bootsplash-message.patch
52 Patch30: dkms-2.0.19-fix-module-checksum-checking.patch
53 Patch31: dkms-2.0.19-fix-modules-suffix.patch
54 Patch32: dkms-2.0.19-mga-egrep-to-grep-E-v3.patch
55 Patch33: dkms-kernel.config.patch
56 Patch34: dkms-compress-kernel.config.patch
57
58 %define _dkmsdir %{_localstatedir}/lib/%{name}
59 %define _dkmsbinarydir %{_localstatedir}/lib/%{name}-binary
60
61 %description
62 This package contains the framework for the Dynamic
63 Kernel Module Support (DKMS) method for installing
64 module RPMS as originally developed by the Dell
65 Computer Corporation.
66
67 This package is intended for building binary kernel
68 modules with dkms source packages installed
69
70 %package minimal
71 Summary: Dynamic Kernel Module Support Framework - minimal package
72 License: GPL
73 Group: System/Base
74 Requires: lsb-release
75 Requires(preun): rpm-helper
76 Requires(post): rpm-helper
77
78 %description minimal
79 This package contains the framework for the Dynamic
80 Kernel Module Support (DKMS) method for installing
81 module RPMS as originally developed by the Dell
82 Computer Corporation.
83
84 This package is intended for installing binary module RPMS
85 as created by dkms.
86
87 %prep
88 %setup -q
89 %patch -P 1 -p1 -b .norpm
90 %patch -P 2 -p1 -b .mdkize
91 %patch -P 3 -p1 -b .fix-kernel-make-prepare
92 %patch -P 4 -p1 -b .compressed-module
93 %patch -P 5 -p1 -b .weak_module_name
94 %patch -P 7 -p1 -b .procconfig
95 %patch -P 8 -p1 -b .mdkrpm-split-ver-rel
96 %patch -P 9 -p1 -b .bash-completion-update
97 %patch -P 10 -p1 -b .binary_only
98 %patch -P 11 -p1 -b .min-max-kernel
99 %patch -P 12 -p1 -b .test-dkmsconf
100 %patch -P 13 -p1 -b .status_default
101 %patch -P 14 -p1 -b .stdout
102 %patch -P 15 -p1 -b .no_custom_rpm_provides
103 %patch -P 16 -p1 -b .binary
104 %patch -P 17 -p0 -b .autoalias
105 %patch -P 18 -p1 -b .mkrpm
106 %patch -P 19 -p1 -b .versionsanity
107 %patch -P 20 -p1 -b .uninst-speedup
108 %patch -P 21 -p1 -b .mdv-interactive
109 %patch -P 22 -p1 -b .symvers
110 %patch -P 23 -p1 -b .autoload_instead_of_udevadm
111 %patch -P 24 -p1 -b .suggest-devel
112 %patch -P 25 -p1 -b .xz-support
113 %patch -P 26 -p1 -b .dev_stdout_output_loc
114 %patch -P 27 -p1 -b .parallel-build
115 %patch -P 28 -p1 -b .no-autoload-during-install
116 %patch -P 29 -p1 -b .display-bootsplash-message
117 %patch -P 30 -p1 -b .fix-module-checksum-checking
118 %patch -P 31 -p1 -b .fix-module-suffix
119 %patch -P 32 -p1 -b .egrep-to-grep-E
120 %patch -P 33 -p1 -b .kernel.config
121 %patch -P 34 -p1 -b .compress.config
122
123 sed -i -e 's,/var/%{name},%{_dkmsdir},g;s,init.d/dkms_autoinstaller,init.d/%{name},g' \
124 dkms_autoinstaller \
125 dkms_framework.conf \
126 kernel_*.d_dkms \
127 %{name}.8 \
128 dkms
129
130 %install
131 mkdir -p %{buildroot}%{_mandir}/man8
132 %make_install INITD=%{buildroot}%{_initrddir}
133 install -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/template-dkms-mkrpm.spec
134 install -m 755 dkms_mkkerneldoth %{buildroot}/%{_sbindir}/dkms_mkkerneldoth
135 install -m 755 %{SOURCE3} %{buildroot}/%{_sbindir}/dkms_autoload
136 mv %{buildroot}%{_initrddir}/dkms_autoinstaller %{buildroot}%{_sbindir}
137 mkdir -p %{buildroot}%{_dkmsbinarydir}
138 mkdir -p %{buildroot}%{_sysconfdir}/depmod.d
139 install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/depmod.d/%{name}.conf
140
141
142 # (doktor5000) systemd service file to run dkms_autoinstaller on every boot
143 # necessary to rebuild dkms modules for kernels booting the first time
144 mkdir -p %{buildroot}%{_unitdir}
145 cat << 'EOF' > %{buildroot}%{_unitdir}/%{name}-autorebuild.service
146 [Unit]
147 Description=run dkms_autoinstaller on every boot to rebuild dkms modules for newly booted kernels
148 DefaultDependencies=no
149 Conflicts=shutdown.target
150 Before=basic.target shutdown.target
151 After=local-fs.target
152
153 [Service]
154 ExecStart=%{_sbindir}/dkms-autorebuild.sh
155 Type=oneshot
156 RemainAfterExit=yes
157
158 [Install]
159 Alias=dkms_autoinstaller.service
160 WantedBy=basic.target
161
162 EOF
163
164
165 # (doktor5000) split out from /etc/init.d/mandrake_everytime / mandriva-everytime.service
166 # triggered by above systemd service on every boot (mga#
167 cat << 'EOF' > %{buildroot}%{_sbindir}/%{name}-autorebuild.sh
168 #!/bin/sh
169
170 # start dkms module build for newly booted kernels via %{name}-autorebuild.service
171 # rebuild can be disabled by setting DKMS_ONBOOT=no in /etc/sysconfig/system
172
173 [ -r /etc/sysconfig/system ] && . /etc/sysconfig/system
174
175 DKMS_TOOL=%{_sbindir}/dkms_autoinstaller
176 if [ "$DKMS_ONBOOT" != "no" ] && [ -x $DKMS_TOOL ]; then
177 # dkms_autoinstaller evaluates $verbose so enable it here for complete logging
178 verbose=yes $DKMS_TOOL start
179 fi
180 EOF
181
182 chmod 755 %{buildroot}%{_sbindir}/%{name}-autorebuild.sh
183
184 %define _dkms_autorebuild_installed %{_localstatedir}/lib/rpm-state/dkms-autorebuild-installed
185
186 %pre
187 if [ $1 -eq 2 ] ; then
188 if [ -f %{_unitdir}/%{name}-autorebuild.service ] ; then
189 touch %{_dkms_autorebuild_installed}
190 fi
191 fi
192
193 %post
194 if [ -f %{_dkms_autorebuild_installed} ] ; then
195 # We are upgrading from a version that included the dkms-autorebuild
196 # service.
197 rm %{_dkms_autorebuild_installed}
198 else
199 # We are either installing or upgrading from a version that didn't
200 # include the dkms-autorebuild service. Force it to be installed.
201 set -- 1
202 fi
203 %_post_service %{name}-autorebuild
204
205 %preun
206 %_preun_service %{name}-autorebuild
207
208 %triggerpostun -- dkms < 2.0.19-11
209 rm -f /etc/rc.d/*/{K,S}??dkms
210
211 %files
212 %doc %attr (-,root,root) sample.spec sample.conf AUTHORS COPYING template-dkms-mkrpm.spec
213 %{_sbindir}/dkms_autoinstaller
214 %{_unitdir}/%{name}-autorebuild.service
215 %{_sbindir}/%{name}-autorebuild.sh
216
217 %files minimal
218 %{_sbindir}/dkms
219 %{_dkmsdir}
220 %dir %{_dkmsbinarydir}
221 %{_sbindir}/dkms_mkkerneldoth
222 %{_sbindir}/dkms_autoload
223 %{_mandir}/man8/dkms.8*
224 %config(noreplace) %{_sysconfdir}/dkms
225 # these dirs are for plugins - owned by other packages
226 %{_sysconfdir}/kernel/postinst.d/%{name}
227 %{_sysconfdir}/kernel/prerm.d/%{name}
228 %{_sysconfdir}/bash_completion.d/%{name}
229 %{_sysconfdir}/depmod.d/%{name}.conf

  ViewVC Help
Powered by ViewVC 1.1.30