# Variables must be defined %define with_switch_root 1 %define with_nbd 1 # switchroot provided by util-linux-ng in F-12+ %if 0%{?fedora} > 11 || 0%{?rhel} >= 6 %define with_switch_root 0 %endif # nbd in Fedora only %if 0%{?rhel} >= 6 %define with_nbd 0 %endif %if %{defined gittag} %define rdist .git%{gittag}%{?dist} %define dashgittag -%{gittag} %else %define rdist %{?dist} %endif Name: dracut Version: 005 Release: 2%{?rdist} Summary: Initramfs generator using udev Group: System Environment/Base License: GPLv2+ URL: http://apps.sourceforge.net/trac/dracut/wiki # Source can be generated by # http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=snapshot;h=%{?dashgittag};sf=tgz Source0: dracut-%{version}%{?dashgittag}.tar.bz2 Patch1: 0001-dracut.8-fixed-LUKS-paragraph.patch Patch2: 0002-dracut.8-add-information-which-parameter-can-be-spec.patch Patch3: 0003-dmraid-parse-different-error-messages.patch Patch4: 0004-init-add-hacky-cdrom-polling-mechanism.patch Patch5: 0005-add-module-btrfs.patch Patch6: 0006-teach-dmsquash-live-root-to-use-rootflags.patch Patch7: 0007-init-trigger-with-action-add.patch Patch8: 0008-add-missing-paragraph-for-add-drivers.patch Patch9: 0009-manpage-addition-for-kernel-drivers.patch Patch10: 0010-dracut-add_drivers-from-the-command-line-should-add-.patch Patch11: 0011-AUTHORS-updated.patch Patch12: 0012-kernel-modules-hardcode-sr_mod.patch Patch13: 0013-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch Patch15: 0015-Use-pigz-for-gzipping-if-available.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 # no "provides", because dracut does not offer # all functionality of the obsoleted packages Obsoletes: mkinitrd <= 6.0.93 Obsoletes: mkinitrd-devel <= 6.0.93 Obsoletes: nash <= 6.0.93 Obsoletes: libbdevid-python <= 6.0.93 %endif Obsoletes: dracut-kernel < 005 Provides: dracut-kernel = %{version}-%{release} Requires: udev Requires: util-linux-ng Requires: module-init-tools >= 3.7-9 Requires: cpio Requires: coreutils Requires: findutils Requires: binutils Requires: grep Requires: which Requires: mktemp >= 1.5-5 Requires: mount Requires: bash Requires: dash Requires: /bin/sh Requires: fileutils, gzip, tar Requires: lvm2 >= 2.02.33-9, dhclient Requires: filesystem >= 2.1.0, cpio, device-mapper, initscripts >= 8.63-1 Requires: e2fsprogs >= 1.38-12, coreutils Requires: mdadm, elfutils-libelf Requires(pre): plymouth >= 0.8.0-0.2009.29.09.19.1 Requires: plymouth >= 0.8.0-0.2009.29.09.19.1 Requires: cryptsetup-luks Requires: file Requires: bzip2 Requires: dmraid Requires: kbd Requires: plymouth-scripts %if ! 0%{?with_switch_root} Requires: util-linux-ng >= 2.16 BuildArch: noarch %endif %description Dracut contains tools to create a bootable initramfs for 2.6 Linux kernels. Unlike existing implementations, dracut does hard-code 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 Requires: %{name} = %{version}-%{release} Requires: rpcbind nfs-utils Requires: iscsi-initiator-utils %if %{with_nbd} Requires: nbd %endif Requires: net-tools iproute Requires: bridge-utils %description network This package requires everything which is needed to build a generic all purpose initramfs with network support with dracut. %package fips Summary: Dracut modules to build a dracut initramfs with an integrity check Requires: %{name} = %{version}-%{release} Requires: hmaccalc %if 0%{?rhel} > 5 # For Alpha 3, we want nss instead of nss-softokn Requires: nss %else Requires: nss-softokn %endif Requires: nss-softokn-freebl %description fips This package requires everything which is needed to build an all purpose initramfs with dracut, which does an integrity check. %package generic Summary: Metapackage to build a generic initramfs with dracut Requires: %{name} = %{version}-%{release} Requires: %{name}-network = %{version}-%{release} %description generic This package requires everything which is needed to build a generic all purpose initramfs with dracut. %package tools Summary: Dracut tools to build the local initramfs Requires: coreutils cryptsetup-luks device-mapper Requires: diffutils dmraid findutils gawk grep lvm2 Requires: module-init-tools sed Requires: cpio gzip %description tools This package contains tools to assemble the local initrd and host configuration. %prep %setup -q -n %{name}-%{version}%{?dashgittag} %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch15 -p1 %build make WITH_SWITCH_ROOT=0%{?with_switch_root} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT sbindir=/sbin \ sysconfdir=/etc mandir=%{_mandir} WITH_SWITCH_ROOT=0%{?with_switch_root} echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/10rpmversion/dracut-version rm $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/01fips/check mkdir -p $RPM_BUILD_ROOT/boot/dracut mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log %if 0%{?fedora} <= 12 && 0%{?rhel} < 6 rm $RPM_BUILD_ROOT/sbin/mkinitrd rm $RPM_BUILD_ROOT/sbin/lsinitrd %endif %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,0755) %doc README HACKING TODO COPYING AUTHORS NEWS /sbin/dracut %if 0%{?with_switch_root} /sbin/switch_root %endif %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 /sbin/mkinitrd /sbin/lsinitrd %endif %dir %{_datadir}/dracut %{_datadir}/dracut/dracut-functions %config(noreplace) /etc/dracut.conf %dir /etc/dracut.conf.d %{_mandir}/man8/dracut.8* %{_mandir}/man5/dracut.conf.5* %{_datadir}/dracut/modules.d/00dash %{_datadir}/dracut/modules.d/10redhat-i18n %{_datadir}/dracut/modules.d/10rpmversion %{_datadir}/dracut/modules.d/50plymouth %{_datadir}/dracut/modules.d/60xen %{_datadir}/dracut/modules.d/90btrfs %{_datadir}/dracut/modules.d/90crypt %{_datadir}/dracut/modules.d/90dm %{_datadir}/dracut/modules.d/90dmraid %{_datadir}/dracut/modules.d/90dmsquash-live %{_datadir}/dracut/modules.d/90kernel-modules %{_datadir}/dracut/modules.d/90lvm %{_datadir}/dracut/modules.d/90mdraid %{_datadir}/dracut/modules.d/90multipath %{_datadir}/dracut/modules.d/95debug %{_datadir}/dracut/modules.d/95resume %{_datadir}/dracut/modules.d/95rootfs-block %{_datadir}/dracut/modules.d/95dasd %{_datadir}/dracut/modules.d/95dasd_mod %{_datadir}/dracut/modules.d/95zfcp %{_datadir}/dracut/modules.d/95znet %{_datadir}/dracut/modules.d/95terminfo %{_datadir}/dracut/modules.d/95udev-rules %{_datadir}/dracut/modules.d/95uswsusp %{_datadir}/dracut/modules.d/98syslog %{_datadir}/dracut/modules.d/99base # logfile needs no logrotate, because it gets overwritten # for every dracut run %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log %files network %defattr(-,root,root,0755) %doc README HACKING TODO COPYING AUTHORS NEWS %{_datadir}/dracut/modules.d/40network %{_datadir}/dracut/modules.d/95fcoe %{_datadir}/dracut/modules.d/95iscsi %{_datadir}/dracut/modules.d/95nbd %{_datadir}/dracut/modules.d/95nfs %{_datadir}/dracut/modules.d/45ifcfg %files fips %defattr(-,root,root,0755) %doc COPYING %{_datadir}/dracut/modules.d/01fips %files generic %defattr(-,root,root,0755) %doc README.generic %files tools %defattr(-,root,root,0755) %doc COPYING NEWS %{_mandir}/man8/dracut-gencmdline.8* %{_mandir}/man8/dracut-catimages.8* /sbin/dracut-gencmdline /sbin/dracut-catimages %dir /boot/dracut %dir /var/lib/dracut %dir /var/lib/dracut/overlay %changelog * Thu Apr 15 2010 Harald Hoyer 005-2 - fixed dracut manpages - dmraid parse different error messages - add cdrom polling mechanism for slow cdroms - add module btrfs - teach dmsquash live-root to use rootflags - trigger udev with action=add - fixed add_drivers handling - add sr_mod - use pigz instead of gzip, if available * Fri Mar 19 2010 Harald Hoyer 005-1 - version 005 * Fri Jan 29 2010 Harald Hoyer 004-5 - fixed firmware.sh bug (#559975 #559597) * Tue Jan 26 2010 Harald Hoyer 004-4 - add multipath check * Tue Jan 26 2010 Harald Hoyer 004-3 - fix selinux handling if .autorelabel is present - Resolves: rhbz#557744 * Wed Jan 20 2010 Harald Hoyer 004-2 - fix emergency_shell argument parsing - Related: rhbz#543948 * Fri Jan 15 2010 Harald Hoyer 004-1 - version 004 - Resolves: rhbz#529339 rhbz#533494 rhbz#548550 - Resolves: rhbz#548555 rhbz#553195 * Wed Jan 13 2010 Harald Hoyer 003-3 - add Obsoletes of mkinitrd/nash/libbdevid-python - Related: rhbz#543948 * Wed Jan 13 2010 Warren Togami 003-2 - nbd is Fedora only * Fri Nov 27 2009 Harald Hoyer 003-1 - version 003 * Mon Nov 23 2009 Harald Hoyer 002-26 - add WITH_SWITCH_ROOT make flag - add fips requirement conditional - add more device mapper modules (bug #539656) * Fri Nov 20 2009 Dennis Gregorovic - 002-25.1 - nss changes for Alpha 3 * Thu Nov 19 2009 Harald Hoyer 002-25 - add more requirements for dracut-fips (bug #539257) * Tue Nov 17 2009 Harald Hoyer 002-24 - put fips module in a subpackage (bug #537619) * Tue Nov 17 2009 Harald Hoyer 002-23 - install xdr utils for multipath (bug #463458) * Thu Nov 12 2009 Harald Hoyer 002-22 - add module 90multipath - add module 01fips - renamed module 95ccw to 95znet (bug #533833) - crypt: ignore devices in /etc/crypttab (root is not in there) - dasd: only install /etc/dasd.conf in hostonly mode (bug #533833) - zfcp: only install /etc/zfcp.conf in hostonly mode (bug #533833) - kernel-modules: add scsi_dh scsi_dh_rdac scsi_dh_emc (bug #527750) - dasd: use dasdconf.sh from s390utils (bug #533833) * Fri Nov 06 2009 Harald Hoyer 002-21 - fix rd_DASD argument handling (bug #531720) - Resolves: rhbz#531720 * Wed Nov 04 2009 Harald Hoyer 002-20 - fix rd_DASD argument handling (bug #531720) - Resolves: rhbz#531720 * Tue Nov 03 2009 Harald Hoyer 002-19 - changed rd_DASD to rd_DASD_MOD (bug #531720) - Resolves: rhbz#531720 * Tue Oct 27 2009 Harald Hoyer 002-18 - renamed lvm/device-mapper udev rules according to upstream changes - fixed dracut search path issue * Mon Oct 26 2009 Harald Hoyer 002-17 - load dm_mod module (bug #530540) * Fri Oct 09 2009 Jesse Keating - 002-16 - Upgrade plymouth to Requires(pre) to make it show up before kernel * Thu Oct 08 2009 Harald Hoyer 002-15 - s390 ccw: s/layer1/layer2/g * Thu Oct 08 2009 Harald Hoyer 002-14 - add multinic support - add s390 zfcp support - add s390 network support * Wed Oct 07 2009 Harald Hoyer 002-13 - fixed init= handling - kill loginit if "rdinitdebug" specified - run dmsquash-live-root after udev has settled (bug #527514) * Tue Oct 06 2009 Harald Hoyer 002-12 - add missing loginit helper - corrected dracut manpage * Thu Oct 01 2009 Harald Hoyer 002-11 - fixed dracut-gencmdline for root=UUID or LABEL * Thu Oct 01 2009 Harald Hoyer 002-10 - do not destroy assembled raid arrays if mdadm.conf present - mount /dev/shm - let udevd not resolve group and user names - preserve timestamps of tools on initramfs generation - generate symlinks for binaries correctly - moved network from udev to initqueue - mount nfs3 with nfsvers=3 option and retry with nfsvers=2 - fixed nbd initqueue-finished - improved debug output: specifying "rdinitdebug" now logs to dmesg, console and /init.log - stop udev before killing it - add ghost /var/log/dracut.log - dmsquash: use info() and die() rather than echo - strip kernel modules which have no x bit set - redirect stdin, stdout, stderr all RW to /dev/console so the user can use "less" to view /init.log and dmesg * Tue Sep 29 2009 Harald Hoyer 002-9 - make install of new dm/lvm udev rules optionally - correct dasd module typo * Fri Sep 25 2009 Warren Togami 002-8 - revert back to dracut-002-5 tarball 845dd502 lvm2 was reverted to pre-udev * Wed Sep 23 2009 Harald Hoyer 002-7 - build with the correct tarball * Wed Sep 23 2009 Harald Hoyer 002-6 - add new device mapper udev rules and dmeventd bug 525319, 525015 * Wed Sep 23 2009 Warren Togami 002-5 - Revert back to -3, Add umount back to initrd This makes no functional difference to LiveCD. See Bug #525319 * Mon Sep 21 2009 Warren Togami 002-4 - Fix LiveCD boot regression * Mon Sep 21 2009 Harald Hoyer 002-3 - bail out if selinux policy could not be loaded and selinux=0 not specified on kernel command line (bug #524113) - set finished criteria for dmsquash live images * Fri Sep 18 2009 Harald Hoyer 002-2 - do not cleanup dmraids - copy over lvm.conf * Thu Sep 17 2009 Harald Hoyer 002-1 - version 002 - set correct PATH - workaround for broken mdmon implementation * Wed Sep 16 2009 Harald Hoyer 001-12 - removed lvm/mdraid/dmraid lock files - add missing ifname= files * Wed Sep 16 2009 Harald Hoyer 001-11 - generate dracut-version during rpm build time * Tue Sep 15 2009 Harald Hoyer 001-10 - add ifname= argument for persistent netdev names - new /initqueue-finished to check if the main loop can be left - copy mdadm.conf if --mdadmconf set or mdadmconf in dracut.conf * Wed Sep 09 2009 Harald Hoyer 001-9 - added Requires: plymouth-scripts * Wed Sep 09 2009 Harald Hoyer 001-8 - plymouth: use plymouth-populate-initrd - add add_drivers for dracut and dracut.conf - do not mount /proc and /selinux manually in selinux-load-policy * Wed Sep 09 2009 Harald Hoyer 001-7 - add scsi_wait_scan to be sure everything was scanned * Tue Sep 08 2009 Harald Hoyer 001-6 - fixed several problems with md raid containers - fixed selinux policy loading * Tue Sep 08 2009 Harald Hoyer 001-5 - patch does not honor file modes, fixed them manually * Mon Sep 07 2009 Harald Hoyer 001-4 - fixed mdraid for IMSM * Mon Sep 07 2009 Harald Hoyer 001-3 - fixed bug, which prevents installing 61-persistent-storage.rules (bug #520109) * Thu Sep 03 2009 Harald Hoyer 001-2 - fixed missing grep for md - reorder cleanup * Wed Sep 02 2009 Harald Hoyer 001-1 - version 001 - see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS * Fri Aug 14 2009 Harald Hoyer 0.9-1 - version 0.9 * Thu Aug 06 2009 Harald Hoyer 0.8-1 - version 0.8 - see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS * Fri Jul 24 2009 Harald Hoyer 0.7-1 - version 0.7 - see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS * Wed Jul 22 2009 Harald Hoyer 0.6-1 - version 0.6 - see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS * Fri Jul 17 2009 Harald Hoyer 0.5-1 - version 0.5 - see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS * Sat Jul 04 2009 Harald Hoyer 0.4-1 - version 0.4 - see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS * Thu Jul 02 2009 Harald Hoyer 0.3-1 - version 0.3 - see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS * Wed Jul 01 2009 Harald Hoyer 0.2-1 - version 0.2 * Fri Jun 19 2009 Harald Hoyer 0.1-1 - first release * Thu Dec 18 2008 Jeremy Katz - 0.0-1 - Initial build