File dracut.spec of Package dracut

#
# spec file for package dracut
#
# Copyright (c) 2017 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 http://bugs.opensuse.org/
#


%define dracutlibdir %{_libexecdir}/dracut
%define _pkg_version 044

Name:           dracut
# Need minor increase for reliable conflicts by systemd, use %{_pkg_version} for real version
Version:        044.1
Release:        0
Summary:        Initramfs generator using udev
License:        GPL-2.0+ and LGPL-2.1+
Group:          System/Base
Url:            https://dracut.wiki.kernel.org/
Source0:        http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{_pkg_version}.tar.xz
Source1:        dracut-rpmlintrc
Source3:        mkinitrd_setup_dummy
Source4:        purge-kernels
Source5:        purge-kernels.service
Source6:        dracut-installkernel
Source7:        99-debug.conf
Source8:        s390x_persistent_device.conf

#Network:
Patch12:        0012-40network-Fix-race-condition-when-wait-for-networks.patch
Patch13:        0013-40network-always-start-netroot-in-ifup.sh.patch
Patch15:        0015-40network-replace-dhclient-with-wickedd-dhcp-supplic.patch
Patch17:        0017-45ifcfg-use-distro-specific-scripts.patch
Patch48:        0048-40network-Only-enable-network-interfaces-if-explicit.patch
Patch60:        0060-45ifcfg-Add-SUSE-specific-write-ifcfg-file.patch
Patch61:        0061-45ifcfg-Fixup-error-message-in-write-ifcfg-suse.patch
Patch89:        0089-40network-create-var-lib-wicked-in-ifup.sh.patch
Patch94:        0094-Implement-shortcut-ip-ifname-static-for-static-confi.patch
Patch124:       0124-40network-Update-iBFT-scanning-code-to-handle-IPv6.patch
Patch125:       0125-40network-separate-mask-and-prefix.patch
Patch131:       0131-40network-handle-prefixed-IP-addresses-correctly.patch
Patch132:       0132-40network-fixup-static-network-configuration.patch
Patch133:       0133-Allow-multiple-configurations-per-network-interface-.patch
Patch142:       0142-40network-Don-t-report-error-for-etc-sysconfig-netwo.patch
Patch145:       0145-40network-handle-ip-ifname-static-correctly.patch
Patch159:       0159-network-Try-to-load-xennet.patch
Patch162:       0162-network-Request-DHCP-lease-instead-of-getting-applyi.patch
Patch169:       0169-network_set_mtu_macaddr_for_dhcp.patch
Patch170:       0170-iscsi-skip-ibft-invalid-dhcp.patch

#S390
Patch16:        0016-Add-new-s390x-specific-rule-files.patch
Patch21:        0021-95dcssblk-Add-new-module-for-DCSS-block-devices.patch
Patch56:        0056-81cio_ignore-handle-cio_ignore-commandline.patch
Patch75:        0075-95dasd_rules-enable-parsing-of-rd.dasd-commandline-p.patch
Patch76:        0076-Correctly-set-cio_ignore-for-dynamic-s390-rules.patch
Patch79:        0079-95dasd_rules-fixup-rd.dasd-parsing.patch
Patch80:        0080-95dasd_rules-print-out-rd.dasd-commandline.patch
Patch81:        0081-95dasd_mod-do-not-set-module-parameters-if-dasd_cio_.patch
Patch83:        0083-95zfcp_rules-Fixup-rd.zfcp-parsing.patch
Patch85:        0085-95zfcp_rules-print-out-rd.zfcp-commandline-parameter.patch
Patch86:        0086-95zfcp_rules-Auto-generate-udev-rule-for-ipl-device.patch
Patch87:        0087-95dasd_rules-Auto-generate-udev-rule-for-ipl-device.patch
Patch88:        0088-91zipl-Add-new-module-to-update-s390x-configuration.patch
Patch107:       0107-Fixup-typo-firmare-instead-of-firmware.patch
Patch108:       0108-91zipl-Store-commandline-correctly.patch
Patch109:       0109-95dasd_rules-Store-all-devices-in-commandline.patch
Patch110:       0110-95zfcp_rules-Store-all-devices-in-commandline.patch
Patch113:       0113-91zipl-Install-script-as-executable.patch
Patch114:       0114-91zipl-Translate-ext2-3-into-ext4.patch
Patch116:       0116-Mark-scripts-as-executable.patch
Patch117:       0117-95dasd_rules-Enable-the-device-before-checking-devic.patch
Patch118:       0118-95zfcp_rules-Enable-the-device-before-checking-devic.patch
Patch123:       0123-95zfcp_rules-fix-typo-in-module_setup.patch
Patch157:       0157-Add-boot-zipl-to-host-devs-if-it-is-a-mount-point.patch
Patch160:       0160-s390-update_active_devices_initrd.patch
Patch161:       0161-95zfcp_rules-simplified-rd.zfcp-commandline-for-NPIV.patch
Patch188:       0188-95dasd_rules-Install-collect-udev-helper-binary.patch
Patch506:       0506-Boot-on-s390x-with-fips-1-on-the-kernel-commnad-line.patch

