]>
Commit | Line | Data |
---|---|---|
1 | %define dracutlibdir %{_prefix}/lib/dracut | |
2 | ||
3 | # Variables must be defined | |
4 | %define with_nbd 1 | |
5 | ||
6 | # nbd in Fedora only | |
7 | %if 0%{?rhel} >= 6 | |
8 | %define with_nbd 0 | |
9 | %endif | |
10 | ||
11 | Name: dracut | |
12 | Version: xxx | |
13 | Release: xxx | |
14 | ||
15 | Summary: Initramfs generator using udev | |
16 | %if 0%{?fedora} || 0%{?rhel} | |
17 | Group: System Environment/Base | |
18 | %endif | |
19 | %if 0%{?suse_version} | |
20 | Group: System/Base | |
21 | %endif | |
22 | ||
23 | # The entire source code is GPLv2+ | |
24 | # except install/* which is LGPLv2.1+ | |
25 | License: GPLv2+ and LGPLv2.1+ | |
26 | ||
27 | URL: https://dracut.wiki.kernel.org/ | |
28 | ||
29 | # Source can be generated by | |
30 | # http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz | |
31 | Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.bz2 | |
32 | ||
33 | BuildRequires: dash bash git | |
34 | ||
35 | %if 0%{?fedora} || 0%{?rhel} | |
36 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | |
37 | BuildRequires: bash-completion | |
38 | BuildRequires: pkgconfig | |
39 | %endif | |
40 | %if 0%{?suse_version} | |
41 | BuildRoot: %{_tmppath}/%{name}-%{version}-build | |
42 | %endif | |
43 | ||
44 | %if 0%{?fedora} || 0%{?rhel} | |
45 | BuildRequires: docbook-style-xsl docbook-dtds libxslt | |
46 | %endif | |
47 | ||
48 | %if 0%{?suse_version} | |
49 | -BuildRequires: docbook-xsl-stylesheets libxslt | |
50 | %endif | |
51 | ||
52 | BuildRequires: asciidoc | |
53 | ||
54 | %if 0%{?fedora} > 12 || 0%{?rhel} | |
55 | # no "provides", because dracut does not offer | |
56 | # all functionality of the obsoleted packages | |
57 | Obsoletes: mkinitrd <= 6.0.93 | |
58 | Obsoletes: mkinitrd-devel <= 6.0.93 | |
59 | Obsoletes: nash <= 6.0.93 | |
60 | Obsoletes: libbdevid-python <= 6.0.93 | |
61 | %endif | |
62 | ||
63 | %if 0%{?fedora} > 16 || 0%{?rhel} > 6 | |
64 | BuildRequires: systemd-units | |
65 | %endif | |
66 | ||
67 | %if 0%{?suse_version} > 9999 | |
68 | Obsoletes: mkinitrd < 2.6.1 | |
69 | Provides: mkinitrd = 2.6.1 | |
70 | %endif | |
71 | ||
72 | Obsoletes: dracut-kernel < 005 | |
73 | Provides: dracut-kernel = %{version}-%{release} | |
74 | ||
75 | Requires: bash >= 4 | |
76 | Requires: coreutils | |
77 | Requires: cpio | |
78 | Requires: filesystem >= 2.1.0 | |
79 | Requires: findutils | |
80 | Requires: grep | |
81 | Requires: hardlink | |
82 | Requires: gzip xz | |
83 | Requires: module-init-tools >= 3.7-9 | |
84 | Requires: sed | |
85 | Requires: file | |
86 | Requires: kpartx | |
87 | Requires: kbd kbd-misc | |
88 | ||
89 | %if 0%{?fedora} || 0%{?rhel} > 6 | |
90 | Requires: util-linux >= 2.21 | |
91 | Requires: systemd >= 198-5 | |
92 | Conflicts: grubby < 8.23 | |
93 | %else | |
94 | Requires: udev > 166 | |
95 | Requires: util-linux-ng >= 2.21 | |
96 | %endif | |
97 | ||
98 | %if 0%{?fedora} || 0%{?rhel} > 6 | |
99 | Conflicts: initscripts < 8.63-1 | |
100 | Conflicts: plymouth < 0.8.0-0.2009.29.09.19.1 | |
101 | %endif | |
102 | ||
103 | Conflicts: mdadm < 3.2.6-14 | |
104 | ||
105 | %description | |
106 | dracut contains tools to create a bootable initramfs for 2.6 Linux kernels. | |
107 | Unlike existing implementations, dracut does hard-code as little as possible | |
108 | into the initramfs. dracut contains various modules which are driven by the | |
109 | event-based udev. Having root on MD, DM, LVM2, LUKS is supported as well as | |
110 | NFS, iSCSI, NBD, FCoE with the dracut-network package. | |
111 | ||
112 | %package network | |
113 | Summary: dracut modules to build a dracut initramfs with network support | |
114 | Requires: %{name} = %{version}-%{release} | |
115 | Requires: iputils | |
116 | Requires: iproute | |
117 | Obsoletes: dracut-generic < 008 | |
118 | Provides: dracut-generic = %{version}-%{release} | |
119 | ||
120 | %description network | |
121 | This package requires everything which is needed to build a generic | |
122 | all purpose initramfs with network support with dracut. | |
123 | ||
124 | %if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version} | |
125 | %package fips | |
126 | Summary: dracut modules to build a dracut initramfs with an integrity check | |
127 | Requires: %{name} = %{version}-%{release} | |
128 | Requires: hmaccalc | |
129 | %if 0%{?rhel} > 5 | |
130 | # For Alpha 3, we want nss instead of nss-softokn | |
131 | Requires: nss | |
132 | %else | |
133 | Requires: nss-softokn | |
134 | %endif | |
135 | Requires: nss-softokn-freebl | |
136 | ||
137 | %description fips | |
138 | This package requires everything which is needed to build an | |
139 | initramfs with dracut, which does an integrity check. | |
140 | %endif | |
141 | ||
142 | %package fips-aesni | |
143 | Summary: dracut modules to build a dracut initramfs with an integrity check with aesni-intel | |
144 | Requires: %{name}-fips = %{version}-%{release} | |
145 | ||
146 | %description fips-aesni | |
147 | This package requires everything which is needed to build an | |
148 | initramfs with dracut, which does an integrity check and adds the aesni-intel kernel module. | |
149 | ||
150 | %package caps | |
151 | Summary: dracut modules to build a dracut initramfs which drops capabilities | |
152 | Requires: %{name} = %{version}-%{release} | |
153 | Requires: libcap | |
154 | ||
155 | %description caps | |
156 | This package requires everything which is needed to build an | |
157 | initramfs with dracut, which drops capabilities. | |
158 | ||
159 | %package nohostonly | |
160 | Summary: dracut configuration to turn off hostonly image generation | |
161 | Requires: %{name} = %{version}-%{release} | |
162 | ||
163 | %description nohostonly | |
164 | This package provides the configuration to turn off the host specific initramfs | |
165 | generation with dracut. | |
166 | ||
167 | %package norescue | |
168 | Summary: dracut configuration to turn off rescue image generation | |
169 | Requires: %{name} = %{version}-%{release} | |
170 | ||
171 | %description norescue | |
172 | This package provides the configuration to turn off the rescue initramfs | |
173 | generation with dracut. | |
174 | ||
175 | %package tools | |
176 | Summary: dracut tools to build the local initramfs | |
177 | Requires: %{name} = %{version}-%{release} | |
178 | ||
179 | %description tools | |
180 | This package contains tools to assemble the local initrd and host configuration. | |
181 | ||
182 | %prep | |
183 | %setup -q -n %{name}-%{version} | |
184 | ||
185 | %if %{defined PATCH1} | |
186 | git init | |
187 | git config user.email "dracut-maint@redhat.com" | |
188 | git config user.name "Fedora dracut team" | |
189 | git add . | |
190 | git commit -a -q -m "%{version} baseline." | |
191 | ||
192 | # Apply all the patches. | |
193 | git am -p1 %{patches} | |
194 | %endif | |
195 | ||
196 | %build | |
197 | %configure --systemdsystemunitdir=%{_unitdir} --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) --libdir=%{_prefix}/lib | |
198 | ||
199 | make %{?_smp_mflags} | |
200 | ||
201 | %install | |
202 | %if 0%{?fedora} || 0%{?rhel} | |
203 | rm -rf $RPM_BUILD_ROOT | |
204 | %endif | |
205 | make %{?_smp_mflags} install \ | |
206 | DESTDIR=$RPM_BUILD_ROOT \ | |
207 | libdir=%{_prefix}/lib | |
208 | ||
209 | echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh | |
210 | ||
211 | %if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0 | |
212 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips | |
213 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni | |
214 | %endif | |
215 | ||
216 | %if %{defined _unitdir} | |
217 | # for systemd, better use systemd-bootchart | |
218 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00bootchart | |
219 | %endif | |
220 | ||
221 | # we do not support dash in the initramfs | |
222 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00dash | |
223 | ||
224 | # remove gentoo specific modules | |
225 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash | |
226 | ||
227 | %if %{defined _unitdir} | |
228 | # with systemd IMA and selinux modules do not make sense | |
229 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs | |
230 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey | |
231 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity | |
232 | rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98selinux | |
233 | %endif | |
234 | ||
235 | mkdir -p $RPM_BUILD_ROOT/boot/dracut | |
236 | mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay | |
237 | mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log | |
238 | touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log | |
239 | mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs | |
240 | ||
241 | %if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} | |
242 | install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf | |
243 | install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf | |
244 | %endif | |
245 | ||
246 | %if 0%{?suse_version} | |
247 | install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf | |
248 | %endif | |
249 | ||
250 | %if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999 | |
251 | rm $RPM_BUILD_ROOT%{_bindir}/mkinitrd | |
252 | rm $RPM_BUILD_ROOT%{_bindir}/lsinitrd | |
253 | %endif | |
254 | ||
255 | %if 0%{?fedora} || 0%{?rhel} > 6 | |
256 | # FIXME: remove after F19 | |
257 | mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d | |
258 | install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh | |
259 | ||
260 | echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-nohostonly.conf | |
261 | echo 'dracut_rescue_image="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-norescue.conf | |
262 | %endif | |
263 | ||
264 | mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d | |
265 | install -m 0644 dracut.logrotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/dracut_log | |
266 | ||
267 | # create compat symlink | |
268 | mkdir -p $RPM_BUILD_ROOT/sbin | |
269 | ln -s /usr/bin/dracut $RPM_BUILD_ROOT/sbin/dracut | |
270 | ||
271 | %clean | |
272 | rm -rf $RPM_BUILD_ROOT | |
273 | ||
274 | %files | |
275 | %defattr(-,root,root,0755) | |
276 | %doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg | |
277 | %{_bindir}/dracut | |
278 | # compat symlink | |
279 | /sbin/dracut | |
280 | %{_datadir}/bash-completion/completions/dracut | |
281 | %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999 | |
282 | %{_bindir}/mkinitrd | |
283 | %{_bindir}/lsinitrd | |
284 | %endif | |
285 | %dir %{dracutlibdir} | |
286 | %dir %{dracutlibdir}/modules.d | |
287 | %{dracutlibdir}/dracut-functions.sh | |
288 | %{dracutlibdir}/dracut-functions | |
289 | %{dracutlibdir}/dracut-version.sh | |
290 | %{dracutlibdir}/dracut-logger.sh | |
291 | %{dracutlibdir}/dracut-initramfs-restore | |
292 | %{dracutlibdir}/dracut-install | |
293 | %config(noreplace) %{_sysconfdir}/dracut.conf | |
294 | %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} | |
295 | %{dracutlibdir}/dracut.conf.d/01-dist.conf | |
296 | %endif | |
297 | %dir %{_sysconfdir}/dracut.conf.d | |
298 | %dir %{dracutlibdir}/dracut.conf.d | |
299 | %{_mandir}/man8/dracut.8* | |
300 | %{_mandir}/man8/*service.8* | |
301 | %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999 | |
302 | %{_mandir}/man8/mkinitrd.8* | |
303 | %{_mandir}/man1/lsinitrd.1* | |
304 | %endif | |
305 | %{_mandir}/man7/dracut.kernel.7* | |
306 | %{_mandir}/man7/dracut.cmdline.7* | |
307 | %{_mandir}/man7/dracut.bootup.7* | |
308 | %{_mandir}/man5/dracut.conf.5* | |
309 | %if %{defined _unitdir} | |
310 | %{dracutlibdir}/modules.d/00systemd-bootchart | |
311 | %else | |
312 | %{dracutlibdir}/modules.d/00bootchart | |
313 | %endif | |
314 | %{dracutlibdir}/modules.d/03rescue | |
315 | %{dracutlibdir}/modules.d/04watchdog | |
316 | %{dracutlibdir}/modules.d/05busybox | |
317 | %{dracutlibdir}/modules.d/10i18n | |
318 | %{dracutlibdir}/modules.d/30convertfs | |
319 | %{dracutlibdir}/modules.d/45url-lib | |
320 | %{dracutlibdir}/modules.d/50drm | |
321 | %{dracutlibdir}/modules.d/50plymouth | |
322 | %{dracutlibdir}/modules.d/80cms | |
323 | %{dracutlibdir}/modules.d/90btrfs | |
324 | %{dracutlibdir}/modules.d/90crypt | |
325 | %{dracutlibdir}/modules.d/90dm | |
326 | %{dracutlibdir}/modules.d/90dmraid | |
327 | %{dracutlibdir}/modules.d/90dmsquash-live | |
328 | %{dracutlibdir}/modules.d/90kernel-modules | |
329 | %{dracutlibdir}/modules.d/90lvm | |
330 | %{dracutlibdir}/modules.d/90mdraid | |
331 | %{dracutlibdir}/modules.d/90multipath | |
332 | %{dracutlibdir}/modules.d/90qemu | |
333 | %{dracutlibdir}/modules.d/91crypt-gpg | |
334 | %{dracutlibdir}/modules.d/91crypt-loop | |
335 | %{dracutlibdir}/modules.d/95debug | |
336 | %{dracutlibdir}/modules.d/95resume | |
337 | %{dracutlibdir}/modules.d/95rootfs-block | |
338 | %{dracutlibdir}/modules.d/95dasd | |
339 | %{dracutlibdir}/modules.d/95dasd_mod | |
340 | %{dracutlibdir}/modules.d/95fstab-sys | |
341 | %{dracutlibdir}/modules.d/95zfcp | |
342 | %{dracutlibdir}/modules.d/95terminfo | |
343 | %{dracutlibdir}/modules.d/95udev-rules | |
344 | %{dracutlibdir}/modules.d/95virtfs | |
345 | %if %{undefined _unitdir} | |
346 | %{dracutlibdir}/modules.d/96securityfs | |
347 | %{dracutlibdir}/modules.d/97masterkey | |
348 | %{dracutlibdir}/modules.d/98selinux | |
349 | %{dracutlibdir}/modules.d/98integrity | |
350 | %endif | |
351 | %{dracutlibdir}/modules.d/97biosdevname | |
352 | %{dracutlibdir}/modules.d/98ecryptfs | |
353 | %{dracutlibdir}/modules.d/98pollcdrom | |
354 | %{dracutlibdir}/modules.d/98syslog | |
355 | %{dracutlibdir}/modules.d/98systemd | |
356 | %{dracutlibdir}/modules.d/98usrmount | |
357 | %{dracutlibdir}/modules.d/99base | |
358 | %{dracutlibdir}/modules.d/99fs-lib | |
359 | %{dracutlibdir}/modules.d/99img-lib | |
360 | %{dracutlibdir}/modules.d/99shutdown | |
361 | %config(noreplace) %{_sysconfdir}/logrotate.d/dracut_log | |
362 | %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log | |
363 | %dir %{_sharedstatedir}/initramfs | |
364 | %if %{defined _unitdir} | |
365 | %{_unitdir}/dracut-shutdown.service | |
366 | %{_unitdir}/shutdown.target.wants/dracut-shutdown.service | |
367 | %endif | |
368 | %if 0%{?fedora} || 0%{?rhel} > 6 | |
369 | %{_prefix}/lib/kernel/install.d/50-dracut.install | |
370 | %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install | |
371 | %{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh | |
372 | %endif | |
373 | ||
374 | %files network | |
375 | %defattr(-,root,root,0755) | |
376 | %{dracutlibdir}/modules.d/40network | |
377 | %{dracutlibdir}/modules.d/95fcoe | |
378 | %{dracutlibdir}/modules.d/95iscsi | |
379 | %{dracutlibdir}/modules.d/90livenet | |
380 | %{dracutlibdir}/modules.d/90qemu-net | |
381 | %{dracutlibdir}/modules.d/95cifs | |
382 | %{dracutlibdir}/modules.d/95nbd | |
383 | %{dracutlibdir}/modules.d/95nfs | |
384 | %{dracutlibdir}/modules.d/95ssh-client | |
385 | %{dracutlibdir}/modules.d/45ifcfg | |
386 | %{dracutlibdir}/modules.d/95znet | |
387 | ||
388 | %if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} | |
389 | %files fips | |
390 | %defattr(-,root,root,0755) | |
391 | %{dracutlibdir}/modules.d/01fips | |
392 | %{dracutlibdir}/dracut.conf.d/40-fips.conf | |
393 | %endif | |
394 | ||
395 | %files fips-aesni | |
396 | %defattr(-,root,root,0755) | |
397 | %doc COPYING | |
398 | %{dracutlibdir}/modules.d/02fips-aesni | |
399 | ||
400 | %files caps | |
401 | %defattr(-,root,root,0755) | |
402 | %{dracutlibdir}/modules.d/02caps | |
403 | ||
404 | %files tools | |
405 | %defattr(-,root,root,0755) | |
406 | %{_mandir}/man8/dracut-catimages.8* | |
407 | %{_bindir}/dracut-catimages | |
408 | %dir /boot/dracut | |
409 | %dir /var/lib/dracut | |
410 | %dir /var/lib/dracut/overlay | |
411 | ||
412 | %files nohostonly | |
413 | %defattr(-,root,root,0755) | |
414 | %{dracutlibdir}/dracut.conf.d/02-nohostonly.conf | |
415 | ||
416 | %files norescue | |
417 | %defattr(-,root,root,0755) | |
418 | %{dracutlibdir}/dracut.conf.d/02-norescue.conf | |
419 | ||
420 | %changelog |