]> git.ipfire.org Git - thirdparty/dracut.git/blame_incremental - dracut.spec
Merge pull request #338 from danimo/fshelp
[thirdparty/dracut.git] / dracut.spec
... / ...
CommitLineData
1%define dracutlibdir %{_prefix}/lib/dracut
2%bcond_without doc
3
4# We ship a .pc file but don't want to have a dep on pkg-config. We
5# strip the automatically generated dep here and instead co-own the
6# directory.
7%global __requires_exclude pkg-config
8
9# Variables must be defined
10%define with_nbd 1
11
12# nbd in Fedora only
13%if 0%{?rhel} >= 6
14%define with_nbd 0
15%endif
16
17%define dist_free_release xxx
18
19Name: dracut
20Version: xxx
21Release: %{dist_free_release}%{?dist}
22
23Summary: Initramfs generator using udev
24%if 0%{?fedora} || 0%{?rhel}
25Group: System Environment/Base
26%endif
27%if 0%{?suse_version}
28Group: System/Base
29%endif
30
31# The entire source code is GPLv2+
32# except install/* which is LGPLv2+
33License: GPLv2+ and LGPLv2+
34
35URL: https://dracut.wiki.kernel.org/
36
37# Source can be generated by
38# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%%{version};sf=tgz
39Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
40Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
41
42BuildRequires: bash git
43BuildRequires: kmod-devel >= 15
44
45%if 0%{?fedora} || 0%{?rhel}
46BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
47BuildRequires: pkgconfig
48%endif
49%if 0%{?fedora}
50BuildRequires: bash-completion
51%endif
52
53%if 0%{?suse_version}
54BuildRoot: %{_tmppath}/%{name}-%{version}-build
55%endif
56
57%if %{with doc}
58%if 0%{?fedora} || 0%{?rhel}
59BuildRequires: docbook-style-xsl docbook-dtds libxslt
60%endif
61
62%if 0%{?suse_version}
63-BuildRequires: docbook-xsl-stylesheets libxslt
64%endif
65
66BuildRequires: asciidoc
67%endif
68
69%if 0%{?fedora} > 12 || 0%{?rhel}
70# no "provides", because dracut does not offer
71# all functionality of the obsoleted packages
72Obsoletes: mkinitrd < 6.0.94
73Obsoletes: mkinitrd-devel < 6.0.94
74Obsoletes: nash < 6.0.94
75Obsoletes: libbdevid-python < 6.0.94
76%endif
77
78%if 0%{?fedora} > 16 || 0%{?rhel} > 6
79BuildRequires: systemd-units
80%endif
81
82%if 0%{?suse_version} > 9999
83Obsoletes: mkinitrd < 2.6.1
84Provides: mkinitrd = 2.6.1
85%endif
86
87Obsoletes: dracut-kernel < 005
88Provides: dracut-kernel = %{version}-%{release}
89
90Obsoletes: dracut < 030
91Obsoletes: dracut-norescue < 030
92Provides: dracut-norescue = %{version}-%{release}
93
94Requires: bash >= 4
95Requires: coreutils
96Requires: cpio
97Requires: filesystem >= 2.1.0
98Requires: findutils
99Requires: grep
100Requires: kmod
101Requires: sed
102Requires: xz
103Requires: gzip
104
105%if 0%{?fedora} > 22 || 0%{?rhel} > 7
106Recommends: grubby
107Recommends: hardlink
108Recommends: pigz
109Recommends: kpartx
110%else
111Requires: hardlink
112Requires: gzip
113Requires: kpartx
114%endif
115
116%if 0%{?fedora} || 0%{?rhel} > 6
117Requires: util-linux >= 2.21
118Requires: systemd >= 219
119Requires: systemd-udev >= 219
120Requires: procps-ng
121Conflicts: grubby < 8.23
122Conflicts: initscripts < 8.63-1
123Conflicts: plymouth < 0.8.0-0.2009.29.09.19.1
124Conflicts: bcache-tools < 0-0.14.20130909git
125%else
126Requires: udev > 166
127Requires: util-linux-ng >= 2.21
128%endif
129
130Conflicts: mdadm < 3.2.6-14
131
132%description
133dracut contains tools to create a bootable initramfs for 2.6 Linux kernels.
134Unlike existing implementations, dracut does hard-code as little as possible
135into the initramfs. dracut contains various modules which are driven by the
136event-based udev. Having root on MD, DM, LVM2, LUKS is supported as well as
137NFS, iSCSI, NBD, FCoE with the dracut-network package.
138
139%package network
140Summary: dracut modules to build a dracut initramfs with network support
141%if 0%{?_module_build}
142# In the module-build-service, we have pieces of dracut provided by different
143# modules ("base-runtime" provides most functionality, but we need
144# dracut-network in "installer". Since these two modules build with separate
145# dist-tags, we need to reduce this strict requirement to ignore the dist-tag.
146Requires: %{name} >= %{version}-%{dist_free_release}
147%else
148Requires: %{name} = %{version}-%{release}
149%endif
150Requires: iputils
151Requires: iproute
152Requires: dhclient
153Obsoletes: dracut-generic < 008
154Provides: dracut-generic = %{version}-%{release}
155
156%description network
157This package requires everything which is needed to build a generic
158all purpose initramfs with network support with dracut.
159
160%if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version}
161%package fips
162Summary: dracut modules to build a dracut initramfs with an integrity check
163Requires: %{name} = %{version}-%{release}
164Requires: hmaccalc
165%if 0%{?rhel} > 5
166# For Alpha 3, we want nss instead of nss-softokn
167Requires: nss
168%else
169Requires: nss-softokn
170%endif
171Requires: nss-softokn-freebl
172
173%description fips
174This package requires everything which is needed to build an
175initramfs with dracut, which does an integrity check.
176%endif
177
178%package fips-aesni
179Summary: dracut modules to build a dracut initramfs with an integrity check with aesni-intel
180Requires: %{name}-fips = %{version}-%{release}
181
182%description fips-aesni
183This package requires everything which is needed to build an
184initramfs with dracut, which does an integrity check and adds the aesni-intel kernel module.
185
186%package caps
187Summary: dracut modules to build a dracut initramfs which drops capabilities
188Requires: %{name} = %{version}-%{release}
189Requires: libcap
190
191%description caps
192This package requires everything which is needed to build an
193initramfs with dracut, which drops capabilities.
194
195%package live
196Summary: dracut modules to build a dracut initramfs with live image capabilities
197%if 0%{?_module_build}
198# See the network subpackage comment.
199Requires: %{name} >= %{version}-%{dist_free_release}
200%else
201Requires: %{name} = %{version}-%{release}
202%endif
203Requires: %{name}-network = %{version}-%{release}
204Requires: tar gzip coreutils bash device-mapper curl
205%if 0%{?fedora}
206Requires: fuse ntfs-3g
207%endif
208
209%description live
210This package requires everything which is needed to build an
211initramfs with dracut, with live image capabilities, like Live CDs.
212
213%package config-generic
214Summary: dracut configuration to turn off hostonly image generation
215Requires: %{name} = %{version}-%{release}
216Obsoletes: dracut-nohostonly < 030
217Provides: dracut-nohostonly = %{version}-%{release}
218
219%description config-generic
220This package provides the configuration to turn off the host specific initramfs
221generation with dracut and generates a generic image by default.
222
223%package config-rescue
224Summary: dracut configuration to turn on rescue image generation
225Requires: %{name} = %{version}-%{release}
226Obsoletes: dracut < 030
227
228%description config-rescue
229This package provides the configuration to turn on the rescue initramfs
230generation with dracut.
231
232%package tools
233Summary: dracut tools to build the local initramfs
234Requires: %{name} = %{version}-%{release}
235
236%description tools
237This package contains tools to assemble the local initrd and host configuration.
238
239%prep
240%autosetup -n %{name}-%{version} -S git_am
241cp %{SOURCE1} .
242
243%build
244%configure --systemdsystemunitdir=%{_unitdir} \
245 --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) \
246 --libdir=%{_prefix}/lib \
247%if %{without doc}
248 --disable-documentation \
249%endif
250 ${NULL}
251
252make %{?_smp_mflags}
253
254%install
255%if 0%{?fedora} || 0%{?rhel}
256rm -rf -- $RPM_BUILD_ROOT
257%endif
258make %{?_smp_mflags} install \
259 DESTDIR=$RPM_BUILD_ROOT \
260 libdir=%{_prefix}/lib
261
262echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh
263
264%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0
265rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
266rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
267%endif
268
269%if %{defined _unitdir}
270# for systemd, better use systemd-bootchart
271rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00bootchart
272%endif
273
274# we do not support dash in the initramfs
275rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00dash
276
277# remove gentoo specific modules
278rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash
279
280%if %{defined _unitdir}
281# with systemd IMA and selinux modules do not make sense
282rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs
283rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey
284rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
285%endif
286
287mkdir -p $RPM_BUILD_ROOT/boot/dracut
288mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay
289mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
290touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log
291mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs
292
293%if 0%{?fedora} || 0%{?rhel}
294install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
295rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse*
296%endif
297%if 0%{?suse_version}
298install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
299%endif
300
301%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
302install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
303%endif
304
305%if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
306rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
307rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd
308%endif
309
310%if 0%{?fedora} || 0%{?rhel} > 6
311# FIXME: remove after F19
312mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d
313install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh
314
315echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf
316echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf
317%endif
318
319%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
320> $RPM_BUILD_ROOT/etc/system-fips
321%endif
322
323%clean
324rm -rf -- $RPM_BUILD_ROOT
325
326%files
327%defattr(-,root,root,0755)
328%if %{with doc}
329%doc README HACKING TODO AUTHORS NEWS dracut.html dracut.png dracut.svg
330%endif
331%{!?_licensedir:%global license %%doc}
332%license COPYING lgpl-2.1.txt
333%{_bindir}/dracut
334%{_datadir}/bash-completion/completions/dracut
335%{_datadir}/bash-completion/completions/lsinitrd
336%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
337%{_bindir}/mkinitrd
338%{_bindir}/lsinitrd
339%endif
340%dir %{dracutlibdir}
341%dir %{dracutlibdir}/modules.d
342%{dracutlibdir}/dracut-functions.sh
343%{dracutlibdir}/dracut-init.sh
344%{dracutlibdir}/dracut-functions
345%{dracutlibdir}/dracut-version.sh
346%{dracutlibdir}/dracut-logger.sh
347%{dracutlibdir}/dracut-initramfs-restore
348%{dracutlibdir}/dracut-install
349%{dracutlibdir}/skipcpio
350%config(noreplace) %{_sysconfdir}/dracut.conf
351%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel}
352%{dracutlibdir}/dracut.conf.d/01-dist.conf
353%endif
354%dir %{_sysconfdir}/dracut.conf.d
355%dir %{dracutlibdir}/dracut.conf.d
356%dir %{_datadir}/pkgconfig
357%{_datadir}/pkgconfig/dracut.pc
358
359%if %{with doc}
360%{_mandir}/man8/dracut.8*
361%{_mandir}/man8/*service.8*
362%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
363%{_mandir}/man8/mkinitrd.8*
364%{_mandir}/man1/lsinitrd.1*
365%endif
366%{_mandir}/man7/dracut.kernel.7*
367%{_mandir}/man7/dracut.cmdline.7*
368%{_mandir}/man7/dracut.modules.7*
369%{_mandir}/man7/dracut.bootup.7*
370%{_mandir}/man5/dracut.conf.5*
371%endif
372
373%if %{defined _unitdir}
374%else
375%{dracutlibdir}/modules.d/00bootchart
376%endif
377%{dracutlibdir}/modules.d/00bash
378%{dracutlibdir}/modules.d/00systemd
379%{dracutlibdir}/modules.d/01systemd-initrd
380%{dracutlibdir}/modules.d/03modsign
381%{dracutlibdir}/modules.d/03rescue
382%{dracutlibdir}/modules.d/04watchdog
383%{dracutlibdir}/modules.d/05busybox
384%{dracutlibdir}/modules.d/10i18n
385%{dracutlibdir}/modules.d/30convertfs
386%{dracutlibdir}/modules.d/45url-lib
387%{dracutlibdir}/modules.d/50drm
388%{dracutlibdir}/modules.d/50plymouth
389%{dracutlibdir}/modules.d/80cms
390%{dracutlibdir}/modules.d/80lvmmerge
391%{dracutlibdir}/modules.d/90btrfs
392%{dracutlibdir}/modules.d/90crypt
393%{dracutlibdir}/modules.d/90dm
394%{dracutlibdir}/modules.d/90dmraid
395%{dracutlibdir}/modules.d/90kernel-modules
396%{dracutlibdir}/modules.d/90lvm
397%{dracutlibdir}/modules.d/90mdraid
398%{dracutlibdir}/modules.d/90multipath
399%{dracutlibdir}/modules.d/90multipath-hostonly
400%{dracutlibdir}/modules.d/90qemu
401%{dracutlibdir}/modules.d/91crypt-gpg
402%{dracutlibdir}/modules.d/91crypt-loop
403%{dracutlibdir}/modules.d/95debug
404%{dracutlibdir}/modules.d/95resume
405%{dracutlibdir}/modules.d/95rootfs-block
406%{dracutlibdir}/modules.d/95dasd
407%{dracutlibdir}/modules.d/95dasd_mod
408%{dracutlibdir}/modules.d/95dasd_rules
409%{dracutlibdir}/modules.d/95fstab-sys
410%{dracutlibdir}/modules.d/95lunmask
411%{dracutlibdir}/modules.d/95zfcp
412%{dracutlibdir}/modules.d/95zfcp_rules
413%{dracutlibdir}/modules.d/95terminfo
414%{dracutlibdir}/modules.d/95udev-rules
415%{dracutlibdir}/modules.d/95virtfs
416%if %{undefined _unitdir}
417%{dracutlibdir}/modules.d/96securityfs
418%{dracutlibdir}/modules.d/97masterkey
419%{dracutlibdir}/modules.d/98integrity
420%endif
421%{dracutlibdir}/modules.d/97biosdevname
422%{dracutlibdir}/modules.d/98ecryptfs
423%{dracutlibdir}/modules.d/98pollcdrom
424%{dracutlibdir}/modules.d/98selinux
425%{dracutlibdir}/modules.d/98syslog
426%{dracutlibdir}/modules.d/98dracut-systemd
427%{dracutlibdir}/modules.d/98usrmount
428%{dracutlibdir}/modules.d/99base
429%{dracutlibdir}/modules.d/99fs-lib
430%{dracutlibdir}/modules.d/99shutdown
431%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
432%dir %{_sharedstatedir}/initramfs
433%if %{defined _unitdir}
434%{_unitdir}/dracut-shutdown.service
435%{_unitdir}/sysinit.target.wants/dracut-shutdown.service
436%{_unitdir}/dracut-cmdline.service
437%{_unitdir}/dracut-initqueue.service
438%{_unitdir}/dracut-mount.service
439%{_unitdir}/dracut-pre-mount.service
440%{_unitdir}/dracut-pre-pivot.service
441%{_unitdir}/dracut-pre-trigger.service
442%{_unitdir}/dracut-pre-udev.service
443%{_unitdir}/initrd.target.wants/dracut-cmdline.service
444%{_unitdir}/initrd.target.wants/dracut-initqueue.service
445%{_unitdir}/initrd.target.wants/dracut-mount.service
446%{_unitdir}/initrd.target.wants/dracut-pre-mount.service
447%{_unitdir}/initrd.target.wants/dracut-pre-pivot.service
448%{_unitdir}/initrd.target.wants/dracut-pre-trigger.service
449%{_unitdir}/initrd.target.wants/dracut-pre-udev.service
450
451%endif
452%if 0%{?fedora} || 0%{?rhel} > 6
453%{_prefix}/lib/kernel/install.d/50-dracut.install
454%endif
455
456%files network
457%defattr(-,root,root,0755)
458%{dracutlibdir}/modules.d/02systemd-networkd
459%{dracutlibdir}/modules.d/40network
460%{dracutlibdir}/modules.d/90kernel-network-modules
461%{dracutlibdir}/modules.d/95fcoe
462%{dracutlibdir}/modules.d/95iscsi
463%{dracutlibdir}/modules.d/90qemu-net
464%{dracutlibdir}/modules.d/95cifs
465%{dracutlibdir}/modules.d/95nbd
466%{dracutlibdir}/modules.d/95nfs
467%{dracutlibdir}/modules.d/95ssh-client
468%{dracutlibdir}/modules.d/45ifcfg
469%{dracutlibdir}/modules.d/95znet
470%{dracutlibdir}/modules.d/95fcoe-uefi
471%{dracutlibdir}/modules.d/99uefi-lib
472
473%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
474%files fips
475%defattr(-,root,root,0755)
476%{dracutlibdir}/modules.d/01fips
477%{dracutlibdir}/dracut.conf.d/40-fips.conf
478%config(missingok) /etc/system-fips
479%endif
480
481%files fips-aesni
482%defattr(-,root,root,0755)
483%{dracutlibdir}/modules.d/02fips-aesni
484
485%files caps
486%defattr(-,root,root,0755)
487%{dracutlibdir}/modules.d/02caps
488
489%files live
490%defattr(-,root,root,0755)
491%{dracutlibdir}/modules.d/99img-lib
492%{dracutlibdir}/modules.d/90dmsquash-live
493%{dracutlibdir}/modules.d/90dmsquash-live-ntfs
494%{dracutlibdir}/modules.d/90livenet
495
496%files tools
497%defattr(-,root,root,0755)
498
499%if %{with doc}
500%doc %{_mandir}/man8/dracut-catimages.8*
501%endif
502
503%{_bindir}/dracut-catimages
504%dir /boot/dracut
505%dir /var/lib/dracut
506%dir /var/lib/dracut/overlay
507
508%files config-generic
509%defattr(-,root,root,0755)
510%{dracutlibdir}/dracut.conf.d/02-generic-image.conf
511
512%files config-rescue
513%defattr(-,root,root,0755)
514%{dracutlibdir}/dracut.conf.d/02-rescue.conf
515%if 0%{?fedora} || 0%{?rhel} > 6
516%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
517%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh
518%endif
519
520%changelog