#FIPS
Patch53:        0053-01fips-fixup-loading-issues.patch
Patch57:        0057-01fips-Include-some-more-hmacs.patch
Patch126:       0126-01fips-Add-drbg-module-to-force-loaded-modules.patch
Patch137:       0137-Switch-from-Mozilla-NSS-sha256hmac-checking-to-fipsc.patch
Patch138:       0138-fips_add_aesni-intel.patch
Patch139:       0139-fips-kernel-4.4-fixes.patch
Patch509:       0509-01fips-Remove-zlib-module-as-requirement.patch
Patch510:       0510-01fips-Some-modules-use-separators-other-than.patch
Patch511:       0511-01fips-ensure-fips-initialization-succeeds-on-s390-x.patch

# Others
Patch20:        0020-00warpclock-Set-correct-timezone.patch
Patch58:        0058-dracut-add-warning-when-including-unsupported-module.patch
Patch59:        0059-99suse-Add-SUSE-specific-initrd-parsing.patch
Patch90:        0090-dracut-caps-Remove-whole-caps-module.patch
Patch91:        0091-dracut-biosdevname-In-SUSE-biosdevname-package-is-in.patch
Patch121:       0121-Adjust-initramfs-kernel.img-to-SUSE-default-initrd-k.patch
Patch130:       0130-nfs-Always-add-all-kernel-modules-for-kdump.patch
Patch144:       0144-90crypt-Fixed-crypttab_contains-to-also-work-with-de.patch
Patch150:       0150-Find-kernel-modules-in-extra-and-weak-updates-path-a.patch
Patch158:       0158-Add-SUSE-kernel-module-dependencies-in-etc-modprobe.patch
Patch163:       0163-Install-etc-sysconfig-console-to-see-specific-fonts.patch
Patch164:       0164-Fix-initramfs-ver.img-vs-initrd-ver-in-dracut-initra.patch
Patch168:       0168-remove_plymouth_logo_file.patch
Patch180:       0180-i18n_add_correct_fontmaps.patch
Patch182:       0182-fix-include-parsing.patch
Patch183:       0183-fix_add_drivers_hang.patch

# iscsiadm
Patch190:       0190-replace-iscsistart-with-systemd-service-files.patch
Patch191:       0191-static_network_setup_return_zero.patch
Patch192:       0192-iscsi_set_boot_protocol_from_ifcfg.patch
Patch193:       0193-95iscsi-Set-number-of-login-retries.patch
Patch196:       0196-ibft-wait-for-session-on-all-paths.patch
Patch197:       0197-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch
Patch198:       0198-95iscsi-set-rd.iscsi.firmware-for-qla4xxx-sessions.patch
Patch199:       0199-rd-iscsi-waitnet-default-false.patch

