9f65cc
From 2ee3efdfa0c7f12c2f8446721937bfe713858854 Mon Sep 17 00:00:00 2001
9f65cc
From: Kairui Song <kasong@redhat.com>
9f65cc
Date: Mon, 9 Aug 2021 18:23:43 +0800
9f65cc
Subject: [PATCH] fix(squash): apply FIPS and libpthread workaround
9f65cc
9f65cc
There are some workarounds in dracut.sh for FIPS/libpthread covering
9f65cc
some hidden lib dependency issues. These workarounds didn't take effect
9f65cc
for the squash loader since the squash loader is installed
9f65cc
independently. So apply these workarounds again.
9f65cc
9f65cc
Also skip the lib detection code, since these extra installed libs
9f65cc
are small, and squash loader contents are dropped after switch root,
9f65cc
won't be an issue to be always installed. And this makes the code
9f65cc
cleaner.
9f65cc
9f65cc
Signed-off-by: Kairui Song <kasong@redhat.com>
9f65cc
(cherry picked from commit 5ab18dee996f0eeb2b0bfe354570e1b1af46d025)
9f65cc
9f65cc
Resolves: #1990847
9f65cc
---
9f65cc
 modules.d/99squash/module-setup.sh | 6 ++++++
9f65cc
 1 file changed, 6 insertions(+)
9f65cc
9f65cc
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
9f65cc
index 7f5d365a..e73d3184 100644
9f65cc
--- a/modules.d/99squash/module-setup.sh
9f65cc
+++ b/modules.d/99squash/module-setup.sh
9f65cc
@@ -53,6 +53,12 @@ installpost() {
9f65cc
         done
9f65cc
     else
9f65cc
         DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root grep umount
9f65cc
+
9f65cc
+        # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so
9f65cc
+        inst_libdir_file -o "libgcc_s.so*"
9f65cc
+
9f65cc
+        # FIPS workaround for Fedora/RHEL: libcrypto needs libssl when FIPS is enabled
9f65cc
+        [[ $DRACUT_FIPS_MODE ]] && inst_libdir_file -o "libssl.so*"
9f65cc
     fi
9f65cc
 
9f65cc
     hostonly="" instmods "loop" "squashfs" "overlay"
b3cd9f