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