# Submit mainline asap
Patch128:       0128-90lvm-Install-dm-snapshot-module.patch
Patch200:       0200-dracut_fix_multipath_without_config.patch
Patch201:       0201-fix_nfs_with_ip_instead_of_hostname.patch
Patch202:       0202-dracut_dmraid_use_udev.patch
Patch203:       0203-no-fail-builtin-module.patch
Patch204:       0204-mkinitrd-fix-monster.patch
Patch205:       0205-mdraid_ignore_hostonly.patch
Patch206:       0206-nfs_dns_alias.patch
Patch207:       0207-handle_module_aliases.patch
Patch208:       0208-no_forced_virtnet.patch
Patch209:       0209-fix_modules_load_d_hostonly.patch
Patch210:       0210-add_fcoe_uefi_check.patch
Patch212:       0212-fcoe_reorder_init_path.patch
Patch213:       0213-Fix-wrong-keymap-inclusion.patch
Patch214:       0214-95fcoe-Do-not-overwrite-FCoE-configuration.patch
Patch215:       0215-95fcoe-Do-not-complain-about-missing-etc-hba.conf.patch
Patch216:       0216-95fcoe-silence-lldpad-warnings.patch
Patch217:       0217-95fcoe-Allow-to-specify-the-FCoE-mode-via-the-fcoe-p.patch
Patch218:       0218-40network-allow-persistent-interface-names.patch
Patch219:       0219-95fcoe-use-interface-names-instead-of-MAC-addresses.patch
Patch220:       0220-95fcoe-always-set-AUTO_VLAN-for-fcoemon.patch
Patch221:       0221-95fcoe-Add-shutdown-script.patch
Patch222:       0222-90dm-Fixup-shutdown-script.patch
Patch223:       0223-90dm-fixup-dependency-cycle-between-MD-and-DM-shutdo.patch
Patch224:       0224-95iscsi-setup-bnx2i-offload-connections-properly.patch
Patch225:       0225-95fcoe-do-not-start-fcoemon-twice.patch

# SUSE-specific fixes
Patch300:       0300-dracut_dont_use_dpkg_defaults_on_SUSE.patch
Patch301:       0301-include_sysconfig_language.patch
Patch302:       0302-Revert-90multipath-add-hostonly-multipath.conf-in-ca.patch
Patch303:       0303-fix_multipath_check_hostonly.patch
Patch304:       0304-90multipath-Start-daemon-after-udev-settle.patch
Patch305:       0305-90multipath-load-dm_multipath-module-during-startup.patch
Patch306:       0306-90multipath-add-shutdown-script.patch
Patch307:       0307-90multipath-parse-kernel-commandline-option-multipat.patch
Patch308:       0308-mdraid_add_IMSM_NO_PLATFORM_env.patch
Patch309:       0309-90dmraid-do-not-delete-partitions.patch
Patch310:       0310-95resume-Do-not-resume-on-iSCSI.patch
Patch311:       0311-95iscsi-ip-ibft-is-deprecated.patch
Patch312:       0312-40network-Do-not-print-message-about-tmp-net.ibft0.c.patch
Patch313:       0313-90mdraid-Use-stock-MD-rules-to-assemble-RAID-arrays.patch
Patch314:       0314-nfs_do_not_pass_ifname_for_bonding_devices.patch

# New features/improvements
Patch402:       0402-driver-fail-summary.patch
Patch403:       0403-95lunmask-Add-module-to-handle-LUN-masking.patch
Patch404:       0404-dracut-emergency-optionally-print-fs-help.patch

# Workarounds/Patches no longer relevant in 045
Patch450:       0450-Strip-NUL-bytes-in-stream-before-push-in-string.patch
Patch451:       0451-systemd-initrd-add-initrd-root-device.target.patch
Patch452:       0452-Always-try-to-add-pinctrl-cherryview.patch
Patch453:       0453-Resolve-symbolic-links-for-i-and-k-parameters-bsc-90.patch
Patch454:       0454-Add-md4-and-arc4-modules-for-ntlm.patch

