From e3ef5716a995db236db1e712ecd7c15652f86e31 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Thu, 21 Jun 2012 02:10:56 +0200 Subject: [PATCH] dracut-019-57.git20120620 systemd is now the default init in the initramfs --- ...-arch-before-installing-drivers-s390.patch | 36 ++++++ ...service-fixed-ordering-to-be-before-.patch | 23 ++++ ...ll-service-output-to-the-journal-als.patch | 104 ++++++++++++++++++ ...etup.sh-add-old-udev-systemd-service.patch | 29 +++++ ...emergency.service-and-rescue.service.patch | 82 ++++++++++++++ ...stemd-do-not-redirect-to-dev-console.patch | 74 +++++++++++++ 0046-systemd-do-not-flock-for-console.patch | 33 ++++++ ...-pre-pivot.sh-stop-old-udev-services.patch | 26 +++++ ...mdline-make-dracut-cmdline-a-service.patch | 66 +++++++++++ ...t-pre-pivot.sh-remove-trailing-space.patch | 22 ++++ ...t-pre-udev.service-fixed-description.patch | 22 ++++ 0051-systemd-fixed-ordering-of-services.patch | 56 ++++++++++ 0052-systemd-fixed-I-O-of-services.patch | 80 ++++++++++++++ ...sh-change-output-of-info-and-warn-fo.patch | 58 ++++++++++ ...sh-for-systemd-start-emergency.servi.patch | 74 +++++++++++++ ...dora.conf.example-make-systemd-defau.patch | 21 ++++ 0056-dracut.spec-require-systemd-44-15.patch | 21 ++++ dracut.spec | 23 +++- 18 files changed, 849 insertions(+), 1 deletion(-) create mode 100644 0040-check-for-arch-before-installing-drivers-s390.patch create mode 100644 0041-dracut-shutdown.service-fixed-ordering-to-be-before-.patch create mode 100644 0042-systemd-output-all-service-output-to-the-journal-als.patch create mode 100644 0043-systemd-module-setup.sh-add-old-udev-systemd-service.patch create mode 100644 0044-systemd-fix-emergency.service-and-rescue.service.patch create mode 100644 0045-systemd-do-not-redirect-to-dev-console.patch create mode 100644 0046-systemd-do-not-flock-for-console.patch create mode 100644 0047-systemd-dracut-pre-pivot.sh-stop-old-udev-services.patch create mode 100644 0048-systemd-dracut-cmdline-make-dracut-cmdline-a-service.patch create mode 100644 0049-systemd-dracut-pre-pivot.sh-remove-trailing-space.patch create mode 100644 0050-systemd-dracut-pre-udev.service-fixed-description.patch create mode 100644 0051-systemd-fixed-ordering-of-services.patch create mode 100644 0052-systemd-fixed-I-O-of-services.patch create mode 100644 0053-base-dracut-lib.sh-change-output-of-info-and-warn-fo.patch create mode 100644 0054-base-dracut-lib.sh-for-systemd-start-emergency.servi.patch create mode 100644 0055-dracut.conf.d-fedora.conf.example-make-systemd-defau.patch create mode 100644 0056-dracut.spec-require-systemd-44-15.patch diff --git a/0040-check-for-arch-before-installing-drivers-s390.patch b/0040-check-for-arch-before-installing-drivers-s390.patch new file mode 100644 index 0000000..91d4683 --- /dev/null +++ b/0040-check-for-arch-before-installing-drivers-s390.patch @@ -0,0 +1,36 @@ +From 361306c131a31c85d4b7ce40e33d6cbb589cb8b4 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 20 Jun 2012 18:28:35 +0200 +Subject: [PATCH] check for arch before installing drivers/s390 + +--- + modules.d/40network/module-setup.sh | 2 +- + modules.d/90multipath/module-setup.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index 4ed8d03..a8efbc5 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh +@@ -61,7 +61,7 @@ installkernel() { + return $_ret + } + +- { find_kernel_modules_by_path drivers/net; find_kernel_modules_by_path drivers/s390/net; } \ ++ { find_kernel_modules_by_path drivers/net; if [ "$_arch" = "s390" -o "$_arch" = "s390x" ]; then find_kernel_modules_by_path drivers/s390/net; fi; } \ + | net_module_filter | instmods + + instmods =drivers/net/phy +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index bf71fdc..0e8857c 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -44,7 +44,7 @@ installkernel() { + done + } + +- ( find_kernel_modules_by_path drivers/scsi; find_kernel_modules_by_path drivers/s390/scsi ; ++ ( find_kernel_modules_by_path drivers/scsi; if [ "$_arch" = "s390" -o "$_arch" = "s390x" ]; then find_kernel_modules_by_path drivers/s390/scsi; fi; + find_kernel_modules_by_path drivers/md ) | mp_mod_filter | instmods + _ret=$? + [[ $debug ]] && set -x diff --git a/0041-dracut-shutdown.service-fixed-ordering-to-be-before-.patch b/0041-dracut-shutdown.service-fixed-ordering-to-be-before-.patch new file mode 100644 index 0000000..5a9de66 --- /dev/null +++ b/0041-dracut-shutdown.service-fixed-ordering-to-be-before-.patch @@ -0,0 +1,23 @@ +From c7896f125183bbae0ef1403fb8aa5e46adf464ac Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 20 Jun 2012 18:29:42 +0200 +Subject: [PATCH] dracut-shutdown.service: fixed ordering to be before + shutdown.target + +--- + dracut-shutdown.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut-shutdown.service b/dracut-shutdown.service +index 6756355..f96418b 100644 +--- a/dracut-shutdown.service ++++ b/dracut-shutdown.service +@@ -8,7 +8,7 @@ + [Unit] + Description=Restore /run/initramfs + After=getty@tty1.service prefdm.service +-Before=reboot.service ++Before=reboot.service shutdown.target + DefaultDependencies=no + ConditionPathExists=/run/initramfs/.need_shutdown + ConditionPathExists=!/run/initramfs/bin/sh diff --git a/0042-systemd-output-all-service-output-to-the-journal-als.patch b/0042-systemd-output-all-service-output-to-the-journal-als.patch new file mode 100644 index 0000000..c1a64ca --- /dev/null +++ b/0042-systemd-output-all-service-output-to-the-journal-als.patch @@ -0,0 +1,104 @@ +From 9f037266ee5b8da70e04b48bd69d8c2f602bbd4d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 20 Jun 2012 18:34:35 +0200 +Subject: [PATCH] systemd: output all service output to the journal also + +--- + modules.d/98systemd/dracut-initqueue.service | 4 ++-- + modules.d/98systemd/dracut-pre-pivot.service | 4 ++-- + modules.d/98systemd/dracut-pre-trigger.service | 4 ++-- + modules.d/98systemd/dracut-pre-udev.service | 4 ++-- + modules.d/98systemd/emergency.service | 4 ++-- + modules.d/98systemd/rescue.service | 4 ++-- + 6 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98systemd/dracut-initqueue.service +index b0c8509..c87e6a0 100644 +--- a/modules.d/98systemd/dracut-initqueue.service ++++ b/modules.d/98systemd/dracut-initqueue.service +@@ -17,8 +17,8 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-initqueue + Type=simple +-StandardInput=tty-force +-StandardOutput=inherit ++StandardInput=tty ++StandardOutput=journal+console + StandardError=inherit + KillMode=process + +diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service +index 410e03e..0e04cb4 100644 +--- a/modules.d/98systemd/dracut-pre-pivot.service ++++ b/modules.d/98systemd/dracut-pre-pivot.service +@@ -17,8 +17,8 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-pre-pivot + Type=oneshot +-StandardInput=tty-force +-StandardOutput=inherit ++StandardInput=tty ++StandardOutput=journal+console + StandardError=inherit + KillMode=process + +diff --git a/modules.d/98systemd/dracut-pre-trigger.service b/modules.d/98systemd/dracut-pre-trigger.service +index 080b1f5..18eb8fc 100644 +--- a/modules.d/98systemd/dracut-pre-trigger.service ++++ b/modules.d/98systemd/dracut-pre-trigger.service +@@ -18,8 +18,8 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-pre-trigger + Type=oneshot +-StandardInput=tty-force +-StandardOutput=inherit ++StandardInput=tty ++StandardOutput=journal+console + StandardError=inherit + KillMode=process + +diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98systemd/dracut-pre-udev.service +index 09a349d..2447fc8 100644 +--- a/modules.d/98systemd/dracut-pre-udev.service ++++ b/modules.d/98systemd/dracut-pre-udev.service +@@ -17,8 +17,8 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-pre-udev + Type=oneshot +-StandardInput=tty-force +-StandardOutput=inherit ++StandardInput=tty ++StandardOutput=journal+console + StandardError=inherit + KillMode=process + +diff --git a/modules.d/98systemd/emergency.service b/modules.d/98systemd/emergency.service +index 7c705c4..86fc13f 100644 +--- a/modules.d/98systemd/emergency.service ++++ b/modules.d/98systemd/emergency.service +@@ -19,8 +19,8 @@ WorkingDirectory=/ + ExecStart=-/bin/sh -i -l + ExecStopPost=-/usr/bin/systemctl --fail --no-block default + Type=idle +-StandardInput=tty-force +-StandardOutput=inherit ++StandardInput=tty ++StandardOutput=journal+console + StandardError=inherit + KillMode=process + IgnoreSIGPIPE=no +diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service +index 652308c..afd04f7 100644 +--- a/modules.d/98systemd/rescue.service ++++ b/modules.d/98systemd/rescue.service +@@ -21,8 +21,8 @@ ExecStart=-/bin/sh -i -l + #ExecStopPost=-/usr/bin/systemctl --fail --no-block switch-root /sysroot /sbin/init + ExecStopPost=-/usr/bin/systemctl --fail --no-block default + Type=idle +-StandardInput=tty-force +-StandardOutput=inherit ++StandardInput=tty ++StandardOutput=journal+console + StandardError=inherit + KillMode=process + diff --git a/0043-systemd-module-setup.sh-add-old-udev-systemd-service.patch b/0043-systemd-module-setup.sh-add-old-udev-systemd-service.patch new file mode 100644 index 0000000..d061ac5 --- /dev/null +++ b/0043-systemd-module-setup.sh-add-old-udev-systemd-service.patch @@ -0,0 +1,29 @@ +From 529f7bf358d30f5e76cd680bd82fc5d954fa8a33 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:01:07 +0200 +Subject: [PATCH] systemd/module-setup.sh: add old udev systemd services + +--- + modules.d/98systemd/module-setup.sh | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh +index dbb9063..2160eb4 100755 +--- a/modules.d/98systemd/module-setup.sh ++++ b/modules.d/98systemd/module-setup.sh +@@ -102,6 +102,15 @@ install() { + $systemdsystemunitdir/initrd-switch-root.target \ + $systemdsystemunitdir/initrd-switch-root.service \ + $systemdsystemunitdir/umount.target \ ++ $systemdsystemunitdir/udev-control.socket \ ++ $systemdsystemunitdir/udev-kernel.socket \ ++ $systemdsystemunitdir/udev.service \ ++ $systemdsystemunitdir/udev-settle.service \ ++ $systemdsystemunitdir/udev-trigger.service \ ++ $systemdsystemunitdir/basic.target.wants/udev.service \ ++ $systemdsystemunitdir/basic.target.wants/udev-trigger.service \ ++ $systemdsystemunitdir/sockets.target.wants/udev-control.socket \ ++ $systemdsystemunitdir/sockets.target.wants/udev-kernel.socket + + for i in /etc/systemd/*.conf; do + dracut_install "$i" diff --git a/0044-systemd-fix-emergency.service-and-rescue.service.patch b/0044-systemd-fix-emergency.service-and-rescue.service.patch new file mode 100644 index 0000000..bf09544 --- /dev/null +++ b/0044-systemd-fix-emergency.service-and-rescue.service.patch @@ -0,0 +1,82 @@ +From b47e023767ae6c8dad816d44b3ffd8dcd5048afe Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:01:51 +0200 +Subject: [PATCH] systemd: fix emergency.service and rescue.service + +--- + modules.d/98systemd/emergency.service | 10 +++++----- + modules.d/98systemd/module-setup.sh | 2 +- + modules.d/98systemd/rescue.service | 11 +++++------ + 3 files changed, 11 insertions(+), 12 deletions(-) + +diff --git a/modules.d/98systemd/emergency.service b/modules.d/98systemd/emergency.service +index 86fc13f..431e2b0 100644 +--- a/modules.d/98systemd/emergency.service ++++ b/modules.d/98systemd/emergency.service +@@ -10,17 +10,17 @@ + [Unit] + Description=Emergency Shell + DefaultDependencies=no +-Conflicts=shutdown.target +-Before=shutdown.target + + [Service] + Environment=HOME=/ + WorkingDirectory=/ ++ExecStartPre=-/bin/plymouth quit ++ExecStartPre=-/bin/echo -e '\n\nEntering emergency mode. Exit the shell to continue.\nType "journalctl" to view system logs.\n' + ExecStart=-/bin/sh -i -l +-ExecStopPost=-/usr/bin/systemctl --fail --no-block default ++ExecStopPost=-/bin/rm -f /.console_lock + Type=idle +-StandardInput=tty +-StandardOutput=journal+console ++StandardInput=tty-force ++StandardOutput=inherit + StandardError=inherit + KillMode=process + IgnoreSIGPIPE=no +diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh +index 2160eb4..91f50af 100755 +--- a/modules.d/98systemd/module-setup.sh ++++ b/modules.d/98systemd/module-setup.sh +@@ -116,7 +116,7 @@ install() { + dracut_install "$i" + done + +- dracut_install journalctl systemctl ++ dracut_install journalctl systemctl echo + + ln -fs $systemdutildir/systemd "$initdir/init" + +diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service +index afd04f7..b5fb663 100644 +--- a/modules.d/98systemd/rescue.service ++++ b/modules.d/98systemd/rescue.service +@@ -10,21 +10,20 @@ + [Unit] + Description=Rescue Shell + DefaultDependencies=no +-Conflicts=shutdown.target +-After=basic.target plymouth-start.service +-Before=shutdown.target + + [Service] + Environment=HOME=/ + WorkingDirectory=/ ++ExecStartPre=-/bin/plymouth quit + ExecStart=-/bin/sh -i -l +-#ExecStopPost=-/usr/bin/systemctl --fail --no-block switch-root /sysroot /sbin/init ++ExecStopPost=-/bin/rm -f /.console_lock + ExecStopPost=-/usr/bin/systemctl --fail --no-block default + Type=idle +-StandardInput=tty +-StandardOutput=journal+console ++StandardInput=tty-force ++StandardOutput=inherit + StandardError=inherit + KillMode=process ++IgnoreSIGPIPE=no + + # Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash + # terminates cleanly. diff --git a/0045-systemd-do-not-redirect-to-dev-console.patch b/0045-systemd-do-not-redirect-to-dev-console.patch new file mode 100644 index 0000000..f921244 --- /dev/null +++ b/0045-systemd-do-not-redirect-to-dev-console.patch @@ -0,0 +1,74 @@ +From f6eb1f1d1f608b9b9983bdfaf4a867143e21b2b7 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:02:48 +0200 +Subject: [PATCH] systemd: do not redirect to /dev/console + +--- + modules.d/98systemd/dracut-cmdline.sh | 2 -- + modules.d/98systemd/dracut-initqueue.sh | 1 - + modules.d/98systemd/dracut-pre-pivot.sh | 1 - + modules.d/98systemd/dracut-pre-trigger.sh | 1 - + modules.d/98systemd/dracut-pre-udev.sh | 1 - + 5 files changed, 6 deletions(-) + +diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh +index 26ca9c2..e1a75ea 100755 +--- a/modules.d/98systemd/dracut-cmdline.sh ++++ b/modules.d/98systemd/dracut-cmdline.sh +@@ -7,8 +7,6 @@ NEWROOT="/sysroot" + [ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs + [ -d /run/lock ] || mkdir -p -m 0755 /run/lock + +-exec /dev/console 2>&1 +- + if [ -f /dracut-state.sh ]; then + . /dracut-state.sh || : + fi +diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh +index 5d51a80..830dbee 100755 +--- a/modules.d/98systemd/dracut-initqueue.sh ++++ b/modules.d/98systemd/dracut-initqueue.sh +@@ -1,7 +1,6 @@ + #!/bin/sh + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh +-exec /dev/console 2>&1 + + if [ -f /dracut-state.sh ]; then + . /dracut-state.sh || : +diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh +index a8e9fc1..eb7e932 100755 +--- a/modules.d/98systemd/dracut-pre-pivot.sh ++++ b/modules.d/98systemd/dracut-pre-pivot.sh +@@ -2,7 +2,6 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-exec /dev/console 2>&1 + if [ -f /dracut-state.sh ]; then + . /dracut-state.sh || : + fi +diff --git a/modules.d/98systemd/dracut-pre-trigger.sh b/modules.d/98systemd/dracut-pre-trigger.sh +index 0539a01..9521eaa 100755 +--- a/modules.d/98systemd/dracut-pre-trigger.sh ++++ b/modules.d/98systemd/dracut-pre-trigger.sh +@@ -1,7 +1,6 @@ + #!/bin/sh + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh +-exec /dev/console 2>&1 + + if [ -f /dracut-state.sh ]; then + . /dracut-state.sh || : +diff --git a/modules.d/98systemd/dracut-pre-udev.sh b/modules.d/98systemd/dracut-pre-udev.sh +index 5740174..3b5ac37 100755 +--- a/modules.d/98systemd/dracut-pre-udev.sh ++++ b/modules.d/98systemd/dracut-pre-udev.sh +@@ -2,7 +2,6 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-exec /dev/console 2>&1 + if [ -f /dracut-state.sh ]; then + . /dracut-state.sh || : + fi diff --git a/0046-systemd-do-not-flock-for-console.patch b/0046-systemd-do-not-flock-for-console.patch new file mode 100644 index 0000000..10e7976 --- /dev/null +++ b/0046-systemd-do-not-flock-for-console.patch @@ -0,0 +1,33 @@ +From 3d3ddf082b6b61ae559520ff039f7592a58e88b2 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:03:22 +0200 +Subject: [PATCH] systemd: do not flock for console + +--- + modules.d/98systemd/dracut-initqueue.sh | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh +index 830dbee..03f1c9b 100755 +--- a/modules.d/98systemd/dracut-initqueue.sh ++++ b/modules.d/98systemd/dracut-initqueue.sh +@@ -59,8 +59,7 @@ while :; do + fi + + main_loop=$(($main_loop+1)) +- [ $main_loop -gt $RDRETRY ] \ +- && { flock -s 9 ; emergency_shell "Could not boot."; } 9>/.console_lock ++ [ $main_loop -gt $RDRETRY ] && emergency_shell "Could not boot." + done + + unset job +@@ -95,8 +94,7 @@ while :; do + done + + i=$(($i+1)) +- [ $i -gt 20 ] \ +- && { flock -s 9 ; emergency_shell "Can't mount root filesystem"; } 9>/.console_lock ++ [ $i -gt 20 ] && emergency_shell "Can't mount root filesystem" + done + + { diff --git a/0047-systemd-dracut-pre-pivot.sh-stop-old-udev-services.patch b/0047-systemd-dracut-pre-pivot.sh-stop-old-udev-services.patch new file mode 100644 index 0000000..aba0ace --- /dev/null +++ b/0047-systemd-dracut-pre-pivot.sh-stop-old-udev-services.patch @@ -0,0 +1,26 @@ +From edcbd379d50218695681e9bb13288f9603da04f6 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:04:15 +0200 +Subject: [PATCH] systemd/dracut-pre-pivot.sh: stop old udev services + +--- + modules.d/98systemd/dracut-pre-pivot.sh | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh +index eb7e932..6685210 100755 +--- a/modules.d/98systemd/dracut-pre-pivot.sh ++++ b/modules.d/98systemd/dracut-pre-pivot.sh +@@ -34,7 +34,11 @@ done + echo "NEWROOT=\"$NEWROOT\"" >> /run/initramfs/switch-root.conf + + udevadm control --stop-exec-queue +-systemctl stop systemd-udev.service ++ ++for i in systemd-udev.service udev.service; do ++ systemctl is-active $i >/dev/null 2>&1 && systemctl stop $i ++done ++ + udevadm info --cleanup-db + + # remove helper symlink diff --git a/0048-systemd-dracut-cmdline-make-dracut-cmdline-a-service.patch b/0048-systemd-dracut-cmdline-make-dracut-cmdline-a-service.patch new file mode 100644 index 0000000..703237a --- /dev/null +++ b/0048-systemd-dracut-cmdline-make-dracut-cmdline-a-service.patch @@ -0,0 +1,66 @@ +From f653c8622995fc39d0715a6bed60618c61ed0b5e Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:05:15 +0200 +Subject: [PATCH] systemd/dracut-cmdline: make dracut-cmdline a service + +convert dracut-cmdline from hook to service after the journal +--- + modules.d/98systemd/dracut-cmdline.service | 29 ++++++++++++++++++++++++++++ + modules.d/98systemd/module-setup.sh | 7 +++++-- + 2 files changed, 34 insertions(+), 2 deletions(-) + create mode 100644 modules.d/98systemd/dracut-cmdline.service + +diff --git a/modules.d/98systemd/dracut-cmdline.service b/modules.d/98systemd/dracut-cmdline.service +new file mode 100644 +index 0000000..938ccbe +--- /dev/null ++++ b/modules.d/98systemd/dracut-cmdline.service +@@ -0,0 +1,29 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++# See systemd.special(7) for details ++ ++[Unit] ++Description=Dracut cmdline hook ++DefaultDependencies=no ++Before=dracut-pre-udev.service ++After=systemd-journald.socket ++Wants=systemd-journald.socket ++ ++[Service] ++Environment=HOME=/ ++WorkingDirectory=/ ++ExecStart=-/bin/dracut-cmdline ++Type=oneshot ++StandardInput=null ++StandardOutput=syslog ++StandardError=syslog+console ++KillMode=process ++ ++# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash ++# terminates cleanly. ++KillSignal=SIGHUP +diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh +index 91f50af..adef939 100755 +--- a/modules.d/98systemd/module-setup.sh ++++ b/modules.d/98systemd/module-setup.sh +@@ -130,9 +130,12 @@ install() { + inst "$moddir/initrd-switch-root.service" ${systemdsystemunitdir}/initrd-switch-root.service + ln -s basic.target "${initdir}${systemdsystemunitdir}/default.target" + +- inst "$moddir/dracut-cmdline.sh" ${systemdsystemunitdir}-generators/dracut-cmdline.sh +- + mkdir -p "${initdir}${systemdsystemunitdir}/basic.target.wants" ++ ++ inst "$moddir/dracut-cmdline.sh" /bin/dracut-cmdline ++ inst "$moddir/dracut-cmdline.service" ${systemdsystemunitdir}/dracut-cmdline.service ++ ln -s ../dracut-cmdline.service "${initdir}${systemdsystemunitdir}/basic.target.wants/dracut-cmdline.service" ++ + inst "$moddir/dracut-pre-udev.sh" /bin/dracut-pre-udev + inst "$moddir/dracut-pre-udev.service" ${systemdsystemunitdir}/dracut-pre-udev.service + ln -s ../dracut-pre-udev.service "${initdir}${systemdsystemunitdir}/basic.target.wants/dracut-pre-udev.service" diff --git a/0049-systemd-dracut-pre-pivot.sh-remove-trailing-space.patch b/0049-systemd-dracut-pre-pivot.sh-remove-trailing-space.patch new file mode 100644 index 0000000..9ed5439 --- /dev/null +++ b/0049-systemd-dracut-pre-pivot.sh-remove-trailing-space.patch @@ -0,0 +1,22 @@ +From f82659c552b453f832c84c808e4e721c18be6a24 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:06:30 +0200 +Subject: [PATCH] systemd/dracut-pre-pivot.sh: remove trailing space + +--- + modules.d/98systemd/dracut-pre-pivot.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh +index 6685210..38e9c3c 100755 +--- a/modules.d/98systemd/dracut-pre-pivot.sh ++++ b/modules.d/98systemd/dracut-pre-pivot.sh +@@ -18,7 +18,7 @@ getarg 'rd.break=cleanup' 'rdbreak=cleanup' && emergency_shell -n cleanup "Break + source_hook cleanup + + # By the time we get here, the root filesystem should be mounted. +-# Try to find init. ++# Try to find init. + + for i in "$(getarg real_init=)" "$(getarg init=)"; do + [ -n "$i" ] || continue diff --git a/0050-systemd-dracut-pre-udev.service-fixed-description.patch b/0050-systemd-dracut-pre-udev.service-fixed-description.patch new file mode 100644 index 0000000..735b553 --- /dev/null +++ b/0050-systemd-dracut-pre-udev.service-fixed-description.patch @@ -0,0 +1,22 @@ +From a51aa0d0e281dc9f72a99141156e88ecbfdf55dd Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:07:08 +0200 +Subject: [PATCH] systemd/dracut-pre-udev.service: fixed description + +--- + modules.d/98systemd/dracut-pre-udev.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98systemd/dracut-pre-udev.service +index 2447fc8..9b2d929 100644 +--- a/modules.d/98systemd/dracut-pre-udev.service ++++ b/modules.d/98systemd/dracut-pre-udev.service +@@ -8,7 +8,7 @@ + # See systemd.special(7) for details + + [Unit] +-Description=Dracut pre-trigger hook ++Description=Dracut pre-udev hook + DefaultDependencies=no + Before=systemd-udev.service + diff --git a/0051-systemd-fixed-ordering-of-services.patch b/0051-systemd-fixed-ordering-of-services.patch new file mode 100644 index 0000000..d1be30c --- /dev/null +++ b/0051-systemd-fixed-ordering-of-services.patch @@ -0,0 +1,56 @@ +From b03e991113f7e33c0fd072e16d4ebd862542e720 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:08:03 +0200 +Subject: [PATCH] systemd: fixed ordering of services + +--- + modules.d/98systemd/dracut-initqueue.service | 3 ++- + modules.d/98systemd/dracut-pre-trigger.service | 5 +++-- + modules.d/98systemd/dracut-pre-udev.service | 4 +++- + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98systemd/dracut-initqueue.service +index c87e6a0..89aa304 100644 +--- a/modules.d/98systemd/dracut-initqueue.service ++++ b/modules.d/98systemd/dracut-initqueue.service +@@ -10,7 +10,8 @@ + [Unit] + Description=Dracut initqueue hook + DefaultDependencies=no +-After=systemd-udev-trigger.service ++After=systemd-udev-trigger.service udev-trigger.service ++Wants=systemd-udev-trigger.service udev-trigger.service + + [Service] + Environment=HOME=/ +diff --git a/modules.d/98systemd/dracut-pre-trigger.service b/modules.d/98systemd/dracut-pre-trigger.service +index 18eb8fc..1ab07a1 100644 +--- a/modules.d/98systemd/dracut-pre-trigger.service ++++ b/modules.d/98systemd/dracut-pre-trigger.service +@@ -10,8 +10,9 @@ + [Unit] + Description=Dracut pre-trigger hook + DefaultDependencies=no +-After=systemd-udev.service +-Before=systemd-udev-trigger.service ++Before=systemd-udev-trigger.service udev-trigger.service dracut-initqueue.service ++After=dracut-pre-udev.service systemd-udev.service udev.service ++Wants=dracut-pre-udev.service systemd-udev.service udev.service + + [Service] + Environment=HOME=/ +diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98systemd/dracut-pre-udev.service +index 9b2d929..579316e 100644 +--- a/modules.d/98systemd/dracut-pre-udev.service ++++ b/modules.d/98systemd/dracut-pre-udev.service +@@ -10,7 +10,9 @@ + [Unit] + Description=Dracut pre-udev hook + DefaultDependencies=no +-Before=systemd-udev.service ++Before=systemd-udev.service udev.service dracut-pre-trigger.service ++After=dracut-cmdline.service ++Wants=dracut-cmdline.service + + [Service] + Environment=HOME=/ diff --git a/0052-systemd-fixed-I-O-of-services.patch b/0052-systemd-fixed-I-O-of-services.patch new file mode 100644 index 0000000..a99170e --- /dev/null +++ b/0052-systemd-fixed-I-O-of-services.patch @@ -0,0 +1,80 @@ +From e08710a28979575f676be63658310df849b29076 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:08:29 +0200 +Subject: [PATCH] systemd: fixed I/O of services + +--- + modules.d/98systemd/dracut-initqueue.service | 6 +++--- + modules.d/98systemd/dracut-pre-pivot.service | 6 +++--- + modules.d/98systemd/dracut-pre-trigger.service | 6 +++--- + modules.d/98systemd/dracut-pre-udev.service | 6 +++--- + 4 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98systemd/dracut-initqueue.service +index 89aa304..4f86eaf 100644 +--- a/modules.d/98systemd/dracut-initqueue.service ++++ b/modules.d/98systemd/dracut-initqueue.service +@@ -18,9 +18,9 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-initqueue + Type=simple +-StandardInput=tty +-StandardOutput=journal+console +-StandardError=inherit ++StandardInput=null ++StandardOutput=syslog ++StandardError=syslog+console + KillMode=process + + # Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash +diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service +index 0e04cb4..e61750b 100644 +--- a/modules.d/98systemd/dracut-pre-pivot.service ++++ b/modules.d/98systemd/dracut-pre-pivot.service +@@ -17,9 +17,9 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-pre-pivot + Type=oneshot +-StandardInput=tty +-StandardOutput=journal+console +-StandardError=inherit ++StandardInput=null ++StandardOutput=syslog ++StandardError=syslog+console + KillMode=process + + # Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash +diff --git a/modules.d/98systemd/dracut-pre-trigger.service b/modules.d/98systemd/dracut-pre-trigger.service +index 1ab07a1..234839c 100644 +--- a/modules.d/98systemd/dracut-pre-trigger.service ++++ b/modules.d/98systemd/dracut-pre-trigger.service +@@ -19,9 +19,9 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-pre-trigger + Type=oneshot +-StandardInput=tty +-StandardOutput=journal+console +-StandardError=inherit ++StandardInput=null ++StandardOutput=syslog ++StandardError=syslog+console + KillMode=process + + # Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash +diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98systemd/dracut-pre-udev.service +index 579316e..11be61b 100644 +--- a/modules.d/98systemd/dracut-pre-udev.service ++++ b/modules.d/98systemd/dracut-pre-udev.service +@@ -19,9 +19,9 @@ Environment=HOME=/ + WorkingDirectory=/ + ExecStart=-/bin/dracut-pre-udev + Type=oneshot +-StandardInput=tty +-StandardOutput=journal+console +-StandardError=inherit ++StandardInput=null ++StandardOutput=syslog ++StandardError=syslog+console + KillMode=process + + # Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash diff --git a/0053-base-dracut-lib.sh-change-output-of-info-and-warn-fo.patch b/0053-base-dracut-lib.sh-change-output-of-info-and-warn-fo.patch new file mode 100644 index 0000000..03c6d71 --- /dev/null +++ b/0053-base-dracut-lib.sh-change-output-of-info-and-warn-fo.patch @@ -0,0 +1,58 @@ +From d9087a2d85dd65e1e33c8c2247d4fccfd7fbc5da Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:09:38 +0200 +Subject: [PATCH] base/dracut-lib.sh: change output of info() and warn() for + systemd + +--- + modules.d/99base/dracut-lib.sh | 36 +++++++++++++++++++++++++----------- + 1 file changed, 25 insertions(+), 11 deletions(-) + +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index 8cfd7b3..e0c4c19 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -323,18 +323,32 @@ check_quiet() { + fi + } + +-warn() { +- check_quiet +- echo "<28>dracut Warning: $@" > /dev/kmsg +- echo "dracut Warning: $@" >&2 +-} ++if [ ! -x /lib/systemd/systemd ]; then + +-info() { +- check_quiet +- echo "<30>dracut: $@" > /dev/kmsg +- [ "$DRACUT_QUIET" != "yes" ] && \ +- echo "dracut: $@" +-} ++ warn() { ++ check_quiet ++ echo "<28>dracut Warning: $@" > /dev/kmsg ++ echo "dracut Warning: $@" >&2 ++ } ++ ++ info() { ++ check_quiet ++ echo "<30>dracut: $@" > /dev/kmsg ++ [ "$DRACUT_QUIET" != "yes" ] && \ ++ echo "dracut: $@" ++ } ++ ++else ++ ++ warn() { ++ echo "Warning: $@" >&2 ++ } ++ ++ info() { ++ echo "$@" ++ } ++ ++fi + + vwarn() { + while read line; do diff --git a/0054-base-dracut-lib.sh-for-systemd-start-emergency.servi.patch b/0054-base-dracut-lib.sh-for-systemd-start-emergency.servi.patch new file mode 100644 index 0000000..b052755 --- /dev/null +++ b/0054-base-dracut-lib.sh-for-systemd-start-emergency.servi.patch @@ -0,0 +1,74 @@ +From 1e570bf8e3010c1cc4cec2f67e0cefd658f90b48 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:10:13 +0200 +Subject: [PATCH] base/dracut-lib.sh: for systemd start emergency.service + +do not spawn the shell, start the emergency.service for systemd +--- + modules.d/99base/dracut-lib.sh | 47 +++++++++++++++++++++++++--------------- + 1 file changed, 29 insertions(+), 18 deletions(-) + +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index e0c4c19..5dc3fbd 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -825,30 +825,41 @@ emergency_shell() + _rdshell_name=$2; action="Shutdown"; hook="shutdown-emergency" + shift 2 + fi ++ + echo ; echo + warn $@ + source_hook "$hook" + echo ++ + if getargbool 1 rd.shell -y rdshell || getarg rd.break rdbreak; then +- echo "Dropping to debug shell." +- echo +- export PS1="$_rdshell_name:\${PWD}# " +- [ -e /.profile ] || >/.profile +- +- _ctty="$(getarg rd.ctty=)" && _ctty="/dev/${_ctty##*/}" +- if [ -z "$_ctty" ]; then +- _ctty=console +- while [ -f /sys/class/tty/$_ctty/active ]; do +- _ctty=$(cat /sys/class/tty/$_ctty/active) +- _ctty=${_ctty##* } # last one in the list +- done +- _ctty=/dev/$_ctty +- fi +- [ -c "$_ctty" ] || _ctty=/dev/tty1 +- strstr "$(setsid --help 2>/dev/null)" "ctty" && CTTY="-c" ++ if [ -x /lib/systemd/systemd ]; then ++ > /.console_lock ++ echo "PS1=\"$_rdshell_name:\${PWD}# \"" >/etc/profile ++ systemctl start emergency.service ++ debug_off ++ while [ -e /.console_lock ]; do sleep 1; done ++ debug_on ++ else ++ echo "Dropping to debug shell." ++ echo ++ export PS1="$_rdshell_name:\${PWD}# " ++ [ -e /.profile ] || >/.profile ++ ++ _ctty="$(getarg rd.ctty=)" && _ctty="/dev/${_ctty##*/}" ++ if [ -z "$_ctty" ]; then ++ _ctty=console ++ while [ -f /sys/class/tty/$_ctty/active ]; do ++ _ctty=$(cat /sys/class/tty/$_ctty/active) ++ _ctty=${_ctty##* } # last one in the list ++ done ++ _ctty=/dev/$_ctty ++ fi ++ [ -c "$_ctty" ] || _ctty=/dev/tty1 ++ strstr "$(setsid --help 2>/dev/null)" "ctty" && CTTY="-c" + # stop watchdog +- echo 'V' > /dev/watchdog +- setsid $CTTY /bin/sh -i -l 0<$_ctty 1>$_ctty 2>&1 ++ echo 'V' > /dev/watchdog ++ setsid $CTTY /bin/sh -i -l 0<$_ctty 1>$_ctty 2>&1 ++ fi + else + warn "$action has failed. To debug this issue add \"rd.shell\" to the kernel command line." + # cause a kernel panic diff --git a/0055-dracut.conf.d-fedora.conf.example-make-systemd-defau.patch b/0055-dracut.conf.d-fedora.conf.example-make-systemd-defau.patch new file mode 100644 index 0000000..a1c0a5c --- /dev/null +++ b/0055-dracut.conf.d-fedora.conf.example-make-systemd-defau.patch @@ -0,0 +1,21 @@ +From 16c88e493f87aeba449434947a2a1924cf49db43 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:09:02 +0200 +Subject: [PATCH] dracut.conf.d/fedora.conf.example: make systemd default + +--- + dracut.conf.d/fedora.conf.example | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example +index f3f57f1..25b5cfa 100644 +--- a/dracut.conf.d/fedora.conf.example ++++ b/dracut.conf.d/fedora.conf.example +@@ -4,6 +4,7 @@ + i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP" + omit_dracutmodules+=" dash " + omit_drivers+=" .*/fs/ocfs/.* " ++add_dracutmodules+=" systemd " + stdloglvl=3 + realinitpath="/usr/lib/systemd/systemd" + install_items+=" vi /etc/virc ps grep cat rm " diff --git a/0056-dracut.spec-require-systemd-44-15.patch b/0056-dracut.spec-require-systemd-44-15.patch new file mode 100644 index 0000000..133adcc --- /dev/null +++ b/0056-dracut.spec-require-systemd-44-15.patch @@ -0,0 +1,21 @@ +From 1e2673fd98d05ae5103f24fbd8fb748c9dfc5a45 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 21 Jun 2012 01:20:11 +0200 +Subject: [PATCH] dracut.spec: require systemd >= 44-15 + +--- + dracut.spec | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut.spec b/dracut.spec +index 6e8c733..982a66d 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -80,6 +80,7 @@ Requires: file + Requires: udev > 166 + %if 0%{?fedora} || 0%{?rhel} > 6 + Requires: util-linux >= 2.21 ++Requires: systemd >= 44-15 + %else + Requires: util-linux-ng >= 2.21 + %endif diff --git a/dracut.spec b/dracut.spec index b497276..1941d7f 100644 --- a/dracut.spec +++ b/dracut.spec @@ -10,7 +10,7 @@ Name: dracut Version: 019 -Release: 40.git20120618%{?dist} +Release: 57.git20120620%{?dist} Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} @@ -63,6 +63,23 @@ Patch36: 0036-TEST-50-MULTINIC-add-watchdog.patch Patch37: 0037-TEST-20-NFS-libnss-cleanup.patch Patch38: 0038-TEST-50-MULTINIC-libnss-cleanup.patch Patch39: 0039-disable-TEST-16-DMSQUASH-for-now.patch +Patch40: 0040-check-for-arch-before-installing-drivers-s390.patch +Patch41: 0041-dracut-shutdown.service-fixed-ordering-to-be-before-.patch +Patch42: 0042-systemd-output-all-service-output-to-the-journal-als.patch +Patch43: 0043-systemd-module-setup.sh-add-old-udev-systemd-service.patch +Patch44: 0044-systemd-fix-emergency.service-and-rescue.service.patch +Patch45: 0045-systemd-do-not-redirect-to-dev-console.patch +Patch46: 0046-systemd-do-not-flock-for-console.patch +Patch47: 0047-systemd-dracut-pre-pivot.sh-stop-old-udev-services.patch +Patch48: 0048-systemd-dracut-cmdline-make-dracut-cmdline-a-service.patch +Patch49: 0049-systemd-dracut-pre-pivot.sh-remove-trailing-space.patch +Patch50: 0050-systemd-dracut-pre-udev.service-fixed-description.patch +Patch51: 0051-systemd-fixed-ordering-of-services.patch +Patch52: 0052-systemd-fixed-I-O-of-services.patch +Patch53: 0053-base-dracut-lib.sh-change-output-of-info-and-warn-fo.patch +Patch54: 0054-base-dracut-lib.sh-for-systemd-start-emergency.servi.patch +Patch55: 0055-dracut.conf.d-fedora.conf.example-make-systemd-defau.patch +Patch56: 0056-dracut.spec-require-systemd-44-15.patch BuildArch: noarch @@ -120,6 +137,7 @@ Requires: file Requires: udev > 166 %if 0%{?fedora} || 0%{?rhel} > 6 Requires: util-linux >= 2.21 +Requires: systemd >= 44-15 %else Requires: util-linux-ng >= 2.21 %endif @@ -383,6 +401,9 @@ rm -rf $RPM_BUILD_ROOT %dir /var/lib/dracut/overlay %changelog +* Thu Jun 21 2012 Harald Hoyer 019-57.git20120620 +- systemd is now the default init in the initramfs + * Mon Jun 18 2012 Harald Hoyer 019-40.git20120618 - new upstream version