]> git.ipfire.org Git - thirdparty/dracut.git/blame - dracut.spec
dmsquash-live: add /dev/mapper/live-base
[thirdparty/dracut.git] / dracut.spec
CommitLineData
c5a65990
HH
1%define dracutlibdir %{_prefix}/lib/dracut
2
dc5bb506 3# Variables must be defined
3592d868 4%define with_nbd 1
641eae0f 5
dc5bb506
WT
6# nbd in Fedora only
7%if 0%{?rhel} >= 6
8%define with_nbd 0
0aaa523c
HH
9%endif
10
0aaa523c 11Name: dracut
0e6a94b3
HH
12Version: xxx
13Release: xxx
228694e5 14
38672ee8 15Summary: Initramfs generator using udev
b019d405 16%if 0%{?fedora} || 0%{?rhel}
3b403b32 17Group: System Environment/Base
228694e5 18%endif
5ce6642f 19%if 0%{?suse_version}
228694e5
HH
20Group: System/Base
21%endif
f4031e8a
HH
22
23# The entire source code is GPLv2+
8f53670c
HH
24# except install/* which is LGPLv2+
25License: GPLv2+ and LGPLv2+
f4031e8a 26
82794b4b 27URL: https://dracut.wiki.kernel.org/
f4031e8a 28
3b403b32 29# Source can be generated by
0e6a94b3
HH
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.bz2
82794b4b 32
36c34f4e 33BuildRequires: bash git
4cfd24d1 34
b019d405 35%if 0%{?fedora} || 0%{?rhel}
38672ee8 36BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
8e2bcb4b
HH
37BuildRequires: pkgconfig
38%endif
39%if 0%{?fedora}
8c67d395
HH
40BuildRequires: bash-completion
41BuildRequires: pkgconfig
228694e5 42%endif
8e2bcb4b 43
5ce6642f 44%if 0%{?suse_version}
228694e5
HH
45BuildRoot: %{_tmppath}/%{name}-%{version}-build
46%endif
d9416c0d 47
b019d405 48%if 0%{?fedora} || 0%{?rhel}
d9416c0d
HH
49BuildRequires: docbook-style-xsl docbook-dtds libxslt
50%endif
51
5ce6642f 52%if 0%{?suse_version}
4ce3a1b1 53-BuildRequires: docbook-xsl-stylesheets libxslt
d9416c0d 54%endif
5c554bd2 55
4ce3a1b1
HH
56BuildRequires: asciidoc
57
b019d405 58%if 0%{?fedora} > 12 || 0%{?rhel}
0bc4ef1c
HH
59# no "provides", because dracut does not offer
60# all functionality of the obsoleted packages
5c554bd2
HH
61Obsoletes: mkinitrd <= 6.0.93
62Obsoletes: mkinitrd-devel <= 6.0.93
63Obsoletes: nash <= 6.0.93
0bc4ef1c 64Obsoletes: libbdevid-python <= 6.0.93
1b3bdcc1 65%endif
228694e5 66
4cfd24d1
HH
67%if 0%{?fedora} > 16 || 0%{?rhel} > 6
68BuildRequires: systemd-units
69%endif
70
228694e5
HH
71%if 0%{?suse_version} > 9999
72Obsoletes: mkinitrd < 2.6.1
73Provides: mkinitrd = 2.6.1
74%endif
75
8ef5ade7
HH
76Obsoletes: dracut-kernel < 005
77Provides: dracut-kernel = %{version}-%{release}
5c554bd2 78
18e61d3d
HH
79Obsoletes: dracut <= 029
80Obsoletes: dracut-norescue
98836432 81Provides: dracut-norescue
18e61d3d 82
d46394ad 83Requires: bash >= 4
38672ee8 84Requires: coreutils
7e33fa5b 85Requires: cpio
7e33fa5b 86Requires: filesystem >= 2.1.0
38672ee8
JK
87Requires: findutils
88Requires: grep
7a5f1ee4 89Requires: hardlink
50bc2253 90Requires: gzip xz
884e1cda 91Requires: kmod
7e33fa5b 92Requires: sed
8a240aca 93Requires: kpartx
2fa6fd3a 94
b019d405 95%if 0%{?fedora} || 0%{?rhel} > 6
abbb76fe 96Requires: util-linux >= 2.21
d50cf62d 97Requires: systemd >= 199
475f3a81 98Requires: procps-ng
c85cda9e 99Conflicts: grubby < 8.23
d97eb425
HH
100Conflicts: initscripts < 8.63-1
101Conflicts: plymouth < 0.8.0-0.2009.29.09.19.1
102Conflicts: bcache-tools < 0-0.14.20130909git
b019d405 103%else
4a5a9c6d 104Requires: udev > 166
abbb76fe 105Requires: util-linux-ng >= 2.21
b019d405 106%endif
d9416c0d 107
6320d072
HH
108Conflicts: mdadm < 3.2.6-14
109
38672ee8 110%description
600c8769 111dracut contains tools to create a bootable initramfs for 2.6 Linux kernels.
3b403b32 112Unlike existing implementations, dracut does hard-code as little as possible
600c8769 113into the initramfs. dracut contains various modules which are driven by the
3b403b32 114event-based udev. Having root on MD, DM, LVM2, LUKS is supported as well as
c55b2080 115NFS, iSCSI, NBD, FCoE with the dracut-network package.
38672ee8 116
ec74fa87 117%package network
600c8769 118Summary: dracut modules to build a dracut initramfs with network support
78cd7629 119Requires: %{name} = %{version}-%{release}
3d8a164d
HH
120Requires: iputils
121Requires: iproute
dc63e654 122Requires: dhclient
353ef760
HH
123Obsoletes: dracut-generic < 008
124Provides: dracut-generic = %{version}-%{release}
ec74fa87
HH
125
126%description network
127This package requires everything which is needed to build a generic
128all purpose initramfs with network support with dracut.
129
7a1f355f 130%if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version}
4d1661d3 131%package fips
600c8769 132Summary: dracut modules to build a dracut initramfs with an integrity check
4d1661d3
HH
133Requires: %{name} = %{version}-%{release}
134Requires: hmaccalc
135%if 0%{?rhel} > 5
136# For Alpha 3, we want nss instead of nss-softokn
137Requires: nss
138%else
139Requires: nss-softokn
140%endif
141Requires: nss-softokn-freebl
142
143%description fips
144This package requires everything which is needed to build an
bcd352df 145initramfs with dracut, which does an integrity check.
228694e5 146%endif
33ee031c 147
2e1b9171 148%package fips-aesni
600c8769 149Summary: dracut modules to build a dracut initramfs with an integrity check with aesni-intel
2e1b9171
HH
150Requires: %{name}-fips = %{version}-%{release}
151
152%description fips-aesni
153This package requires everything which is needed to build an
bcd352df 154initramfs with dracut, which does an integrity check and adds the aesni-intel kernel module.
2e1b9171 155
52881470 156%package caps
600c8769 157Summary: dracut modules to build a dracut initramfs which drops capabilities
52881470
HH
158Requires: %{name} = %{version}-%{release}
159Requires: libcap
160
161%description caps
162This package requires everything which is needed to build an
bcd352df 163initramfs with dracut, which drops capabilities.
52881470 164
18e61d3d 165%package config-generic
e22eb857
HH
166Summary: dracut configuration to turn off hostonly image generation
167Requires: %{name} = %{version}-%{release}
18e61d3d
HH
168Obsoletes: dracut-nohostonly
169Provides: dracut-nohostonly
e22eb857 170
18e61d3d 171%description config-generic
e22eb857 172This package provides the configuration to turn off the host specific initramfs
18e61d3d 173generation with dracut and generates a generic image by default.
e22eb857 174
18e61d3d
HH
175%package config-rescue
176Summary: dracut configuration to turn on rescue image generation
e22eb857 177Requires: %{name} = %{version}-%{release}
18e61d3d 178Obsoletes: dracut <= 029
e22eb857 179
18e61d3d
HH
180%description config-rescue
181This package provides the configuration to turn on the rescue initramfs
e22eb857
HH
182generation with dracut.
183
21007cb6 184%package tools
600c8769 185Summary: dracut tools to build the local initramfs
a0af4fa5 186Requires: %{name} = %{version}-%{release}
21007cb6
HH
187
188%description tools
189This package contains tools to assemble the local initrd and host configuration.
190
38672ee8 191%prep
0e6a94b3 192%setup -q -n %{name}-%{version}
76bba2a1
HH
193
194%if %{defined PATCH1}
85cda6ae
HH
195git init
196git config user.email "dracut-maint@redhat.com"
197git config user.name "Fedora dracut team"
198git add .
199git commit -a -q -m "%{version} baseline."
200
201# Apply all the patches.
202git am -p1 %{patches}
76bba2a1 203%endif
38672ee8
JK
204
205%build
1d4b3375
HH
206%configure --systemdsystemunitdir=%{_unitdir} --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) --libdir=%{_prefix}/lib
207
208make %{?_smp_mflags}
38672ee8 209
38672ee8 210%install
b019d405 211%if 0%{?fedora} || 0%{?rhel}
32bd2fbb 212rm -rf -- $RPM_BUILD_ROOT
228694e5 213%endif
1d4b3375
HH
214make %{?_smp_mflags} install \
215 DESTDIR=$RPM_BUILD_ROOT \
216 libdir=%{_prefix}/lib
38672ee8 217
982d59af 218echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh
228694e5 219
7a1f355f 220%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0
32bd2fbb
HH
221rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
222rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
228694e5
HH
223%endif
224
a5b48ce7
HH
225%if %{defined _unitdir}
226# for systemd, better use systemd-bootchart
32bd2fbb 227rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00bootchart
a5b48ce7
HH
228%endif
229
d96c3254 230# we do not support dash in the initramfs
32bd2fbb 231rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00dash
d96c3254 232
783721b3 233# remove gentoo specific modules
32bd2fbb 234rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash
95cf0a88 235
04ab68a4
HH
236%if %{defined _unitdir}
237# with systemd IMA and selinux modules do not make sense
32bd2fbb
HH
238rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs
239rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey
240rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
04ab68a4
HH
241%endif
242
21007cb6
HH
243mkdir -p $RPM_BUILD_ROOT/boot/dracut
244mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay
837a5a60
HH
245mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
246touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log
41f90cbe 247mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs
21007cb6 248
7a1f355f 249%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
a42b2b81
HH
250install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
251install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
d9416c0d
HH
252%endif
253
5ce6642f 254%if 0%{?suse_version}
a42b2b81 255install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
d9416c0d
HH
256%endif
257
228694e5 258%if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
32bd2fbb
HH
259rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
260rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd
1b3bdcc1
HH
261%endif
262
2fa6fd3a 263%if 0%{?fedora} || 0%{?rhel} > 6
e22eb857 264# FIXME: remove after F19
2fa6fd3a
HH
265mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d
266install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh
e22eb857 267
18e61d3d
HH
268echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf
269echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf
2fa6fd3a
HH
270%endif
271
78d5cf7c
HH
272%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
273> $RPM_BUILD_ROOT/etc/system-fips
274%endif
275
e4d85a77
HH
276# create compat symlink
277mkdir -p $RPM_BUILD_ROOT/sbin
278ln -s /usr/bin/dracut $RPM_BUILD_ROOT/sbin/dracut
4cbc0c79 279
38672ee8 280%clean
32bd2fbb 281rm -rf -- $RPM_BUILD_ROOT
38672ee8 282
38672ee8 283%files
78cd7629 284%defattr(-,root,root,0755)
7c6eb152 285%doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
ed919de0 286%{_bindir}/dracut
e4d85a77
HH
287# compat symlink
288/sbin/dracut
917f3e4d 289%{_datadir}/bash-completion/completions/dracut
7dbca9be 290%{_datadir}/bash-completion/completions/lsinitrd
228694e5 291%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
ed919de0
HH
292%{_bindir}/mkinitrd
293%{_bindir}/lsinitrd
1b3bdcc1 294%endif
c5a65990
HH
295%dir %{dracutlibdir}
296%dir %{dracutlibdir}/modules.d
552ecca6 297%{dracutlibdir}/dracut-functions.sh
a6b63f91 298%{dracutlibdir}/dracut-functions
dbf8f6ba 299%{dracutlibdir}/dracut-version.sh
552ecca6 300%{dracutlibdir}/dracut-logger.sh
fb67e4aa 301%{dracutlibdir}/dracut-initramfs-restore
f4031e8a 302%{dracutlibdir}/dracut-install
2fa6fd3a 303%config(noreplace) %{_sysconfdir}/dracut.conf
b019d405 304%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel}
a42b2b81 305%{dracutlibdir}/dracut.conf.d/01-dist.conf
d9416c0d 306%endif
2fa6fd3a 307%dir %{_sysconfdir}/dracut.conf.d
a42b2b81 308%dir %{dracutlibdir}/dracut.conf.d
00f0a6e7 309%{_mandir}/man8/dracut.8*
13f77e9f 310%{_mandir}/man8/*service.8*
7a1f355f 311%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
0e14946a 312%{_mandir}/man8/mkinitrd.8*
7a1f355f
HH
313%{_mandir}/man1/lsinitrd.1*
314%endif
0d866147 315%{_mandir}/man7/dracut.kernel.7*
45abddb0 316%{_mandir}/man7/dracut.cmdline.7*
b6c89768 317%{_mandir}/man7/dracut.modules.7*
a1ebd771 318%{_mandir}/man7/dracut.bootup.7*
6cc96b35 319%{_mandir}/man5/dracut.conf.5*
a5b48ce7
HH
320%if %{defined _unitdir}
321%{dracutlibdir}/modules.d/00systemd-bootchart
322%else
c5a65990 323%{dracutlibdir}/modules.d/00bootchart
a5b48ce7 324%endif
f071d557 325%{dracutlibdir}/modules.d/00bash
9b6c5fd7 326%{dracutlibdir}/modules.d/03modsign
fba5fbbd 327%{dracutlibdir}/modules.d/03rescue
ef914f7d 328%{dracutlibdir}/modules.d/04watchdog
c5a65990
HH
329%{dracutlibdir}/modules.d/05busybox
330%{dracutlibdir}/modules.d/10i18n
437cecb9 331%{dracutlibdir}/modules.d/30convertfs
5c4bb360 332%{dracutlibdir}/modules.d/45url-lib
b4751714 333%{dracutlibdir}/modules.d/50drm
c5a65990 334%{dracutlibdir}/modules.d/50plymouth
b80078af 335%{dracutlibdir}/modules.d/80cms
c5a65990
HH
336%{dracutlibdir}/modules.d/90btrfs
337%{dracutlibdir}/modules.d/90crypt
338%{dracutlibdir}/modules.d/90dm
339%{dracutlibdir}/modules.d/90dmraid
340%{dracutlibdir}/modules.d/90dmsquash-live
341%{dracutlibdir}/modules.d/90kernel-modules
342%{dracutlibdir}/modules.d/90lvm
343%{dracutlibdir}/modules.d/90mdraid
344%{dracutlibdir}/modules.d/90multipath
1488a9b3 345%{dracutlibdir}/modules.d/90qemu
c5a65990 346%{dracutlibdir}/modules.d/91crypt-gpg
24ba78cb 347%{dracutlibdir}/modules.d/91crypt-loop
c5a65990
HH
348%{dracutlibdir}/modules.d/95debug
349%{dracutlibdir}/modules.d/95resume
350%{dracutlibdir}/modules.d/95rootfs-block
351%{dracutlibdir}/modules.d/95dasd
352%{dracutlibdir}/modules.d/95dasd_mod
353%{dracutlibdir}/modules.d/95fstab-sys
354%{dracutlibdir}/modules.d/95zfcp
355%{dracutlibdir}/modules.d/95terminfo
356%{dracutlibdir}/modules.d/95udev-rules
a7c9cbe1 357%{dracutlibdir}/modules.d/95virtfs
04ab68a4 358%if %{undefined _unitdir}
c5a65990 359%{dracutlibdir}/modules.d/96securityfs
c5a65990 360%{dracutlibdir}/modules.d/97masterkey
c5a65990 361%{dracutlibdir}/modules.d/98integrity
04ab68a4
HH
362%endif
363%{dracutlibdir}/modules.d/97biosdevname
364%{dracutlibdir}/modules.d/98ecryptfs
d33d6077 365%{dracutlibdir}/modules.d/98pollcdrom
639bd487 366%{dracutlibdir}/modules.d/98selinux
c5a65990 367%{dracutlibdir}/modules.d/98syslog
6e26f9b4 368%{dracutlibdir}/modules.d/98systemd
c5a65990
HH
369%{dracutlibdir}/modules.d/98usrmount
370%{dracutlibdir}/modules.d/99base
371%{dracutlibdir}/modules.d/99fs-lib
5c4bb360 372%{dracutlibdir}/modules.d/99img-lib
c5a65990 373%{dracutlibdir}/modules.d/99shutdown
837a5a60 374%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
41f90cbe 375%dir %{_sharedstatedir}/initramfs
b019d405 376%if %{defined _unitdir}
2023d8eb
HH
377%{_unitdir}/dracut-shutdown.service
378%{_unitdir}/shutdown.target.wants/dracut-shutdown.service
cbd69dc6
HH
379%{_unitdir}/dracut-cmdline.service
380%{_unitdir}/dracut-initqueue.service
381%{_unitdir}/dracut-mount.service
382%{_unitdir}/dracut-pre-mount.service
383%{_unitdir}/dracut-pre-pivot.service
384%{_unitdir}/dracut-pre-trigger.service
385%{_unitdir}/dracut-pre-udev.service
386%{_unitdir}/initrd.target.wants/dracut-cmdline.service
387%{_unitdir}/initrd.target.wants/dracut-initqueue.service
388%{_unitdir}/initrd.target.wants/dracut-mount.service
389%{_unitdir}/initrd.target.wants/dracut-pre-mount.service
390%{_unitdir}/initrd.target.wants/dracut-pre-pivot.service
391%{_unitdir}/initrd.target.wants/dracut-pre-trigger.service
392%{_unitdir}/initrd.target.wants/dracut-pre-udev.service
393
4cfd24d1 394%endif
9dd9d81f
HH
395%if 0%{?fedora} || 0%{?rhel} > 6
396%{_prefix}/lib/kernel/install.d/50-dracut.install
397%endif
ec74fa87
HH
398
399%files network
78cd7629 400%defattr(-,root,root,0755)
c5a65990
HH
401%{dracutlibdir}/modules.d/40network
402%{dracutlibdir}/modules.d/95fcoe
403%{dracutlibdir}/modules.d/95iscsi
404%{dracutlibdir}/modules.d/90livenet
1488a9b3 405%{dracutlibdir}/modules.d/90qemu-net
72ee74b9 406%{dracutlibdir}/modules.d/95cifs
c5a65990
HH
407%{dracutlibdir}/modules.d/95nbd
408%{dracutlibdir}/modules.d/95nfs
a29cf54c 409%{dracutlibdir}/modules.d/95ssh-client
c5a65990
HH
410%{dracutlibdir}/modules.d/45ifcfg
411%{dracutlibdir}/modules.d/95znet
78cd7629 412
7a1f355f 413%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
4d1661d3
HH
414%files fips
415%defattr(-,root,root,0755)
c5a65990 416%{dracutlibdir}/modules.d/01fips
a42b2b81 417%{dracutlibdir}/dracut.conf.d/40-fips.conf
78d5cf7c 418%config(missingok) /etc/system-fips
228694e5 419%endif
ec74fa87 420
2e1b9171
HH
421%files fips-aesni
422%defattr(-,root,root,0755)
423%doc COPYING
c5a65990 424%{dracutlibdir}/modules.d/02fips-aesni
2e1b9171 425
52881470
HH
426%files caps
427%defattr(-,root,root,0755)
c5a65990 428%{dracutlibdir}/modules.d/02caps
52881470 429
3b403b32 430%files tools
21007cb6 431%defattr(-,root,root,0755)
66e45737 432%{_mandir}/man8/dracut-catimages.8*
ed919de0 433%{_bindir}/dracut-catimages
21007cb6
HH
434%dir /boot/dracut
435%dir /var/lib/dracut
436%dir /var/lib/dracut/overlay
437
18e61d3d 438%files config-generic
e22eb857 439%defattr(-,root,root,0755)
18e61d3d 440%{dracutlibdir}/dracut.conf.d/02-generic-image.conf
e22eb857 441
18e61d3d 442%files config-rescue
e22eb857 443%defattr(-,root,root,0755)
18e61d3d
HH
444%{dracutlibdir}/dracut.conf.d/02-rescue.conf
445%if 0%{?fedora} || 0%{?rhel} > 6
446%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
447%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh
448%endif
e22eb857 449
38672ee8 450%changelog