# On top patches/fixes which have to be applied late
Patch500:       0500-Reset-IFS-variable.patch
Patch501:       0501-dasd_fix_ssid_bigger_zero.patch
Patch502:       0502-persistent_device_policy_param_enhance.patch
Patch503:       0503-dracut.sh-create-the-initramfs-non-world-readable-al.patch
Patch504:       0504-ibft-fix-boot-flag-check.patch
Patch505:       0505-Allow-booting-from-degraded-MD-RAID-arrays.patch
Patch507:       0507-Set-TaskMax-inifinite-for-the-emergency-shell.patch
Patch508:       0508-90multipath-start-before-local-fs-pre.target.patch
Patch512:       0512-Make-binutils-optional-when-elfutils-are-available.patch
Patch513:       0513-Fix-regression-caused-by-6f9bf2b8ac436259bdccb110545.patch
Patch514:       0514-man-make-the-k-option-clear-using-mkinitrd.patch
Patch515:       0515-90kernel-modules-also-add-block-device-driver-revers.patch
Patch516:       0516-mkinitrd-suse.sh-Fix-prefix-calculation.patch
Patch517:       0517-95fcoe-fixup-fcoe-genrules.sh-for-VN2VN-mode.patch
Patch518:       0518-90kernel-modules-Fix-backlight-on-Cherrytrail-device.patch
Patch519:       0519-90kernel-modules-Ensure-phy-drivers-are-loaded-in-in.patch
Patch520:       0520-Ignore-module-resolution-errors.patch
Patch521:       0521-Ensure-udev-persistent-storage-compat-rules-get-crea.patch
Patch522:       0522-Fix-typo-from-commit-3f1cdb520.patch
Patch523:       0523-98dracut-systemd-Fix-module-force-loading-with-syste.patch
Patch524:       0524-Suppress-nonsensical-error-message-bsc-1032029.patch
Patch525:       0525-backport-bail-out-if-module-directory-does-not-exist.patch
Patch526:       0526-iscsiroot-call-handle_firmware-only-for-non-iface-in.patch
Patch527:       0527-switch-fips-checking-to-use-the-libkcapi-based-fipsc.patch
Patch528:       0528-Ensure-dracut.sh-responds-properly-to-hostonly_cmdli.patch
Patch529:       0529-systemd-add-missing-.slice-unit.patch
Patch530:       0530-dracut-systemd-dracut-cmdline-ask-fix-dracut-kernel-.patch
Patch531:       0531-dracut-systemd-.service-conflict-with-shutdown-targe.patch
Patch532:       0532-List-drivers-rather-than-looking-for-reverse-depende.patch
Patch533:       0533-instmods-check-modules.builtin-in-srcmods.patch
Patch534:       0534-ssh-client-Include-nss_-libraries.patch
Patch535:       0535-Sync-initramfs-after-creation.patch
Patch536:       0536-90multipath-drop-67-kpartx-compat.rules.patch
Patch537:       0537-dracut-init.sh-ignore-crc32.ko-in-builtin-test.patch
Patch538:       0538-Enable-core-dumps-with-systemd-from-initrd.patch
Patch539:       0539-Add-IMA-functionality-fate-323289.patch
Patch540:       0540-Check-the-proper-variable-for-a-custom-IMA-keys-dire.patch

BuildRequires:  asciidoc
BuildRequires:  bash
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  libxslt
BuildRequires:  suse-module-tools
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(post): coreutils
Requires:       %{name} = %{version}-%{release}
Requires:       fipscheck
Requires:       libcryptsetup4-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}

%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 -n dracut-%{_pkg_version}

%patch12 -p1
%patch13 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch20 -p1
chmod a+x modules.d/00warpclock/module-setup.sh
%patch21 -p1
%patch48 -p1
%patch53 -p1
%patch56 -p1
%patch57 -p1
%patch58 -p1
%patch59 -p1
%patch60 -p1
chmod a+x modules.d/45ifcfg/write-ifcfg-suse.sh
%patch61 -p1
%patch75 -p1
%patch76 -p1
%patch79 -p1
%patch80 -p1
%patch81 -p1
%patch83 -p1
%patch85 -p1
%patch86 -p1
%patch87 -p1
%patch88 -p1
chmod a+x modules.d/91zipl/install_zipl_cmdline.sh
%patch89 -p1
%patch90 -p1
%patch91 -p1
%patch94 -p1
%patch107 -p1
%patch108 -p1
%patch109 -p1
%patch110 -p1
%patch113 -p1
%patch114 -p1
%patch116 -p1
%patch117 -p1
%patch118 -p1
%patch121 -p1
%patch123 -p1
%patch124 -p1
%patch125 -p1
%patch126 -p1
%patch128 -p1
%patch130 -p1
%patch131 -p1
%patch132 -p1
%patch133 -p1

%patch137 -p1
%patch138 -p1
%patch139 -p1

