# # spec file for package dracut # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # 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: 049+git115.c2d8d6fb 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 Recommends: logrotate Obsoletes: mkinitrd < 2.8.2 Provides: mkinitrd = 2.8.2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?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. %prep %setup -q %build %configure\ --systemdsystemunitdir=%{_unitdir}\ --bashcompletiondir=%{_datarootdir}/bash-completion/completions \ --libdir=%{_prefix}/lib make all CFLAGS="%{optflags}" %{?_smp_mflags} %install make DESTDIR=%{buildroot} install %{?_smp_mflags} echo -e "#!/bin/bash\nDRACUT_VERSION=%{version}-%{release}" > %{buildroot}/%{dracutlibdir}/dracut-version.sh # use systemd-analyze instead, does not need dracut support rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00bootchart # not supported rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash rm -fr %{buildroot}/%{dracutlibdir}/modules.d/05busybox # Remove RH-specific s390 modules rm -fr %{buildroot}/%{dracutlibdir}/modules.d/95dasd rm -fr %{buildroot}/%{dracutlibdir}/modules.d/95zfcp rm -fr %{buildroot}/%{dracutlibdir}/modules.d/95znet # remove gentoo specific modules rm -fr %{buildroot}%{dracutlibdir}/modules.d/50gensplash 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 rm %{buildroot}%{_bindir}/mkinitrd # moved to /sbin mkdir -p %{buildroot}/sbin install -m 0755 mkinitrd-suse.sh %{buildroot}/sbin/mkinitrd mv %{buildroot}%{_mandir}/man8/mkinitrd-suse.8 %{buildroot}%{_mandir}/man8/mkinitrd.8 install -m 0755 suse/mkinitrd_setup_dummy %{buildroot}/sbin/mkinitrd_setup mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d install -m 0644 dracut.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/dracut install -D -m 0755 suse/purge-kernels %{buildroot}/sbin/purge-kernels install -m 644 suse/purge-kernels.service %{buildroot}/%{_unitdir}/purge-kernels.service install -D -m 0755 suse/dracut-installkernel %{buildroot}/sbin/installkernel %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 %pre %service_add_pre purge-kernels.service %post %service_add_post purge-kernels.service # check whether /var/run has been converted to a symlink [ -L /var/run ] || sed -i '/GRUB_CMDLINE_LINUX_DEFAULT.*/s/"$/ rd.convertfs"/' /etc/default/grub || : [ -L /var/run ] || cat >>/etc/dracut.conf.d/05-convertfs.conf<