diff options
59 files changed, 4193 insertions, 1 deletions
diff --git a/0005-add-documentation-for-systemd-services-in-the-initra.patch b/0005-add-documentation-for-systemd-services-in-the-initra.patch new file mode 100644 index 0000000..344a549 --- /dev/null +++ b/0005-add-documentation-for-systemd-services-in-the-initra.patch @@ -0,0 +1,423 @@ +From 13f77e9fd53682202bbd32faf8f9e55e0b99fec2 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Mon, 23 Jul 2012 11:10:13 +0200 +Subject: [PATCH] add documentation for systemd services in the initramfs + +--- + Makefile | 52 +++++++++++++--------- + dracut.spec | 1 + + modules.d/98systemd/dracut-cmdline.service | 1 + + modules.d/98systemd/dracut-cmdline.service.8.asc | 26 +++++++++++ + modules.d/98systemd/dracut-initqueue.service | 1 + + modules.d/98systemd/dracut-initqueue.service.8.asc | 25 +++++++++++ + modules.d/98systemd/dracut-pre-pivot.service | 1 + + modules.d/98systemd/dracut-pre-pivot.service.8.asc | 25 +++++++++++ + modules.d/98systemd/dracut-pre-trigger.service | 1 + + .../98systemd/dracut-pre-trigger.service.8.asc | 25 +++++++++++ + modules.d/98systemd/dracut-pre-udev.service | 1 + + modules.d/98systemd/dracut-pre-udev.service.8.asc | 25 +++++++++++ + modules.d/98systemd/initrd-switch-root.service | 1 + + .../98systemd/initrd-switch-root.service.8.asc | 25 +++++++++++ + modules.d/98systemd/udevadm-cleanup-db.service | 1 + + .../98systemd/udevadm-cleanup-db.service.8.asc | 25 +++++++++++ + 16 files changed, 215 insertions(+), 21 deletions(-) + create mode 100644 modules.d/98systemd/dracut-cmdline.service.8.asc + create mode 100644 modules.d/98systemd/dracut-initqueue.service.8.asc + create mode 100644 modules.d/98systemd/dracut-pre-pivot.service.8.asc + create mode 100644 modules.d/98systemd/dracut-pre-trigger.service.8.asc + create mode 100644 modules.d/98systemd/dracut-pre-udev.service.8.asc + create mode 100644 modules.d/98systemd/initrd-switch-root.service.8.asc + create mode 100644 modules.d/98systemd/udevadm-cleanup-db.service.8.asc + +diff --git a/Makefile b/Makefile +index 0b29161..548952d 100644 +--- a/Makefile ++++ b/Makefile +@@ -9,28 +9,41 @@ sysconfdir ?= ${prefix}/etc + bindir ?= ${prefix}/bin + mandir ?= ${prefix}/share/man + +-manpages = dracut.8 \ +- dracut.cmdline.7 \ +- dracut.conf.5 \ +- dracut-catimages.8 \ +- lsinitrd.1 \ +- mkinitrd.8 ++man1pages = lsinitrd.1 ++ ++man5pages = dracut.conf.5 ++ ++man7pages = dracut.cmdline.7 ++ ++man8pages = dracut.8 \ ++ dracut-catimages.8 \ ++ mkinitrd.8 \ ++ modules.d/98systemd/dracut-cmdline.service.8 \ ++ modules.d/98systemd/dracut-initqueue.service.8 \ ++ modules.d/98systemd/dracut-pre-pivot.service.8 \ ++ modules.d/98systemd/dracut-pre-trigger.service.8 \ ++ modules.d/98systemd/dracut-pre-udev.service.8 \ ++ modules.d/98systemd/initrd-switch-root.service.8 \ ++ modules.d/98systemd/udevadm-cleanup-db.service.8 ++ ++manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages) ++ + + .PHONY: install clean archive rpm testimage test all check AUTHORS doc + + all: syncheck dracut-version.sh dracut-install + + DRACUT_INSTALL_SOURCE = \ +- install/dracut-install.c \ +- install/hashmap.c\ +- install/log.c \ +- install/util.c ++ install/dracut-install.c \ ++ install/hashmap.c\ ++ install/log.c \ ++ install/util.c + + DRACUT_INSTALL_HEADER = \ +- install/hashmap.h \ +- install/log.h \ +- install/macro.h \ +- install/util.h ++ install/hashmap.h \ ++ install/log.h \ ++ install/macro.h \ ++ install/util.h + + dracut-install: $(DRACUT_INSTALL_SOURCE) $(DRACUT_INSTALL_HEADER) + gcc -std=gnu99 -O2 -g -Wall -o dracut-install $(DRACUT_INSTALL_SOURCE) +@@ -73,13 +86,10 @@ install: doc dracut-version.sh + install -m 0755 dracut-logger.sh $(DESTDIR)$(pkglibdir)/dracut-logger.sh + install -m 0755 dracut-initramfs-restore.sh $(DESTDIR)$(pkglibdir)/dracut-initramfs-restore + cp -arx modules.d $(DESTDIR)$(pkglibdir) +- install -m 0644 lsinitrd.1 $(DESTDIR)$(mandir)/man1/lsinitrd.1 +- install -m 0644 mkinitrd.8 $(DESTDIR)$(mandir)/man8/mkinitrd.8 +- install -m 0644 dracut.8 $(DESTDIR)$(mandir)/man8/dracut.8 +- install -m 0644 dracut-catimages.8 \ +- $(DESTDIR)$(mandir)/man8/dracut-catimages.8 +- install -m 0644 dracut.conf.5 $(DESTDIR)$(mandir)/man5/dracut.conf.5 +- install -m 0644 dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.cmdline.7 ++ for i in $(man1pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man1/$${i##*/}; done ++ for i in $(man5pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man5/$${i##*/}; done ++ for i in $(man7pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man7/$${i##*/}; done ++ for i in $(man8pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man8/$${i##*/}; done + ln -s dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.kernel.7 + if [ -n "$(systemdsystemunitdir)" ]; then \ + mkdir -p $(DESTDIR)$(systemdsystemunitdir); \ +diff --git a/dracut.spec b/dracut.spec +index 25e48a2..9a93e57 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -258,6 +258,7 @@ rm -rf $RPM_BUILD_ROOT + %endif + %dir /etc/dracut.conf.d + %{_mandir}/man8/dracut.8* ++%{_mandir}/man8/*service.8* + %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999 + %{_mandir}/man8/mkinitrd.8* + %{_mandir}/man1/lsinitrd.1* +diff --git a/modules.d/98systemd/dracut-cmdline.service b/modules.d/98systemd/dracut-cmdline.service +index 1ed50a9..5073dbd 100644 +--- a/modules.d/98systemd/dracut-cmdline.service ++++ b/modules.d/98systemd/dracut-cmdline.service +@@ -9,6 +9,7 @@ + + [Unit] + Description=Dracut cmdline hook ++Documentation=man:dracut-cmdline.service(8) + DefaultDependencies=no + Before=dracut-pre-udev.service + After=systemd-journald.socket +diff --git a/modules.d/98systemd/dracut-cmdline.service.8.asc b/modules.d/98systemd/dracut-cmdline.service.8.asc +new file mode 100644 +index 0000000..eaed6aa +--- /dev/null ++++ b/modules.d/98systemd/dracut-cmdline.service.8.asc +@@ -0,0 +1,26 @@ ++DRACUT-CMDLINE.SERVICE(8) ++========================= ++:doctype: manpage ++:man source: dracut ++:man manual: dracut ++ ++NAME ++---- ++dracut-cmdline.service - runs the dracut hooks to parse the kernel command line ++ ++SYNOPSIS ++-------- ++dracut-cmdline.service ++ ++DESCRIPTION ++----------- ++This service runs all the dracut hooks to parse the kernel command line in ++the initramfs. ++ ++AUTHORS ++------- ++Harald Hoyer ++ ++SEE ALSO ++-------- ++*dracut*(8) +diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98systemd/dracut-initqueue.service +index e611e93..f43aa21 100644 +--- a/modules.d/98systemd/dracut-initqueue.service ++++ b/modules.d/98systemd/dracut-initqueue.service +@@ -9,6 +9,7 @@ + + [Unit] + Description=Dracut initqueue hook ++Documentation=man:dracut-initqueue.service(8) + DefaultDependencies=no + After=systemd-udev-trigger.service + Wants=systemd-udev-trigger.service +diff --git a/modules.d/98systemd/dracut-initqueue.service.8.asc b/modules.d/98systemd/dracut-initqueue.service.8.asc +new file mode 100644 +index 0000000..d405d04 +--- /dev/null ++++ b/modules.d/98systemd/dracut-initqueue.service.8.asc +@@ -0,0 +1,25 @@ ++DRACUT-INITQUEUE.SERVICE(8) ++=========================== ++:doctype: manpage ++:man source: dracut ++:man manual: dracut ++ ++NAME ++---- ++dracut-initqueue.service - runs the dracut main loop to find the real root ++ ++SYNOPSIS ++-------- ++dracut-initqueue.service ++ ++DESCRIPTION ++----------- ++This service runs all the main loop of dracut in the initramfs to find the real root. ++ ++AUTHORS ++------- ++Harald Hoyer ++ ++SEE ALSO ++-------- ++*dracut*(8) +diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service +index 317b476..25ef697 100644 +--- a/modules.d/98systemd/dracut-pre-pivot.service ++++ b/modules.d/98systemd/dracut-pre-pivot.service +@@ -9,6 +9,7 @@ + + [Unit] + Description=Dracut pre-pivot and cleanup hook ++Documentation=man:dracut-pre-pivot.service(8) + DefaultDependencies=no + After=dracut-initqueue.service + ConditionPathExists=/etc/initrd-release +diff --git a/modules.d/98systemd/dracut-pre-pivot.service.8.asc b/modules.d/98systemd/dracut-pre-pivot.service.8.asc +new file mode 100644 +index 0000000..2e19a6e +--- /dev/null ++++ b/modules.d/98systemd/dracut-pre-pivot.service.8.asc +@@ -0,0 +1,25 @@ ++DRACUT-PRE-PIVOT.SERVICE(8) ++=========================== ++:doctype: manpage ++:man source: dracut ++:man manual: dracut ++ ++NAME ++---- ++dracut-pre-pivot.service - runs the dracut hooks before switching root ++ ++SYNOPSIS ++-------- ++dracut-pre-pivot.service ++ ++DESCRIPTION ++----------- ++This service runs all dracut hooks before the system switched to the real root. ++ ++AUTHORS ++------- ++Harald Hoyer ++ ++SEE ALSO ++-------- ++*dracut*(8) +diff --git a/modules.d/98systemd/dracut-pre-trigger.service b/modules.d/98systemd/dracut-pre-trigger.service +index b2dcf68..468249b 100644 +--- a/modules.d/98systemd/dracut-pre-trigger.service ++++ b/modules.d/98systemd/dracut-pre-trigger.service +@@ -9,6 +9,7 @@ + + [Unit] + Description=Dracut pre-trigger hook ++Documentation=man:dracut-pre-trigger.service(8) + DefaultDependencies=no + Before=systemd-udev-trigger.service dracut-initqueue.service + After=dracut-pre-udev.service systemd-udevd.service +diff --git a/modules.d/98systemd/dracut-pre-trigger.service.8.asc b/modules.d/98systemd/dracut-pre-trigger.service.8.asc +new file mode 100644 +index 0000000..7a856a9 +--- /dev/null ++++ b/modules.d/98systemd/dracut-pre-trigger.service.8.asc +@@ -0,0 +1,25 @@ ++DRACUT-PRE-TRIGGER.SERVICE(8) ++============================= ++:doctype: manpage ++:man source: dracut ++:man manual: dracut ++ ++NAME ++---- ++dracut-pre-trigger.service - runs the dracut hooks before udevd is triggered ++ ++SYNOPSIS ++-------- ++dracut-pre-trigger.service ++ ++DESCRIPTION ++----------- ++This service runs all dracut hooks before udevd is triggered in the initramfs. ++ ++AUTHORS ++------- ++Harald Hoyer ++ ++SEE ALSO ++-------- ++*dracut*(8) +diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98systemd/dracut-pre-udev.service +index cc14f88..bedcf84 100644 +--- a/modules.d/98systemd/dracut-pre-udev.service ++++ b/modules.d/98systemd/dracut-pre-udev.service +@@ -9,6 +9,7 @@ + + [Unit] + Description=Dracut pre-udev hook ++Documentation=man:dracut-pre-udev.service(8) + DefaultDependencies=no + Before=systemd-udevd.service dracut-pre-trigger.service + After=dracut-cmdline.service +diff --git a/modules.d/98systemd/dracut-pre-udev.service.8.asc b/modules.d/98systemd/dracut-pre-udev.service.8.asc +new file mode 100644 +index 0000000..2126d46 +--- /dev/null ++++ b/modules.d/98systemd/dracut-pre-udev.service.8.asc +@@ -0,0 +1,25 @@ ++DRACUT-PRE-UDEV.SERVICE(8) ++========================== ++:doctype: manpage ++:man source: dracut ++:man manual: dracut ++ ++NAME ++---- ++dracut-pre-udev.service - runs the dracut hooks before udevd is started ++ ++SYNOPSIS ++-------- ++dracut-pre-udev.service ++ ++DESCRIPTION ++----------- ++This service runs all dracut hooks before udevd is started in the initramfs. ++ ++AUTHORS ++------- ++Harald Hoyer ++ ++SEE ALSO ++-------- ++*dracut*(8) +diff --git a/modules.d/98systemd/initrd-switch-root.service b/modules.d/98systemd/initrd-switch-root.service +index b443eab..bd9fb31 100644 +--- a/modules.d/98systemd/initrd-switch-root.service ++++ b/modules.d/98systemd/initrd-switch-root.service +@@ -7,6 +7,7 @@ + + [Unit] + Description=Switch Root ++Documentation=man:initrd-switch-root.service(8) + DefaultDependencies=no + ConditionPathExists=/etc/initrd-release + OnFailure=emergency.service +diff --git a/modules.d/98systemd/initrd-switch-root.service.8.asc b/modules.d/98systemd/initrd-switch-root.service.8.asc +new file mode 100644 +index 0000000..73d5c91 +--- /dev/null ++++ b/modules.d/98systemd/initrd-switch-root.service.8.asc +@@ -0,0 +1,25 @@ ++INITRD-SWITCH-ROOT.SERVICE(8) ++============================= ++:doctype: manpage ++:man source: dracut ++:man manual: dracut ++ ++NAME ++---- ++initrd-switch-root.service - switches root to the real root ++ ++SYNOPSIS ++-------- ++initrd-switch-root.service ++ ++DESCRIPTION ++----------- ++This service triggers systemd to switch root from the initramfs to the real root. ++ ++AUTHORS ++------- ++Harald Hoyer ++ ++SEE ALSO ++-------- ++*dracut*(8) +diff --git a/modules.d/98systemd/udevadm-cleanup-db.service b/modules.d/98systemd/udevadm-cleanup-db.service +index 7e47946..fba032a 100644 +--- a/modules.d/98systemd/udevadm-cleanup-db.service ++++ b/modules.d/98systemd/udevadm-cleanup-db.service +@@ -7,6 +7,7 @@ + + [Unit] + Description=Cleanup udevd DB ++Documentation=man:udevadm-cleanup-db.service(8) + DefaultDependencies=no + ConditionPathExists=/etc/initrd-release + Conflicts=systemd-udevd.service systemd-udevd-control.socket systemd-udevd-kernel.socket +diff --git a/modules.d/98systemd/udevadm-cleanup-db.service.8.asc b/modules.d/98systemd/udevadm-cleanup-db.service.8.asc +new file mode 100644 +index 0000000..7837127 +--- /dev/null ++++ b/modules.d/98systemd/udevadm-cleanup-db.service.8.asc +@@ -0,0 +1,25 @@ ++UDEVADM-CLEANUP-DB.SERVICE(8) ++============================= ++:doctype: manpage ++:man source: dracut ++:man manual: dracut ++ ++NAME ++---- ++udevadm-cleanup-db.service - clean up the udev database ++ ++SYNOPSIS ++-------- ++udevadm-cleanup-db.service ++ ++DESCRIPTION ++----------- ++Cleans up the udev database for later import in the real root by calling "udevadm info --cleanup-db". ++ ++AUTHORS ++------- ++Harald Hoyer ++ ++SEE ALSO ++-------- ++*dracut*(8) diff --git a/0006-kernel-modules-module-setup.sh-fix-modprobe.d-instal.patch b/0006-kernel-modules-module-setup.sh-fix-modprobe.d-instal.patch new file mode 100644 index 0000000..219c53a --- /dev/null +++ b/0006-kernel-modules-module-setup.sh-fix-modprobe.d-instal.patch @@ -0,0 +1,27 @@ +From b7c8f59fef3a2a36726f5ea988b74ba6bf1da695 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Mon, 23 Jul 2012 11:38:36 +0200 +Subject: [PATCH] kernel-modules/module-setup.sh: fix modprobe.d install + +if /lib/modprobe.d does not exist, it errors with: +find: `/lib/modprobe.d/': No such file or directory +--- + modules.d/90kernel-modules/module-setup.sh | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index f309de8..5391ed7 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -77,7 +77,10 @@ installkernel() { + install() { + local _f i + [ -f /etc/modprobe.conf ] && dracut_install /etc/modprobe.conf +- dracut_install $(find -L /{etc,lib}/modprobe.d/ -maxdepth 1 -type f -name '*.conf') ++ set -- /{etc,lib}/modprobe.d/*.conf ++ if [[ -f $1 ]]; then ++ dracut_install "$@" ++ fi + inst_hook cmdline 01 "$moddir/parse-kernel.sh" + inst_simple "$moddir/insmodpost.sh" /sbin/insmodpost.sh + } diff --git a/0007-lvm-lvm_scan.sh-udevadm-settle-after-lvm-scan.patch b/0007-lvm-lvm_scan.sh-udevadm-settle-after-lvm-scan.patch new file mode 100644 index 0000000..881391c --- /dev/null +++ b/0007-lvm-lvm_scan.sh-udevadm-settle-after-lvm-scan.patch @@ -0,0 +1,20 @@ +From 5297d4f5b2167d26fee368d8014bd72ed93538a4 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Mon, 23 Jul 2012 15:36:58 +0200 +Subject: [PATCH] lvm/lvm_scan.sh: udevadm settle after lvm scan + +--- + modules.d/90lvm/lvm_scan.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index 17c29bc..d86be9b 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -129,4 +129,6 @@ if [ "$lvmwritten" ]; then + fi + unset lvmwritten + ++udevadm settle ++ + need_shutdown diff --git a/0008-kernel-modules-module-setup.sh-just-optionally-insta.patch b/0008-kernel-modules-module-setup.sh-just-optionally-insta.patch new file mode 100644 index 0000000..1878dcc --- /dev/null +++ b/0008-kernel-modules-module-setup.sh-just-optionally-insta.patch @@ -0,0 +1,26 @@ +From 3e624cd9dc33f842a33a7152d613866569256df4 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Mon, 23 Jul 2012 15:40:20 +0200 +Subject: [PATCH] kernel-modules/module-setup.sh: just optionally install all + modprobe.d + +--- + modules.d/90kernel-modules/module-setup.sh | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 5391ed7..1632367 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -77,10 +77,7 @@ installkernel() { + install() { + local _f i + [ -f /etc/modprobe.conf ] && dracut_install /etc/modprobe.conf +- set -- /{etc,lib}/modprobe.d/*.conf +- if [[ -f $1 ]]; then +- dracut_install "$@" +- fi ++ dracut_install -o /{etc,lib}/modprobe.d/*.conf + inst_hook cmdline 01 "$moddir/parse-kernel.sh" + inst_simple "$moddir/insmodpost.sh" /sbin/insmodpost.sh + } diff --git a/0009-i18n-10-console.rules-move-console_init-to-the-initq.patch b/0009-i18n-10-console.rules-move-console_init-to-the-initq.patch new file mode 100644 index 0000000..c572509 --- /dev/null +++ b/0009-i18n-10-console.rules-move-console_init-to-the-initq.patch @@ -0,0 +1,17 @@ +From cef379bb0391356ecb9dd01a30e7af5bc8f19655 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Tue, 24 Jul 2012 11:52:28 +0200 +Subject: [PATCH] i18n/10-console.rules: move console_init to the initqueue + +--- + modules.d/10i18n/10-console.rules | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/10i18n/10-console.rules b/modules.d/10i18n/10-console.rules +index 80ed090..385dff0 100644 +--- a/modules.d/10i18n/10-console.rules ++++ b/modules.d/10i18n/10-console.rules +@@ -1,2 +1,2 @@ + # Console initialization - keyboard, font, etc. +-KERNEL=="tty0", RUN+="/lib/udev/console_init $root/$name" ++KERNEL=="tty0", RUN+="/sbin/initqueue --unique --name console_init_$name /lib/udev/console_init $root/$name" diff --git a/0010-dracut-functions.sh-small-error-print-correction.patch b/0010-dracut-functions.sh-small-error-print-correction.patch new file mode 100644 index 0000000..54ded22 --- /dev/null +++ b/0010-dracut-functions.sh-small-error-print-correction.patch @@ -0,0 +1,22 @@ +From f2271428d4760c7026dda9093c14fb1bf9035691 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Tue, 24 Jul 2012 14:08:32 +0200 +Subject: [PATCH] dracut-functions.sh: small error print correction + +--- + dracut-functions.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 6358078..7f834f0 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -1135,7 +1135,7 @@ for_each_module_dir() { + for _mod in $_modcheck; do + strstr "$mods_to_load" "$_mod" && continue + strstr "$omit_dracutmodules" "$_mod" && continue +- derror "Dracut module \"$_mod\" cannot be found or installed." ++ derror "Dracut module '$_mod' cannot be found or installed." + done + } + diff --git a/0011-get-rid-of-basename.patch b/0011-get-rid-of-basename.patch new file mode 100644 index 0000000..aaf230c --- /dev/null +++ b/0011-get-rid-of-basename.patch @@ -0,0 +1,86 @@ +From c072e131622f41ed90cf0d1510c96dd7cb0aad7a Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Tue, 24 Jul 2012 14:12:36 +0200 +Subject: [PATCH] get rid of "basename" + +--- + dracut-functions.sh | 12 ++++++------ + lsinitrd.sh | 2 +- + modules.d/95udev-rules/module-setup.sh | 2 +- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 7f834f0..14c100d 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -710,12 +710,12 @@ inst_rule_programs() { + _bin=${udevdir}/$_prog + else + _bin=$(find_binary "$_prog") || { +- dinfo "Skipping program $_prog using in udev rule $(basename $1) as it cannot be found" ++ dinfo "Skipping program $_prog using in udev rule $(${1##*/}) as it cannot be found" + continue; + } + fi + +- #dinfo "Installing $_bin due to it's use in the udev rule $(basename $1)" ++ #dinfo "Installing $_bin due to it's use in the udev rule $(${1##*/})" + dracut_install "$_bin" + done + fi +@@ -725,12 +725,12 @@ inst_rule_programs() { + _bin=${udevdir}/$_prog + else + _bin=$(find_binary "$_prog") || { +- dinfo "Skipping program $_prog using in udev rule $(basename $1) as it cannot be found" ++ dinfo "Skipping program $_prog using in udev rule $(${1##*/}) as it cannot be found" + continue; + } + fi + +- #dinfo "Installing $_bin due to it's use in the udev rule $(basename $1)" ++ #dinfo "Installing $_bin due to it's use in the udev rule $(${1##*/})" + dracut_install "$_bin" + done + fi +@@ -740,12 +740,12 @@ inst_rule_programs() { + _bin=${udevdir}/$_prog + else + _bin=$(find_binary "$_prog") || { +- dinfo "Skipping program $_prog using in udev rule $(basename $1) as it cannot be found" ++ dinfo "Skipping program $_prog using in udev rule $(${1##*/}) as it cannot be found" + continue; + } + fi + +- #dinfo "Installing $_bin due to it's use in the udev rule $(basename $1)" ++ #dinfo "Installing $_bin due to it's use in the udev rule $(${1##*/})" + dracut_install "$_bin" + done + fi +diff --git a/lsinitrd.sh b/lsinitrd.sh +index a844932..3d6084d 100755 +--- a/lsinitrd.sh ++++ b/lsinitrd.sh +@@ -21,7 +21,7 @@ + + usage() + { +- echo "Usage: $(basename $0) [-s] [<initramfs file> [<filename>]]" ++ echo "Usage: $(${0##*/}) [-s] [<initramfs file> [<filename>]]" + } + + [[ $# -le 2 ]] || { usage ; exit 1 ; } +diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh +index 90d4336..2e3c955 100755 +--- a/modules.d/95udev-rules/module-setup.sh ++++ b/modules.d/95udev-rules/module-setup.sh +@@ -8,7 +8,7 @@ install() { + # Fixme: would be nice if we didn't have to know which rules to grab.... + # ultimately, /lib/initramfs/rules.d or somesuch which includes links/copies + # of the rules we want so that we just copy those in would be best +- dracut_install udevadm cat uname basename blkid \ ++ dracut_install udevadm cat uname blkid \ + /etc/udev/udev.conf /etc/group + + [ -d ${initdir}/lib/systemd ] || mkdir -p ${initdir}/lib/systemd diff --git a/0012-90crypt-recognize-.img-as-loop-key-container.patch b/0012-90crypt-recognize-.img-as-loop-key-container.patch new file mode 100644 index 0000000..303a0bb --- /dev/null +++ b/0012-90crypt-recognize-.img-as-loop-key-container.patch @@ -0,0 +1,28 @@ +From 3e9b4330a98687fe8b1f50c122bb30c42c4413ae Mon Sep 17 00:00:00 2001 +From: Leho Kraav <leho@kraav.com> +Date: Tue, 24 Jul 2012 15:08:51 +0300 +Subject: [PATCH] 90crypt: recognize .img as loop key container + +--- + modules.d/90crypt/crypt-lib.sh | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh +index 5d0b272..3aed84d 100755 +--- a/modules.d/90crypt/crypt-lib.sh ++++ b/modules.d/90crypt/crypt-lib.sh +@@ -177,6 +177,14 @@ readkey() { + die "No GPG support to decrypt '$keypath' on '$keydev'." + fi + ;; ++ img) ++ if [ -f /lib/dracut-crypt-loop-lib.sh ]; then ++ . /lib/dracut-crypt-loop-lib.sh ++ loop_decrypt "$mntp" "$keypath" "$keydev" "$device" ++ else ++ die "No loop file support to decrypt '$keypath' on '$keydev'." ++ fi ++ ;; + *) cat "$mntp/$keypath" ;; + esac + diff --git a/0013-90crypt-enhance-crypt-lib-keydev-mounting.patch b/0013-90crypt-enhance-crypt-lib-keydev-mounting.patch new file mode 100644 index 0000000..af90416 --- /dev/null +++ b/0013-90crypt-enhance-crypt-lib-keydev-mounting.patch @@ -0,0 +1,46 @@ +From c5758f20902b37e3232cd6a1b79f914155457ffd Mon Sep 17 00:00:00 2001 +From: Leho Kraav <leho@kraav.com> +Date: Tue, 24 Jul 2012 15:08:52 +0300 +Subject: [PATCH] 90crypt: enhance crypt-lib keydev mounting + +Combining $keydev and $keypath should result in a unique, re-usable keydev +mountpoint. mkuniqdir doesn't seem to have any an advantage here and lacks +reusability. Is there ever a use case where these are true: + + * there are more than one rd.luks.key=$keypath:$keydev + * one is actually different from the other +--- + modules.d/90crypt/crypt-lib.sh | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh +index 3aed84d..5f7567e 100755 +--- a/modules.d/90crypt/crypt-lib.sh ++++ b/modules.d/90crypt/crypt-lib.sh +@@ -165,8 +165,15 @@ readkey() { + local keydev="$2" + local device="$3" + +- local mntp=$(mkuniqdir /mnt keydev) +- mount -r "$keydev" "$mntp" || die 'Mounting rem. dev. failed!' ++ # This creates a unique single mountpoint for *, or several for explicitly ++ # given LUKS devices. It accomplishes unlocking multiple LUKS devices with ++ # a single password entry. ++ local mntp="/mnt/$(str_replace "keydev-$keydev-$keypath" '/' '-')" ++ ++ if [ ! -d "$mntp" ]; then ++ mkdir "$mntp" ++ mount -r "$keydev" "$mntp" || die 'Mounting rem. dev. failed!' ++ fi + + case "${keypath##*.}" in + gpg) +@@ -188,6 +195,8 @@ readkey() { + *) cat "$mntp/$keypath" ;; + esac + ++ # General unmounting mechanism, modules doing custom cleanup should return earlier ++ # and install a pre-pivot cleanup hook + umount "$mntp" + rmdir "$mntp" + } diff --git a/0014-91crypt-loop-open-root-device-with-a-key-inside-encr.patch b/0014-91crypt-loop-open-root-device-with-a-key-inside-encr.patch new file mode 100644 index 0000000..4f06254 --- /dev/null +++ b/0014-91crypt-loop-open-root-device-with-a-key-inside-encr.patch @@ -0,0 +1,79 @@ +From f855f9daafe8f5f53c5bf78188587a18e9aca142 Mon Sep 17 00:00:00 2001 +From: Leho Kraav <leho@kraav.com> +Date: Tue, 24 Jul 2012 15:08:53 +0300 +Subject: [PATCH] 91crypt-loop: open root device with a key inside encrypted + loop container + +--- + modules.d/91crypt-loop/crypt-loop-lib.sh | 40 ++++++++++++++++++++++++++++++++ + modules.d/91crypt-loop/module-setup.sh | 14 +++++++++++ + 2 files changed, 54 insertions(+) + create mode 100644 modules.d/91crypt-loop/crypt-loop-lib.sh + create mode 100644 modules.d/91crypt-loop/module-setup.sh + +diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh +new file mode 100644 +index 0000000..63a553c +--- /dev/null ++++ b/modules.d/91crypt-loop/crypt-loop-lib.sh +@@ -0,0 +1,40 @@ ++#!/bin/sh ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=4 sw=4 sts=0 et filetype=sh ++ ++command -v ask_for_password >/dev/null || . /lib/dracut-crypt-lib.sh ++ ++# loop_decrypt mnt_point keypath keydev device ++# ++# Decrypts symmetrically encrypted key to standard output. ++# ++# mnt_point - mount point where <keydev> is already mounted ++# keypath - LUKS encrypted loop file path relative to <mnt_point> ++# keydev - device on which key resides; only to display in prompt ++# device - device to be opened by cryptsetup; only to display in prompt ++loop_decrypt() { ++ local mntp="$1" ++ local keypath="$2" ++ local keydev="$3" ++ local device="$4" ++ ++ local key="/dev/mapper/$(basename $mntp)" ++ ++ if [ ! -b $key ]; then ++ info "Keyfile has .img suffix, treating it as LUKS-encrypted loop keyfile container to unlock $device" ++ ++ local loopdev=$(losetup -f "${mntp}/${keypath}" --show) ++ local opts="-d - luksOpen $loopdev $(basename $key)" ++ ++ ask_for_password \ ++ --cmd "cryptsetup $opts" \ ++ --prompt "Password ($keypath on $keydev for $device)" \ ++ --tty-echo-off ++ ++ [ -b $key ] || die "Tried setting it up, but keyfile block device was still not found!" ++ else ++ info "Existing keyfile found, re-using it for $device" ++ fi ++ ++ cat $key ++} +diff --git a/modules.d/91crypt-loop/module-setup.sh b/modules.d/91crypt-loop/module-setup.sh +new file mode 100644 +index 0000000..8170694 +--- /dev/null ++++ b/modules.d/91crypt-loop/module-setup.sh +@@ -0,0 +1,14 @@ ++check() { ++ type -P losetup >/dev/null || return 1 ++ ++ return 255 ++} ++ ++depends() { ++ echo crypt ++} ++ ++install() { ++ dracut_install losetup ++ inst "$moddir/crypt-loop-lib.sh" "/lib/dracut-crypt-loop-lib.sh" ++} diff --git a/0015-91crypt-loop-use-initqueue-for-cleanup-strategy.patch b/0015-91crypt-loop-use-initqueue-for-cleanup-strategy.patch new file mode 100644 index 0000000..0d0a407 --- /dev/null +++ b/0015-91crypt-loop-use-initqueue-for-cleanup-strategy.patch @@ -0,0 +1,40 @@ +From df68781fca048de2f880be37ab9e1ede9bea5051 Mon Sep 17 00:00:00 2001 +From: Leho Kraav <leho@kraav.com> +Date: Tue, 24 Jul 2012 15:08:54 +0300 +Subject: [PATCH] 91crypt-loop: use initqueue for cleanup strategy + +--- + modules.d/90crypt/crypt-lib.sh | 3 +++ + modules.d/91crypt-loop/crypt-loop-lib.sh | 5 +++++ + 2 files changed, 8 insertions(+) + +diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh +index 5f7567e..d5caa85 100755 +--- a/modules.d/90crypt/crypt-lib.sh ++++ b/modules.d/90crypt/crypt-lib.sh +@@ -188,6 +188,9 @@ readkey() { + if [ -f /lib/dracut-crypt-loop-lib.sh ]; then + . /lib/dracut-crypt-loop-lib.sh + loop_decrypt "$mntp" "$keypath" "$keydev" "$device" ++ initqueue --onetime --finished --unique --name "crypt-loop-cleanup-99-$(basename $mntp)" \ ++ $(command -v umount) "$mntp; " $(command -v rmdir) "$mntp" ++ return 0 + else + die "No loop file support to decrypt '$keypath' on '$keydev'." + fi +diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh +index 63a553c..6774e7d 100644 +--- a/modules.d/91crypt-loop/crypt-loop-lib.sh ++++ b/modules.d/91crypt-loop/crypt-loop-lib.sh +@@ -32,6 +32,11 @@ loop_decrypt() { + --tty-echo-off + + [ -b $key ] || die "Tried setting it up, but keyfile block device was still not found!" ++ ++ initqueue --onetime --finished --unique --name "crypt-loop-cleanup-10-$(basename $key)" \ ++ $(command -v cryptsetup) "luksClose $key" ++ initqueue --onetime --finished --unique --name "crypt-loop-cleanup-20-$(basename $loopdev)" \ ++ $(command -v losetup) "-d $loopdev" + else + info "Existing keyfile found, re-using it for $device" + fi diff --git a/0016-91crypt-loop-replace-basename-calls-with-string-matc.patch b/0016-91crypt-loop-replace-basename-calls-with-string-matc.patch new file mode 100644 index 0000000..a5207d8 --- /dev/null +++ b/0016-91crypt-loop-replace-basename-calls-with-string-matc.patch @@ -0,0 +1,55 @@ +From e88e3b279784ca801996c5e32db8c3bc2df1ec29 Mon Sep 17 00:00:00 2001 +From: Leho Kraav <leho@kraav.com> +Date: Tue, 24 Jul 2012 15:08:55 +0300 +Subject: [PATCH] 91crypt-loop: replace basename calls with string matching + +--- + modules.d/90crypt/crypt-lib.sh | 2 +- + modules.d/91crypt-loop/crypt-loop-lib.sh | 8 ++++---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh +index d5caa85..d66ba88 100755 +--- a/modules.d/90crypt/crypt-lib.sh ++++ b/modules.d/90crypt/crypt-lib.sh +@@ -188,7 +188,7 @@ readkey() { + if [ -f /lib/dracut-crypt-loop-lib.sh ]; then + . /lib/dracut-crypt-loop-lib.sh + loop_decrypt "$mntp" "$keypath" "$keydev" "$device" +- initqueue --onetime --finished --unique --name "crypt-loop-cleanup-99-$(basename $mntp)" \ ++ initqueue --onetime --finished --unique --name "crypt-loop-cleanup-99-${mntp##*/}" \ + $(command -v umount) "$mntp; " $(command -v rmdir) "$mntp" + return 0 + else +diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh +index 6774e7d..244b6ce 100644 +--- a/modules.d/91crypt-loop/crypt-loop-lib.sh ++++ b/modules.d/91crypt-loop/crypt-loop-lib.sh +@@ -18,13 +18,13 @@ loop_decrypt() { + local keydev="$3" + local device="$4" + +- local key="/dev/mapper/$(basename $mntp)" ++ local key="/dev/mapper/${mntp##*/}" + + if [ ! -b $key ]; then + info "Keyfile has .img suffix, treating it as LUKS-encrypted loop keyfile container to unlock $device" + + local loopdev=$(losetup -f "${mntp}/${keypath}" --show) +- local opts="-d - luksOpen $loopdev $(basename $key)" ++ local opts="-d - luksOpen $loopdev ${key##*/}" + + ask_for_password \ + --cmd "cryptsetup $opts" \ +@@ -33,9 +33,9 @@ loop_decrypt() { + + [ -b $key ] || die "Tried setting it up, but keyfile block device was still not found!" + +- initqueue --onetime --finished --unique --name "crypt-loop-cleanup-10-$(basename $key)" \ ++ initqueue --onetime --finished --unique --name "crypt-loop-cleanup-10-${key##*/}" \ + $(command -v cryptsetup) "luksClose $key" +- initqueue --onetime --finished --unique --name "crypt-loop-cleanup-20-$(basename $loopdev)" \ ++ initqueue --onetime --finished --unique --name "crypt-loop-cleanup-20-${loopdev##*/}" \ + $(command -v losetup) "-d $loopdev" + else + info "Existing keyfile found, re-using it for $device" diff --git a/0017-deprecate-old-command-line-options.patch b/0017-deprecate-old-command-line-options.patch new file mode 100644 index 0000000..c555e36 --- /dev/null +++ b/0017-deprecate-old-command-line-options.patch @@ -0,0 +1,784 @@ +From 68e7661ca7625978f3a2b6f906d16a44043c4fbb Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 10:32:42 +0200 +Subject: [PATCH] deprecate old command line options + +--- + modules.d/10i18n/parse-i18n.sh | 8 ++--- + modules.d/50gensplash/gensplash-pretrigger.sh | 2 +- + modules.d/50plymouth/plymouth-pretrigger.sh | 2 +- + modules.d/90crypt/crypt-cleanup.sh | 2 +- + modules.d/90crypt/cryptroot-ask.sh | 2 +- + modules.d/90crypt/parse-crypt.sh | 4 +-- + modules.d/90dmraid/dmraid.sh | 2 +- + modules.d/90dmraid/parse-dm.sh | 6 ++-- + modules.d/90dmsquash-live/dmsquash-live-root.sh | 14 ++++---- + modules.d/90dmsquash-live/parse-dmsquash-live.sh | 2 +- + modules.d/90kernel-modules/insmodpost.sh | 2 +- + modules.d/90kernel-modules/parse-kernel.sh | 6 ++-- + modules.d/90lvm/lvm_scan.sh | 8 ++--- + modules.d/90lvm/parse-lvm.sh | 6 ++-- + modules.d/90mdraid/parse-md.sh | 12 +++---- + modules.d/95dasd/parse-dasd.sh | 2 +- + modules.d/95dasd_mod/parse-dasd-mod.sh | 2 +- + modules.d/95iscsi/iscsiroot.sh | 24 +++++++------- + modules.d/95nfs/parse-nfsroot.sh | 2 +- + modules.d/95rootfs-block/mount-root.sh | 2 +- + modules.d/95zfcp/parse-zfcp.sh | 4 +-- + modules.d/95znet/parse-ccw.sh | 2 +- + modules.d/98syslog/parse-syslog-opts.sh | 6 ++-- + modules.d/98systemd/dracut-cmdline.sh | 2 +- + modules.d/98systemd/dracut-initqueue.sh | 8 ++--- + modules.d/98systemd/dracut-pre-pivot.sh | 2 +- + modules.d/98systemd/dracut-pre-trigger.sh | 4 +-- + modules.d/99base/dracut-lib.sh | 42 ++++++++++++++++++++---- + modules.d/99base/init.sh | 24 +++++++------- + modules.d/99base/mount-hook.sh | 2 +- + 30 files changed, 117 insertions(+), 89 deletions(-) + +diff --git a/modules.d/10i18n/parse-i18n.sh b/modules.d/10i18n/parse-i18n.sh +index b9bd5bb..5530136 100755 +--- a/modules.d/10i18n/parse-i18n.sh ++++ b/modules.d/10i18n/parse-i18n.sh +@@ -19,10 +19,10 @@ inst_key_val() { + unset _value + } + +-inst_key_val '' /etc/vconsole.conf KEYMAP vconsole.keymap KEYTABLE +-inst_key_val '' /etc/vconsole.conf FONT vconsole.font SYSFONT +-inst_key_val '' /etc/vconsole.conf FONT_MAP vconsole.font.map CONTRANS +-inst_key_val '' /etc/vconsole.conf FONT_UNIMAP vconsole.font.unimap UNIMAP ++inst_key_val '' /etc/vconsole.conf KEYMAP vconsole.keymap -d KEYTABLE ++inst_key_val '' /etc/vconsole.conf FONT vconsole.font -d SYSFONT ++inst_key_val '' /etc/vconsole.conf FONT_MAP vconsole.font.map -d CONTRANS ++inst_key_val '' /etc/vconsole.conf FONT_UNIMAP vconsole.font.unimap -d UNIMAP + inst_key_val 1 /etc/vconsole.conf UNICODE vconsole.unicode vconsole.font.unicode + inst_key_val '' /etc/vconsole.conf EXT_KEYMAP vconsole.keymap.ext + +diff --git a/modules.d/50gensplash/gensplash-pretrigger.sh b/modules.d/50gensplash/gensplash-pretrigger.sh +index b697438..6b85bbf 100755 +--- a/modules.d/50gensplash/gensplash-pretrigger.sh ++++ b/modules.d/50gensplash/gensplash-pretrigger.sh +@@ -2,7 +2,7 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-if getargbool 1 rd.splash -n rd_NO_SPLASH; then ++if getargbool 1 rd.splash -d -n rd_NO_SPLASH; then + info "Starting Gentoo Splash" + + [ -x /lib/udev/console_init ] && /lib/udev/console_init /dev/tty0 +diff --git a/modules.d/50plymouth/plymouth-pretrigger.sh b/modules.d/50plymouth/plymouth-pretrigger.sh +index 5cc9112..ddb8ddb 100755 +--- a/modules.d/50plymouth/plymouth-pretrigger.sh ++++ b/modules.d/50plymouth/plymouth-pretrigger.sh +@@ -3,7 +3,7 @@ + # ex: ts=8 sw=4 sts=4 et filetype=sh + + if [ -x /bin/plymouthd ]; then +- if getargbool 1 plymouth.enable && getargbool 1 rd.plymouth -n rd_NO_PLYMOUTH; then ++ if getargbool 1 plymouth.enable && getargbool 1 rd.plymouth -d -n rd_NO_PLYMOUTH; then + # first trigger graphics subsystem + udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1 + # first trigger graphics and tty subsystem +diff --git a/modules.d/90crypt/crypt-cleanup.sh b/modules.d/90crypt/crypt-cleanup.sh +index e6beb83..04defde 100755 +--- a/modules.d/90crypt/crypt-cleanup.sh ++++ b/modules.d/90crypt/crypt-cleanup.sh +@@ -4,7 +4,7 @@ + # close everything which is not busy + rm -f /etc/udev/rules.d/70-luks.rules >/dev/null 2>&1 + +-if ! getarg rd.luks.uuid rd_LUKS_UUID >/dev/null 2>&1 && getargbool 1 rd.luks -n rd_NO_LUKS >/dev/null 2>&1; then ++if ! getarg rd.luks.uuid -d rd_LUKS_UUID >/dev/null 2>&1 && getargbool 1 rd.luks -d -n rd_NO_LUKS >/dev/null 2>&1; then + while true; do + local do_break="y" + for i in /dev/mapper/luks-*; do +diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh +index d373a90..17955ec 100755 +--- a/modules.d/90crypt/cryptroot-ask.sh ++++ b/modules.d/90crypt/cryptroot-ask.sh +@@ -36,7 +36,7 @@ fi + numtries=${3:-10} + + # TODO: improve to support what cmdline does +-if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -n rd_NO_CRYPTTAB; then ++if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -d -n rd_NO_CRYPTTAB; then + while read name dev luksfile luksoptions; do + # ignore blank lines and comments + if [ -z "$name" -o "${name#\#}" != "$name" ]; then +diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh +index f96b59a..a2b157f 100755 +--- a/modules.d/90crypt/parse-crypt.sh ++++ b/modules.d/90crypt/parse-crypt.sh +@@ -1,7 +1,7 @@ + #!/bin/sh + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh +-if ! getargbool 1 rd.luks -n rd_NO_LUKS; then ++if ! getargbool 1 rd.luks -d -n rd_NO_LUKS; then + info "rd.luks=0: removing cryptoluks activation" + rm -f /etc/udev/rules.d/70-luks.rules + else +@@ -10,7 +10,7 @@ else + echo 'ACTION!="add|change", GOTO="luks_end"' + } > /etc/udev/rules.d/70-luks.rules.new + +- LUKS=$(getargs rd.luks.uuid rd_LUKS_UUID) ++ LUKS=$(getargs rd.luks.uuid -d rd_LUKS_UUID) + tout=$(getarg rd.luks.key.tout) + + if [ -n "$LUKS" ]; then +diff --git a/modules.d/90dmraid/dmraid.sh b/modules.d/90dmraid/dmraid.sh +index 574dc3b..e4f8799 100755 +--- a/modules.d/90dmraid/dmraid.sh ++++ b/modules.d/90dmraid/dmraid.sh +@@ -4,7 +4,7 @@ + + type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + +-DM_RAIDS=$(getargs rd.dm.uuid rd_DM_UUID=) ++DM_RAIDS=$(getargs rd.dm.uuid -d rd_DM_UUID=) + + DM_CLEANUP="no" + +diff --git a/modules.d/90dmraid/parse-dm.sh b/modules.d/90dmraid/parse-dm.sh +index fe38d35..bc7ed42 100755 +--- a/modules.d/90dmraid/parse-dm.sh ++++ b/modules.d/90dmraid/parse-dm.sh +@@ -2,17 +2,17 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + # nodmraid for anaconda / rc.sysinit compatibility +-if ! getargbool 1 rd.dm -n rd_NO_DM || getarg nodmraid; then ++if ! getargbool 1 rd.dm -d -n rd_NO_DM || getarg "rd.dm=0" -d nodmraid; then + info "rd.dm=0: removing DM RAID activation" + udevproperty rd_NO_DM=1 + fi + +-if ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.imsm -n rd_NO_MDIMSM || getarg noiswmd; then ++if ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.imsm -d -n rd_NO_MDIMSM -n noiswmd; then + info "rd.md.imsm=0: no MD RAID for imsm/isw raids" + udevproperty rd_NO_MDIMSM=1 + fi + +-if ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF || getarg noddfmd; then ++if ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF -n noddfmd; then + info "rd.md.ddf=0: no MD RAID for SNIA ddf raids" + udevproperty rd_NO_MDDDF=1 + fi +diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh +index 08f2381..15f166b 100755 +--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh ++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh +@@ -6,7 +6,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + + PATH=/usr/sbin:/usr/bin:/sbin:/bin + +-if getargbool 0 rd.live.debug -y rdlivedebug; then ++if getargbool 0 rd.live.debug -n -y rdlivedebug; then + exec > /tmp/liveroot.$$.out + exec 2>> /tmp/liveroot.$$.out + set -x +@@ -17,19 +17,19 @@ livedev="$1" + + # parse various live image specific options that make sense to be + # specified as their own things +-live_dir=$(getarg rd.live.dir live_dir) ++live_dir=$(getarg rd.live.dir -d live_dir) + [ -z "$live_dir" ] && live_dir="LiveOS" +-getargbool 0 rd.live.ram -y live_ram && live_ram="yes" +-getargbool 0 rd.live.overlay.reset -y reset_overlay && reset_overlay="yes" +-getargbool 0 rd.live.overlay.readonly -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay="" +-overlay=$(getarg rd.live.overlay overlay) ++getargbool 0 rd.live.ram -d -y live_ram && live_ram="yes" ++getargbool 0 rd.live.overlay.reset -d -y reset_overlay && reset_overlay="yes" ++getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay="" ++overlay=$(getarg rd.live.overlay -d overlay) + + # CD/DVD media check + [ -b $livedev ] && fs=$(blkid -s TYPE -o value $livedev) + if [ "$fs" = "iso9660" -o "$fs" = "udf" ]; then + check="yes" + fi +-getarg rd.live.check check || check="" ++getarg rd.live.check -d check || check="" + if [ -n "$check" ]; then + [ -x /bin/plymouth ] && /bin/plymouth --hide-splash + checkisomd5 --verbose $livedev +diff --git a/modules.d/90dmsquash-live/parse-dmsquash-live.sh b/modules.d/90dmsquash-live/parse-dmsquash-live.sh +index 5ccc0d0..3e9a347 100755 +--- a/modules.d/90dmsquash-live/parse-dmsquash-live.sh ++++ b/modules.d/90dmsquash-live/parse-dmsquash-live.sh +@@ -7,7 +7,7 @@ + [ -z "$root" ] && root=$(getarg root=) + + # support legacy syntax of passing liveimg and then just the base root +-if getargbool 0 rd.live.image -y liveimg; then ++if getargbool 0 rd.live.image -d -y liveimg; then + liveroot="live:$root" + fi + +diff --git a/modules.d/90kernel-modules/insmodpost.sh b/modules.d/90kernel-modules/insmodpost.sh +index 168a907..d2b8723 100755 +--- a/modules.d/90kernel-modules/insmodpost.sh ++++ b/modules.d/90kernel-modules/insmodpost.sh +@@ -4,7 +4,7 @@ + + . /lib/dracut-lib.sh + +-for modlist in $(getargs rd.driver.post rdinsmodpost=); do ++for modlist in $(getargs rd.driver.post -d rdinsmodpost=); do + ( + IFS=, + for m in $modlist; do +diff --git a/modules.d/90kernel-modules/parse-kernel.sh b/modules.d/90kernel-modules/parse-kernel.sh +index 285ee90..485528b 100755 +--- a/modules.d/90kernel-modules/parse-kernel.sh ++++ b/modules.d/90kernel-modules/parse-kernel.sh +@@ -2,7 +2,7 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-for i in $(getargs rd.driver.pre rdloaddriver=); do ++for i in $(getargs rd.driver.pre -d rdloaddriver=); do + ( + IFS=, + for p in $i; do +@@ -11,7 +11,7 @@ for i in $(getargs rd.driver.pre rdloaddriver=); do + ) + done + +-for i in $(getargs rd.driver.blacklist rdblacklist=); do ++for i in $(getargs rd.driver.blacklist -d rdblacklist=); do + ( + IFS=, + for p in $i; do +@@ -20,7 +20,7 @@ for i in $(getargs rd.driver.blacklist rdblacklist=); do + ) + done + +-for p in $(getargs rd.driver.post rdinsmodpost=); do ++for p in $(getargs rd.driver.post -d rdinsmodpost=); do + echo "blacklist $p" >> /etc/modprobe.d/initramfsblacklist.conf + _do_insmodpost=1 + done +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index d86be9b..f5f5fcd 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -7,10 +7,10 @@ + extraargs="$@" + type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + +-VGS=$(getargs rd.lvm.vg rd_LVM_VG=) +-LVS=$(getargs rd.lvm.lv rd_LVM_LV=) +-SNAPSHOT=$(getargs rd.lvm.snapshot rd_LVM_SNAPSHOT=) +-SNAPSIZE=$(getargs rd.lvm.snapsize rd_LVM_SNAPSIZE=) ++VGS=$(getargs rd.lvm.vg -d rd_LVM_VG=) ++LVS=$(getargs rd.lvm.lv -d rd_LVM_LV=) ++SNAPSHOT=$(getargs rd.lvm.snapshot -d rd_LVM_SNAPSHOT=) ++SNAPSIZE=$(getargs rd.lvm.snapsize -d rd_LVM_SNAPSIZE=) + + [ -d /etc/lvm ] || mkdir -m 0755 -p /etc/lvm + # build a list of devices to scan +diff --git a/modules.d/90lvm/parse-lvm.sh b/modules.d/90lvm/parse-lvm.sh +index c1d00c6..2194abd 100755 +--- a/modules.d/90lvm/parse-lvm.sh ++++ b/modules.d/90lvm/parse-lvm.sh +@@ -1,15 +1,15 @@ + #!/bin/sh + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh +-if [ -e /etc/lvm/lvm.conf ] && ! getargbool 1 rd.lvm.conf -n rd_NO_LVMCONF; then ++if [ -e /etc/lvm/lvm.conf ] && ! getargbool 1 rd.lvm.conf -d -n rd_NO_LVMCONF; then + rm -f /etc/lvm/lvm.conf + fi + +-if ! getargbool 1 rd.lvm -n rd_NO_LVM; then ++if ! getargbool 1 rd.lvm -d -n rd_NO_LVM; then + info "rd.lvm=0: removing LVM activation" + rm -f /etc/udev/rules.d/64-lvm*.rules + else +- for dev in $(getargs rd.lvm.vg rd_LVM_VG=) $(getargs rd.lvm.lv rd_LVM_LV=); do ++ for dev in $(getargs rd.lvm.vg -d rd_LVM_VG=) $(getargs rd.lvm.lv -d rd_LVM_LV=); do + wait_for_dev "/dev/$dev" + done + fi +diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh +index 1482f2f..6920f40 100755 +--- a/modules.d/90mdraid/parse-md.sh ++++ b/modules.d/90mdraid/parse-md.sh +@@ -1,11 +1,11 @@ + #!/bin/sh + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh +-if ! getargbool 1 rd.md -n rd_NO_MD; then ++if ! getargbool 1 rd.md -d -n rd_NO_MD; then + info "rd.md=0: removing MD RAID activation" + udevproperty rd_NO_MD=1 + else +- MD_UUID=$(getargs rd.md.uuid rd_MD_UUID=) ++ MD_UUID=$(getargs rd.md.uuid -d rd_MD_UUID=) + + # rewrite the md rules to only process the specified raid array + if [ -n "$MD_UUID" ]; then +@@ -29,25 +29,25 @@ else + fi + + +-if [ -e /etc/mdadm.conf ] && getargbool 1 rd.md.conf -n rd_NO_MDADMCONF; then ++if [ -e /etc/mdadm.conf ] && getargbool 1 rd.md.conf -d -n rd_NO_MDADMCONF; then + udevproperty rd_MDADMCONF=1 + rm -f $hookdir/pre-pivot/*mdraid-cleanup.sh + fi + +-if ! getargbool 1 rd.md.conf -n rd_NO_MDADMCONF; then ++if ! getargbool 1 rd.md.conf -d -n rd_NO_MDADMCONF; then + rm -f /etc/mdadm/mdadm.conf /etc/mdadm.conf + ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null + fi + + # noiswmd nodmraid for anaconda / rc.sysinit compatibility + # note nodmraid really means nobiosraid, so we don't want MDIMSM then either +-if ! getargbool 1 rd.md.imsm -n rd_NO_MDIMSM || getarg noiswmd || getarg nodmraid; then ++if ! getargbool 1 rd.md.imsm -d -n rd_NO_MDIMSM -n noiswmd -n nodmraid; then + info "no MD RAID for imsm/isw raids" + udevproperty rd_NO_MDIMSM=1 + fi + + # same thing with ddf containers +-if ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF || getarg noddfmd || getarg nodmraid; then ++if ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF -n noddfmd -n nodmraid; then + info "no MD RAID for SNIA ddf raids" + udevproperty rd_NO_MDDDF=1 + fi +diff --git a/modules.d/95dasd/parse-dasd.sh b/modules.d/95dasd/parse-dasd.sh +index b3d18fa..772ea47 100755 +--- a/modules.d/95dasd/parse-dasd.sh ++++ b/modules.d/95dasd/parse-dasd.sh +@@ -1,7 +1,7 @@ + #!/bin/sh + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh +-for dasd_arg in $(getargs rd.dasd= rd_DASD= DASD=); do ++for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do + ( + IFS="," + set $dasd_arg +diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh +index c37aca8..87c88ed 100755 +--- a/modules.d/95dasd_mod/parse-dasd-mod.sh ++++ b/modules.d/95dasd_mod/parse-dasd-mod.sh +@@ -3,7 +3,7 @@ + # ex: ts=8 sw=4 sts=4 et filetype=sh + mod_args="" + +-for dasd_arg in $(getargs rd.dasd= rd_DASD= DASD=); do ++for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do + mod_args="$mod_args,$dasd_arg" + done + +diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh +index 19c5c1d..87b7fa7 100755 +--- a/modules.d/95iscsi/iscsiroot.sh ++++ b/modules.d/95iscsi/iscsiroot.sh +@@ -40,14 +40,14 @@ modprobe crc32c 2>/dev/null + + [ -e /sys/module/bnx2i ] && iscsiuio + +-if getargbool 0 rd.iscsi.firmware -y iscsi_firmware ; then ++if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then + if [ -z "$root" -o -n "${root%%block:*}" ]; then + # if root is not specified try to mount the whole iSCSI LUN + printf 'ENV{DEVTYPE}!="partition", SYMLINK=="disk/by-path/*-iscsi-*-*", SYMLINK+="root"\n' >> /etc/udev/rules.d/99-iscsi-root.rules + udevadm control --reload + fi + +- for p in $(getargs rd.iscsi.param iscsi_param); do ++ for p in $(getargs rd.iscsi.param -d iscsi_param); do + iscsi_param="$iscsi_param --param $p" + done + +@@ -66,25 +66,25 @@ handle_netroot() + local p + + # override conf settings by command line options +- arg=$(getargs rd.iscsi.initiator iscsi_initiator=) ++ arg=$(getargs rd.iscsi.initiator -d iscsi_initiator=) + [ -n "$arg" ] && iscsi_initiator=$arg +- arg=$(getargs rd.iscsi.target.name iscsi_target_name=) ++ arg=$(getargs rd.iscsi.target.name -d iscsi_target_name=) + [ -n "$arg" ] && iscsi_target_name=$arg +- arg=$(getargs rd.iscsi.target.ip iscsi_target_ip) ++ arg=$(getargs rd.iscsi.target.ip -d iscsi_target_ip) + [ -n "$arg" ] && iscsi_target_ip=$arg +- arg=$(getargs rd.iscsi.target.port iscsi_target_port=) ++ arg=$(getargs rd.iscsi.target.port -d iscsi_target_port=) + [ -n "$arg" ] && iscsi_target_port=$arg +- arg=$(getargs rd.iscsi.target.group iscsi_target_group=) ++ arg=$(getargs rd.iscsi.target.group -d iscsi_target_group=) + [ -n "$arg" ] && iscsi_target_group=$arg +- arg=$(getargs rd.iscsi.username iscsi_username=) ++ arg=$(getargs rd.iscsi.username -d iscsi_username=) + [ -n "$arg" ] && iscsi_username=$arg +- arg=$(getargs rd.iscsi.password iscsi_password) ++ arg=$(getargs rd.iscsi.password -d iscsi_password) + [ -n "$arg" ] && iscsi_password=$arg +- arg=$(getargs rd.iscsi.in.username iscsi_in_username=) ++ arg=$(getargs rd.iscsi.in.username -d iscsi_in_username=) + [ -n "$arg" ] && iscsi_in_username=$arg +- arg=$(getargs rd.iscsi.in.password iscsi_in_password=) ++ arg=$(getargs rd.iscsi.in.password -d iscsi_in_password=) + [ -n "$arg" ] && iscsi_in_password=$arg +- for p in $(getargs rd.iscsi.param iscsi_param); do ++ for p in $(getargs rd.iscsi.param -d iscsi_param); do + iscsi_param="$iscsi_param --param $p" + done + +diff --git a/modules.d/95nfs/parse-nfsroot.sh b/modules.d/95nfs/parse-nfsroot.sh +index 769d233..283420a 100755 +--- a/modules.d/95nfs/parse-nfsroot.sh ++++ b/modules.d/95nfs/parse-nfsroot.sh +@@ -72,7 +72,7 @@ esac + + # Check required arguments + +-if nfsdomain=$(getarg rd.nfs.domain rd_NFS_DOMAIN); then ++if nfsdomain=$(getarg rd.nfs.domain -d rd_NFS_DOMAIN); then + if [ -f /etc/idmapd.conf ]; then + sed -i -e \ + "s/^[[:space:]#]*Domain[[:space:]]*=.*/Domain = $nfsdomain/g" \ +diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh +index e61b0e8..670f6e3 100755 +--- a/modules.d/95rootfs-block/mount-root.sh ++++ b/modules.d/95rootfs-block/mount-root.sh +@@ -76,7 +76,7 @@ mount_root() { + fi + + rootopts= +- if getargbool 1 rd.fstab -n rd_NO_FSTAB \ ++ if getargbool 1 rd.fstab -d -n rd_NO_FSTAB \ + && ! getarg rootflags \ + && [ -f "$NEWROOT/etc/fstab" ] \ + && ! [ -L "$NEWROOT/etc/fstab" ]; then +diff --git a/modules.d/95zfcp/parse-zfcp.sh b/modules.d/95zfcp/parse-zfcp.sh +index 5af454a..9b22d93 100755 +--- a/modules.d/95zfcp/parse-zfcp.sh ++++ b/modules.d/95zfcp/parse-zfcp.sh +@@ -2,9 +2,9 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-getargbool 1 rd.zfcp.conf -n rd_NO_ZFCPCONF || rm /etc/zfcp.conf ++getargbool 1 rd.zfcp.conf -d -n rd_NO_ZFCPCONF || rm /etc/zfcp.conf + +-for zfcp_arg in $(getargs rd.zfcp 'rd_ZFCP='); do ++for zfcp_arg in $(getargs rd.zfcp -d 'rd_ZFCP='); do + ( + IFS="," + set $zfcp_arg +diff --git a/modules.d/95znet/parse-ccw.sh b/modules.d/95znet/parse-ccw.sh +index 876671c..cf1f41d 100755 +--- a/modules.d/95znet/parse-ccw.sh ++++ b/modules.d/95znet/parse-ccw.sh +@@ -2,7 +2,7 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-for ccw_arg in $(getargs rd.ccw 'rd_CCW=') $(getargs rd.znet 'rd_ZNET='); do ++for ccw_arg in $(getargs rd.ccw -d 'rd_CCW=') $(getargs rd.znet -d 'rd_ZNET='); do + echo $ccw_arg >> /etc/ccw.conf + done + +diff --git a/modules.d/98syslog/parse-syslog-opts.sh b/modules.d/98syslog/parse-syslog-opts.sh +index 02788dd..e58c8f5 100755 +--- a/modules.d/98syslog/parse-syslog-opts.sh ++++ b/modules.d/98syslog/parse-syslog-opts.sh +@@ -11,9 +11,9 @@ + # Don't auto detect syslog but set it + type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + +-syslogserver=$(getarg syslog.server syslog) +-syslogfilters=$(getargs syslog.filter filter) +-syslogtype=$(getarg syslog.type syslogtype) ++syslogserver=$(getarg syslog.server -d syslog) ++syslogfilters=$(getargs syslog.filter -d filter) ++syslogtype=$(getarg syslog.type -d syslogtype) + + [ -n "$syslogserver" ] && echo $syslogserver > /tmp/syslog.server + [ -n "$syslogfilters" ] && echo "$syslogfilters" > /tmp/syslog.filters +diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh +index 6a44815..77ad121 100755 +--- a/modules.d/98systemd/dracut-cmdline.sh ++++ b/modules.d/98systemd/dracut-cmdline.sh +@@ -15,7 +15,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + source_conf /etc/conf.d + + # run scriptlets to parse the command line +-getarg 'rd.break=cmdline' 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline" ++getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline" + source_hook cmdline + + [ -z "$root" ] && die "No or empty root= argument" +diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh +index cfdb12d..112d2a8 100755 +--- a/modules.d/98systemd/dracut-initqueue.sh ++++ b/modules.d/98systemd/dracut-initqueue.sh +@@ -9,9 +9,9 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + + source_conf /etc/conf.d + +-getarg 'rd.break=initqueue' 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue" ++getarg 'rd.break=initqueue' -d 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue" + +-RDRETRY=$(getarg rd.retry 'rd_retry=') ++RDRETRY=$(getarg rd.retry -d 'rd_retry=') + RDRETRY=${RDRETRY:-20} + RDRETRY=$(($RDRETRY*2)) + export RDRETRY +@@ -71,11 +71,11 @@ unset RDRETRY + + # pre-mount happens before we try to mount the root filesystem, + # and happens once. +-getarg 'rd.break=pre-mount' 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount" ++getarg 'rd.break=pre-mount' -d 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount" + source_hook pre-mount + + +-getarg 'rd.break=mount' 'rdbreak=mount' && emergency_shell -n mount "Break mount" ++getarg 'rd.break=mount' -d 'rdbreak=mount' && emergency_shell -n mount "Break mount" + # mount scripts actually try to mount the root filesystem, and may + # be sourced any number of times. As soon as one suceeds, no more are sourced. + i=0 +diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh +index 31dded5..3fd7957 100755 +--- a/modules.d/98systemd/dracut-pre-pivot.sh ++++ b/modules.d/98systemd/dracut-pre-pivot.sh +@@ -37,6 +37,6 @@ echo "NEWROOT=\"$NEWROOT\"" >> /run/initramfs/switch-root.conf + # remove helper symlink + [ -h /dev/root ] && rm -f /dev/root + +-getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root" ++getarg rd.break -d rdbreak && emergency_shell -n switch_root "Break before switch_root" + + exit 0 +diff --git a/modules.d/98systemd/dracut-pre-trigger.sh b/modules.d/98systemd/dracut-pre-trigger.sh +index 52ecfaf..9850124 100755 +--- a/modules.d/98systemd/dracut-pre-trigger.sh ++++ b/modules.d/98systemd/dracut-pre-trigger.sh +@@ -9,8 +9,8 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + + source_conf /etc/conf.d + +-getargbool 0 rd.udev.info -y rdudevinfo && udevadm control --log-priority=info +-getargbool 0 rd.udev.debug -y rdudevdebug && udevadm control --log-priority=debug ++getargbool 0 rd.udev.info -n -y rdudevinfo && udevadm control --log-priority=info ++getargbool 0 rd.udev.debug -n -y rdudevdebug && udevadm control --log-priority=debug + udevproperty "hookdir=$hookdir" + + source_hook pre-trigger +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index 1ee671e..786661e 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -103,24 +103,41 @@ _dogetarg() { + + getarg() { + debug_off ++ local _deprecated _newoption + while [ $# -gt 0 ]; do + case $1 in ++ -d) _deprecated=1; shift;; + -y) if _dogetarg $2 >/dev/null; then ++ if [ "$_deprecated" = "1" ]; then ++ [ -n "$_newoption" ] && warn "Option '$2' is deprecated, use '$_newoption' instead." || warn "Option '$2' is deprecated." ++ fi + echo 1 + debug_on + return 0 + fi ++ _deprecated=0 + shift 2;; + -n) if _dogetarg $2 >/dev/null; then + echo 0; ++ if [ "$_deprecated" = "1" ]; then ++ [ -n "$_newoption" ] && warn "Option '$2' is deprecated, use '$_newoption=0' instead." || warn "Option '$2' is deprecated." ++ fi + debug_on + return 1 + fi ++ _deprecated=0 + shift 2;; +- *) if _dogetarg $1; then ++ *) if [ -z "$_newoption" ]; then ++ _newoption=$1 ++ fi ++ if _dogetarg $1; then ++ if [ "$_deprecated" = "1" ]; then ++ [ -n "$_newoption" ] && warn "Option '$1' is deprecated, use '$_newoption' instead." || warn "Option '$1' is deprecated." ++ fi + debug_on + return 0; + fi ++ _deprecated=0 + shift;; + esac + done +@@ -168,15 +185,26 @@ _dogetargs() { + + getargs() { + debug_off +- local _val _i _args _gfound ++ local _val _i _args _gfound _deprecated + unset _val + unset _gfound ++ _newoption="$1" + _args="$@" + set -- + for _i in $_args; do ++ if [ "$i" = "-d" ]; then ++ _deprecated=1 ++ continue ++ fi + _val="$(_dogetargs $_i)" +- [ $? -eq 0 ] && _gfound=1 ++ if [ $? -eq 0 ]; then ++ if [ "$_deprecated" = "1" ]; then ++ [ -n "$_newoption" ] && warn "Option '$_i' is deprecated, use '$_newoption' instead." || warn "Option $_i is deprecated!" ++ fi ++ _gfound=1 ++ fi + [ -n "$_val" ] && set -- "$@" "$_val" ++ _deprecated=0 + done + if [ -n "$_gfound" ]; then + if [ $# -gt 0 ]; then +@@ -250,7 +278,7 @@ setdebug() { + if [ -z "$RD_DEBUG" ]; then + if [ -e /proc/cmdline ]; then + RD_DEBUG=no +- if getargbool 0 rd.debug -y rdinitdebug -y rdnetdebug; then ++ if getargbool 0 rd.debug -d -y rdinitdebug -d -y rdnetdebug; then + RD_DEBUG=yes + [ -n "$BASH" ] && \ + export PS4='${BASH_SOURCE}@${LINENO}(${FUNCNAME[0]}): '; +@@ -314,8 +342,8 @@ die() { + check_quiet() { + if [ -z "$DRACUT_QUIET" ]; then + DRACUT_QUIET="yes" +- getargbool 0 rd.info -y rdinfo && DRACUT_QUIET="no" +- getargbool 0 rd.debug -y rdinitdebug && DRACUT_QUIET="no" ++ getargbool 0 rd.info -d -y rdinfo && DRACUT_QUIET="no" ++ getargbool 0 rd.debug -d -y rdinitdebug && DRACUT_QUIET="no" + getarg quiet || DRACUT_QUIET="yes" + a=$(getarg loglevel=) + [ -n "$a" ] && [ $a -ge 28 ] && DRACUT_QUIET="yes" +@@ -831,7 +859,7 @@ emergency_shell() + source_hook "$hook" + echo + +- if getargbool 1 rd.shell -y rdshell || getarg rd.break rdbreak; then ++ if getargbool 1 rd.shell -d -y rdshell || getarg rd.break -d rdbreak; then + if [ -x /lib/systemd/systemd ]; then + > /.console_lock + echo "PS1=\"$_rdshell_name:\${PWD}# \"" >/etc/profile +diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh +index 3eb6424..c33f182 100755 +--- a/modules.d/99base/init.sh ++++ b/modules.d/99base/init.sh +@@ -108,7 +108,7 @@ fi + source_conf /etc/conf.d + + # run scriptlets to parse the command line +-getarg 'rd.break=cmdline' 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline" ++getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline" + source_hook cmdline + + [ -z "$root" ] && die "No or empty root= argument" +@@ -117,7 +117,7 @@ source_hook cmdline + export root rflags fstype netroot NEWROOT + + # pre-udev scripts run before udev starts, and are run only once. +-getarg 'rd.break=pre-udev' 'rdbreak=pre-udev' && emergency_shell -n pre-udev "Break before pre-udev" ++getarg 'rd.break=pre-udev' -d 'rdbreak=pre-udev' && emergency_shell -n pre-udev "Break before pre-udev" + source_hook pre-udev + + # start up udev and trigger cold plugs +@@ -131,11 +131,11 @@ if [ $UDEVVERSION -lt 140 ]; then + UDEV_QUEUE_EMPTY="udevadm settle --timeout=1" + fi + +-getargbool 0 rd.udev.info -y rdudevinfo && udevadm control "$UDEV_LOG_PRIO_ARG=info" +-getargbool 0 rd.udev.debug -y rdudevdebug && udevadm control "$UDEV_LOG_PRIO_ARG=debug" ++getargbool 0 rd.udev.info -d -y rdudevinfo && udevadm control "$UDEV_LOG_PRIO_ARG=info" ++getargbool 0 rd.udev.debug -d -y rdudevdebug && udevadm control "$UDEV_LOG_PRIO_ARG=debug" + udevproperty "hookdir=$hookdir" + +-getarg 'rd.break=pre-trigger' 'rdbreak=pre-trigger' && emergency_shell -n pre-trigger "Break before pre-trigger" ++getarg 'rd.break=pre-trigger' -d 'rdbreak=pre-trigger' && emergency_shell -n pre-trigger "Break before pre-trigger" + source_hook pre-trigger + + udevadm control --reload >/dev/null 2>&1 || : +@@ -143,9 +143,9 @@ udevadm control --reload >/dev/null 2>&1 || : + udevadm trigger --type=subsystems --action=add >/dev/null 2>&1 + udevadm trigger --type=devices --action=add >/dev/null 2>&1 + +-getarg 'rd.break=initqueue' 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue" ++getarg 'rd.break=initqueue' -d 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue" + +-RDRETRY=$(getarg rd.retry 'rd_retry=') ++RDRETRY=$(getarg rd.retry -d 'rd_retry=') + RDRETRY=${RDRETRY:-20} + RDRETRY=$(($RDRETRY*2)) + export RDRETRY +@@ -202,11 +202,11 @@ unset RDRETRY + + # pre-mount happens before we try to mount the root filesystem, + # and happens once. +-getarg 'rd.break=pre-mount' 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount" ++getarg 'rd.break=pre-mount' -d 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount" + source_hook pre-mount + + +-getarg 'rd.break=mount' 'rdbreak=mount' && emergency_shell -n mount "Break mount" ++getarg 'rd.break=mount' -d 'rdbreak=mount' && emergency_shell -n mount "Break mount" + # mount scripts actually try to mount the root filesystem, and may + # be sourced any number of times. As soon as one suceeds, no more are sourced. + i=0 +@@ -237,11 +237,11 @@ done + + # pre pivot scripts are sourced just before we doing cleanup and switch over + # to the new root. +-getarg 'rd.break=pre-pivot' 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot" ++getarg 'rd.break=pre-pivot' -d 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot" + source_hook pre-pivot + + # pre pivot cleanup scripts are sourced just before we switch over to the new root. +-getarg 'rd.break=cleanup' 'rdbreak=cleanup' && emergency_shell -n cleanup "Break cleanup" ++getarg 'rd.break=cleanup' -d 'rdbreak=cleanup' && emergency_shell -n cleanup "Break cleanup" + source_hook cleanup + + # By the time we get here, the root filesystem should be mounted. +@@ -340,7 +340,7 @@ wait_for_loginit + # remove helper symlink + [ -h /dev/root ] && rm -f /dev/root + +-getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root" ++getarg rd.break -d rdbreak && emergency_shell -n switch_root "Break before switch_root" + info "Switching root" + + +diff --git a/modules.d/99base/mount-hook.sh b/modules.d/99base/mount-hook.sh +index db07866..e32ecae 100755 +--- a/modules.d/99base/mount-hook.sh ++++ b/modules.d/99base/mount-hook.sh +@@ -81,7 +81,7 @@ mount_root() { + fi + + rootopts= +- if getargbool 1 rd.fstab -n rd_NO_FSTAB \ ++ if getargbool 1 rd.fstab -d -n rd_NO_FSTAB \ + && ! getarg rootflags \ + && [ -f "$NEWROOT/etc/fstab" ] \ + && ! [ -L "$NEWROOT/etc/fstab" ]; then diff --git a/0018-require-kpartx-and-partx-for-some-modules.patch b/0018-require-kpartx-and-partx-for-some-modules.patch new file mode 100644 index 0000000..1090cf6 --- /dev/null +++ b/0018-require-kpartx-and-partx-for-some-modules.patch @@ -0,0 +1,79 @@ +From 8a240aca9e295eff3941d53d8d107b44859323b7 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 13:00:08 +0200 +Subject: [PATCH] require kpartx and partx for some modules + +--- + dracut.spec | 1 + + modules.d/90dmraid/module-setup.sh | 3 ++- + modules.d/90mdraid/module-setup.sh | 4 ++-- + modules.d/90multipath/module-setup.sh | 15 ++++++++------- + 4 files changed, 13 insertions(+), 10 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index 9a93e57..0d4062f 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -81,6 +81,7 @@ Requires: gzip xz + Requires: module-init-tools >= 3.7-9 + Requires: sed + Requires: file ++Requires: kpartx + Requires: udev > 166 + %if 0%{?fedora} || 0%{?rhel} > 6 + Requires: util-linux >= 2.21 +diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh +index dad54a4..10c732c 100755 +--- a/modules.d/90dmraid/module-setup.sh ++++ b/modules.d/90dmraid/module-setup.sh +@@ -51,7 +51,8 @@ depends() { + + install() { + local _i +- dracut_install dmraid partx kpartx ++ dracut_install dmraid ++ dracut_install -o partx kpartx + + inst "$moddir/dmraid.sh" /sbin/dmraid_scan + +diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh +index 7b6f0a9..7b3c759 100755 +--- a/modules.d/90mdraid/module-setup.sh ++++ b/modules.d/90mdraid/module-setup.sh +@@ -43,8 +43,8 @@ installkernel() { + } + + install() { +- dracut_install mdadm partx cat +- dracut_install -o mdmon ++ dracut_install mdadm cat ++ dracut_install -o mdmon partx + + # XXX: mdmon really needs to run as non-root? + # If so, write only the user it needs in the initrd's /etc/passwd (and maybe /etc/group) +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 5944d25..b14f829 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -70,13 +70,14 @@ installkernel() { + install() { + local _f + dracut_install -o \ +- /sbin/dmsetup \ +- /sbin/kpartx \ +- /sbin/mpath_wait \ +- /sbin/multipath \ +- /sbin/multipathd \ +- /sbin/xdrgetuid \ +- /sbin/xdrgetprio \ ++ dmsetup \ ++ kpartx \ ++ partx \ ++ mpath_wait \ ++ multipath \ ++ multipathd \ ++ xdrgetuid \ ++ xdrgetprio \ + /etc/xdrdevices.conf \ + /etc/multipath.conf \ + /etc/multipath/* diff --git a/0019-iscsiroot.sh-do-not-source-etc-conf.d.patch b/0019-iscsiroot.sh-do-not-source-etc-conf.d.patch new file mode 100644 index 0000000..3bdcad6 --- /dev/null +++ b/0019-iscsiroot.sh-do-not-source-etc-conf.d.patch @@ -0,0 +1,23 @@ +From 35022f987cfe680897ab2e83d1897a37c9ff67e0 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 14:52:25 +0200 +Subject: [PATCH] iscsiroot.sh: do not source /etc/conf.d + +this should have been done already. +--- + modules.d/95iscsi/iscsiroot.sh | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh +index 87b7fa7..92414ee 100755 +--- a/modules.d/95iscsi/iscsiroot.sh ++++ b/modules.d/95iscsi/iscsiroot.sh +@@ -27,8 +27,6 @@ PATH=/usr/sbin:/usr/bin:/sbin:/bin + netif="$1" + iroot="$2" + +-source_all /etc/conf.d +- + # If it's not iscsi we don't continue + [ "${iroot%%:*}" = "iscsi" ] || exit 1 + diff --git a/0020-dracut.asc-add-doc-about-journalctl.patch b/0020-dracut.asc-add-doc-about-journalctl.patch new file mode 100644 index 0000000..50f7cdd --- /dev/null +++ b/0020-dracut.asc-add-doc-about-journalctl.patch @@ -0,0 +1,36 @@ +From a844fb1552d7867c77caa027ea38249c26866479 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 14:53:23 +0200 +Subject: [PATCH] dracut.asc: add doc about journalctl + +--- + dracut.asc | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/dracut.asc b/dracut.asc +index ca896ee..1791e40 100644 +--- a/dracut.asc ++++ b/dracut.asc +@@ -459,6 +459,13 @@ dracut shell commands are printed as they are executed + # less /run/initramfs/init.log + # dmesg | less + ---- ++. With dracut >= 022 and systemd, you can inspect the rd.debug output with: ++---- ++# journalctl -ab ++---- ++ ++If you want to save that output, simply mount /boot by hand or insert an USB stick and mount that. ++Then you can store the output for later inspection. + + [[information-to-include-in-your-report]] + === Information to include in your report +@@ -472,7 +479,7 @@ configuration file (e.g. _/etc/grub.conf_) or from _/proc/cmdline_. + * A copy of your disk partition information from _/etc/fstab_, which might be + obtained booting an old working initramfs or a rescue medium. + * A device listing from device-mapper. This can be obtained by running the +-command ++command + + + ---- + # dmsetup ls --tree diff --git a/0021-network-module-setup.sh-instmods-af_packet.patch b/0021-network-module-setup.sh-instmods-af_packet.patch new file mode 100644 index 0000000..21649e4 --- /dev/null +++ b/0021-network-module-setup.sh-instmods-af_packet.patch @@ -0,0 +1,21 @@ +From bf7883ebcaccc0bf95303098e36896cc4872d468 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 14:56:08 +0200 +Subject: [PATCH] network/module-setup.sh: instmods af_packet + +--- + modules.d/40network/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index c69d81a..0ffdd07 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh +@@ -73,6 +73,7 @@ installkernel() { + instmods bonding + # vlan + instmods 8021q ++ instmods af_packet + } + + install() { diff --git a/0022-Makefile-honor-CFLAGS.patch b/0022-Makefile-honor-CFLAGS.patch new file mode 100644 index 0000000..bd96edc --- /dev/null +++ b/0022-Makefile-honor-CFLAGS.patch @@ -0,0 +1,30 @@ +From e045e1f386b2e44e9be88ea53f45090dfc7e095d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 15:20:22 +0200 +Subject: [PATCH] Makefile: honor CFLAGS + +--- + Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 548952d..a109ef0 100644 +--- a/Makefile ++++ b/Makefile +@@ -8,6 +8,7 @@ pkglibdir ?= ${libdir}/dracut + sysconfdir ?= ${prefix}/etc + bindir ?= ${prefix}/bin + mandir ?= ${prefix}/share/man ++CFLAGS ?= -std=gnu99 -O2 -g -Wall + + man1pages = lsinitrd.1 + +@@ -46,7 +47,7 @@ DRACUT_INSTALL_HEADER = \ + install/util.h + + dracut-install: $(DRACUT_INSTALL_SOURCE) $(DRACUT_INSTALL_HEADER) +- gcc -std=gnu99 -O2 -g -Wall -o dracut-install $(DRACUT_INSTALL_SOURCE) ++ gcc $(CFLAGS) -o dracut-install $(DRACUT_INSTALL_SOURCE) + + indent: + indent -i8 -nut -br -linux -l120 install/dracut-install.c diff --git a/0023-TODO-update.patch b/0023-TODO-update.patch new file mode 100644 index 0000000..b7a766f --- /dev/null +++ b/0023-TODO-update.patch @@ -0,0 +1,21 @@ +From 585fd00624d0799c2511d9f0f384a2aee9dc8a3b Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 15:20:37 +0200 +Subject: [PATCH] TODO: update + +--- + TODO | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/TODO b/TODO +index 4fc7728..61be5d5 100644 +--- a/TODO ++++ b/TODO +@@ -6,6 +6,7 @@ Items are ordered in priority. + + INITRAMFS TODO + ++- add sosreport + - generate systemd unit dracut-initramfs-restore in /run/systemd dynamically + - put "root=" parsing hooks in separate hook dir + - call "root=" parsing hooks after getting new rootpath from dhcp diff --git a/0024-qemu-module-setup.sh-provide-alternative-for-systemd.patch b/0024-qemu-module-setup.sh-provide-alternative-for-systemd.patch new file mode 100644 index 0000000..f1a6fd0 --- /dev/null +++ b/0024-qemu-module-setup.sh-provide-alternative-for-systemd.patch @@ -0,0 +1,70 @@ +From f1040fc4702778b38e6cc9eaf5b4c1ff24a7c26c Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Wed, 25 Jul 2012 16:03:49 +0200 +Subject: [PATCH] qemu*/module-setup.sh: provide alternative for + systemd-detect-virt + +--- + modules.d/90qemu-net/module-setup.sh | 19 +++++++++++++++---- + modules.d/90qemu/module-setup.sh | 18 ++++++++++++++---- + 2 files changed, 29 insertions(+), 8 deletions(-) + +diff --git a/modules.d/90qemu-net/module-setup.sh b/modules.d/90qemu-net/module-setup.sh +index 35c8f0f..e617230 100755 +--- a/modules.d/90qemu-net/module-setup.sh ++++ b/modules.d/90qemu-net/module-setup.sh +@@ -3,10 +3,21 @@ + # ex: ts=8 sw=4 sts=4 et filetype=sh + + check() { +- vm=$(systemd-detect-virt --vm &>/dev/null) +- (($? != 0)) && return 255 +- [[ $vm = "qemu" ]] && return 0 +- [[ $vm = "kvm" ]] && return 0 ++ if type -P systemd-detect-virt &>/dev/null; then ++ vm=$(systemd-detect-virt --vm &>/dev/null) ++ (($? != 0)) && return 255 ++ [[ $vm = "qemu" ]] && return 0 ++ [[ $vm = "kvm" ]] && return 0 ++ [[ $vm = "bochs" ]] && return 0 ++ fi ++ ++ for i in /sys/class/dmi/id/*_vendor; do ++ [[ -f $i ]] || continue ++ read vendor < $i ++ [[ "$vendor" == "QEMU" ]] && return 0 ++ [[ "$vendor" == "Bochs" ]] && return 0 ++ done ++ + return 255 + } + +diff --git a/modules.d/90qemu/module-setup.sh b/modules.d/90qemu/module-setup.sh +index 3e55f23..fc258ac 100755 +--- a/modules.d/90qemu/module-setup.sh ++++ b/modules.d/90qemu/module-setup.sh +@@ -3,10 +3,20 @@ + # ex: ts=8 sw=4 sts=4 et filetype=sh + + check() { +- vm=$(systemd-detect-virt --vm &>/dev/null) +- (($? != 0)) && return 255 +- [[ $vm = "qemu" ]] && return 0 +- [[ $vm = "kvm" ]] && return 0 ++ if type -P systemd-detect-virt &>/dev/null; then ++ vm=$(systemd-detect-virt --vm &>/dev/null) ++ (($? != 0)) && return 255 ++ [[ $vm = "qemu" ]] && return 0 ++ [[ $vm = "kvm" ]] && return 0 ++ [[ $vm = "bochs" ]] && return 0 ++ fi ++ ++ for i in /sys/class/dmi/id/*_vendor; do ++ [[ -f $i ]] || continue ++ read vendor < $i ++ [[ "$vendor" == "QEMU" ]] && return 0 ++ [[ "$vendor" == "Bochs" ]] && return 0 ++ done + return 255 + } + diff --git a/0025-Remove-object-file-from-repo-install-hashmap.o.patch b/0025-Remove-object-file-from-repo-install-hashmap.o.patch new file mode 100644 index 0000000..3c399f5 --- /dev/null +++ b/0025-Remove-object-file-from-repo-install-hashmap.o.patch @@ -0,0 +1,274 @@ +From 386579a45a69c428cddffe30c473dd21213f3ea1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Wed, 25 Jul 2012 22:08:22 +0200 +Subject: [PATCH] Remove object file from repo: install/hashmap.o + +--- + install/hashmap.o | Bin 46384 -> 0 bytes + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 install/hashmap.o + +diff --git a/install/hashmap.o b/install/hashmap.o +deleted file mode 100644 +index 70262be391ee9c816ebaf9c8601bc60a7bc8a2e3..0000000000000000000000000000000000000000 +GIT binary patch +literal 0 +HcmV?d00001 + +literal 46384 +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 +Z;IjWdEpXX?_X}M1-z@5!Xs7JI{|kk}U*7-# + diff --git a/0026-Makefile-use-implicit-rules-for-install-dracut-insta.patch b/0026-Makefile-use-implicit-rules-for-install-dracut-insta.patch new file mode 100644 index 0000000..3ea74d4 --- /dev/null +++ b/0026-Makefile-use-implicit-rules-for-install-dracut-insta.patch @@ -0,0 +1,77 @@ +From ab8bfca7949cf18837ead4b3aebd5f2186a6f739 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Wed, 25 Jul 2012 22:08:23 +0200 +Subject: [PATCH] Makefile: use implicit rules for install/dracut-install + +Don't fail on install rule if install/dracut-install is not build - just +skip it. $(strip) is not used by install rule, because it is nowhere +set. +--- + Makefile | 30 ++++++++++++++---------------- + 1 file changed, 14 insertions(+), 16 deletions(-) + +diff --git a/Makefile b/Makefile +index a109ef0..d013cbc 100644 +--- a/Makefile ++++ b/Makefile +@@ -8,7 +8,8 @@ pkglibdir ?= ${libdir}/dracut + sysconfdir ?= ${prefix}/etc + bindir ?= ${prefix}/bin + mandir ?= ${prefix}/share/man +-CFLAGS ?= -std=gnu99 -O2 -g -Wall ++CFLAGS ?= -O2 -g -Wall ++CFLAGS += -std=gnu99 + + man1pages = lsinitrd.1 + +@@ -32,22 +33,17 @@ manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages) + + .PHONY: install clean archive rpm testimage test all check AUTHORS doc + +-all: syncheck dracut-version.sh dracut-install ++DRACUT_INSTALL_BIN = install/dracut-install + +-DRACUT_INSTALL_SOURCE = \ +- install/dracut-install.c \ +- install/hashmap.c\ +- install/log.c \ +- install/util.c ++DRACUT_INSTALL_OBJECTS = \ ++ install/dracut-install.o \ ++ install/hashmap.o\ ++ install/log.o \ ++ install/util.o + +-DRACUT_INSTALL_HEADER = \ +- install/hashmap.h \ +- install/log.h \ +- install/macro.h \ +- install/util.h ++all: syncheck dracut-version.sh $(DRACUT_INSTALL_BIN) + +-dracut-install: $(DRACUT_INSTALL_SOURCE) $(DRACUT_INSTALL_HEADER) +- gcc $(CFLAGS) -o dracut-install $(DRACUT_INSTALL_SOURCE) ++$(DRACUT_INSTALL_BIN): $(DRACUT_INSTALL_OBJECTS) + + indent: + indent -i8 -nut -br -linux -l120 install/dracut-install.c +@@ -99,7 +95,9 @@ install: doc dracut-version.sh + ln -s ../dracut-shutdown.service \ + $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants/dracut-shutdown.service; \ + fi +- install $(strip) -m 0755 dracut-install $(DESTDIR)$(pkglibdir)/dracut-install ++ if [ -x $(DRACUT_INSTALL_BIN) ]; then \ ++ install -m 0755 $(DRACUT_INSTALL_BIN) $(DESTDIR)$(pkglibdir)/dracut-install; \ ++ fi + + dracut-version.sh: + @echo "DRACUT_VERSION=$(VERSION)-$(GITVERSION)" > dracut-version.sh +@@ -110,7 +108,7 @@ clean: + $(RM) */*/*~ + $(RM) test-*.img + $(RM) dracut-*.rpm dracut-*.tar.bz2 +- $(RM) dracut-install ++ $(RM) $(DRACUT_INSTALL_BIN) $(DRACUT_INSTALL_OBJECTS) + $(RM) $(manpages) dracut.html + $(MAKE) -C test clean + diff --git a/0027-95fstab-sys-Skip-mounted-filesystem.patch b/0027-95fstab-sys-Skip-mounted-filesystem.patch new file mode 100644 index 0000000..5c1419a --- /dev/null +++ b/0027-95fstab-sys-Skip-mounted-filesystem.patch @@ -0,0 +1,22 @@ +From 06c6ea654f09c9993aaddab137b4af011d9d6c0e Mon Sep 17 00:00:00 2001 +From: Chao Wang <chaowang@redhat.com> +Date: Thu, 26 Jul 2012 11:24:25 +0800 +Subject: [PATCH] 95fstab-sys: Skip mounted filesystem. + +Signed-off-by: Chao Wang <chaowang@redhat.com> +--- + modules.d/95fstab-sys/mount-sys.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/95fstab-sys/mount-sys.sh b/modules.d/95fstab-sys/mount-sys.sh +index a1e5ab1..12711a0 100755 +--- a/modules.d/95fstab-sys/mount-sys.sh ++++ b/modules.d/95fstab-sys/mount-sys.sh +@@ -11,6 +11,7 @@ fstab_mount() { + info "Mounting from $1" + while read _dev _mp _fs _opts _dump _pass _rest; do + [ -z "${_dev%%#*}" ] && continue # Skip comment lines ++ ismounted $_mp && continue # Skip mounted filesystem + if [ "$_pass" -gt 0 ] && ! strstr "$_opts" _netdev; then + fsck_single "$_dev" "$_fs" "$_opts" + fi diff --git a/0028-90multipath-check-Regexp-fix-to-match-multipath-part.patch b/0028-90multipath-check-Regexp-fix-to-match-multipath-part.patch new file mode 100644 index 0000000..8c34785 --- /dev/null +++ b/0028-90multipath-check-Regexp-fix-to-match-multipath-part.patch @@ -0,0 +1,30 @@ +From 63c65b984a2baddf2a7046e65e8719f6485ec10e Mon Sep 17 00:00:00 2001 +From: Chao Wang <chaowang@redhat.com> +Date: Thu, 26 Jul 2012 11:24:26 +0800 +Subject: [PATCH] 90multipath: check() - Regexp fix to match multipath + partition. + +A multipath partition's uuid will be presented like: + # cat /sys/dev/block/$_dev/dm/uuid + part1-mpath-360060e801047103004f2c4b300000008 + +So in this case, change the match regexp from '^mpath-' to 'mpath-'. + +Signed-off-by: Chao Wang <chaowang@redhat.com> +--- + modules.d/90multipath/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index b14f829..98748d3 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -11,7 +11,7 @@ check() { + local _dev + _dev=$(get_maj_min $1) + [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1 +- [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ ^mpath- ]] && return 0 ++ [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0 + return 1 + } + diff --git a/0029-dmsquash-live-do-not-eject-medium-for-live_ram.patch b/0029-dmsquash-live-do-not-eject-medium-for-live_ram.patch new file mode 100644 index 0000000..84e85fb --- /dev/null +++ b/0029-dmsquash-live-do-not-eject-medium-for-live_ram.patch @@ -0,0 +1,35 @@ +From 372c9b9647f039fa02779ca4fae3118c5f08e6f1 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 09:25:28 +0200 +Subject: [PATCH] dmsquash-live: do not eject medium for live_ram + +--- + modules.d/90dmsquash-live/dmsquash-live-root.sh | 1 - + modules.d/90dmsquash-live/module-setup.sh | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh +index 15f166b..f8bfca6 100755 +--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh ++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh +@@ -167,7 +167,6 @@ if [ -e "$SQUASHED" ] ; then + dd if=$SQUASHED of=/squashed.img bs=512 2> /dev/null + umount -n /run/initramfs/live + echo "Done copying live image to RAM." +- eject -p $livedev || : + SQUASHED="/squashed.img" + fi + +diff --git a/modules.d/90dmsquash-live/module-setup.sh b/modules.d/90dmsquash-live/module-setup.sh +index 05603a5..3339e1d 100755 +--- a/modules.d/90dmsquash-live/module-setup.sh ++++ b/modules.d/90dmsquash-live/module-setup.sh +@@ -21,7 +21,7 @@ installkernel() { + + install() { + dracut_install umount dmsetup blkid dd losetup grep blockdev +- dracut_install -o eject checkisomd5 ++ dracut_install -o checkisomd5 + inst_hook cmdline 30 "$moddir/parse-dmsquash-live.sh" + inst_hook pre-udev 30 "$moddir/dmsquash-live-genrules.sh" + inst_hook pre-udev 30 "$moddir/dmsquash-liveiso-genrules.sh" diff --git a/0030-Remove-obsolete-gentoo-conf-file.patch b/0030-Remove-obsolete-gentoo-conf-file.patch new file mode 100644 index 0000000..b210c9d --- /dev/null +++ b/0030-Remove-obsolete-gentoo-conf-file.patch @@ -0,0 +1,43 @@ +From f6297ebe736c832d72a69c8a27b64152eb5559a6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 09:35:56 +0200 +Subject: [PATCH] Remove obsolete gentoo conf file. + +--- + dracut.conf.d/gentoo-openrc.conf.example | 9 --------- + dracut.conf.d/gentoo.conf.example | 6 +++--- + 2 files changed, 3 insertions(+), 12 deletions(-) + delete mode 100644 dracut.conf.d/gentoo-openrc.conf.example + +diff --git a/dracut.conf.d/gentoo-openrc.conf.example b/dracut.conf.d/gentoo-openrc.conf.example +deleted file mode 100644 +index f5aa8ed..0000000 +--- a/dracut.conf.d/gentoo-openrc.conf.example ++++ /dev/null +@@ -1,9 +0,0 @@ +-# /etc/dracut.conf.d/gentoo-openrc.conf +-# Dracut config file customized for Gentoo Base System release 2 +- +-# +-# Modules +-# +- +-# i18n +-i18n_vars="/etc/conf.d/keymaps:keymap-KEYMAP,extended_keymaps-EXT_KEYMAPS /etc/conf.d/consolefont:consolefont-FONT,consoletranslation-FONT_MAP /etc/rc.conf:unicode-UNICODE" +diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example +index a40b746..f5aa8ed 100644 +--- a/dracut.conf.d/gentoo.conf.example ++++ b/dracut.conf.d/gentoo.conf.example +@@ -1,9 +1,9 @@ +-# /etc/dracut.conf.d/gentoo.conf +-# Dracut config file customized for Gentoo Base System release 1 ++# /etc/dracut.conf.d/gentoo-openrc.conf ++# Dracut config file customized for Gentoo Base System release 2 + + # + # Modules + # + + # i18n +-i18n_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS /etc/conf.d/consolefont:CONSOLEFONT-FONT,CONSOLETRANSLATION-FONT_MAP /etc/rc.conf:UNICODE" ++i18n_vars="/etc/conf.d/keymaps:keymap-KEYMAP,extended_keymaps-EXT_KEYMAPS /etc/conf.d/consolefont:consolefont-FONT,consoletranslation-FONT_MAP /etc/rc.conf:unicode-UNICODE" diff --git a/0031-Config-file-for-systemd-on-Gentoo.patch b/0031-Config-file-for-systemd-on-Gentoo.patch new file mode 100644 index 0000000..25bbdc6 --- /dev/null +++ b/0031-Config-file-for-systemd-on-Gentoo.patch @@ -0,0 +1,21 @@ +From e625eea4f9af15f9de6e840e6db797b5f50b7e1f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 09:35:57 +0200 +Subject: [PATCH] Config file for systemd on Gentoo. + +--- + dracut.conf.d/gentoo-systemd.conf.example | 5 +++++ + 1 file changed, 5 insertions(+) + create mode 100644 dracut.conf.d/gentoo-systemd.conf.example + +diff --git a/dracut.conf.d/gentoo-systemd.conf.example b/dracut.conf.d/gentoo-systemd.conf.example +new file mode 100644 +index 0000000..00af70b +--- /dev/null ++++ b/dracut.conf.d/gentoo-systemd.conf.example +@@ -0,0 +1,5 @@ ++# /etc/dracut.conf.d/gentoo-systemd.conf ++ ++# Paths of systemd dirs on Gentoo ++systemdutildir=/usr/lib/systemd ++systemdsystemunitdir=/usr/lib/systemd/system diff --git a/0032-gentoo.conf-set-udevdir.patch b/0032-gentoo.conf-set-udevdir.patch new file mode 100644 index 0000000..0f70f27 --- /dev/null +++ b/0032-gentoo.conf-set-udevdir.patch @@ -0,0 +1,22 @@ +From f67a1f7f64bbc48edbcf76a09cac0573ea626653 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 09:35:58 +0200 +Subject: [PATCH] gentoo.conf: set udevdir + +--- + dracut.conf.d/gentoo.conf.example | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example +index f5aa8ed..411f9a0 100644 +--- a/dracut.conf.d/gentoo.conf.example ++++ b/dracut.conf.d/gentoo.conf.example +@@ -1,6 +1,8 @@ + # /etc/dracut.conf.d/gentoo-openrc.conf + # Dracut config file customized for Gentoo Base System release 2 + ++udevdir=/lib/udev ++ + # + # Modules + # diff --git a/0033-90kernel-modules-remove-unused-variables-in-install.patch b/0033-90kernel-modules-remove-unused-variables-in-install.patch new file mode 100644 index 0000000..58715b8 --- /dev/null +++ b/0033-90kernel-modules-remove-unused-variables-in-install.patch @@ -0,0 +1,25 @@ +From 823311ea3b7bd74570e56a804b7dc166d6b74e27 Mon Sep 17 00:00:00 2001 +From: Cong Wang <xiyou.wangcong@gmail.com> +Date: Thu, 26 Jul 2012 15:39:13 +0800 +Subject: [PATCH] 90kernel-modules: remove unused variables in install() + +The local variables in install() are unused, can be removed. + +Cc: Harald Hoyer <harald@redhat.com> +Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> +--- + modules.d/90kernel-modules/module-setup.sh | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 1632367..5018dc1 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -75,7 +75,6 @@ installkernel() { + } + + install() { +- local _f i + [ -f /etc/modprobe.conf ] && dracut_install /etc/modprobe.conf + dracut_install -o /{etc,lib}/modprobe.d/*.conf + inst_hook cmdline 01 "$moddir/parse-kernel.sh" diff --git a/0034-90multipath-added-kpartx.rules-multipath.rules-diffe.patch b/0034-90multipath-added-kpartx.rules-multipath.rules-diffe.patch new file mode 100644 index 0000000..ed935ac --- /dev/null +++ b/0034-90multipath-added-kpartx.rules-multipath.rules-diffe.patch @@ -0,0 +1,22 @@ +From 15f0b1f62446cb1a28166f3d53d63f00557f42a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 11:38:04 +0200 +Subject: [PATCH] 90multipath: added kpartx.rules; multipath.rules - different + prefix + +--- + modules.d/90multipath/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 98748d3..862a8ed 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -86,6 +86,6 @@ install() { + + inst_hook pre-trigger 02 "$moddir/multipathd.sh" + inst_hook cleanup 02 "$moddir/multipathd-stop.sh" +- inst_rules 40-multipath.rules ++ inst_rules 40-multipath.rules 65-multipath.rules 66-kpartx.rules + } + diff --git a/0035-Makefile-fixed-dracut-install-make-target.patch b/0035-Makefile-fixed-dracut-install-make-target.patch new file mode 100644 index 0000000..0594035 --- /dev/null +++ b/0035-Makefile-fixed-dracut-install-make-target.patch @@ -0,0 +1,77 @@ +From 24ba78cb77b3a8ce50902da1795a2d3cdac11691 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 11:50:50 +0200 +Subject: [PATCH] Makefile: fixed dracut-install make target + +--- + Makefile | 27 +++++++++++++++++---------- + dracut.spec | 1 + + 2 files changed, 18 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index d013cbc..0dbc6eb 100644 +--- a/Makefile ++++ b/Makefile +@@ -33,17 +33,24 @@ manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages) + + .PHONY: install clean archive rpm testimage test all check AUTHORS doc + +-DRACUT_INSTALL_BIN = install/dracut-install +- +-DRACUT_INSTALL_OBJECTS = \ +- install/dracut-install.o \ +- install/hashmap.o\ +- install/log.o \ +- install/util.o ++DRACUT_INSTALL_BIN = dracut-install + + all: syncheck dracut-version.sh $(DRACUT_INSTALL_BIN) + +-$(DRACUT_INSTALL_BIN): $(DRACUT_INSTALL_OBJECTS) ++DRACUT_INSTALL_SOURCE = \ ++ install/dracut-install.c \ ++ install/hashmap.c\ ++ install/log.c \ ++ install/util.c ++ ++DRACUT_INSTALL_HEADER = \ ++ install/hashmap.h \ ++ install/log.h \ ++ install/macro.h \ ++ install/util.h ++ ++$(DRACUT_INSTALL_BIN): $(DRACUT_INSTALL_SOURCE) $(DRACUT_INSTALL_HEADER) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(DRACUT_INSTALL_BIN) $(DRACUT_INSTALL_SOURCE) + + indent: + indent -i8 -nut -br -linux -l120 install/dracut-install.c +@@ -95,7 +102,7 @@ install: doc dracut-version.sh + ln -s ../dracut-shutdown.service \ + $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants/dracut-shutdown.service; \ + fi +- if [ -x $(DRACUT_INSTALL_BIN) ]; then \ ++ if [ -f $(DRACUT_INSTALL_BIN) ]; then \ + install -m 0755 $(DRACUT_INSTALL_BIN) $(DESTDIR)$(pkglibdir)/dracut-install; \ + fi + +@@ -108,7 +115,7 @@ clean: + $(RM) */*/*~ + $(RM) test-*.img + $(RM) dracut-*.rpm dracut-*.tar.bz2 +- $(RM) $(DRACUT_INSTALL_BIN) $(DRACUT_INSTALL_OBJECTS) ++ $(RM) $(DRACUT_INSTALL_BIN) + $(RM) $(manpages) dracut.html + $(MAKE) -C test clean + +diff --git a/dracut.spec b/dracut.spec +index 0d4062f..d960506 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -286,6 +286,7 @@ rm -rf $RPM_BUILD_ROOT + %{dracutlibdir}/modules.d/90multipath + %{dracutlibdir}/modules.d/90qemu + %{dracutlibdir}/modules.d/91crypt-gpg ++%{dracutlibdir}/modules.d/91crypt-loop + %{dracutlibdir}/modules.d/95debug + %{dracutlibdir}/modules.d/95resume + %{dracutlibdir}/modules.d/95rootfs-block diff --git a/0036-multipath-module-setup.sh-add-dm-dependency.patch b/0036-multipath-module-setup.sh-add-dm-dependency.patch new file mode 100644 index 0000000..486723a --- /dev/null +++ b/0036-multipath-module-setup.sh-add-dm-dependency.patch @@ -0,0 +1,21 @@ +From 15976a06701fc565b591e2bbfc36d0f5c3daac2b Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 12:43:20 +0200 +Subject: [PATCH] multipath/module-setup.sh: add dm dependency + +--- + modules.d/90multipath/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 862a8ed..f9c1f81 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -24,6 +24,7 @@ check() { + + depends() { + echo rootfs-block ++ echo dm + return 0 + } + diff --git a/0037-Makefile-use-symlink-for-topsrcdir-dracut-install.patch b/0037-Makefile-use-symlink-for-topsrcdir-dracut-install.patch new file mode 100644 index 0000000..7f8ba5f --- /dev/null +++ b/0037-Makefile-use-symlink-for-topsrcdir-dracut-install.patch @@ -0,0 +1,85 @@ +From 4a1255bc38937714fb76702780147d0be465131d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 12:27:29 +0200 +Subject: [PATCH] Makefile: use symlink for topsrcdir/dracut-install + +--- + Makefile | 34 ++++++++++++++-------------------- + 1 file changed, 14 insertions(+), 20 deletions(-) + +diff --git a/Makefile b/Makefile +index 0dbc6eb..28381df 100644 +--- a/Makefile ++++ b/Makefile +@@ -33,24 +33,18 @@ manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages) + + .PHONY: install clean archive rpm testimage test all check AUTHORS doc + +-DRACUT_INSTALL_BIN = dracut-install ++all: syncheck dracut-version.sh dracut-install + +-all: syncheck dracut-version.sh $(DRACUT_INSTALL_BIN) ++DRACUT_INSTALL_OBJECTS = \ ++ install/dracut-install.o \ ++ install/hashmap.o\ ++ install/log.o \ ++ install/util.o + +-DRACUT_INSTALL_SOURCE = \ +- install/dracut-install.c \ +- install/hashmap.c\ +- install/log.c \ +- install/util.c ++install/dracut-install: $(DRACUT_INSTALL_OBJECTS) + +-DRACUT_INSTALL_HEADER = \ +- install/hashmap.h \ +- install/log.h \ +- install/macro.h \ +- install/util.h +- +-$(DRACUT_INSTALL_BIN): $(DRACUT_INSTALL_SOURCE) $(DRACUT_INSTALL_HEADER) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $(DRACUT_INSTALL_BIN) $(DRACUT_INSTALL_SOURCE) ++dracut-install: install/dracut-install ++ ln -fs $< $@ + + indent: + indent -i8 -nut -br -linux -l120 install/dracut-install.c +@@ -86,7 +80,7 @@ install: doc dracut-version.sh + mkdir -p $(DESTDIR)$(sysconfdir)/dracut.conf.d + install -m 0755 dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions.sh + install -m 0755 dracut-version.sh $(DESTDIR)$(pkglibdir)/dracut-version.sh +- ln -s dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions ++ ln -fs dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions + install -m 0755 dracut-logger.sh $(DESTDIR)$(pkglibdir)/dracut-logger.sh + install -m 0755 dracut-initramfs-restore.sh $(DESTDIR)$(pkglibdir)/dracut-initramfs-restore + cp -arx modules.d $(DESTDIR)$(pkglibdir) +@@ -94,7 +88,7 @@ install: doc dracut-version.sh + for i in $(man5pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man5/$${i##*/}; done + for i in $(man7pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man7/$${i##*/}; done + for i in $(man8pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man8/$${i##*/}; done +- ln -s dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.kernel.7 ++ ln -fs dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.kernel.7 + if [ -n "$(systemdsystemunitdir)" ]; then \ + mkdir -p $(DESTDIR)$(systemdsystemunitdir); \ + install -m 0644 dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir); \ +@@ -102,8 +96,8 @@ install: doc dracut-version.sh + ln -s ../dracut-shutdown.service \ + $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants/dracut-shutdown.service; \ + fi +- if [ -f $(DRACUT_INSTALL_BIN) ]; then \ +- install -m 0755 $(DRACUT_INSTALL_BIN) $(DESTDIR)$(pkglibdir)/dracut-install; \ ++ if [ -f install/dracut-install ]; then \ ++ install -m 0755 install/dracut-install $(DESTDIR)$(pkglibdir)/dracut-install; \ + fi + + dracut-version.sh: +@@ -115,7 +109,7 @@ clean: + $(RM) */*/*~ + $(RM) test-*.img + $(RM) dracut-*.rpm dracut-*.tar.bz2 +- $(RM) $(DRACUT_INSTALL_BIN) ++ $(RM) $(DRACUT_INSTALL_BIN) install/dracut-install $(DRACUT_INSTALL_OBJECTS) + $(RM) $(manpages) dracut.html + $(MAKE) -C test clean + diff --git a/0038-systemd-dracut-cmdline.sh-output-dracut-version.patch b/0038-systemd-dracut-cmdline.sh-output-dracut-version.patch new file mode 100644 index 0000000..6faf2d1 --- /dev/null +++ b/0038-systemd-dracut-cmdline.sh-output-dracut-version.patch @@ -0,0 +1,23 @@ +From 93d7b823b43207323ca7a2947103b668e905eb94 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 14:23:31 +0200 +Subject: [PATCH] systemd/dracut-cmdline.sh: output dracut version + +--- + modules.d/98systemd/dracut-cmdline.sh | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh +index 77ad121..927b99a 100755 +--- a/modules.d/98systemd/dracut-cmdline.sh ++++ b/modules.d/98systemd/dracut-cmdline.sh +@@ -12,6 +12,9 @@ if [ -f /dracut-state.sh ]; then + fi + type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + ++[ -f /etc/initrd-release ] && . /etc/initrd-release ++[ -n "$VERSION" ] && info "dracut-$VERSION" ++ + source_conf /etc/conf.d + + # run scriptlets to parse the command line diff --git a/0039-95rootfs-block-fix-left-fsck-rel.-checks.patch b/0039-95rootfs-block-fix-left-fsck-rel.-checks.patch new file mode 100644 index 0000000..4ac69df --- /dev/null +++ b/0039-95rootfs-block-fix-left-fsck-rel.-checks.patch @@ -0,0 +1,42 @@ +From af3b67b21308a7b91bb423ae93af54a6a3e41afd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:05:21 +0200 +Subject: [PATCH] 95rootfs-block: fix left fsck rel. checks + +--- + modules.d/95rootfs-block/mount-root.sh | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh +index 670f6e3..ef8ca3c 100755 +--- a/modules.d/95rootfs-block/mount-root.sh ++++ b/modules.d/95rootfs-block/mount-root.sh +@@ -52,11 +52,11 @@ mount_root() { + fastboot=yes + fi + +- if [ -f "$NEWROOT"/fsckoptions ]; then +- fsckoptions=$(cat "$NEWROOT"/fsckoptions) +- fi +- + if ! getargbool 0 rd.skipfsck; then ++ if [ -f "$NEWROOT"/fsckoptions ]; then ++ fsckoptions=$(cat "$NEWROOT"/fsckoptions) ++ fi ++ + if [ -f "$NEWROOT"/forcefsck ] || getargbool 0 forcefsck ; then + fsckoptions="-f $fsckoptions" + elif [ -f "$NEWROOT"/.autofsck ]; then +@@ -130,8 +130,10 @@ mount_root() { + mount -o remount "$NEWROOT" 2>&1 | vinfo + fi + +- [ -f "$NEWROOT"/forcefsck ] && rm -f "$NEWROOT"/forcefsck 2>/dev/null +- [ -f "$NEWROOT"/.autofsck ] && rm -f "$NEWROOT"/.autofsck 2>/dev/null ++ if ! getargbool 0 rd.skipfsck; then ++ [ -f "$NEWROOT"/forcefsck ] && rm -f "$NEWROOT"/forcefsck 2>/dev/null ++ [ -f "$NEWROOT"/.autofsck ] && rm -f "$NEWROOT"/.autofsck 2>/dev/null ++ fi + } + + if [ -n "$root" -a -z "${root%%block:*}" ]; then diff --git a/0040-98usrmount-use-rw-and-ro-options-instead-of-rd.usrmo.patch b/0040-98usrmount-use-rw-and-ro-options-instead-of-rd.usrmo.patch new file mode 100644 index 0000000..6bb1bd8 --- /dev/null +++ b/0040-98usrmount-use-rw-and-ro-options-instead-of-rd.usrmo.patch @@ -0,0 +1,78 @@ +From 5afa95791594383c1f1ef7a757a7482717d6fd5f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:05:22 +0200 +Subject: [PATCH] 98usrmount: use rw and ro options instead of rd.usrmount.ro + +In result /usr is forced to be mounted ro or rw along with /. +--- + dracut.cmdline.7.asc | 12 ++++++++---- + modules.d/98usrmount/mount-usr.sh | 18 +++++++++--------- + 2 files changed, 17 insertions(+), 13 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 755d641..8f642f3 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -61,6 +61,14 @@ rootfstype=ext3 + _/etc/fstab_ of the real root will be parsed for special mount options and + mounted accordingly. + ++**ro**:: ++ force mounting _/_ and _/usr_ (if it is a separate device) read-only. If ++ none of ro and rw is present, both are mounted according to _/etc/fstab_. ++ ++**rw**:: ++ force mounting _/_ and _/usr_ (if it is a separate device) read-write. ++ See also ro option. ++ + **rd.fstab=0**:: + do not honor special mount options for the root filesystem found in + _/etc/fstab_ of the real root. +@@ -81,10 +89,6 @@ resume=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7 + the init system performs fsck before remount, you might want to use this + option to avoid duplication. + +-**rd.usrmount.ro**: +- force mounting _/usr_ read-only. Use this option if your init system +- performs remount of _/usr_ the same as it does with rootfs. +- + + Misc + ~~~~ +diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh +index c277d74..98e08e3 100755 +--- a/modules.d/98usrmount/mount-usr.sh ++++ b/modules.d/98usrmount/mount-usr.sh +@@ -57,9 +57,12 @@ mount_usr() + [ -n "$rflags" ]; then + # for btrfs subvolumes we have to mount /usr with the same rflags + _opts="${_opts:+${_opts},}${rflags}" +- elif getarg ro; then +- # if "ro" is specified, we want /usr to be readonly, too ++ elif getargbool 0 ro; then ++ # if "ro" is specified, we want /usr to be mounted read-only + _opts="${_opts:+${_opts},}ro" ++ elif getargbool 0 rw; then ++ # if "rw" is specified, we want /usr to be mounted read-write ++ _opts="${_opts:+${_opts},}rw" + fi + echo "$_dev ${NEWROOT}${_mp} $_fs ${_opts} $_freq $_passno" + _usr_found="1" +@@ -77,13 +80,10 @@ mount_usr() + [ $_fsck_ret -ne 255 ] && echo $_fsck_ret >/run/initramfs/usr-fsck + fi + fi +- if getargbool 0 rd.usrmount.ro; then +- info "Mounting /usr (read-only forced)" +- mount -r "$NEWROOT/usr" 2>&1 | vinfo +- else +- info "Mounting /usr" +- mount "$NEWROOT/usr" 2>&1 | vinfo +- fi ++ ++ info "Mounting /usr" ++ mount "$NEWROOT/usr" 2>&1 | vinfo ++ + if ! ismounted "$NEWROOT/usr"; then + warn "Mounting /usr to $NEWROOT/usr failed" + warn "*** Dropping you to a shell; the system will continue" diff --git a/0041-98usrmount-print-mount-options.patch b/0041-98usrmount-print-mount-options.patch new file mode 100644 index 0000000..10976c0 --- /dev/null +++ b/0041-98usrmount-print-mount-options.patch @@ -0,0 +1,22 @@ +From b56e174322f9998b86e6272fdcca009d2a2ab7a4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:05:23 +0200 +Subject: [PATCH] 98usrmount: print mount options + +--- + modules.d/98usrmount/mount-usr.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh +index 98e08e3..f4d59b3 100755 +--- a/modules.d/98usrmount/mount-usr.sh ++++ b/modules.d/98usrmount/mount-usr.sh +@@ -81,7 +81,7 @@ mount_usr() + fi + fi + +- info "Mounting /usr" ++ info "Mounting /usr with -o $_opts" + mount "$NEWROOT/usr" 2>&1 | vinfo + + if ! ismounted "$NEWROOT/usr"; then diff --git a/0042-98usrmount-x-_usr_found-x-removed-redundant-x.patch b/0042-98usrmount-x-_usr_found-x-removed-redundant-x.patch new file mode 100644 index 0000000..e63be3e --- /dev/null +++ b/0042-98usrmount-x-_usr_found-x-removed-redundant-x.patch @@ -0,0 +1,23 @@ +From 221c342d5068c1fa05e38c44b1044a0aacae4a5c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:05:24 +0200 +Subject: [PATCH] 98usrmount: [ "x$_usr_found" != "x" ] - removed redundant + 'x' + +--- + modules.d/98usrmount/mount-usr.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh +index f4d59b3..cca41c3 100755 +--- a/modules.d/98usrmount/mount-usr.sh ++++ b/modules.d/98usrmount/mount-usr.sh +@@ -70,7 +70,7 @@ mount_usr() + fi + done < "$NEWROOT/etc/fstab" >> /etc/fstab + +- if [ "x$_usr_found" != "x" ]; then ++ if [ "$_usr_found" != "" ]; then + # we have to mount /usr + _fsck_ret=0 + if ! getargbool 0 rd.skipfsck; then diff --git a/0043-dracut-lib-new-functions-listlist-and-are_lists_eq.patch b/0043-dracut-lib-new-functions-listlist-and-are_lists_eq.patch new file mode 100644 index 0000000..f0ae8e9 --- /dev/null +++ b/0043-dracut-lib-new-functions-listlist-and-are_lists_eq.patch @@ -0,0 +1,57 @@ +From 5767201eaf7d2265066d17cd5b97691cbb191e3b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:05:25 +0200 +Subject: [PATCH] dracut-lib: new functions: listlist and are_lists_eq + +listlist is like strstr for lists with specified separator and +are_lists_eq uses listlist to check equality of specified lists. +--- + modules.d/99base/dracut-lib.sh | 38 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index 786661e..2eb1224 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -906,3 +906,41 @@ export_n() + [ -n "$val" ] && eval $var=\"$val\" + done + } ++ ++# returns OK if list1 contains all elements of list2, i.e. checks if list2 is a ++# sublist of list1. An order and a duplication doesn't matter. ++# ++# $1 = separator ++# $2 = list1 ++# $3 = list2 ++# $4 = ignore values, separated by $1 ++listlist() { ++ local _sep="$1" ++ local _list="${_sep}${2}${_sep}" ++ local _sublist="$3" ++ [ -n "$4" ] && local _iglist="${_sep}${4}${_sep}" ++ local IFS="$_sep" ++ local _v ++ ++ [ "$_list" = "$_sublist" ] && return 0 ++ ++ for _v in $_sublist; do ++ if [ -n "$_v" ] && ! ( [ -n "$_iglist" ] && strstr "$_iglist" "$_v" ) ++ then ++ strstr "$_list" "$_v" || return 1 ++ fi ++ done ++ ++ return 0 ++} ++ ++# returns OK if both lists contain the same values. An order and a duplication ++# doesn't matter. ++# ++# $1 = separator ++# $2 = list1 ++# $3 = list2 ++# $4 = ignore values, separated by $1 ++are_lists_eq() { ++ listlist "$1" "$2" "$3" "$4" && listlist "$1" "$3" "$2" "$4" ++} diff --git a/0044-apply-ro-and-rw-options-from-cmdline-to-mount.patch b/0044-apply-ro-and-rw-options-from-cmdline-to-mount.patch new file mode 100644 index 0000000..d60dd2c --- /dev/null +++ b/0044-apply-ro-and-rw-options-from-cmdline-to-mount.patch @@ -0,0 +1,108 @@ +From 79148c2945e4799796b24cadf1769e413841f768 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:05:26 +0200 +Subject: [PATCH] apply "ro" and "rw" options from cmdline to / mount + +rflags is no longer guaranteed to be non empty. / is mounted according +to rootflags parameter but forced ro at first. Later it is remounted +according to /etc/fstab + rootflags parameter and "ro"/"rw". If +parameters are still the same as for first mount, / isn't remounted. + +Conflicts: + + modules.d/95rootfs-block/mount-root.sh + modules.d/99base/parse-root-opts.sh +--- + modules.d/95rootfs-block/mount-root.sh | 35 ++++++++-------------------------- + modules.d/99base/parse-root-opts.sh | 11 ++++------- + 2 files changed, 12 insertions(+), 34 deletions(-) + +diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh +index ef8ca3c..de9753a 100755 +--- a/modules.d/95rootfs-block/mount-root.sh ++++ b/modules.d/95rootfs-block/mount-root.sh +@@ -5,32 +5,13 @@ + type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + type det_fs >/dev/null 2>&1 || . /lib/fs-lib.sh + +-filter_rootopts() { +- rootopts=$1 +- # strip ro and rw options +- local OLDIFS="$IFS" +- IFS=, +- set -- $rootopts +- IFS="$OLDIFS" +- local v +- while [ $# -gt 0 ]; do +- case $1 in +- defaults);; +- *) +- v="$v,${1}";; +- esac +- shift +- done +- rootopts=${v#,} +- echo $rootopts +-} +- + mount_root() { + local _ret ++ local _rflags_ro="$rflags,ro" + # sanity - determine/fix fstype + rootfs=$(det_fs "${root#block:}" "$fstype") +- while ! mount -t ${rootfs} -o "$rflags",ro "${root#block:}" "$NEWROOT"; do +- warn "Failed to mount -t ${rootfs} -o $rflags,ro ${root#block:} $NEWROOT" ++ while ! mount -t ${rootfs} -o "$_rflags_ro" "${root#block:}" "$NEWROOT"; do ++ warn "Failed to mount -t ${rootfs} -o $_rflags_ro ${root#block:} $NEWROOT" + fsck_ask_err + done + +@@ -96,13 +77,13 @@ mount_root() { + break + fi + done < "$NEWROOT/etc/fstab" +- +- rootopts=$(filter_rootopts $rootopts) + fi + + # we want rootflags (rflags) to take precedence so prepend rootopts to +- # them; rflags is guaranteed to not be empty +- rflags="${rootopts:+${rootopts},}${rflags}" ++ # them ++ rflags="${rootopts},${rflags}" ++ rflags="${rflags#,}" ++ rflags="${rflags%,}" + + # backslashes are treated as escape character in fstab + # esc_root=$(echo ${root#block:} | sed 's,\\,\\\\,g') +@@ -125,7 +106,7 @@ mount_root() { + if ! ismounted "$NEWROOT"; then + info "Mounting ${root#block:} with -o ${rflags}" + mount "$NEWROOT" 2>&1 | vinfo +- else ++ elif ! are_lists_eq , "$rflags" "$_rflags_ro" defaults; then + info "Remounting ${root#block:} with -o ${rflags}" + mount -o remount "$NEWROOT" 2>&1 | vinfo + fi +diff --git a/modules.d/99base/parse-root-opts.sh b/modules.d/99base/parse-root-opts.sh +index 44dcc09..7b0b758 100755 +--- a/modules.d/99base/parse-root-opts.sh ++++ b/modules.d/99base/parse-root-opts.sh +@@ -4,13 +4,10 @@ + + root=$(getarg root=) + +-if rflags="$(getarg rootflags=)"; then +- getarg rw && rflags="${rflags},rw" +- getarg ro && rflags="${rflags},ro" +-else +- getarg rw && rflags=rw +- getarg ro && rflags=ro +-fi ++rflags="$(getarg rootflags=)" ++getargbool 0 rw && rflags="${rflags},rw" ++getargbool 0 ro && rflags="${rflags},ro" ++rflags="${rflags#,}" + + fstype="$(getarg rootfstype=)" + if [ -z "$fstype" ]; then diff --git a/0045-modules.d-99base-mount-hook.sh-is-not-used-removed.patch b/0045-modules.d-99base-mount-hook.sh-is-not-used-removed.patch new file mode 100644 index 0000000..1c2048c --- /dev/null +++ b/0045-modules.d-99base-mount-hook.sh-is-not-used-removed.patch @@ -0,0 +1,187 @@ +From 1f4aaaeb5ea6f083a0130a463bfd60ff91b24ac9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:05:27 +0200 +Subject: [PATCH] modules.d/99base/mount-hook.sh is not used - removed + +--- + modules.d/99base/mount-hook.sh | 171 ----------------------------------------- + 1 file changed, 171 deletions(-) + delete mode 100755 modules.d/99base/mount-hook.sh + +diff --git a/modules.d/99base/mount-hook.sh b/modules.d/99base/mount-hook.sh +deleted file mode 100755 +index e32ecae..0000000 +--- a/modules.d/99base/mount-hook.sh ++++ /dev/null +@@ -1,171 +0,0 @@ +-#!/bin/sh +-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +-# ex: ts=8 sw=4 sts=4 et filetype=sh +- +-PATH=/usr/sbin:/usr/bin:/sbin:/bin +-type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh +-type det_fs >/dev/null 2>&1 || [ -f /lib/fs-lib.sh ] && . /lib/fs-lib.sh +-# If fs-lib is not included use following det_fs replacement. +-type det_fs >/dev/null 2>&1 || det_fs() { echo "${2:-auto}"; } +- +-mountpoint="$1" +-ismounted "$mountpoint" && exit 0 +- +-if [ -f "$NEWROOT"/fastboot ] || getargbool 0 fastboot ; then +- fastboot=yes +-fi +- +-filter_rootopts() { +- rootopts=$1 +- # strip ro and rw options +- local OLDIFS="$IFS" +- IFS=, +- set -- $rootopts +- IFS="$OLDIFS" +- local v +- while [ $# -gt 0 ]; do +- case $1 in +- rw|ro);; +- defaults);; +- *) +- v="$v,${1}";; +- esac +- shift +- done +- rootopts=${v#,} +- echo $rootopts +-} +- +-mount_root() { +- local _ret +- # sanity - determine/fix fstype +- rootfs=$(det_fs "${root#block:}" "$fstype") +- mount -t ${rootfs} -o "$rflags",ro "${root#block:}" "$NEWROOT" +- +- READONLY= +- fsckoptions= +- if [ -f "$NEWROOT"/etc/sysconfig/readonly-root ]; then +- . "$NEWROOT"/etc/sysconfig/readonly-root +- fi +- +- if getargbool 0 "readonlyroot=" -y readonlyroot; then +- READONLY=yes +- fi +- +- if getarg noreadonlyroot ; then +- READONLY=no +- fi +- +- if [ -f "$NEWROOT"/fastboot ] || getargbool 0 fastboot ; then +- fastboot=yes +- fi +- +- if [ -f "$NEWROOT"/fsckoptions ]; then +- fsckoptions=$(cat "$NEWROOT"/fsckoptions) +- fi +- +- if [ -f "$NEWROOT"/forcefsck ] || getargbool 0 forcefsck ; then +- fsckoptions="-f $fsckoptions" +- elif [ -f "$NEWROOT"/.autofsck ]; then +- [ -f "$NEWROOT"/etc/sysconfig/autofsck ] && . "$NEWROOT"/etc/sysconfig/autofsck +- if [ "$AUTOFSCK_DEF_CHECK" = "yes" ]; then +- AUTOFSCK_OPT="$AUTOFSCK_OPT -f" +- fi +- if [ -n "$AUTOFSCK_SINGLEUSER" ]; then +- warn "*** Warning -- the system did not shut down cleanly. " +- warn "*** Dropping you to a shell; the system will continue" +- warn "*** when you leave the shell." +- emergency_shell +- fi +- fsckoptions="$AUTOFSCK_OPT $fsckoptions" +- fi +- +- rootopts= +- if getargbool 1 rd.fstab -d -n rd_NO_FSTAB \ +- && ! getarg rootflags \ +- && [ -f "$NEWROOT/etc/fstab" ] \ +- && ! [ -L "$NEWROOT/etc/fstab" ]; then +- # if $NEWROOT/etc/fstab contains special mount options for +- # the root filesystem, +- # remount it with the proper options +- rootopts="defaults" +- while read dev mp fs opts rest; do +- # skip comments +- [ "${dev%%#*}" != "$dev" ] && continue +- +- if [ "$mp" = "/" ]; then +- # sanity - determine/fix fstype +- rootfs=$(det_fs "${root#block:}" "$fs") +- rootopts=$opts +- break +- fi +- done < "$NEWROOT/etc/fstab" +- +- rootopts=$(filter_rootopts $rootopts) +- fi +- +- # we want rootflags (rflags) to take precedence so prepend rootopts to +- # them; rflags is guaranteed to not be empty +- rflags="${rootopts:+"${rootopts},"}${rflags}" +- +- umount "$NEWROOT" +- +- # backslashes are treated as escape character in fstab +- # esc_root=$(echo ${root#block:} | sed 's,\\,\\\\,g') +- # printf '%s %s %s %s 1 1 \n' "$esc_root" "$NEWROOT" "$rootfs" "$rflags" >/etc/fstab +- +- if [ -z "$fastboot" -a "$READONLY" != "yes" ] && ! strstr "${rflags},${rootopts}" _netdev; then +- fsck_single "${root#block:}" "$rootfs" "$rflags" "$fsckoptions" +- _ret=$? +- [ $_ret -ne 255 ] && echo $_ret >/run/initramfs/root-fsck +- fi +- +- info "Remounting ${root#block:} with -o ${rflags}" +- mount -t "$rootfs" -o "$rflags" "${root#block:}" "$NEWROOT" 2>&1 | vinfo +- +- [ -f "$NEWROOT"/forcefsck ] && rm -f "$NEWROOT"/forcefsck 2>/dev/null +- [ -f "$NEWROOT"/.autofsck ] && rm -f "$NEWROOT"/.autofsck 2>/dev/null +-} +- +-sub_mount_ready() { +- local _dev _mp _rest +- while read _dev _mp _rest; do +- [ "$1" = "$_mp" ] && continue +- +- if [ "${1##$_mp}" != "$1" ]; then +- ismounted "$_mp" || return 1 +- fi +- done < "/etc/fstab" +- return 0 +-} +- +-if [ "$mountpoint" = "$NEWROOT" ]; then +- mount_root +- exit $? +-fi +- +-while read _dev _mp _fs _opts _rest; do +- if [ "$_mp" = "$mountpoint" ]; then +- _found="1" +- break +- fi +-done < "/etc/fstab" +- +-[ "$_found" = "1" ] || exit 1 +- +-sub_mount_ready "$mountpoint" || exit 1 +- +-if [ -z "$fastboot" ] && ! strstr "${_opts}" _netdev; then +- # fsck? +- fsck_single "$_dev" "$_fs" "$_opts" +- _ret=$? +- if [ "${mountpoint##$NEWROOT}" != "$mountpoint" ]; then +- echo $_ret >/run/initramfs/${mountpoint##$NEWROOT}-fsck +- fi +-fi +- +-info "Mounting $_dev on $mountpoint" +-mount "$mountpoint" 2>&1 | vinfo +- +-ismounted "$mountpoint" || exit 1 +- diff --git a/0046-PATCH-add-support-for-xfs-reiserfs-separate-journal-.patch b/0046-PATCH-add-support-for-xfs-reiserfs-separate-journal-.patch new file mode 100644 index 0000000..24ae7d3 --- /dev/null +++ b/0046-PATCH-add-support-for-xfs-reiserfs-separate-journal-.patch @@ -0,0 +1,58 @@ +From 6a5170a15f67a72bcec427a252d23ead4f3ae89a Mon Sep 17 00:00:00 2001 +From: Frederic Crozat <fcrozat@suse.com> +Date: Thu, 26 Jul 2012 15:16:22 +0200 +Subject: [PATCH] PATCH: add support for xfs / reiserfs separate journal + device + +xfs and reiserfs (among other) supports storing journal data to a +separate device. Unfortunately, XFS requires this information to boot +properly (reiserfs can embed the information in its metadata but you +might want to override it). + +Attached patch ensure host information are stored in initramfs and also +allows to give data over kernel commandline. + +-- +Frederic Crozat <fcrozat@suse.com> +SUSE + +>From a7c592b9bb7de0d7874ae51d02944a7eee2ec75b Mon Sep 17 00:00:00 2001 +From: Frederic Crozat <fcrozat@suse.com> +Date: Tue, 24 Jul 2012 18:52:17 +0200 +Subject: [PATCH] Add support for separate journal on reiserfs and xfs +--- + modules.d/95rootfs-block/mount-root.sh | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh +index de9753a..a6cba12 100755 +--- a/modules.d/95rootfs-block/mount-root.sh ++++ b/modules.d/95rootfs-block/mount-root.sh +@@ -7,9 +7,26 @@ type det_fs >/dev/null 2>&1 || . /lib/fs-lib.sh + + mount_root() { + local _ret +- local _rflags_ro="$rflags,ro" ++ local _rflags_ro + # sanity - determine/fix fstype + rootfs=$(det_fs "${root#block:}" "$fstype") ++ ++ journaldev=$(getarg root.journaldev) ++ if [ -n $journaldev ]; then ++ case "$rootfs" in ++ xfs) ++ rflags="${rflags:+${rflags},}logdev=$journaldev" ++ ;; ++ reiserfs) ++ fsckoptions="-j $journaldev $fsckoptions" ++ rflags="${rflags:+${rflags},}jdev=$journaldev" ++ ;; ++ *);; ++ esac ++ fi ++ ++ _rflags_ro="$rflags,ro" ++ + while ! mount -t ${rootfs} -o "$_rflags_ro" "${root#block:}" "$NEWROOT"; do + warn "Failed to mount -t ${rootfs} -o $_rflags_ro ${root#block:} $NEWROOT" + fsck_ask_err diff --git a/0047-dracut-functions.sh-add-find_mp_fstype.patch b/0047-dracut-functions.sh-add-find_mp_fstype.patch new file mode 100644 index 0000000..95d4ec4 --- /dev/null +++ b/0047-dracut-functions.sh-add-find_mp_fstype.patch @@ -0,0 +1,47 @@ +From 81672479afb4806568f1dea7fac9b8d7271c71f6 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 17:00:07 +0200 +Subject: [PATCH] dracut-functions.sh: add find_mp_fstype() + +--- + dracut-functions.sh | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 14c100d..0332351 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -357,6 +357,33 @@ find_dev_fstype() { + return 1 + } + ++# find_dev_fstype <device> ++# Echo the filesystem type for a given device. ++# /proc/self/mountinfo is taken as the primary source of information ++# and /etc/fstab is used as a fallback. ++# No newline is appended! ++# Example: ++# $ find_dev_fstype /dev/sda2;echo ++# ext4 ++find_mp_fstype() { ++ local _x _mpt _majmin _dev _fs _maj _min ++ while read _x _x _majmin _x _mpt _x _x _fs _dev _x; do ++ [[ $_mpt = $1 ]] || continue ++ echo -n $_fs; ++ return 0; ++ done < /proc/self/mountinfo ++ ++ # fall back to /etc/fstab ++ while read _dev _mpt _fs _x; do ++ [[ $_mpt = $1 ]] || continue ++ echo -n $_fs; ++ return 0; ++ done < /etc/fstab ++ ++ return 1 ++} ++ ++ + # finds the major:minor of the block device backing the root filesystem. + find_root_block_device() { find_block_device /; } + diff --git a/0048-rootfs-block-module-setup.sh-add-support-for-xfs-rei.patch b/0048-rootfs-block-module-setup.sh-add-support-for-xfs-rei.patch new file mode 100644 index 0000000..2e7116e --- /dev/null +++ b/0048-rootfs-block-module-setup.sh-add-support-for-xfs-rei.patch @@ -0,0 +1,68 @@ +From 3cc4c8ba9b43ff646701d4236c1a70860c16d02c Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 17:00:47 +0200 +Subject: [PATCH] rootfs-block/module-setup.sh: add support for xfs / reiserfs + separate journal device + +xfs and reiserfs (among other) supports storing journal data to a +separate device. Unfortunately, XFS requires this information to boot +properly (reiserfs can embed the information in its metadata but you +might want to override it). + +Frederic Crozat <fcrozat@suse.com> +--- + modules.d/95rootfs-block/module-setup.sh | 41 ++++++++++++++++++++++++++++++++ + 1 file changed, 41 insertions(+) + +diff --git a/modules.d/95rootfs-block/module-setup.sh b/modules.d/95rootfs-block/module-setup.sh +index 243a174..4d87fab 100755 +--- a/modules.d/95rootfs-block/module-setup.sh ++++ b/modules.d/95rootfs-block/module-setup.sh +@@ -2,6 +2,47 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + ++search_option() { ++ rootopts=$1 ++ option=$2 ++ local OLDIFS="$IFS" ++ IFS=, ++ set -- $rootopts ++ IFS="$OLDIFS" ++ while [ $# -gt 0 ]; do ++ case $1 in ++ $option=*) ++ echo ${1#${option}=} ++ break ++ esac ++ shift ++ done ++} ++ ++check() { ++ rootopts="defaults" ++ while read dev mp fs opts dump fsck; do ++ # skip comments ++ [ "${dev%%#*}" != "$dev" ] && continue ++ ++ if [ "$mp" = "/" ]; then ++ # sanity - determine/fix fstype ++ rootfs=$(find_mp_fstype /) ++ rootfs=${rootfs:-$fs} ++ rootopts=$opts ++ break ++ fi ++ done < "$NEWROOT/etc/fstab" ++ ++ [ "$rootfs" = "reiserfs" ] && journaldev=$(search_option $rootopts "jdev") ++ [ "$rootfs" = "xfs" ] && journaldev=$(search_option $rootopts "logdev") ++ if [ -n "$journaldev" ]; then ++ echo "root.journaldev=$journaldev" >> "${initdir}/etc/cmdline.d/95root-jurnaldev.conf" ++ fi ++ return 0 ++ ++} ++ + depends() { + echo fs-lib + } diff --git a/0049-dracut-functions.sh-corrected-usage-comment-of-find_.patch b/0049-dracut-functions.sh-corrected-usage-comment-of-find_.patch new file mode 100644 index 0000000..349bedc --- /dev/null +++ b/0049-dracut-functions.sh-corrected-usage-comment-of-find_.patch @@ -0,0 +1,31 @@ +From ec5e5ae27a986f6bc3d273ba037533b72ab069e9 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 17:05:24 +0200 +Subject: [PATCH] dracut-functions.sh: corrected usage comment of + find_mp_fstype() + +--- + dracut-functions.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 0332351..df450ef 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -357,13 +357,13 @@ find_dev_fstype() { + return 1 + } + +-# find_dev_fstype <device> +-# Echo the filesystem type for a given device. ++# find_mp_fstype <mountpoint> ++# Echo the filesystem type for a given mountpoint. + # /proc/self/mountinfo is taken as the primary source of information + # and /etc/fstab is used as a fallback. + # No newline is appended! + # Example: +-# $ find_dev_fstype /dev/sda2;echo ++# $ find_mp_fstype /;echo + # ext4 + find_mp_fstype() { + local _x _mpt _majmin _dev _fs _maj _min diff --git a/0050-ro_mnt-option-at-build-time-to-force-ro-mount-of-and.patch b/0050-ro_mnt-option-at-build-time-to-force-ro-mount-of-and.patch new file mode 100644 index 0000000..93f338d --- /dev/null +++ b/0050-ro_mnt-option-at-build-time-to-force-ro-mount-of-and.patch @@ -0,0 +1,100 @@ +From ff3953efe1aec2229273cd59e7d35a540de0e476 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 16:44:09 +0200 +Subject: [PATCH] ro_mnt - option at build time to force ro mount of / and + /usr + +--- + dracut.conf | 3 +++ + dracut.conf.5.asc | 3 +++ + dracut.sh | 6 +++++- + modules.d/99base/module-setup.sh | 3 +++ + 4 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/dracut.conf b/dracut.conf +index f47d571..f912acc 100644 +--- a/dracut.conf ++++ b/dracut.conf +@@ -43,6 +43,9 @@ lvmconf="yes" + # inhibit installation of any fsck tools + #nofscks="yes" + ++# mount / and /usr read-only by default ++#ro_mnt="no" ++ + # set the directory for temporary files + # default: /var/tmp + #tmpdir=/tmp +diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc +index d17477d..89bbf61 100644 +--- a/dracut.conf.5.asc ++++ b/dracut.conf.5.asc +@@ -97,6 +97,9 @@ If chrooted to another root other than the real root device, use --fstab and pro + *nofscks=*"__{yes|no}__":: + If specified, inhibit installation of any fsck tools. + ++*ro_mnt* ++ Mount _/_ and _/usr_ read-only by default. ++ + *kernel_only=*"__{yes|no}__":: + Only install kernel drivers and firmware files. (default=no) + +diff --git a/dracut.sh b/dracut.sh +index d8b3354..eee829e 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -101,6 +101,7 @@ Creates initial ramdisk images for preloading modules + --nolvmconf Do not include local /etc/lvm/lvm.conf + --fscks [LIST] Add a space-separated list of fsck helpers. + --nofscks Inhibit installation of any fsck helpers. ++ --ro-mnt Mount / and /usr read-only by default. + -h, --help This message + --debug Output debug information of the build process + --profile Output profile information of the build process +@@ -261,6 +262,7 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \ + --long add-fstab: \ + --long mount: \ + --long nofscks: \ ++ --long ro-mnt \ + --long kmoddir: \ + --long conf: \ + --long confdir: \ +@@ -326,6 +328,7 @@ while :; do + --add-fstab) push add_fstab_l "$2"; shift;; + --mount) push fstab_lines "$2"; shift;; + --nofscks) nofscks_l="yes";; ++ --ro-mnt) ro_mnt_l="yes";; + -k|--kmoddir) drivers_dir_l="$2"; shift;; + -c|--conf) conffile="$2"; shift;; + --confdir) confdir="$2"; shift;; +@@ -558,6 +561,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l)) + [[ $compress_l ]] && compress=$compress_l + [[ $show_modules_l ]] && show_modules=$show_modules_l + [[ $nofscks_l ]] && nofscks="yes" ++[[ $ro_mnt_l ]] && ro_mnt="yes" + # eliminate IFS hackery when messing with fw_dir + fw_dir=${fw_dir//:/ } + +@@ -779,7 +783,7 @@ fi + export initdir dracutbasedir dracutmodules drivers \ + fw_dir drivers_dir debug no_kernel kernel_only \ + add_drivers omit_drivers mdadmconf lvmconf filesystems \ +- use_fstab fstab_lines libdirs fscks nofscks \ ++ use_fstab fstab_lines libdirs fscks nofscks ro_mnt \ + stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \ + debug host_fs_types host_devs sshkey add_fstab \ + DRACUT_VERSION udevdir systemdutildir systemdsystemunitdir \ +diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh +index f20ca1a..dde1285 100755 +--- a/modules.d/99base/module-setup.sh ++++ b/modules.d/99base/module-setup.sh +@@ -50,6 +50,9 @@ install() { + fi + + ln -fs /proc/self/mounts "$initdir/etc/mtab" ++ if [[ $ro_mnt = yes ]]; then ++ echo ro >> "${initdir}/etc/cmdline.d/base.conf" ++ fi + + if [ -e /etc/os-release ]; then + . /etc/os-release diff --git a/0051-mv-rootfs-block-module-setup.sh-search_option-in-dra.patch b/0051-mv-rootfs-block-module-setup.sh-search_option-in-dra.patch new file mode 100644 index 0000000..6ae64ec --- /dev/null +++ b/0051-mv-rootfs-block-module-setup.sh-search_option-in-dra.patch @@ -0,0 +1,82 @@ +From 8aa9926839dc8ee861a44d21ae71fb33eee04ed1 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 17:22:14 +0200 +Subject: [PATCH] mv rootfs-block/module-setup.sh:search_option() in + dracut-functions.sh + +new function fs_get_option() +--- + dracut-functions.sh | 20 ++++++++++++++++++++ + modules.d/95rootfs-block/module-setup.sh | 21 ++------------------- + 2 files changed, 22 insertions(+), 19 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index df450ef..fb28bdc 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -454,6 +454,26 @@ check_vol_slaves() { + return 1 + } + ++# fs_get_option <filesystem options> <search for option> ++# search for a specific option in a bunch of filesystem options ++# and return the value ++fs_get_option() { ++ local _fsopts=$1 ++ local _option=$2 ++ local OLDIFS="$IFS" ++ IFS=, ++ set -- $_fsopts ++ IFS="$OLDIFS" ++ while [ $# -gt 0 ]; do ++ case $1 in ++ $_option=*) ++ echo ${1#${_option}=} ++ break ++ esac ++ shift ++ done ++} ++ + if [[ $DRACUT_INSTALL ]]; then + [[ $DRACUT_RESOLVE_LAZY ]] || export DRACUT_RESOLVE_DEPS=1 + inst_dir() { +diff --git a/modules.d/95rootfs-block/module-setup.sh b/modules.d/95rootfs-block/module-setup.sh +index 4d87fab..8254289 100755 +--- a/modules.d/95rootfs-block/module-setup.sh ++++ b/modules.d/95rootfs-block/module-setup.sh +@@ -2,23 +2,6 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-search_option() { +- rootopts=$1 +- option=$2 +- local OLDIFS="$IFS" +- IFS=, +- set -- $rootopts +- IFS="$OLDIFS" +- while [ $# -gt 0 ]; do +- case $1 in +- $option=*) +- echo ${1#${option}=} +- break +- esac +- shift +- done +-} +- + check() { + rootopts="defaults" + while read dev mp fs opts dump fsck; do +@@ -34,8 +17,8 @@ check() { + fi + done < "$NEWROOT/etc/fstab" + +- [ "$rootfs" = "reiserfs" ] && journaldev=$(search_option $rootopts "jdev") +- [ "$rootfs" = "xfs" ] && journaldev=$(search_option $rootopts "logdev") ++ [ "$rootfs" = "reiserfs" ] && journaldev=$(fs_get_option $rootopts "jdev") ++ [ "$rootfs" = "xfs" ] && journaldev=$(fs_get_option $rootopts "logdev") + if [ -n "$journaldev" ]; then + echo "root.journaldev=$journaldev" >> "${initdir}/etc/cmdline.d/95root-jurnaldev.conf" + fi diff --git a/0052-README.testsuite-updated-with-requirements-for-TEST-.patch b/0052-README.testsuite-updated-with-requirements-for-TEST-.patch new file mode 100644 index 0000000..7e79ee4 --- /dev/null +++ b/0052-README.testsuite-updated-with-requirements-for-TEST-.patch @@ -0,0 +1,19 @@ +From 25706eafacfa284e53ebb3d96b195697fb81041d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 17:26:31 +0200 +Subject: [PATCH] README.testsuite updated with requirements for + TEST-04-SYSTEMD + +--- + README.testsuite | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/README.testsuite b/README.testsuite +index 62fe503..cbc2ab7 100644 +--- a/README.testsuite ++++ b/README.testsuite +@@ -9,3 +9,4 @@ netbsd-iscsi + nbd + dhcp + iscsi-initiator-utils ++TEST-04-FULL-SYSTEMD: systemd >= 187 diff --git a/0053-base-module-setup.sh-removed-mount-hook.patch b/0053-base-module-setup.sh-removed-mount-hook.patch new file mode 100644 index 0000000..9a77f89 --- /dev/null +++ b/0053-base-module-setup.sh-removed-mount-hook.patch @@ -0,0 +1,21 @@ +From 96c6fa920255a3bf4e7cd7c974aa13814d74beb6 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 17:35:25 +0200 +Subject: [PATCH] base/module-setup.sh: removed mount-hook + +--- + modules.d/99base/module-setup.sh | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh +index dde1285..097607a 100755 +--- a/modules.d/99base/module-setup.sh ++++ b/modules.d/99base/module-setup.sh +@@ -39,7 +39,6 @@ install() { + dracut_install switch_root || dfatal "Failed to install switch_root" + + inst_simple "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh" +- inst_script "$moddir/mount-hook.sh" "/usr/bin/mount-hook" + inst_hook cmdline 10 "$moddir/parse-root-opts.sh" + mkdir -p "${initdir}/var" + [ -x /lib/systemd/systemd-timestamp ] && inst /lib/systemd/systemd-timestamp diff --git a/0054-parse-root-opts-first-check-for-ro-later-for-rw.patch b/0054-parse-root-opts-first-check-for-ro-later-for-rw.patch new file mode 100644 index 0000000..b4073cd --- /dev/null +++ b/0054-parse-root-opts-first-check-for-ro-later-for-rw.patch @@ -0,0 +1,24 @@ +From aa505d588f92c41e4060b75e8fde729a01fe9c6f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 15:58:27 +0200 +Subject: [PATCH] parse-root-opts: first check for ro, later for rw + +This order is already in 98usrmount. +--- + modules.d/99base/parse-root-opts.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/99base/parse-root-opts.sh b/modules.d/99base/parse-root-opts.sh +index 7b0b758..b74eeb3 100755 +--- a/modules.d/99base/parse-root-opts.sh ++++ b/modules.d/99base/parse-root-opts.sh +@@ -5,8 +5,8 @@ + root=$(getarg root=) + + rflags="$(getarg rootflags=)" +-getargbool 0 rw && rflags="${rflags},rw" + getargbool 0 ro && rflags="${rflags},ro" ++getargbool 0 rw && rflags="${rflags},rw" + rflags="${rflags#,}" + + fstype="$(getarg rootfstype=)" diff --git a/0055-nfs-module-setup.sh-check-for-rpc.rpc-before-running.patch b/0055-nfs-module-setup.sh-check-for-rpc.rpc-before-running.patch new file mode 100644 index 0000000..e93148d --- /dev/null +++ b/0055-nfs-module-setup.sh-check-for-rpc.rpc-before-running.patch @@ -0,0 +1,24 @@ +From 6ca264a1511eb181fb4ca58e25314b6930c2c2a7 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 18:12:05 +0200 +Subject: [PATCH] nfs/module-setup.sh: check for "rpc.rpc" before running + chown + +--- + modules.d/95nfs/module-setup.sh | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh +index 0c07725..ecef635 100755 +--- a/modules.d/95nfs/module-setup.sh ++++ b/modules.d/95nfs/module-setup.sh +@@ -71,6 +71,8 @@ install() { + # rpc user needs to be able to write to this directory to save the warmstart + # file + chmod 770 "$initdir/var/lib/rpcbind" +- chown rpc.rpc "$initdir/var/lib/rpcbind" ++ egrep -q '^rpc:' /etc/passwd \ ++ && egrep -q '^rpc:' /etc/group \ ++ && chown rpc.rpc "$initdir/var/lib/rpcbind" + } + diff --git a/0056-Added-cifs.patch b/0056-Added-cifs.patch new file mode 100644 index 0000000..1ec5597 --- /dev/null +++ b/0056-Added-cifs.patch @@ -0,0 +1,227 @@ +From d580636e97bffdd17124961e2f9db0aa2a645060 Mon Sep 17 00:00:00 2001 +From: Mike Gorse <mgorse@suse.com> +Date: Thu, 26 Jul 2012 09:17:18 -0500 +Subject: [PATCH] Added cifs + +--- + dracut.cmdline.7.asc | 15 +++++++++++ + modules.d/95cifs/cifs-lib.sh | 36 ++++++++++++++++++++++++++ + modules.d/95cifs/cifsroot.sh | 26 +++++++++++++++++++ + modules.d/95cifs/module-setup.sh | 46 +++++++++++++++++++++++++++++++++ + modules.d/95cifs/parse-cifsroot.sh | 52 ++++++++++++++++++++++++++++++++++++++ + 5 files changed, 175 insertions(+) + create mode 100755 modules.d/95cifs/cifs-lib.sh + create mode 100755 modules.d/95cifs/cifsroot.sh + create mode 100755 modules.d/95cifs/module-setup.sh + create mode 100755 modules.d/95cifs/parse-cifsroot.sh + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 8f642f3..0b1b8a2 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -398,6 +398,21 @@ NFS + **rd.nfs.domain=**_<NFSv4 domain name>_:: + Set the NFSv4 domain name. Will overwrite the settings in _/etc/idmap.conf_. + ++CIFS ++~~~ ++**root=**cifs://[_<username>_[:_<password>_]@]_<server-ip>_:_<root-dir>_:: ++ mount cifs share from <server-ip>:/<root-dir>, if no server-ip is given, use ++ dhcp next_server. if server-ip is an IPv6 address it has to be put in ++ brackets, e.g. [2001:DB8::1]. If a username or password are not specified ++as part of the root, then they must be passed on the command line through ++cifsuser/cifspass. ++ ++**cifsuser=_<username>_:: ++ Set the cifs username, if not specified as part of the root. ++ ++**cifspass=_<password>_:: ++ Set the cifs password, if not specified as part of the root. ++ + iSCSI + ~~~~~ + **root=**iscsi:[_<username>_:_<password>_[:_<reverse>_:_<password>_]@][_<servername>_]:[_<protocol>_]:[_<port>_][:[_<iscsi_iface_name>_]:[_<netdev_name>_]]:[_<LUN>_]:_<targetname>_:: +diff --git a/modules.d/95cifs/cifs-lib.sh b/modules.d/95cifs/cifs-lib.sh +new file mode 100755 +index 0000000..3cbe6dc +--- /dev/null ++++ b/modules.d/95cifs/cifs-lib.sh +@@ -0,0 +1,36 @@ ++#!/bin/sh ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++# cifs_to_var CIFSROOT ++# use CIFSROOT to set $server, $path, and $options. ++# CIFSROOT is something like: cifs://[<username>[:<password>]]@<host>/<path> ++# NETIF is used to get information from DHCP options, if needed. ++ ++type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh ++ ++cifs_to_var() { ++ local cifsuser; local cifspass ++ # Check required arguments ++ server=${1##cifs://} ++ cifsuser=${server%@*} ++ cifspass=${cifsuser#*:} ++ if [ "$cifspass" != "$cifsuser" ]; then ++ cifsuser=${cifsuser%:*} ++ else ++ cifspass=$(getarg cifspass) ++ fi ++ if [ "$cifsuser" != "$server" ]; then ++ server="${server#*@}" ++ else ++ cifsuser=$(getarg cifsuser) ++ fi ++ ++ path=${server#*/} ++ server=${server%/*} ++ ++ if [ ! "$cifsuser" -o ! "$cifspass" ]; then ++ die "For CIFS support you need to specify a cifsuser and cifspass either in the cifsuser and cifspass commandline parameters or in the root= CIFS URL." ++ fi ++ options="user=$cifsuser,pass=$cifspass" ++} +diff --git a/modules.d/95cifs/cifsroot.sh b/modules.d/95cifs/cifsroot.sh +new file mode 100755 +index 0000000..7956d6f +--- /dev/null ++++ b/modules.d/95cifs/cifsroot.sh +@@ -0,0 +1,26 @@ ++#!/bin/sh ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh ++. /lib/cifs-lib.sh ++ ++[ "$#" = 3 ] || exit 1 ++ ++# root is in the form root=cifs://user:pass@[server]/[folder] either from ++# cmdline or dhcp root-path ++netif="$1" ++root="$2" ++NEWROOT="$3" ++ ++cifs_to_var $root ++echo server: $server ++echo path: $path ++echo options: $options ++ ++mount.cifs //$server/$path $NEWROOT -o $options && { [ -e /dev/root ] || >/dev/root ; } ++ ++# inject new exit_if_exists ++echo 'settle_exit_if_exists="--exit-if-exists=/dev/root"; rm "$job"' > $hookdir/initqueue/cifs.sh ++# force udevsettle to break ++> $hookdir/initqueue/work +diff --git a/modules.d/95cifs/module-setup.sh b/modules.d/95cifs/module-setup.sh +new file mode 100755 +index 0000000..2f2e78d +--- /dev/null ++++ b/modules.d/95cifs/module-setup.sh +@@ -0,0 +1,46 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++check() { ++ # If our prerequisites are not met, fail anyways. ++ type -P mount.cifs >/dev/null || return 1 ++ ++ [[ $hostonly ]] || [[ $mount_needs ]] && { ++ for fs in ${host_fs_types[@]}; do ++ strstr "$fs" "\|cifs" && return 0 ++ done ++ return 255 ++ } ++ ++ return 0 ++} ++ ++depends() { ++ # We depend on network modules being loaded ++ echo network ++} ++ ++installkernel() { ++ instmods cifs ipv6 ++} ++ ++install() { ++ local _i ++ local _nsslibs ++ dracut_install -o mount.cifs ++ dracut_install /etc/services /etc/nsswitch.conf /etc/protocols ++ ++ inst_libdir_file 'libcap-ng.so*' ++ ++ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \ ++ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|') ++ _nsslibs=${_nsslibs#|} ++ _nsslibs=${_nsslibs%|} ++ ++ inst_libdir_file -n "$_nsslibs" 'libnss*.so*' ++ ++ inst_hook cmdline 90 "$moddir/parse-cifsroot.sh" ++ inst "$moddir/cifsroot.sh" "/sbin/cifsroot" ++ inst "$moddir/cifs-lib.sh" "/lib/cifs-lib.sh" ++} +diff --git a/modules.d/95cifs/parse-cifsroot.sh b/modules.d/95cifs/parse-cifsroot.sh +new file mode 100755 +index 0000000..d5adb98 +--- /dev/null ++++ b/modules.d/95cifs/parse-cifsroot.sh +@@ -0,0 +1,52 @@ ++#!/bin/sh ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++# ++# root=cifs://[user:pass@]<server>/<folder> ++# ++# This syntax can come from DHCP root-path as well. ++# ++# If a username or password are not specified as part of the root, then they ++# will be pulled from cifsuser and cifspass on the kernel command line, ++# respectively. ++# ++ ++type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh ++. /lib/cifs-lib.sh ++ ++#Don't continue if root is ok ++[ -n "$rootok" ] && return ++ ++# This script is sourced, so root should be set. But let's be paranoid ++[ -z "$root" ] && root=$(getarg root=) ++[ -z "$netroot" ] && netroot=$(getarg netroot=) ++ ++# netroot= cmdline argument must be ignored, but must be used if ++# we're inside netroot to parse dhcp root-path ++if [ -n "$netroot" ] ; then ++ if [ "$netroot" = "$(getarg netroot=)" ] ; then ++ warn "Ignoring netroot argument for CIFS" ++ netroot=$root ++ fi ++else ++ netroot=$root; ++fi ++ ++# Continue if cifs ++case "${netroot%%:*}" in ++ cifs);; ++ *) unset netroot; return;; ++esac ++ ++# Check required arguments ++cifs_to_var $netroot ++ ++# If we don't have a server, we need dhcp ++if [ -z "$server" ] ; then ++ DHCPORSERVER="1" ++fi; ++ ++# Done, all good! ++rootok=1 ++ ++echo '[ -e $NEWROOT/proc ]' > $hookdir/initqueue/finished/cifsroot.sh diff --git a/0057-plymouth-do-not-start-plymouth-via-dracut-for-system.patch b/0057-plymouth-do-not-start-plymouth-via-dracut-for-system.patch new file mode 100644 index 0000000..9ab08fd --- /dev/null +++ b/0057-plymouth-do-not-start-plymouth-via-dracut-for-system.patch @@ -0,0 +1,51 @@ +From c9a81c1f911792f68ce1921f192e7e930f312535 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 18:59:36 +0200 +Subject: [PATCH] plymouth: do not start plymouth via dracut for systemd in + the initramfs + +--- + modules.d/50plymouth/module-setup.sh | 4 ---- + modules.d/50plymouth/plymouth-newroot.sh | 2 +- + modules.d/50plymouth/plymouth-pretrigger.sh | 2 +- + 3 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh +index 14d9e59..10aa0da 100755 +--- a/modules.d/50plymouth/module-setup.sh ++++ b/modules.d/50plymouth/module-setup.sh +@@ -76,9 +76,5 @@ install() { + inst_hook pre-trigger 10 "$moddir"/plymouth-pretrigger.sh + inst_hook emergency 50 "$moddir"/plymouth-emergency.sh + dracut_install readlink +- +- if [[ -x $systemdutildir/systemd ]]; then +- dracut_install -o $systemdsystemunitdir/plymouth-quit-wait.service +- fi + } + +diff --git a/modules.d/50plymouth/plymouth-newroot.sh b/modules.d/50plymouth/plymouth-newroot.sh +index e03e98d..ffbabf1 100755 +--- a/modules.d/50plymouth/plymouth-newroot.sh ++++ b/modules.d/50plymouth/plymouth-newroot.sh +@@ -2,6 +2,6 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-if [ -x /bin/plymouth ]; then ++if [ -x /bin/plymouth ! -x /lib/systemd/systemd ]; then + /bin/plymouth --newroot=$NEWROOT + fi +diff --git a/modules.d/50plymouth/plymouth-pretrigger.sh b/modules.d/50plymouth/plymouth-pretrigger.sh +index ddb8ddb..c52cf83 100755 +--- a/modules.d/50plymouth/plymouth-pretrigger.sh ++++ b/modules.d/50plymouth/plymouth-pretrigger.sh +@@ -2,7 +2,7 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-if [ -x /bin/plymouthd ]; then ++if [ -x /bin/plymouthd -a ! -x /lib/systemd/systemd ]; then + if getargbool 1 plymouth.enable && getargbool 1 rd.plymouth -d -n rd_NO_PLYMOUTH; then + # first trigger graphics subsystem + udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1 diff --git a/0058-gentoo.conf-enable-ro_mnt.patch b/0058-gentoo.conf-enable-ro_mnt.patch new file mode 100644 index 0000000..fd8787c --- /dev/null +++ b/0058-gentoo.conf-enable-ro_mnt.patch @@ -0,0 +1,21 @@ +From 187a8e08d57cb33d51c31e2270374b99e2ad3133 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name> +Date: Thu, 26 Jul 2012 19:04:30 +0200 +Subject: [PATCH] gentoo.conf: enable ro_mnt + +--- + dracut.conf.d/gentoo.conf.example | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example +index 411f9a0..6b74954 100644 +--- a/dracut.conf.d/gentoo.conf.example ++++ b/dracut.conf.d/gentoo.conf.example +@@ -2,6 +2,7 @@ + # Dracut config file customized for Gentoo Base System release 2 + + udevdir=/lib/udev ++ro_mnt=yes + + # + # Modules diff --git a/0059-dracut-functions.sh-inst_rule_programs-fixed-IMPORT-.patch b/0059-dracut-functions.sh-inst_rule_programs-fixed-IMPORT-.patch new file mode 100644 index 0000000..3b3ada8 --- /dev/null +++ b/0059-dracut-functions.sh-inst_rule_programs-fixed-IMPORT-.patch @@ -0,0 +1,25 @@ +From 65d1a8a4aee600f7d5016382dd351bf9b835327f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 19:12:40 +0200 +Subject: [PATCH] dracut-functions.sh:inst_rule_programs() fixed + IMPORT{program} + +--- + dracut-functions.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index fb28bdc..49051fa 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -781,8 +781,8 @@ inst_rule_programs() { + dracut_install "$_bin" + done + fi +- if grep -qE 'PROGRAM==?"[^ "]+' "$1"; then +- for _prog in $(grep -E 'IMPORT==?"[^ "]+' "$1" | sed -r 's/.*IMPORT==?"([^ "]+).*/\1/'); do ++ if grep -qE 'IMPORT\{program\}==?"[^ "]+' "$1"; then ++ for _prog in $(grep -E 'IMPORT\{program\}==?"[^ "]+' "$1" | sed -r 's/.*IMPORT\{program\}==?"([^ "]+).*/\1/'); do + if [ -x ${udevdir}/$_prog ]; then + _bin=${udevdir}/$_prog + else diff --git a/0060-install-dracut-install.c-convert-destrootdir-to-real.patch b/0060-install-dracut-install.c-convert-destrootdir-to-real.patch new file mode 100644 index 0000000..e0950a1 --- /dev/null +++ b/0060-install-dracut-install.c-convert-destrootdir-to-real.patch @@ -0,0 +1,40 @@ +From 78021eace175745792f04345efe2d42218f0bb59 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 19:21:06 +0200 +Subject: [PATCH] install/dracut-install.c: convert destrootdir to realpath + +otherwise we get strange errors if it ends with a slash and does not +exist. +--- + install/dracut-install.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 9351472..e79065d 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -517,6 +517,7 @@ Install SOURCE to DEST in DESTROOTDIR with all needed dependencies.\n\ + -h --help Show this help\n\ + \n\ + Example:\n\ ++# mkdir -p /var/tmp/test-root\n\ + # %s -D /var/tmp/test-root --ldd -a sh tr\n\ + # tree /var/tmp/test-root\n\ + /var/tmp/test-root\n\ +@@ -742,8 +743,16 @@ int main(int argc, char **argv) + if (strcmp(destrootdir, "/") == 0) { + log_error("Environment DESTROOTDIR or argument -D is set to '/'!"); + usage(EXIT_FAILURE); ++ } + ++ i = destrootdir; ++ destrootdir = realpath(destrootdir, NULL); ++ if (!destrootdir) { ++ log_error("Environment DESTROOTDIR or argument -D is set to '%s': %m", i); ++ r = EXIT_FAILURE; ++ goto finish; + } ++ free(i); + + items = hashmap_new(string_hash_func, string_compare_func); + items_failed = hashmap_new(string_hash_func, string_compare_func); diff --git a/0061-dracut-functions.sh-inst_rule_programs-fix-error-mes.patch b/0061-dracut-functions.sh-inst_rule_programs-fix-error-mes.patch new file mode 100644 index 0000000..c545536 --- /dev/null +++ b/0061-dracut-functions.sh-inst_rule_programs-fix-error-mes.patch @@ -0,0 +1,40 @@ +From cc2180876488b6e2b49c36317a593cb10e9124a7 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Thu, 26 Jul 2012 19:35:12 +0200 +Subject: [PATCH] dracut-functions.sh:inst_rule_programs() fix error messages + +--- + dracut-functions.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 49051fa..9242204 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -757,7 +757,7 @@ inst_rule_programs() { + _bin=${udevdir}/$_prog + else + _bin=$(find_binary "$_prog") || { +- dinfo "Skipping program $_prog using in udev rule $(${1##*/}) as it cannot be found" ++ dinfo "Skipping program $_prog using in udev rule ${1##*/} as it cannot be found" + continue; + } + fi +@@ -772,7 +772,7 @@ inst_rule_programs() { + _bin=${udevdir}/$_prog + else + _bin=$(find_binary "$_prog") || { +- dinfo "Skipping program $_prog using in udev rule $(${1##*/}) as it cannot be found" ++ dinfo "Skipping program $_prog using in udev rule ${1##*/} as it cannot be found" + continue; + } + fi +@@ -787,7 +787,7 @@ inst_rule_programs() { + _bin=${udevdir}/$_prog + else + _bin=$(find_binary "$_prog") || { +- dinfo "Skipping program $_prog using in udev rule $(${1##*/}) as it cannot be found" ++ dinfo "Skipping program $_prog using in udev rule ${1##*/} as it cannot be found" + continue; + } + fi diff --git a/0062-dracut.spec-add-cifs-module.patch b/0062-dracut.spec-add-cifs-module.patch new file mode 100644 index 0000000..e3cd171 --- /dev/null +++ b/0062-dracut.spec-add-cifs-module.patch @@ -0,0 +1,21 @@ +From 72ee74b9be0935f9421a4987e9de785b74e71a50 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer <harald@redhat.com> +Date: Fri, 27 Jul 2012 06:26:26 +0200 +Subject: [PATCH] dracut.spec: add cifs module + +--- + dracut.spec | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut.spec b/dracut.spec +index d960506..f225bb6 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -328,6 +328,7 @@ rm -rf $RPM_BUILD_ROOT + %{dracutlibdir}/modules.d/95iscsi + %{dracutlibdir}/modules.d/90livenet + %{dracutlibdir}/modules.d/90qemu-net ++%{dracutlibdir}/modules.d/95cifs + %{dracutlibdir}/modules.d/95nbd + %{dracutlibdir}/modules.d/95nfs + %{dracutlibdir}/modules.d/95ssh-client diff --git a/dracut.spec b/dracut.spec index 5a6ad69..5acbca6 100644 --- a/dracut.spec +++ b/dracut.spec @@ -10,7 +10,7 @@ Name: dracut Version: 022 -Release: 5.git20120723%{?dist} +Release: 63.git20120727%{?dist} Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} @@ -33,6 +33,64 @@ Patch1: 0001-resume-move-resume-in-the-initqueue-finished-hook.patch Patch2: 0002-dracut.8-add-more-description-about-calling-dracut.patch Patch3: 0003-AUTHORS-update.patch Patch4: 0004-dracut.sh-add-N-option-for-no-hostonly.patch +Patch5: 0005-add-documentation-for-systemd-services-in-the-initra.patch +Patch6: 0006-kernel-modules-module-setup.sh-fix-modprobe.d-instal.patch +Patch7: 0007-lvm-lvm_scan.sh-udevadm-settle-after-lvm-scan.patch +Patch8: 0008-kernel-modules-module-setup.sh-just-optionally-insta.patch +Patch9: 0009-i18n-10-console.rules-move-console_init-to-the-initq.patch +Patch10: 0010-dracut-functions.sh-small-error-print-correction.patch +Patch11: 0011-get-rid-of-basename.patch +Patch12: 0012-90crypt-recognize-.img-as-loop-key-container.patch +Patch13: 0013-90crypt-enhance-crypt-lib-keydev-mounting.patch +Patch14: 0014-91crypt-loop-open-root-device-with-a-key-inside-encr.patch +Patch15: 0015-91crypt-loop-use-initqueue-for-cleanup-strategy.patch +Patch16: 0016-91crypt-loop-replace-basename-calls-with-string-matc.patch +Patch17: 0017-deprecate-old-command-line-options.patch +Patch18: 0018-require-kpartx-and-partx-for-some-modules.patch +Patch19: 0019-iscsiroot.sh-do-not-source-etc-conf.d.patch +Patch20: 0020-dracut.asc-add-doc-about-journalctl.patch +Patch21: 0021-network-module-setup.sh-instmods-af_packet.patch +Patch22: 0022-Makefile-honor-CFLAGS.patch +Patch23: 0023-TODO-update.patch +Patch24: 0024-qemu-module-setup.sh-provide-alternative-for-systemd.patch +Patch25: 0025-Remove-object-file-from-repo-install-hashmap.o.patch +Patch26: 0026-Makefile-use-implicit-rules-for-install-dracut-insta.patch +Patch27: 0027-95fstab-sys-Skip-mounted-filesystem.patch +Patch28: 0028-90multipath-check-Regexp-fix-to-match-multipath-part.patch +Patch29: 0029-dmsquash-live-do-not-eject-medium-for-live_ram.patch +Patch30: 0030-Remove-obsolete-gentoo-conf-file.patch +Patch31: 0031-Config-file-for-systemd-on-Gentoo.patch +Patch32: 0032-gentoo.conf-set-udevdir.patch +Patch33: 0033-90kernel-modules-remove-unused-variables-in-install.patch +Patch34: 0034-90multipath-added-kpartx.rules-multipath.rules-diffe.patch +Patch35: 0035-Makefile-fixed-dracut-install-make-target.patch +Patch36: 0036-multipath-module-setup.sh-add-dm-dependency.patch +Patch37: 0037-Makefile-use-symlink-for-topsrcdir-dracut-install.patch +Patch38: 0038-systemd-dracut-cmdline.sh-output-dracut-version.patch +Patch39: 0039-95rootfs-block-fix-left-fsck-rel.-checks.patch +Patch40: 0040-98usrmount-use-rw-and-ro-options-instead-of-rd.usrmo.patch +Patch41: 0041-98usrmount-print-mount-options.patch +Patch42: 0042-98usrmount-x-_usr_found-x-removed-redundant-x.patch +Patch43: 0043-dracut-lib-new-functions-listlist-and-are_lists_eq.patch +Patch44: 0044-apply-ro-and-rw-options-from-cmdline-to-mount.patch +Patch45: 0045-modules.d-99base-mount-hook.sh-is-not-used-removed.patch +Patch46: 0046-PATCH-add-support-for-xfs-reiserfs-separate-journal-.patch +Patch47: 0047-dracut-functions.sh-add-find_mp_fstype.patch +Patch48: 0048-rootfs-block-module-setup.sh-add-support-for-xfs-rei.patch +Patch49: 0049-dracut-functions.sh-corrected-usage-comment-of-find_.patch +Patch50: 0050-ro_mnt-option-at-build-time-to-force-ro-mount-of-and.patch +Patch51: 0051-mv-rootfs-block-module-setup.sh-search_option-in-dra.patch +Patch52: 0052-README.testsuite-updated-with-requirements-for-TEST-.patch +Patch53: 0053-base-module-setup.sh-removed-mount-hook.patch +Patch54: 0054-parse-root-opts-first-check-for-ro-later-for-rw.patch +Patch55: 0055-nfs-module-setup.sh-check-for-rpc.rpc-before-running.patch +Patch56: 0056-Added-cifs.patch +Patch57: 0057-plymouth-do-not-start-plymouth-via-dracut-for-system.patch +Patch58: 0058-gentoo.conf-enable-ro_mnt.patch +Patch59: 0059-dracut-functions.sh-inst_rule_programs-fixed-IMPORT-.patch +Patch60: 0060-install-dracut-install.c-convert-destrootdir-to-real.patch +Patch61: 0061-dracut-functions.sh-inst_rule_programs-fix-error-mes.patch +Patch62: 0062-dracut.spec-add-cifs-module.patch BuildRequires: dash bash git @@ -86,6 +144,7 @@ Requires: gzip xz Requires: module-init-tools >= 3.7-9 Requires: sed Requires: file +Requires: kpartx Requires: udev > 166 %if 0%{?fedora} || 0%{?rhel} > 6 Requires: util-linux >= 2.21 @@ -263,6 +322,7 @@ rm -rf $RPM_BUILD_ROOT %endif %dir /etc/dracut.conf.d %{_mandir}/man8/dracut.8* +%{_mandir}/man8/*service.8* %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999 %{_mandir}/man8/mkinitrd.8* %{_mandir}/man1/lsinitrd.1* @@ -289,6 +349,7 @@ rm -rf $RPM_BUILD_ROOT %{dracutlibdir}/modules.d/90multipath %{dracutlibdir}/modules.d/90qemu %{dracutlibdir}/modules.d/91crypt-gpg +%{dracutlibdir}/modules.d/91crypt-loop %{dracutlibdir}/modules.d/95debug %{dracutlibdir}/modules.d/95resume %{dracutlibdir}/modules.d/95rootfs-block @@ -330,6 +391,7 @@ rm -rf $RPM_BUILD_ROOT %{dracutlibdir}/modules.d/95iscsi %{dracutlibdir}/modules.d/90livenet %{dracutlibdir}/modules.d/90qemu-net +%{dracutlibdir}/modules.d/95cifs %{dracutlibdir}/modules.d/95nbd %{dracutlibdir}/modules.d/95nfs %{dracutlibdir}/modules.d/95ssh-client @@ -361,6 +423,10 @@ rm -rf $RPM_BUILD_ROOT %dir /var/lib/dracut/overlay %changelog +* Fri Jul 27 2012 Harald Hoyer <harald@redhat.com> 022-63.git20120727 +- fixed dracut-install bug if /var/tmp contains a symlink +- fixed some partx issues + * Mon Jul 23 2012 Harald Hoyer <harald@redhat.com> 022-5.git20120723 - dracut.8: added more documentation about executing dracut |