%patch142 -p1
%patch144 -p1
%patch145 -p1
%patch150 -p1
%patch157 -p1
%patch158 -p1
%patch159 -p1
%patch160 -p1
%patch161 -p1
%patch162 -p1
%patch163 -p1
%patch164 -p1
%patch168 -p1
%patch169 -p1
%patch170 -p1

%patch180 -p1
%patch182 -p1
%patch183 -p1
%patch188 -p1

%patch190 -p1
%patch191 -p1
%patch192 -p1
%patch193 -p1
%patch196 -p1
%patch197 -p1
%patch198 -p1
%patch199 -p1

%patch200 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205 -p1
%patch206 -p1
%patch207 -p1
%patch208 -p1
%patch209 -p1
%patch210 -p1
%patch212 -p1
%patch213 -p1
%patch214 -p1
%patch215 -p1
%patch216 -p1
%patch217 -p1
%patch218 -p1
%patch219 -p1
%patch220 -p1
%patch221 -p1
%patch222 -p1
%patch223 -p1
%patch224 -p1
%patch225 -p1

%patch300 -p1
%patch301 -p1
%patch302 -p1
%patch303 -p1
%patch304 -p1
%patch305 -p1
%patch306 -p1
%patch307 -p1
%patch308 -p1
%patch309 -p1
%patch310 -p1
%patch311 -p1
%patch312 -p1
%patch313 -p1
%patch314 -p1

%patch402 -p1
%patch403 -p1
%patch404 -p1

%patch450 -p1
%patch451 -p1
%patch452 -p1
%patch453 -p1
%patch454 -p1

%patch500 -p1
%patch501 -p1
%patch502 -p1
%patch503 -p1
%patch504 -p1
%patch505 -p1

%patch506 -p1
%patch507 -p1
%patch508 -p1
%patch509 -p1
%patch510 -p1
%patch511 -p1
%patch512 -p1
%patch513 -p1
%patch514 -p1
%patch515 -p1
%patch516 -p1
%patch517 -p1
%patch518 -p1
%patch519 -p1
%patch520 -p1
%patch521 -p1
%patch522 -p1
%patch523 -p1
%patch524 -p1
%patch525 -p1
%patch526 -p1
%patch527 -p1
%patch528 -p1
%patch529 -p1
%patch530 -p1
%patch531 -p1
%patch532 -p1
%patch533 -p1
%patch534 -p1
%patch535 -p1
%patch536 -p1
%patch537 -p1
%patch538 -p1
%patch539 -p1
%patch540 -p1

%build
%configure\
  --systemdsystemunitdir=%{_unitdir}\
  --bashcompletiondir=%{_sysconfdir}/bash_completion.d\
  --libdir=%{_prefix}/lib
make all CFLAGS="%{optflags}" %{?_smp_mflags}

%install
%make_install %{?_smp_mflags}

echo -e "#!/bin/bash\nDRACUT_VERSION=%{_pkg_version}-%{release}" > %{buildroot}/%{dracutlibdir}/dracut-version.sh

# use 00systemd-bootchart instead
rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00bootchart

# not supported
rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash
rm -fr %{buildroot}/%{dracutlibdir}/modules.d/05busybox

# 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 %{SOURCE7} %{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 %{SOURCE8} %{buildroot}%{_sysconfdir}/dracut.conf.d/10-s390x_persistent_device.conf
%endif

%ifarch %ix86 x86_64
echo 'early_microcode="yes"' > %{buildroot}%{_sysconfdir}/dracut.conf.d/02-early-microcode.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 %{SOURCE3} %{buildroot}/sbin/mkinitrd_setup

mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
install -m 0644 dracut.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/dracut

install -D -m 0755 %{SOURCE4} %{buildroot}/sbin/purge-kernels
install -m 644 %{SOURCE5} %{buildroot}/%{_unitdir}/purge-kernels.service

