dracut/0023-fix-squash-use-99busybox-instead-of-installing-it-ma.patch
Pavel Valena 52fb8f6eda Rebase to dracut-102, and additional fixes.
From-source-git-commit: 56bf1917de004cd3f9032a68a6cd09d5bd972b04

Additional fixes:

 - support for erofs in squash modules
 - always include the resume module
 - include systemd config files from /usr/lib/systemd
 - only return block devices from get_persistent_dev
 - allow for \ in get_maj_min file path
 - install blk modules using symbol blk_alloc_disk

Resolves: RHEL-32237,RHEL-32506,RHEL-43460,RHEL-47145,RHEL-49744,RHEL-53350
2024-08-08 04:43:00 +02:00

65 lines
2.2 KiB
Diff

From a6e8e41cd1d67bb4ee64b2bf107e98c18bf8afdf Mon Sep 17 00:00:00 2001
From: Philipp Rudo <prudo@redhat.com>
Date: Tue, 30 Jul 2024 13:44:32 +0200
Subject: [PATCH 23/24] fix(squash): use 99busybox instead of installing it
manually
Make use of 99busybox in 99squash rather than installing it manually.
This not only removes duplicate code but allows mixing of busybox with
tools from coreutils. This requires a small change in 99busybox to
remove the hard coded use of $initdir.
Suggested-by: Laszlo Gombos <laszlo.gombos@gmail.com>
Signed-off-by: Philipp Rudo <prudo@redhat.com>
(cherry picked from commit 395366278f473038badba239f76cac391428b149)
Related: RHEL-43460
---
modules.d/05busybox/module-setup.sh | 5 +++++
modules.d/99squash/module-setup.sh | 5 +----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/modules.d/05busybox/module-setup.sh b/modules.d/05busybox/module-setup.sh
index 86b3761a..857145c9 100755
--- a/modules.d/05busybox/module-setup.sh
+++ b/modules.d/05busybox/module-setup.sh
@@ -15,6 +15,7 @@ depends() {
# called by dracut
install() {
local _i _path _busybox
+ local _dstdir="${dstdir:-"$initdir"}"
local _progs=()
_busybox=$(find_binary busybox)
inst "$_busybox" /usr/bin/busybox
@@ -26,6 +27,10 @@ install() {
for _i in "${_progs[@]}"; do
_path=$(find_binary "$_i")
[ -z "$_path" ] && continue
+
+ # do not remove existing destination files
+ [ -e "${_dstdir}/$_path" ] && continue
+
ln_r /usr/bin/busybox "$_path"
done
}
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
index 6aa649b7..56f70774 100755
--- a/modules.d/99squash/module-setup.sh
+++ b/modules.d/99squash/module-setup.sh
@@ -52,10 +52,7 @@ squash_install() {
# Install required modules and binaries for the squash image init script.
if [[ $_busybox ]]; then
- inst "$_busybox" /usr/bin/busybox
- for _i in sh echo mount modprobe mkdir switch_root grep umount; do
- ln_r /usr/bin/busybox /usr/bin/$_i
- done
+ module_install "busybox"
else
DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root grep umount
--
2.42.0