# SPDX-License-Identifier: GPL-2.0-or-later %define _unpackaged_files_terminate_build 1 %define dracutlibdir %prefix/lib/dracut %def_enable documentation # We ship a .pc file but don't want to have a dep on pkg-config. We # strip the automatically generated dep here and instead co-own the # directory. %filter_from_requires /pkg-config/d %filter_from_requires /^\/usr\/share\/pkgconfig/d Name: dracut Version: 060 Release: alt0.1 Summary: Initramfs generator using udev Group: System/Base # The entire source code is GPLv2+ # except install/* which is LGPLv2+ # except util/* which is GPLv2 License: GPLv2+ and LGPLv2+ and GPLv2 Vcs: https://github.com/dracutdevs/dracut.git Url: https://dracut.wiki.kernel.org/ Source: %name-%version.tar BuildRequires: bash >= 4 BuildRequires: git-core BuildRequires: pkgconfig(libkmod) >= 23 BuildRequires: systemd-devel BuildRequires: bash-completion %if_enabled documentation BuildRequires: docbook-style-xsl docbook-dtds xsltproc BuildRequires: asciidoc xsltproc %endif Requires: bash >= 4 Requires: coreutils Requires: cpio Requires: filesystem Requires: findutils Requires: grep Requires: kmod Requires: sed Requires: xz Requires: gzip Requires: pigz Requires: util-linux >= 2.21 Requires: udev >= 219 Requires: hardlink Requires: kpartx Requires: procps AutoReq: noshell, noshebang %description dracut contains tools to create bootable initramfses for the Linux kernel. Unlike previous implementations, dracut hard-codes as little as possible into the initramfs. dracut contains various modules which are driven by the event-based udev. Having root on MD, DM, LVM2, LUKS is supported as well as NFS, iSCSI, NBD, FCoE with the dracut-network package. %package network Summary: Dracut modules to build a dracut initramfs with network support Group: System/Base BuildArch: noarch Requires: %name = %EVR Requires: iputils Requires: iproute Requires: curl AutoReq: noshell, noshebang %description network This package requires everything which is needed to build a generic all purpose initramfs with network support with dracut. %package network-manager Summary: Dracut modules to build a dracut initramfs with network manager Group: System/Base BuildArch: noarch Requires: %name = %EVR Requires: NetworkManager AutoReq: noshell, noshebang %description network-manager This package requires everything which is needed to build a generic all purpose initramfs with NetworkManager dracut module. %package caps Summary: Dracut modules to build a dracut initramfs which drops capabilities Group: System/Base BuildArch: noarch Requires: %name = %EVR Requires: libcap-utils AutoReq: noshell, noshebang %description caps This package requires everything which is needed to build an initramfs with dracut, which drops capabilities. %package live Summary: Dracut modules to build a dracut initramfs with live image capabilities Group: System/Base BuildArch: noarch Requires: %name = %EVR Requires: %name-network = %EVR Requires: tar gzip coreutils bash dmsetup curl parted #Requires: fuse ntfs-3g AutoReq: noshell, noshebang %description live This package requires everything which is needed to build an initramfs with dracut, with live image capabilities, like Live CDs. %package config-generic Summary: Dracut configuration to turn off hostonly image generation Group: System/Base BuildArch: noarch Requires: %name = %EVR AutoReq: noshell, noshebang %description config-generic This package provides the configuration to turn off the host specific initramfs generation with dracut and generates a generic image by default. %package config-rescue Summary: Dracut configuration to turn on rescue image generation Group: System/Base BuildArch: noarch Requires: %name = %EVR AutoReq: noshell, noshebang %description config-rescue This package provides the configuration to turn on the rescue initramfs generation with dracut. %package tools Summary: Dracut tools to build the local initramfs Group: System/Base BuildArch: noarch Requires: %name = %EVR AutoReq: noshell, noshebang %description tools This package contains tools to assemble the local initrd and host configuration. %package squash Summary: Dracut module to build an initramfs with most files in a squashfs image Group: System/Base BuildArch: noarch Requires: %name = %EVR Requires: squashfs-tools AutoReq: noshell, noshebang %description squash This package provides a dracut module to build an initramfs, but store most files in a squashfs image, result in a smaller initramfs size and reduce runtime memory usage. %package fips Summary: Dracut modules to build a dracut initramfs with an integrity check Group: System/Base BuildArch: noarch Requires: %name = %EVR Requires: libkcapi-fipscheck Requires: libkcapi-hmaccalc AutoReq: noshell, noshebang %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 BuildArch: noarch Requires: %name = %EVR #Requires: evmctl Requires: keyutils AutoReq: noshell, noshebang %description ima This package requires everything which is needed to build an initramfs (using dracut) which tries to load an IMA policy during startup. %prep %setup echo "DRACUT_VERSION=%version" > dracut-version.sh %build %configure \ --systemdsystemunitdir=%_unitdir \ --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) \ --libdir=%prefix/lib \ %{subst_enable documentation} %make_build %install %makeinstall_std \ libdir=%prefix/lib echo "DRACUT_VERSION=%version-%release" > %buildroot%dracutlibdir/dracut-version.sh # compatibility symlinks mkdir -p %buildroot/sbin # Cleanup rm -fr -- %buildroot%dracutlibdir/modules.d/01fips # we do not support dash in the initramfs rm -fr -- %buildroot%dracutlibdir/modules.d/00dash # we do not support mksh in the initramfs rm -fr -- %buildroot%dracutlibdir/modules.d/00mksh # with systemd IMA and selinux modules do not make sense rm -fr -- %buildroot%dracutlibdir/modules.d/96securityfs rm -fr -- %buildroot%dracutlibdir/modules.d/97masterkey rm -fr -- %buildroot%dracutlibdir/modules.d/98integrity %ifnarch s390 s390x # remove architecture specific modules rm -fr -- %buildroot%dracutlibdir/modules.d/80cms rm -fr -- %buildroot%dracutlibdir/modules.d/81cio_ignore rm -fr -- %buildroot%dracutlibdir/modules.d/91zipl rm -fr -- %buildroot%dracutlibdir/modules.d/95dasd rm -fr -- %buildroot%dracutlibdir/modules.d/95dasd_mod rm -fr -- %buildroot%dracutlibdir/modules.d/95dasd_rules rm -fr -- %buildroot%dracutlibdir/modules.d/95dcssblk rm -fr -- %buildroot%dracutlibdir/modules.d/95qeth_rules rm -fr -- %buildroot%dracutlibdir/modules.d/95zfcp rm -fr -- %buildroot%dracutlibdir/modules.d/95zfcp_rules rm -fr -- %buildroot%dracutlibdir/modules.d/95znet %else rm -fr -- %buildroot%dracutlibdir/modules.d/00warpclock %endif %ifnarch ppc ppc64 rm -fr -- %buildroot%dracutlibdir/modules.d/90ppcmac %endif # remove gentoo specific modules rm -fr -- %buildroot%dracutlibdir/modules.d/50gensplash mkdir -p %buildroot/boot/dracut mkdir -p %buildroot/%_var/lib/dracut/overlay mkdir -p %buildroot%_logdir touch %buildroot%_logdir/dracut.log mkdir -p %buildroot%_sharedstatedir/initramfs install -m 0644 dracut.conf.d/alt.conf.example %buildroot%dracutlibdir/dracut.conf.d/01-dist.conf rm -f %buildroot%_mandir/man?/*suse* echo 'hostonly="no"' > %buildroot%dracutlibdir/dracut.conf.d/02-generic-image.conf echo 'dracut_rescue_image="yes"' > %buildroot%dracutlibdir/dracut.conf.d/02-rescue.conf %files %if_enabled documentation %doc README.md docs/HACKING.md AUTHORS NEWS.md dracut.html docs/dracut.png docs/dracut.svg %endif %doc COPYING %_sbindir/dracut %_datadir/bash-completion/completions/dracut %_datadir/bash-completion/completions/lsinitrd %_bindir/lsinitrd %dir %dracutlibdir %dir %dracutlibdir/modules.d %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 %dracutlibdir/dracut-util %dracutlibdir/skipcpio %config(noreplace) %_sysconfdir/dracut.conf %dracutlibdir/dracut.conf.d/01-dist.conf %dir %_sysconfdir/dracut.conf.d %dir %dracutlibdir/dracut.conf.d %_datadir/pkgconfig/dracut.pc %if_enabled documentation %_mandir/man8/dracut.8* %_mandir/man8/*service.8* %_mandir/man1/lsinitrd.1* %_mandir/man7/dracut.kernel.7* %_mandir/man7/dracut.cmdline.7* %_mandir/man7/dracut.modules.7* %_mandir/man7/dracut.bootup.7* %_mandir/man5/dracut.conf.5* %endif %dracutlibdir/modules.d/00bash %dracutlibdir/modules.d/00systemd %dracutlibdir/modules.d/00systemd-network-management %ifnarch s390 s390x %dracutlibdir/modules.d/00warpclock %endif #%dracutlibdir/modules.d/01fips %dracutlibdir/modules.d/01systemd-ac-power %dracutlibdir/modules.d/01systemd-ask-password %dracutlibdir/modules.d/01systemd-coredump %dracutlibdir/modules.d/01systemd-creds %dracutlibdir/modules.d/01systemd-hostnamed %dracutlibdir/modules.d/01systemd-initrd %dracutlibdir/modules.d/01systemd-integritysetup %dracutlibdir/modules.d/01systemd-journald %dracutlibdir/modules.d/01systemd-ldconfig %dracutlibdir/modules.d/01systemd-modules-load %dracutlibdir/modules.d/01systemd-pcrphase %dracutlibdir/modules.d/01systemd-portabled %dracutlibdir/modules.d/01systemd-pstore %dracutlibdir/modules.d/01systemd-repart %dracutlibdir/modules.d/01systemd-resolved %dracutlibdir/modules.d/01systemd-sysext %dracutlibdir/modules.d/01systemd-sysctl %dracutlibdir/modules.d/01systemd-sysusers %dracutlibdir/modules.d/01systemd-timedated %dracutlibdir/modules.d/01systemd-timesyncd %dracutlibdir/modules.d/01systemd-tmpfiles %dracutlibdir/modules.d/01systemd-udevd %dracutlibdir/modules.d/01systemd-veritysetup %dracutlibdir/modules.d/03modsign %dracutlibdir/modules.d/03rescue %dracutlibdir/modules.d/04watchdog %dracutlibdir/modules.d/04watchdog-modules %dracutlibdir/modules.d/05busybox %dracutlibdir/modules.d/06dbus-broker %dracutlibdir/modules.d/06dbus-daemon %dracutlibdir/modules.d/06rngd %dracutlibdir/modules.d/09dbus %dracutlibdir/modules.d/10i18n %dracutlibdir/modules.d/30convertfs %dracutlibdir/modules.d/50drm %dracutlibdir/modules.d/50plymouth %dracutlibdir/modules.d/62bluetooth %dracutlibdir/modules.d/80lvmmerge %dracutlibdir/modules.d/80lvmthinpool-monitor %dracutlibdir/modules.d/80test %dracutlibdir/modules.d/80test-makeroot %dracutlibdir/modules.d/80test-root %dracutlibdir/modules.d/90btrfs %dracutlibdir/modules.d/90crypt %dracutlibdir/modules.d/90dm %dracutlibdir/modules.d/90dmraid %dracutlibdir/modules.d/90kernel-modules %dracutlibdir/modules.d/90kernel-modules-extra %dracutlibdir/modules.d/90lvm %dracutlibdir/modules.d/90mdraid %dracutlibdir/modules.d/90multipath %dracutlibdir/modules.d/90nvdimm %dracutlibdir/modules.d/90overlayfs %ifarch ppc ppc64 %dracutlibdir/modules.d/90ppcmac %endif %dracutlibdir/modules.d/90qemu %dracutlibdir/modules.d/91crypt-gpg %dracutlibdir/modules.d/91crypt-loop %dracutlibdir/modules.d/91fido2 %dracutlibdir/modules.d/91pcsc %dracutlibdir/modules.d/91pkcs11 %dracutlibdir/modules.d/91tpm2-tss %dracutlibdir/modules.d/95debug %dracutlibdir/modules.d/95fstab-sys %dracutlibdir/modules.d/95lunmask %dracutlibdir/modules.d/95nvmf %dracutlibdir/modules.d/95resume %dracutlibdir/modules.d/95rootfs-block %dracutlibdir/modules.d/95terminfo %dracutlibdir/modules.d/95udev-rules %dracutlibdir/modules.d/95virtfs %dracutlibdir/modules.d/95virtiofs %ifarch s390 s390x %dracutlibdir/modules.d/80cms %dracutlibdir/modules.d/81cio_ignore %dracutlibdir/modules.d/91zipl %dracutlibdir/modules.d/95dasd %dracutlibdir/modules.d/95dasd_mod %dracutlibdir/modules.d/95dasd_rules %dracutlibdir/modules.d/95dcssblk %dracutlibdir/modules.d/95qeth_rules %dracutlibdir/modules.d/95zfcp %dracutlibdir/modules.d/95zfcp_rules %endif #%dracutlibdir/modules.d/96securityfs #%dracutlibdir/modules.d/97masterkey #%dracutlibdir/modules.d/98integrity %dracutlibdir/modules.d/97biosdevname %dracutlibdir/modules.d/98dracut-systemd %dracutlibdir/modules.d/98ecryptfs %dracutlibdir/modules.d/98pollcdrom %dracutlibdir/modules.d/98selinux %dracutlibdir/modules.d/98syslog %dracutlibdir/modules.d/98usrmount %dracutlibdir/modules.d/99base %dracutlibdir/modules.d/99memstrack %dracutlibdir/modules.d/99fs-lib %dracutlibdir/modules.d/99shutdown %attr(0644,root,root) %ghost %config(missingok,noreplace) %_logdir/dracut.log %dir %_sharedstatedir/initramfs %_unitdir/dracut-shutdown.service %_unitdir/sysinit.target.wants/dracut-shutdown.service %_unitdir/dracut-shutdown-onfailure.service %_unitdir/dracut-cmdline.service %_unitdir/dracut-initqueue.service %_unitdir/dracut-mount.service %_unitdir/dracut-pre-mount.service %_unitdir/dracut-pre-pivot.service %_unitdir/dracut-pre-trigger.service %_unitdir/dracut-pre-udev.service %_unitdir/initrd.target.wants/dracut-cmdline.service %_unitdir/initrd.target.wants/dracut-initqueue.service %_unitdir/initrd.target.wants/dracut-mount.service %_unitdir/initrd.target.wants/dracut-pre-mount.service %_unitdir/initrd.target.wants/dracut-pre-pivot.service %_unitdir/initrd.target.wants/dracut-pre-trigger.service %_unitdir/initrd.target.wants/dracut-pre-udev.service %prefix/lib/kernel/install.d/50-dracut.install %files network %dracutlibdir/modules.d/01systemd-networkd %dracutlibdir/modules.d/35connman %dracutlibdir/modules.d/35network-legacy %dracutlibdir/modules.d/40network %dracutlibdir/modules.d/45ifcfg %dracutlibdir/modules.d/45url-lib %dracutlibdir/modules.d/90kernel-network-modules %dracutlibdir/modules.d/90qemu-net %dracutlibdir/modules.d/95cifs %dracutlibdir/modules.d/95fcoe %dracutlibdir/modules.d/95fcoe-uefi %dracutlibdir/modules.d/95iscsi %dracutlibdir/modules.d/95nbd %dracutlibdir/modules.d/95nfs %dracutlibdir/modules.d/95ssh-client %ifarch s390 s390x %dracutlibdir/modules.d/95znet %endif %dracutlibdir/modules.d/99uefi-lib %files network-manager %dracutlibdir/modules.d/35network-manager %files caps %dracutlibdir/modules.d/02caps %files live %dracutlibdir/modules.d/99img-lib %dracutlibdir/modules.d/90dmsquash-live %dracutlibdir/modules.d/90dmsquash-live-autooverlay %dracutlibdir/modules.d/90dmsquash-live-ntfs %dracutlibdir/modules.d/90livenet %files tools %if_enabled documentation %doc %_man8dir/dracut-catimages.8* %endif %_sbindir/dracut-catimages %dir /boot/dracut %dir %_var/lib/dracut %dir %_var/lib/dracut/overlay %files squash %dracutlibdir/modules.d/99squash %files config-generic %dracutlibdir/dracut.conf.d/02-generic-image.conf %files config-rescue %dracutlibdir/dracut.conf.d/02-rescue.conf %prefix/lib/kernel/install.d/51-dracut-rescue.install #%files fips #%config %_sysconfdir/dracut.conf.d/40-fips.conf #%dracutlibdir/modules.d/01fips #%files ima #%config %_sysconfdir/dracut.conf.d/40-ima.conf #%dracutlibdir/modules.d/96securityfs #%dracutlibdir/modules.d/97masterkey #%dracutlibdir/modules.d/98integrity %changelog * Sun Dec 10 2023 Alexey Shabalin 060-alt0.1 - 060 pre-release * Fri Mar 24 2023 Alexey Shabalin 059-alt1 - 059 * Sat Jul 23 2022 Alexey Shabalin 057-alt1 - 057 * Wed Mar 23 2022 Alexey Shabalin 056-alt1 - 056 * Wed Aug 11 2021 Andrey Sokolov 055-alt3 - Move network-manager module to separate package (closes 40705) * Fri Jul 30 2021 Andrey Sokolov 055-alt2 - Move url-lib module to network package, add dependency on curl (closes 40591) * Mon May 31 2021 Alexey Shabalin 055-alt1 - 055 * Fri Mar 12 2021 Alexey Shabalin 053-alt1 - 053 * Fri Dec 18 2020 Alexey Shabalin 051-alt1 - 051 * Sun Nov 08 2020 Alexey Shabalin 050-alt4.git.831e31 - Fixed path /usr/lib/udev -> /lib/udev * Sat Nov 07 2020 Alexey Shabalin 050-alt3.git.831e31 - Install dracut, dracut-catimages, mkinitrd to sbindir - Delete requires to systemd * Sat Nov 07 2020 Alexey Shabalin 050-alt2.git.831e31 - Update to upstream master snapshot - Update spec - Disable autoreq for shell scripts * Wed Mar 18 2020 Vitaly Chikunov 050-alt1 - Initial import into ALT. - Based on dracut native spec.