install -D -m 0755 %{SOURCE6} %{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
%{?regenerate_initrd_post}

%post fips
%{?regenerate_initrd_post}

%post ima
%{?regenerate_initrd_post}

%preun
%service_del_preun purge-kernels.service

%postun
%service_del_postun purge-kernels.service
%{?regenerate_initrd_post}

%postun fips
%{?regenerate_initrd_post}

%postun ima 
%{?regenerate_initrd_post}

%posttrans
%{?regenerate_initrd_posttrans}

%posttrans fips
%{?regenerate_initrd_posttrans}

%posttrans ima
%{?regenerate_initrd_posttrans}

%files fips
%defattr(-,root,root,0755)
%doc COPYING
%config %{_sysconfdir}/dracut.conf.d/40-fips.conf
%{dracutlibdir}/modules.d/01fips
%{dracutlibdir}/modules.d/02fips-aesni

%files ima
%defattr(-,root,root,0755)
%doc COPYING
%config %{_sysconfdir}/dracut.conf.d/40-ima.conf
%{dracutlibdir}/modules.d/96securityfs
%{dracutlibdir}/modules.d/97masterkey
%{dracutlibdir}/modules.d/98integrity

%files tools
%defattr(-,root,root,0755)
%{_bindir}/dracut-catimages
%{_mandir}/man8/dracut-catimages.8*
%dir /boot/dracut
%dir %{_localstatedir}/lib/dracut
%dir %{_localstatedir}/lib/dracut/overlay

%files
%defattr(-,root,root,0755)
%doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
%{_bindir}/dracut
%{_bindir}/lsinitrd
/sbin/purge-kernels
/sbin/installkernel
/sbin/mkinitrd
/sbin/mkinitrd_setup
%config %{_sysconfdir}/bash_completion.d/lsinitrd
%{_datadir}/pkgconfig/dracut.pc

%config(noreplace) %{_sysconfdir}/dracut.conf
%dir %{_sysconfdir}/dracut.conf.d
%dir /usr/lib/dracut/dracut.conf.d
%config %{_sysconfdir}/dracut.conf.d/99-debug.conf
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel}
/usr/lib/dracut/dracut.conf.d/01-dist.conf
%endif
%ifarch %ix86 x86_64
%config %{_sysconfdir}/dracut.conf.d/02-early-microcode.conf
%endif
%ifarch s390 s390x
%config %{_sysconfdir}/dracut.conf.d/10-s390x_persistent_device.conf
%endif

%{_mandir}/man8/dracut.8*
%{_mandir}/man8/mkinitrd.8*
%{_mandir}/man1/lsinitrd.1*
%{_mandir}/man7/dracut.kernel.7*
%{_mandir}/man7/dracut.cmdline.7*
%{_mandir}/man7/dracut.bootup.7*
%{_mandir}/man7/dracut.modules.7*
%{_mandir}/man8/dracut-cmdline.service.8*
%{_mandir}/man8/dracut-initqueue.service.8*
%{_mandir}/man8/dracut-pre-pivot.service.8*
%{_mandir}/man8/dracut-pre-trigger.service.8*
%{_mandir}/man8/dracut-pre-udev.service.8*
%{_mandir}/man8/dracut-mount.service.8.*
%{_mandir}/man8/dracut-pre-mount.service.8.*
%{_mandir}/man8/dracut-shutdown.service.8.*
%{_mandir}/man5/dracut.conf.5*

%dir %{_libexecdir}/kernel
%dir %{_libexecdir}/kernel/install.d
%{_libexecdir}/kernel/install.d/50-dracut.install
%{_libexecdir}/kernel/install.d/51-dracut-rescue.install

%dir %{dracutlibdir}
%{dracutlibdir}/skipcpio
%{dracutlibdir}/dracut-functions.sh
%{dracutlibdir}/dracut-init.sh
%{dracutlibdir}/dracut-functions
%{dracutlibdir}/dracut-version.sh
%{dracutlibdir}/dracut-logger.sh
%{dracutlibdir}/dracut-initramfs-restore
%{dracutlibdir}/dracut-install

