From 89b080e2768aeb2c79b3fda802797791808d5453 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Mon, 9 Jul 2012 17:26:31 +0200 Subject: [PATCH] dracut-020-64.git20120709 - fixed plymouth install - fixed resume - fixed dhcp - no dracut systemd services installed in the system --- 0057-02caps-do-not-create-bin-sh-link.patch | 32 ++ 0058-dhclient-initqueue-hook-fix.patch | 33 ++ ...install-service-from-98systemd.-They.patch | 49 ++ ...se-latest-plymouth-s-populate-script.patch | 25 + 0061-test-export-initdir.patch | 488 ++++++++++++++++++ 0062-test-new-test-TEST-99-RPM.patch | 120 +++++ ...ume-move-resume-process-to-initqueue.patch | 63 +++ dracut.spec | 20 +- 8 files changed, 826 insertions(+), 4 deletions(-) create mode 100644 0057-02caps-do-not-create-bin-sh-link.patch create mode 100644 0058-dhclient-initqueue-hook-fix.patch create mode 100644 0059-Makefile-do-not-install-service-from-98systemd.-They.patch create mode 100644 0060-plymouth-Use-latest-plymouth-s-populate-script.patch create mode 100644 0061-test-export-initdir.patch create mode 100644 0062-test-new-test-TEST-99-RPM.patch create mode 100644 0063-resume-move-resume-process-to-initqueue.patch diff --git a/0057-02caps-do-not-create-bin-sh-link.patch b/0057-02caps-do-not-create-bin-sh-link.patch new file mode 100644 index 0000000..b1ddc7a --- /dev/null +++ b/0057-02caps-do-not-create-bin-sh-link.patch @@ -0,0 +1,32 @@ +From d6e8280cd83a08f1b224fa4745de4e3b6f5baa4c Mon Sep 17 00:00:00 2001 +From: Dave Young +Date: Mon, 9 Jul 2012 14:57:11 +0800 +Subject: [PATCH] 02caps: do not create /bin/sh link + +02caps: do not create /bin/sh link + +caps.sh use !/bin/bash explictly, so no need to ln -sf bash /bin/sh + +OTOH, 00dash will create the symlink /bin/sh, 99base will create it if +there's no /bin/sh symlink. It looks bad to creat /bin/sh in other modules. + +If a script want to use bash as command interpreter it should use !/bin/bash +or !/bin/sh in case dash is not installed. + +Signed-off-by: Dave Young +--- + modules.d/02caps/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/02caps/module-setup.sh b/modules.d/02caps/module-setup.sh +index 6ecb231..c9d94ee 100755 +--- a/modules.d/02caps/module-setup.sh ++++ b/modules.d/02caps/module-setup.sh +@@ -14,6 +14,6 @@ install() { + inst_hook pre-pivot 00 "$moddir/caps.sh" + inst $(type -P capsh 2>/dev/null) /usr/sbin/capsh + # capsh wants bash and we need bash also +- inst /bin/bash && ln -sf bash "${initdir}/bin/sh" ++ inst /bin/bash + } + diff --git a/0058-dhclient-initqueue-hook-fix.patch b/0058-dhclient-initqueue-hook-fix.patch new file mode 100644 index 0000000..34332bb --- /dev/null +++ b/0058-dhclient-initqueue-hook-fix.patch @@ -0,0 +1,33 @@ +From a17fc9902e3ccd154765cbc8a1b7cc285072ad75 Mon Sep 17 00:00:00 2001 +From: Dave Young +Date: Mon, 9 Jul 2012 14:56:35 +0800 +Subject: [PATCH] dhclient initqueue hook fix + +dhclient initqueue hook fix + +setup_net is scheduled in initqueue, sometimes it does not get chance to run +So the default route will not be set properly + +Add a check in initqueue/finished to resolve this issue. + +Signed-off-by: Dave Young +--- + modules.d/40network/dhclient-script.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh +index 470444e..1500fe5 100755 +--- a/modules.d/40network/dhclient-script.sh ++++ b/modules.d/40network/dhclient-script.sh +@@ -88,9 +88,11 @@ case $reason in + echo "setup_net $netif" + echo "source_hook initqueue/online $netif" + [ -e /tmp/net.$netif.manualup ] || echo "/sbin/netroot $netif" ++ echo "> /tmp/setup_net_$netif.ok" + echo "rm -f $hookdir/initqueue/setup_net_$netif.sh" + } > $hookdir/initqueue/setup_net_$netif.sh + ++ echo "[ -f /tmp/setup_net_$netif.ok ]" > $hookdir/initqueue/finished/dhclient-$netif.sh + >/tmp/net.$netif.up + ;; + *) echo "dhcp: $reason";; diff --git a/0059-Makefile-do-not-install-service-from-98systemd.-They.patch b/0059-Makefile-do-not-install-service-from-98systemd.-They.patch new file mode 100644 index 0000000..406fc0f --- /dev/null +++ b/0059-Makefile-do-not-install-service-from-98systemd.-They.patch @@ -0,0 +1,49 @@ +From 2023d8eb5b1a92cb830059384f4935a42505eaaa Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 9 Jul 2012 12:41:56 +0200 +Subject: [PATCH] Makefile: do not install service from 98systemd. They are + copied to /run + +--- + Makefile | 11 +---------- + dracut.spec | 5 ++--- + 2 files changed, 3 insertions(+), 13 deletions(-) + +diff --git a/Makefile b/Makefile +index 07741d0..e20ba06 100644 +--- a/Makefile ++++ b/Makefile +@@ -83,16 +83,7 @@ install: doc dracut-version.sh + ln -s dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.kernel.7 + if [ -n "$(systemdsystemunitdir)" ]; then \ + mkdir -p $(DESTDIR)$(systemdsystemunitdir); \ +- for i in \ +- modules.d/98systemd/dracut-initqueue.service \ +- modules.d/98systemd/dracut-pre-pivot.service \ +- modules.d/98systemd/dracut-pre-trigger.service \ +- modules.d/98systemd/dracut-pre-udev.service \ +- modules.d/98systemd/initrd-switch-root.service \ +- modules.d/98systemd/initrd-switch-root.target \ +- dracut-shutdown.service; do \ +- install -m 0644 $$i $(DESTDIR)$(systemdsystemunitdir); \ +- done; \ ++ install -m 0644 dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir); \ + mkdir -p $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants; \ + ln -s ../dracut-shutdown.service \ + $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants/dracut-shutdown.service; \ +diff --git a/dracut.spec b/dracut.spec +index 6be1c3d..c17860d 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -312,9 +312,8 @@ rm -rf $RPM_BUILD_ROOT + %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log + %dir %{_sharedstatedir}/initramfs + %if %{defined _unitdir} +-%{_unitdir}/*.service +-%{_unitdir}/*.target +-%{_unitdir}/*/*.service ++%{_unitdir}/dracut-shutdown.service ++%{_unitdir}/shutdown.target.wants/dracut-shutdown.service + %endif + + %files network diff --git a/0060-plymouth-Use-latest-plymouth-s-populate-script.patch b/0060-plymouth-Use-latest-plymouth-s-populate-script.patch new file mode 100644 index 0000000..01e8ea3 --- /dev/null +++ b/0060-plymouth-Use-latest-plymouth-s-populate-script.patch @@ -0,0 +1,25 @@ +From 3c1feedfd1e175119c26f0dd29e4c03eac1f1f7c Mon Sep 17 00:00:00 2001 +From: Colin Guthrie +Date: Sat, 7 Jul 2012 16:48:01 +0100 +Subject: [PATCH] plymouth: Use latest plymouth's populate script. + +The latest plymouth no longer relies on dracut to provide functions +needed to install binaries/libs so the check for a variable name +no longer works and the old, built-in script is used instead thus +breaking the new drm and framebuffer plymouth module installation. +--- + modules.d/50plymouth/module-setup.sh | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh +index 9cdcc63..10aa0da 100755 +--- a/modules.d/50plymouth/module-setup.sh ++++ b/modules.d/50plymouth/module-setup.sh +@@ -65,7 +65,6 @@ installkernel() { + + install() { + if grep -q nash /usr/libexec/plymouth/plymouth-populate-initrd \ +- || ! grep -q PLYMOUTH_POPULATE_SOURCE_FUNCTIONS /usr/libexec/plymouth/plymouth-populate-initrd \ + || [ ! -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then + . "$moddir"/plymouth-populate-initrd.sh + else diff --git a/0061-test-export-initdir.patch b/0061-test-export-initdir.patch new file mode 100644 index 0000000..9459c6d --- /dev/null +++ b/0061-test-export-initdir.patch @@ -0,0 +1,488 @@ +From 27fa604418517c8e8a8e771ce6a804d4886e9f2f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 9 Jul 2012 15:30:15 +0200 +Subject: [PATCH] test: export initdir + +--- + test/TEST-01-BASIC/test.sh | 6 +++--- + test/TEST-02-SYSTEMD/test.sh | 6 +++--- + test/TEST-03-USR-MOUNT/test.sh | 6 +++--- + test/TEST-10-RAID/test.sh | 6 +++--- + test/TEST-11-LVM/test.sh | 6 +++--- + test/TEST-12-RAID-DEG/test.sh | 6 +++--- + test/TEST-13-ENC-RAID-LVM/test.sh | 6 +++--- + test/TEST-15-BTRFSRAID/test.sh | 6 +++--- + test/TEST-16-DMSQUASH/test.sh | 4 ++-- + test/TEST-20-NFS/test.sh | 6 +++--- + test/TEST-30-ISCSI/test.sh | 8 ++++---- + test/TEST-40-NBD/test.sh | 10 +++++----- + test/TEST-50-MULTINIC/test.sh | 6 +++--- + test/old.TEST-14-IMSM/test.sh | 6 +++--- + test/test-functions | 2 +- + 15 files changed, 45 insertions(+), 45 deletions(-) + +diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh +index 35e05bb..f8522e6 100755 +--- a/test/TEST-01-BASIC/test.sh ++++ b/test/TEST-01-BASIC/test.sh +@@ -27,7 +27,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + mkdir -p $initdir + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ +@@ -49,7 +49,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mkfs.ext3 poweroff cp umount sync + inst_hook initqueue 01 ./create-root.sh +@@ -77,7 +77,7 @@ test_setup() { + + + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh +index b535dbe..5a121c0 100755 +--- a/test/TEST-02-SYSTEMD/test.sh ++++ b/test/TEST-02-SYSTEMD/test.sh +@@ -23,7 +23,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + mkdir -p $initdir + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ +@@ -45,7 +45,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mkfs.ext3 poweroff cp umount + inst_hook initqueue 01 ./create-root.sh +@@ -73,7 +73,7 @@ test_setup() { + + + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh +index d966c3c..f3237d3 100755 +--- a/test/TEST-03-USR-MOUNT/test.sh ++++ b/test/TEST-03-USR-MOUNT/test.sh +@@ -54,7 +54,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + mkdir -p $initdir + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ +@@ -77,7 +77,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mkfs.btrfs btrfs poweroff cp umount sync + inst_hook initqueue 01 ./create-root.sh +@@ -112,7 +112,7 @@ test_setup() { + + + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh +index ef6d0c2..d2b1921 100755 +--- a/test/TEST-10-RAID/test.sh ++++ b/test/TEST-10-RAID/test.sh +@@ -25,7 +25,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + (mkdir -p "$initdir"; cd "$initdir"; mkdir -p dev sys proc etc var/run tmp run) + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ +@@ -46,7 +46,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mke2fs poweroff cp umount + inst_hook initqueue 01 ./create-root.sh +@@ -72,7 +72,7 @@ test_setup() { + grep -m 1 -q dracut-root-block-created $DISKIMAGE || return 1 + + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh +index 034cc4c..61ebdfa 100755 +--- a/test/TEST-11-LVM/test.sh ++++ b/test/TEST-11-LVM/test.sh +@@ -23,7 +23,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ + mount dmesg ifconfig dhclient mkdir cp ping dhclient +@@ -44,7 +44,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mke2fs poweroff cp umount + inst_hook initqueue 01 ./create-root.sh +@@ -66,7 +66,7 @@ test_setup() { + -initrd $TESTDIR/initramfs.makeroot || return 1 + grep -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh +index c6038bd..05e5f8a 100755 +--- a/test/TEST-12-RAID-DEG/test.sh ++++ b/test/TEST-12-RAID-DEG/test.sh +@@ -58,7 +58,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ + mount dmesg ifconfig dhclient mkdir cp ping dhclient +@@ -78,7 +78,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mke2fs poweroff cp umount dd grep + inst_hook initqueue 01 ./create-root.sh +@@ -106,7 +106,7 @@ test_setup() { + grep -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 + eval $(grep --binary-files=text -m 1 MD_UUID $TESTDIR/root.ext2) + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh +index 658de8f..f0f7d34 100755 +--- a/test/TEST-13-ENC-RAID-LVM/test.sh ++++ b/test/TEST-13-ENC-RAID-LVM/test.sh +@@ -59,7 +59,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ + mount dmesg ifconfig dhclient mkdir cp ping dhclient +@@ -79,7 +79,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mke2fs poweroff cp umount grep + inst_hook initqueue 01 ./create-root.sh +@@ -108,7 +108,7 @@ test_setup() { + + + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh +index 5918b5e..61ccae3 100755 +--- a/test/TEST-15-BTRFSRAID/test.sh ++++ b/test/TEST-15-BTRFSRAID/test.sh +@@ -25,7 +25,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ + mount dmesg ifconfig dhclient mkdir cp ping dhclient +@@ -45,7 +45,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mkfs.btrfs poweroff cp umount + inst_hook initqueue 01 ./create-root.sh +@@ -74,7 +74,7 @@ test_setup() { + grep -m 1 -q dracut-root-block-created $DISKIMAGE || return 1 + + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-16-DMSQUASH/test.sh b/test/TEST-16-DMSQUASH/test.sh +index 5cd9986..4dc133c 100755 +--- a/test/TEST-16-DMSQUASH/test.sh ++++ b/test/TEST-16-DMSQUASH/test.sh +@@ -29,7 +29,7 @@ test_run() { + test_setup() { + mkdir -p $TESTDIR/overlay + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +@@ -47,7 +47,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/root-source ++ export initdir=$TESTDIR/root-source + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ + mount dmesg ifconfig dhclient mkdir cp ping dhclient \ +diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh +index 57bf512..a44f6c0 100755 +--- a/test/TEST-20-NFS/test.sh ++++ b/test/TEST-20-NFS/test.sh +@@ -217,7 +217,7 @@ test_setup() { + # Detect lib paths + + ( +- initdir=$TESTDIR/mnt ++ export initdir=$TESTDIR/mnt + . $basedir/dracut-functions.sh + + for _f in modules.builtin.bin modules.builtin; do +@@ -282,7 +282,7 @@ test_setup() { + + # Make client root inside server root + ( +- initdir=$TESTDIR/mnt/nfs/client ++ export initdir=$TESTDIR/mnt/nfs/client + . $basedir/dracut-functions.sh + + dracut_install sh shutdown poweroff stty cat ps ln ip \ +@@ -325,7 +325,7 @@ test_setup() { + + # Make an overlay with needed tools for the test harness + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + mkdir $TESTDIR/overlay + dracut_install poweroff shutdown +diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh +index 8c577f0..c5dba80 100755 +--- a/test/TEST-30-ISCSI/test.sh ++++ b/test/TEST-30-ISCSI/test.sh +@@ -102,7 +102,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + . $basedir/dracut-functions.sh + dracut_install sh shutdown poweroff stty cat ps ln ip \ + mount dmesg mkdir cp ping grep +@@ -118,7 +118,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mkfs.ext3 poweroff cp umount + inst_hook initqueue 01 ./create-root.sh +@@ -153,7 +153,7 @@ test_setup() { + grep -m 1 -q dracut-root-block-created $TESTDIR/client.img || return 1 + rm $TESTDIR/client.img + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +@@ -173,7 +173,7 @@ test_setup() { + + kernel=$KVERSION + ( +- initdir=$TESTDIR/mnt ++ export initdir=$TESTDIR/mnt + . $basedir/dracut-functions.sh + ( + cd "$initdir"; +diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh +index f5465b6..94efb8a 100755 +--- a/test/TEST-40-NBD/test.sh ++++ b/test/TEST-40-NBD/test.sh +@@ -190,7 +190,7 @@ make_encrypted_root() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + . $basedir/dracut-functions.sh + mkdir -p "$initdir" + (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp ) +@@ -208,7 +208,7 @@ make_encrypted_root() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install mke2fs poweroff cp umount tune2fs + inst_hook initqueue 01 ./create-root.sh +@@ -244,7 +244,7 @@ make_client_root() { + + kernel=$KVERSION + ( +- initdir=$TESTDIR/mnt ++ export initdir=$TESTDIR/mnt + . $basedir/dracut-functions.sh + mkdir -p "$initdir" + (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp ) +@@ -278,7 +278,7 @@ make_server_root() { + + kernel=$KVERSION + ( +- initdir=$TESTDIR/mnt ++ export initdir=$TESTDIR/mnt + . $basedir/dracut-functions.sh + mkdir -p "$initdir" + ( +@@ -323,7 +323,7 @@ test_setup() { + + # Make the test image + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh +index a96669e..74f10d8 100755 +--- a/test/TEST-50-MULTINIC/test.sh ++++ b/test/TEST-50-MULTINIC/test.sh +@@ -132,7 +132,7 @@ test_setup() { + sudo mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt + + ( +- initdir=$TESTDIR/mnt ++ export initdir=$TESTDIR/mnt + . $basedir/dracut-functions.sh + + ( +@@ -197,7 +197,7 @@ test_setup() { + + # Make client root inside server root + ( +- initdir=$TESTDIR/mnt/nfs/client ++ export initdir=$TESTDIR/mnt/nfs/client + . $basedir/dracut-functions.sh + dracut_install sh shutdown poweroff stty cat ps ln ip \ + mount dmesg mkdir cp ping grep ls +@@ -236,7 +236,7 @@ test_setup() { + + # Make an overlay with needed tools for the test harness + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/old.TEST-14-IMSM/test.sh b/test/old.TEST-14-IMSM/test.sh +index 5b9438e..cd2d715 100755 +--- a/test/old.TEST-14-IMSM/test.sh ++++ b/test/old.TEST-14-IMSM/test.sh +@@ -57,7 +57,7 @@ test_setup() { + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + ( +- initdir=$TESTDIR/overlay/source ++ export initdir=$TESTDIR/overlay/source + . $basedir/dracut-functions.sh + dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \ + mount dmesg ifconfig dhclient mkdir cp ping dhclient +@@ -78,7 +78,7 @@ test_setup() { + + # second, install the files needed to make the root filesystem + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install sfdisk mke2fs poweroff cp umount + inst_hook initqueue 01 ./create-root.sh +@@ -104,7 +104,7 @@ test_setup() { + -initrd $TESTDIR/initramfs.makeroot || return 1 + grep -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 + ( +- initdir=$TESTDIR/overlay ++ export initdir=$TESTDIR/overlay + . $basedir/dracut-functions.sh + dracut_install poweroff shutdown + inst_hook emergency 000 ./hard-off.sh +diff --git a/test/test-functions b/test/test-functions +index 451837f..10d78ed 100644 +--- a/test/test-functions ++++ b/test/test-functions +@@ -6,7 +6,7 @@ export PATH + + [[ -e .testdir ]] && . .testdir + if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then +- TESTDIR=$(mktemp -d -t dracut-test.XXXXXX) ++ TESTDIR=$(mktemp -d --tmpdir="/var/tmp" -t dracut-test.XXXXXX) + fi + echo "TESTDIR=\"$TESTDIR\"" > .testdir + export TESTDIR diff --git a/0062-test-new-test-TEST-99-RPM.patch b/0062-test-new-test-TEST-99-RPM.patch new file mode 100644 index 0000000..4bf6c06 --- /dev/null +++ b/0062-test-new-test-TEST-99-RPM.patch @@ -0,0 +1,120 @@ +From 4eafdbdbe8ee3486ae96bdc6b5fa34112064a3ea Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 9 Jul 2012 16:28:47 +0200 +Subject: [PATCH] test: new test TEST-99-RPM + +This test installs the dracut rpm together with the kernel in an +installroot. rpm -Va and rpm -qf are used, to ensure nothing modified +files in the real root. +--- + test/TEST-99-RPM/Makefile | 10 ++++++ + test/TEST-99-RPM/test.sh | 83 +++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 93 insertions(+) + create mode 100644 test/TEST-99-RPM/Makefile + create mode 100755 test/TEST-99-RPM/test.sh + +diff --git a/test/TEST-99-RPM/Makefile b/test/TEST-99-RPM/Makefile +new file mode 100644 +index 0000000..5513c52 +--- /dev/null ++++ b/test/TEST-99-RPM/Makefile +@@ -0,0 +1,10 @@ ++all: ++ @make -s --no-print-directory -C ../.. clean all rpm ++ @basedir=../.. testdir=../ ./test.sh --all ++setup: ++ @make --no-print-directory -C ../.. clean rpm ++ @basedir=../.. testdir=../ ./test.sh --setup ++clean: ++ @basedir=../.. testdir=../ ./test.sh --clean ++run: ++ @basedir=../.. testdir=../ ./test.sh --run +diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh +new file mode 100755 +index 0000000..25c1895 +--- /dev/null ++++ b/test/TEST-99-RPM/test.sh +@@ -0,0 +1,83 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++TEST_DESCRIPTION="rpm integrity after dracut and kernel install" ++$TESTDIR ++ ++test_run() { ++ set -x ++ export rootdir=$TESTDIR/root ++ ++ mkdir -p $rootdir ++ ++ mkdir -p "$rootdir/proc" ++ mkdir -p "$rootdir/sys" ++ mkdir -p "$rootdir/dev" ++ ++ mount --bind /proc "$rootdir/proc" ++ mount --bind /sys "$rootdir/sys" ++ mount -t devtmpfs devtmpfs "$rootdir/dev" ++ ++ yum --nogpgcheck --releasever=/ --installroot "$rootdir"/ install -y \ ++ yum \ ++ passwd \ ++ rootfiles \ ++ systemd \ ++ kernel \ ++ fedora-release \ ++ device-mapper-multipath \ ++ lvm2 \ ++ mdadm \ ++ bash \ ++ iscsi-initiator-utils \ ++ $basedir/dracut-[0-9]*.$(arch).rpm \ ++ $basedir/dracut-network-[0-9]*.$(arch).rpm ++ ++ cat >"$rootdir"/test.sh < /test.output ++find / -xdev -type f -not -path '/var/*' \ ++ -not -path '/usr/lib/modules/*/modules.*' \ ++ -not -path '/etc/*-' \ ++ -not -path '/etc/.pwd.lock' \ ++ -not -path '/run/mount/utab' \ ++ -not -path '/test.sh' \ ++ -not -path '/test.output' \ ++ -not -path '/etc/nsswitch.conf.bak' \ ++ -not -path '/etc/iscsi/initiatorname.iscsi' \ ++ -not -path '/dev/null' \ ++ -exec rpm -qf '{}' ';' | \ ++ fgrep 'not owned' &> /test.output ++exit ++EOF ++ ++ chmod 0755 "$rootdir/test.sh" ++ ++ chroot "$rootdir" /test.sh ++ ++ if [[ -s "$rootdir"/test.output ]]; then ++ failed=1 ++ echo TEST Failed >&2 ++ cat "$rootdir"/test.output >&2 ++ fi ++ ++ umount "$rootdir/proc" ++ umount "$rootdir/sys" ++ umount "$rootdir/dev" ++ ++ [[ $failed ]] && return 1 ++ return 0 ++ ++} ++ ++test_setup() { ++ return 0 ++} ++ ++test_cleanup() { ++ return 0 ++} ++ ++. $testdir/test-functions diff --git a/0063-resume-move-resume-process-to-initqueue.patch b/0063-resume-move-resume-process-to-initqueue.patch new file mode 100644 index 0000000..56ebab0 --- /dev/null +++ b/0063-resume-move-resume-process-to-initqueue.patch @@ -0,0 +1,63 @@ +From 450b5f336d1f433d333b78979388aa2477bc487e Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 9 Jul 2012 17:06:51 +0200 +Subject: [PATCH] resume: move resume process to initqueue + +--- + modules.d/95resume/parse-resume.sh | 2 ++ + modules.d/95resume/resume-genrules.sh | 14 +++++++------- + 2 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/modules.d/95resume/parse-resume.sh b/modules.d/95resume/parse-resume.sh +index 32680c3..b460a16 100755 +--- a/modules.d/95resume/parse-resume.sh ++++ b/modules.d/95resume/parse-resume.sh +@@ -15,6 +15,8 @@ case "$resume" in + resume="/dev/disk/by-label/${resume#LABEL=}" ;; + UUID=*) \ + resume="/dev/disk/by-uuid/${resume#UUID=}" ;; ++ PARTUUID=*) \ ++ resume="/dev/disk/by-partuuid/${resume#PARTUUID=}" ;; + esac + + if splash=$(getarg splash=); then +diff --git a/modules.d/95resume/resume-genrules.sh b/modules.d/95resume/resume-genrules.sh +index ee4eacb..34511d7 100755 +--- a/modules.d/95resume/resume-genrules.sh ++++ b/modules.d/95resume/resume-genrules.sh +@@ -21,18 +21,18 @@ if [ -n "$resume" ]; then + + { + if [ -x /usr/sbin/resume ]; then +- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/usr/sbin/resume %s '%s'\"\n" \ ++ printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue /usr/sbin/resume %s '%s'\"\n" \ + ${resume#/dev/} "$a_splash" "$resume"; +- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/usr/sbin/resume %s '%s'\"\n" \ ++ printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue /usr/sbin/resume %s '%s'\"\n" \ + ${resume#/dev/} "$a_splash" "$resume"; + fi +- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \ ++ printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue /bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \ + ${resume#/dev/}; +- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \ ++ printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue /bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \ + ${resume#/dev/}; + } >> /etc/udev/rules.d/99-resume.rules + +- printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm "$job"; }\n' \ ++ printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm "$job"; udevadm settle; }\n' \ + "$resume" "$resume" >> $hookdir/initqueue/settled/resume.sh + + printf 'warn "Cancelling resume operation. Device not found."; cancel_wait_for_dev /dev/resume; rm "$job" "%s/initqueue/settled/resume.sh";' \ +@@ -43,9 +43,9 @@ if [ -n "$resume" ]; then + elif ! getarg noresume; then + { + if [ -x /usr/sbin/resume ]; then +- printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/usr/sbin/resume %s '\$tempnode'\"\n" "$a_splash" ++ printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue /usr/sbin/resume %s '\$tempnode'\"\n" "$a_splash" + fi + echo "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\"," \ +- " RUN+=\"/bin/sh -c 'echo %M:%m > /sys/power/resume'\""; ++ " RUN+=\"/sbin/initqueue /bin/sh -c 'echo %M:%m > /sys/power/resume'\""; + } >> /etc/udev/rules.d/99-resume.rules + fi diff --git a/dracut.spec b/dracut.spec index 2bbfc9e..da392e0 100644 --- a/dracut.spec +++ b/dracut.spec @@ -10,7 +10,7 @@ Name: dracut Version: 020 -Release: 57.git20120709%{?dist} +Release: 64.git20120709%{?dist} Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} @@ -85,6 +85,13 @@ Patch53: 0053-dracut.sh-corrected-error-messages-if-mktemp-failed.patch Patch54: 0054-require-systemd-186.patch Patch55: 0055-systemd-udev-trigger.service-and-systemd-udev-settle.patch Patch56: 0056-TEST-30-ISCSI-convert-to-ext3.patch +Patch57: 0057-02caps-do-not-create-bin-sh-link.patch +Patch58: 0058-dhclient-initqueue-hook-fix.patch +Patch59: 0059-Makefile-do-not-install-service-from-98systemd.-They.patch +Patch60: 0060-plymouth-Use-latest-plymouth-s-populate-script.patch +Patch61: 0061-test-export-initdir.patch +Patch62: 0062-test-new-test-TEST-99-RPM.patch +Patch63: 0063-resume-move-resume-process-to-initqueue.patch BuildRequires: dash bash git @@ -369,9 +376,8 @@ rm -rf $RPM_BUILD_ROOT %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log %dir %{_sharedstatedir}/initramfs %if %{defined _unitdir} -%{_unitdir}/*.service -%{_unitdir}/*.target -%{_unitdir}/*/*.service +%{_unitdir}/dracut-shutdown.service +%{_unitdir}/shutdown.target.wants/dracut-shutdown.service %endif %files network @@ -412,6 +418,12 @@ rm -rf $RPM_BUILD_ROOT %dir /var/lib/dracut/overlay %changelog +* Mon Jul 09 2012 Harald Hoyer 020-64.git20120709 +- fixed plymouth install +- fixed resume +- fixed dhcp +- no dracut systemd services installed in the system + * Mon Jul 09 2012 Harald Hoyer 020-57.git20120709 - more fixups for systemd-udevd unit renaming