# # spec file for package dracut # # Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define dracutlibdir %{_prefix}/lib/dracut Name: dracut Version: 055+suse.129.g7d8c3ce3 Release: 0 Summary: Initramfs generator using udev License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: System/Base URL: https://dracut.wiki.kernel.org/ Source0: dracut-%{version}.tar.xz Source1: dracut-rpmlintrc Source2: README.susemaint BuildRequires: asciidoc BuildRequires: bash BuildRequires: docbook-xsl-stylesheets BuildRequires: libxslt BuildRequires: suse-module-tools BuildRequires: pkgconfig(libkmod) BuildRequires: pkgconfig(systemd) >= 219 Requires: %{_bindir}/get_kernel_version Requires: bash # systemd-sysvinit provides: poweroff, reboot, halt Requires: coreutils Requires(post): coreutils Requires: cpio Requires: elfutils Requires: file Requires: filesystem Requires: findutils Requires: grep Requires: hardlink Requires: modutils Requires: pigz Requires: sed Requires: systemd >= 219 Requires: systemd-sysvinit Requires: udev > 166 Requires: util-linux >= 2.21 Requires: xz # We use 'btrfs fi usage' that was not present before Conflicts: btrfsprogs < 3.18 # suse-module-tools >= 16.0.3 is prepared for the removal of mkinitrd-suse.sh Conflicts: suse-module-tools < 16.0.3 %{?systemd_requires} %description Dracut contains tools to create a bootable initramfs for Linux kernels >= 2.6. Dracut contains various modules which are driven by the event-based udev and systemd. Having root on MD, DM, LVM2, LUKS is supported as well as NFS, iSCSI, NBD, FCoE. %package fips Summary: Dracut modules to build a dracut initramfs with an integrity check Group: System/Base Requires: %{name} = %{version}-%{release} Requires: fipscheck Requires: libcryptsetup12-hmac Requires: libgcrypt20-hmac Requires: libkcapi-tools %description fips This package requires everything which is needed to build an initramfs with dracut, which does an integrity check of the kernel and its cryptography during startup. %package ima Summary: Dracut modules to build a dracut initramfs with IMA Group: System/Base Requires: %{name} = %{version}-%{release} Requires: evmctl Requires: keyutils %description ima This package requires everything which is needed to build an initramfs (using dracut) which tries to load an IMA policy during startup. %package tools Summary: Tools to build a local initramfs Group: System/Base Requires: %{name} # split-provides for upgrade from SLES12 SP1 to SLES12 SP2 Provides: %{name}:%{_bindir}/dracut-catimages %description tools This package contains tools to assemble the local initrd and host configuration. %package extra Summary: Dracut modules usually not required for normal operation Group: System/Base Requires: %{name} = %{version}-%{release} Requires: evmctl Requires: keyutils %description extra This package contains all modules that are part of dracut upstream but are not normally supported or required. %package mkinitrd-deprecated Summary: Dracut mkinitrd wrapper Group: System/Base Requires: %{name} = %{version}-%{release} Requires: dracut Obsoletes: mkinitrd < 2.8.2 Provides: mkinitrd = 2.8.2 %description mkinitrd-deprecated This package contains the legacy initrd script for dracut. Call dracut directly instead. %prep %autosetup %build %configure\ --systemdsystemunitdir=%{_unitdir}\ --bashcompletiondir=%{_datarootdir}/bash-completion/completions \ --libdir=%{_prefix}/lib %make_build all CFLAGS="%{optflags}" %{?_smp_mflags} %install %make_install echo -e "#!/bin/bash\nDRACUT_VERSION=%{version}-%{release}" > %{buildroot}/%{dracutlibdir}/dracut-version.sh mkdir -p %{buildroot}/boot/dracut mkdir -p %{buildroot}%{_localstatedir}/lib/dracut/overlay mkdir -p %{buildroot}%{_localstatedir}/log touch %{buildroot}%{_localstatedir}/log/dracut.log install -D -m 0644 dracut.conf.d/suse.conf.example %{buildroot}/usr/lib/dracut/dracut.conf.d/01-dist.conf install -m 0644 suse/99-debug.conf %{buildroot}%{_sysconfdir}/dracut.conf.d/99-debug.conf install -m 0644 dracut.conf.d/fips.conf.example %{buildroot}%{_sysconfdir}/dracut.conf.d/40-fips.conf install -m 0644 dracut.conf.d/ima.conf.example %{buildroot}%{_sysconfdir}/dracut.conf.d/40-ima.conf # bsc#915218 %ifarch s390 s390x install -m 0644 suse/s390x_persistent_device.conf %{buildroot}%{_sysconfdir}/dracut.conf.d/10-s390x_persistent_device.conf %endif install -D -m 0755 suse/mkinitrd-suse.sh %{buildroot}/%{_sbindir}/mkinitrd mv %{buildroot}%{_mandir}/man8/mkinitrd-suse.8 %{buildroot}%{_mandir}/man8/mkinitrd.8 %if 0%{?suse_version} #rm -f %%{buildroot}/%%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg.sh #ln -s %%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-suse.sh %%{buildroot}/%%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg.sh %else mv %{buildroot}/%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg.sh %{buildroot}/%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-redhat.sh ln -s %{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-redhat.sh %{buildroot}/%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg.sh %endif %post # check whether /var/run has been converted to a symlink if [ ! -L /var/run ]; then grep -q '^[ ]*GRUB_CMDLINE_LINUX_DEFAULT=.*rd.convertfs' /etc/default/grub || \ sed -i '/^[ ]*GRUB_CMDLINE_LINUX_DEFAULT.*/s/"$/ rd.convertfs"/' /etc/default/grub || : if ! grep --no-message 'add_dracutmodules+=" convertfs "' /etc/dracut.conf.d/05-convertfs.conf; then cat >>/etc/dracut.conf.d/05-convertfs.conf<