%dir %{dracutlibdir}/modules.d
%{dracutlibdir}/modules.d/00bash
%{dracutlibdir}/modules.d/00systemd-bootchart
%{dracutlibdir}/modules.d/00warpclock
%{dracutlibdir}/modules.d/00systemd
%{dracutlibdir}/modules.d/01systemd-initrd
%{dracutlibdir}/modules.d/02systemd-networkd
%{dracutlibdir}/modules.d/03modsign
%{dracutlibdir}/modules.d/03rescue
%{dracutlibdir}/modules.d/04watchdog
%{dracutlibdir}/modules.d/10i18n
%{dracutlibdir}/modules.d/30convertfs
%{dracutlibdir}/modules.d/40network
%{dracutlibdir}/modules.d/45url-lib
%{dracutlibdir}/modules.d/45ifcfg
%{dracutlibdir}/modules.d/50drm
%{dracutlibdir}/modules.d/50plymouth
%{dracutlibdir}/modules.d/80cms
%{dracutlibdir}/modules.d/81cio_ignore
%{dracutlibdir}/modules.d/90livenet
%{dracutlibdir}/modules.d/90btrfs
%{dracutlibdir}/modules.d/90crypt
%{dracutlibdir}/modules.d/90dm
%{dracutlibdir}/modules.d/90dmraid
%{dracutlibdir}/modules.d/90dmsquash-live
%{dracutlibdir}/modules.d/90kernel-modules
%{dracutlibdir}/modules.d/90lvm
%{dracutlibdir}/modules.d/90mdraid
%{dracutlibdir}/modules.d/90multipath
%{dracutlibdir}/modules.d/90qemu
%{dracutlibdir}/modules.d/90kernel-network-modules
%{dracutlibdir}/modules.d/91crypt-gpg
%{dracutlibdir}/modules.d/91crypt-loop
%{dracutlibdir}/modules.d/91zipl
%{dracutlibdir}/modules.d/95znet
%{dracutlibdir}/modules.d/95fcoe-uefi
%{dracutlibdir}/modules.d/95nbd
%{dracutlibdir}/modules.d/95nfs
%{dracutlibdir}/modules.d/95ssh-client
%{dracutlibdir}/modules.d/95fcoe
%{dracutlibdir}/modules.d/95iscsi
%{dracutlibdir}/modules.d/95cifs
%{dracutlibdir}/modules.d/95debug
%{dracutlibdir}/modules.d/95resume
%{dracutlibdir}/modules.d/95rootfs-block
%{dracutlibdir}/modules.d/95dcssblk
%{dracutlibdir}/modules.d/95dasd
%{dracutlibdir}/modules.d/95dasd_mod
%{dracutlibdir}/modules.d/95dasd_rules
%{dracutlibdir}/modules.d/95fstab-sys
%{dracutlibdir}/modules.d/95lunmask
%{dracutlibdir}/modules.d/95zfcp
%{dracutlibdir}/modules.d/95zfcp_rules
%{dracutlibdir}/modules.d/95terminfo
%{dracutlibdir}/modules.d/95udev-rules
%{dracutlibdir}/modules.d/95virtfs
%{dracutlibdir}/modules.d/97biosdevname
%{dracutlibdir}/modules.d/98ecryptfs
%{dracutlibdir}/modules.d/98pollcdrom
%{dracutlibdir}/modules.d/98selinux
%{dracutlibdir}/modules.d/98syslog
%{dracutlibdir}/modules.d/98dracut-systemd
%{dracutlibdir}/modules.d/98usrmount
%{dracutlibdir}/modules.d/99base
%{dracutlibdir}/modules.d/99fs-lib
%{dracutlibdir}/modules.d/99img-lib
%{dracutlibdir}/modules.d/99shutdown
%{dracutlibdir}/modules.d/99suse
%{dracutlibdir}/modules.d/99uefi-lib

# executable fixups
%attr(0755,root,root) %{dracutlibdir}/modules.d/00warpclock/warpclock.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/90livenet/livenet-generator.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/90multipath/multipath-shutdown.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/95dcssblk/parse-dcssblk.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/95dcssblk/module-setup.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/95fcoe/cleanup-fcoe.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/95fcoe/stop-fcoe.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/99suse/parse-suse-initrd.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/99suse/module-setup.sh

%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/sas_transport_scan_lun.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/parse-lunmask.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/fc_transport_scan_lun.sh
%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/module-setup.sh

%config(noreplace) %{_sysconfdir}/logrotate.d/dracut
%attr(0640,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
%dir %{_unitdir}/initrd.target.wants
%dir %{_unitdir}/sysinit.target.wants
%{_unitdir}/*.service
%{_unitdir}/*/*.service
%config %{_sysconfdir}/bash_completion.d/dracut

%changelog
openSUSE Build Service is sponsored by