Blame SOURCES/Add-rd.neednet-1-to-cmdline-only-if-there-are-device.patch

ef20f4
From 25009adea66d3bf9b73f128273de28e532b03281 Mon Sep 17 00:00:00 2001
ef20f4
From: Sergio Correia <scorreia@redhat.com>
ef20f4
Date: Sat, 30 Nov 2019 18:23:09 -0500
ef20f4
Subject: [PATCH] Add rd.neednet=1 to cmdline only if there are devices bound
ef20f4
 to tang
ef20f4
ef20f4
---
ef20f4
 src/luks/systemd/dracut/module-setup.sh.in | 24 ++++++++++++++++++----
ef20f4
 1 file changed, 20 insertions(+), 4 deletions(-)
ef20f4
ef20f4
diff --git a/src/luks/systemd/dracut/module-setup.sh.in b/src/luks/systemd/dracut/module-setup.sh.in
ef20f4
index 990bf4a..841f7a8 100755
ef20f4
--- a/src/luks/systemd/dracut/module-setup.sh.in
ef20f4
+++ b/src/luks/systemd/dracut/module-setup.sh.in
ef20f4
@@ -18,19 +18,35 @@
ef20f4
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
ef20f4
 #
ef20f4
 
ef20f4
+is_bound_to_tang() {
ef20f4
+    local dev
ef20f4
+    for dev in $(lsblk -p -n -s -r \
ef20f4
+                 | awk '$6 == "crypt" { getline; print $1 }' | sort -u); do
ef20f4
+       if clevis luks list -d "${dev}" 2>/dev/null | grep -q tang; then
ef20f4
+           return 0
ef20f4
+       fi
ef20f4
+    done
ef20f4
+    return 1
ef20f4
+}
ef20f4
+
ef20f4
 depends() {
ef20f4
-    echo crypt systemd network
ef20f4
-    return 0
ef20f4
+    local depends="crypt systemd"
ef20f4
+    if is_bound_to_tang; then
ef20f4
+        depends=$(printf "%s network" "${depends}")
ef20f4
+    fi
ef20f4
+    echo "${depends}"
ef20f4
 }
ef20f4
 
ef20f4
-cmdline() {
ef20f4
+tang_cmdline() {
ef20f4
     echo "rd.neednet=1"
ef20f4
 }
ef20f4
 
ef20f4
 install() {
ef20f4
     local ret=0
ef20f4
 
ef20f4
-    cmdline > "${initdir}/etc/cmdline.d/99clevis.conf"
ef20f4
+    if is_bound_to_tang; then
ef20f4
+        tang_cmdline > "${initdir}/etc/cmdline.d/99clevis.conf"
ef20f4
+    fi
ef20f4
 
ef20f4
     inst_hook initqueue/online 60 "$moddir/clevis-hook.sh"
ef20f4
     inst_hook initqueue/settled 60 "$moddir/clevis-hook.sh"
ef20f4
-- 
ef20f4
2.18.1
ef20f4