97 lines
3.6 KiB
Diff
97 lines
3.6 KiB
Diff
|
From f86d5ff72868e9df7d255e3c5e938a9e339f09fa Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||
|
Date: Tue, 18 Jan 2022 18:08:42 +0100
|
||
|
Subject: [PATCH 01/10] feat(kernel-install): do nothing when
|
||
|
$KERNEL_INSTALL_INITRD_GENERATOR says so
|
||
|
|
||
|
dracut may be installed without being actually used. This is very common in
|
||
|
binary distros where a package may be pulled in through dependencies, even
|
||
|
though the user does not need it in a particular setup. KERNEL_INSTALL_INITRD_GENERATOR
|
||
|
is being added in systemd's kernel-install to select which of the possibly many
|
||
|
initrd generation mechanisms will be used.
|
||
|
|
||
|
For backwards compat, if it not set, continue as before. But if set to
|
||
|
something else, skip our kernel-install plugins.
|
||
|
|
||
|
(Cherry-picked commit f47bcdd7342ca0d46b889e712a1c7446e18434bc from PR#1825)
|
||
|
---
|
||
|
install.d/50-dracut.install | 31 ++++++------------------------
|
||
|
install.d/51-dracut-rescue.install | 12 +++++++++---
|
||
|
2 files changed, 15 insertions(+), 28 deletions(-)
|
||
|
|
||
|
diff --git a/install.d/50-dracut.install b/install.d/50-dracut.install
|
||
|
index 441414ac..efb184cd 100755
|
||
|
--- a/install.d/50-dracut.install
|
||
|
+++ b/install.d/50-dracut.install
|
||
|
@@ -6,38 +6,19 @@ BOOT_DIR_ABS="$3"
|
||
|
KERNEL_IMAGE="$4"
|
||
|
|
||
|
# If KERNEL_INSTALL_MACHINE_ID is defined but empty, BOOT_DIR_ABS is a fake directory.
|
||
|
-# So, let's skip to create initrd.
|
||
|
+# In this case, do not create the initrd.
|
||
|
if ! [[ ${KERNEL_INSTALL_MACHINE_ID-x} ]]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
-# Do not attempt to create initramfs if the supplied image is already a UKI
|
||
|
-if [[ "$KERNEL_INSTALL_IMAGE_TYPE" = "uki" ]]; then
|
||
|
+# Skip this plugin if we're using a different generator. If nothing is specified,
|
||
|
+# assume we're wanted since we're installed.
|
||
|
+if [ "${KERNEL_INSTALL_INITRD_GENERATOR:-dracut}" != "dracut" ]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
-# Mismatching the install layout and the --uefi/--no-uefi opts just creates a mess.
|
||
|
-if [[ $KERNEL_INSTALL_LAYOUT == "uki" && -n $KERNEL_INSTALL_STAGING_AREA ]]; then
|
||
|
- BOOT_DIR_ABS="$KERNEL_INSTALL_STAGING_AREA"
|
||
|
- if [[ -z $KERNEL_INSTALL_UKI_GENERATOR || $KERNEL_INSTALL_UKI_GENERATOR == "dracut" ]]; then
|
||
|
- # No uki generator preference set or we have been chosen
|
||
|
- IMAGE="uki.efi"
|
||
|
- UEFI_OPTS="--uefi"
|
||
|
- elif [[ -z $KERNEL_INSTALL_INITRD_GENERATOR || $KERNEL_INSTALL_INITRD_GENERATOR == "dracut" ]]; then
|
||
|
- # We aren't the uki generator, but we have been requested to make the initrd
|
||
|
- IMAGE="initrd"
|
||
|
- UEFI_OPTS="--no-uefi"
|
||
|
- else
|
||
|
- exit 0
|
||
|
- fi
|
||
|
-elif [[ $KERNEL_INSTALL_LAYOUT == "bls" && -n $KERNEL_INSTALL_STAGING_AREA ]]; then
|
||
|
- BOOT_DIR_ABS="$KERNEL_INSTALL_STAGING_AREA"
|
||
|
- if [[ -z $KERNEL_INSTALL_INITRD_GENERATOR || $KERNEL_INSTALL_INITRD_GENERATOR == "dracut" ]]; then
|
||
|
- IMAGE="initrd"
|
||
|
- UEFI_OPTS="--no-uefi"
|
||
|
- else
|
||
|
- exit 0
|
||
|
- fi
|
||
|
+if [[ -d "$BOOT_DIR_ABS" ]]; then
|
||
|
+ INITRD="initrd"
|
||
|
else
|
||
|
# No layout information, use users --uefi/--no-uefi preference
|
||
|
UEFI_OPTS=""
|
||
|
diff --git a/install.d/51-dracut-rescue.install b/install.d/51-dracut-rescue.install
|
||
|
index aa0ccdc5..be4172b5 100755
|
||
|
--- a/install.d/51-dracut-rescue.install
|
||
|
+++ b/install.d/51-dracut-rescue.install
|
||
|
@@ -7,9 +7,15 @@ KERNEL_VERSION="$2"
|
||
|
BOOT_DIR_ABS="${3%/*}/0-rescue"
|
||
|
KERNEL_IMAGE="$4"
|
||
|
|
||
|
-dropindirs_sort() {
|
||
|
- suffix=$1
|
||
|
- shift
|
||
|
+# Skip this plugin if we're using a different generator. If nothing is specified,
|
||
|
+# assume we're wanted since we're installed.
|
||
|
+if [ "${KERNEL_INSTALL_INITRD_GENERATOR:-dracut}" != "dracut" ]; then
|
||
|
+ exit 0
|
||
|
+fi
|
||
|
+
|
||
|
+dropindirs_sort()
|
||
|
+{
|
||
|
+ suffix=$1; shift
|
||
|
args=("$@")
|
||
|
files=$(
|
||
|
while (($# > 0)); do
|
||
|
--
|
||
|
2.42.0
|
||
|
|