From af10e0fb8cb63d9c3a429b7efa293fe2fe0e2767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Renaud=20M=C3=A9trich?= <1163635+rmetrich@users.noreply.github.com> Date: Wed, 1 Dec 2021 09:37:35 -0300 Subject: [PATCH 6/6] luks: enable debugging in clevis scripts when rd.debug is set (#340) On Fedora/RHEL, the rd.debug kernel command line parameter controls debugging. By implementing the functionality inside clevis, troubleshooting will be greatly eased. See RHBZ #1980742 (https://bugzilla.redhat.com/show_bug.cgi?id=1980742). --- src/luks/clevis-luks-common-functions | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/luks/clevis-luks-common-functions b/src/luks/clevis-luks-common-functions index df8e16d..67ece72 100644 --- a/src/luks/clevis-luks-common-functions +++ b/src/luks/clevis-luks-common-functions @@ -20,6 +20,21 @@ CLEVIS_UUID="cb6e8904-81ff-40da-a84a-07ab9ab5715e" +enable_debugging() { + # Automatically enable debugging if in initramfs phase and rd.debug + if [ -e /usr/lib/dracut-lib.sh ]; then + local bashopts=$- + # Because dracut is loosely written, disable hardening options temporarily + [[ $bashopts != *u* ]] || set +u + [[ $bashopts != *e* ]] || set +e + . /usr/lib/dracut-lib.sh + [[ $bashopts != *u* ]] || set -u + [[ $bashopts != *e* ]] || set -e + fi +} + +enable_debugging + # valid_slot() will check whether a given slot is possibly valid, i.e., if it # is a numeric value within the specified range. valid_slot() { -- 2.33.1