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