Compare commits
No commits in common. "c10s" and "c8" have entirely different histories.
1
.dracut.metadata
Normal file
1
.dracut.metadata
Normal file
@ -0,0 +1 @@
|
||||
62ab5e53c734ad6ec77ebf0580383e8b6de96d16 SOURCES/dracut-049.tar.xz
|
@ -1 +0,0 @@
|
||||
1
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
/*.tar.*
|
||||
SOURCES/dracut-049.tar.xz
|
||||
|
@ -1,238 +0,0 @@
|
||||
From 9b7740eaf33357cc087c83d95d089bdf8ead07dd Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Wed, 12 Jun 2024 06:30:42 +0200
|
||||
Subject: [PATCH 02/32] revert: "fix(install.d): correctly install pre-genned
|
||||
image and die if no args"
|
||||
|
||||
revert: "fix(install.d): simplify and use what kernel-install gives us"
|
||||
|
||||
This reverts commits:
|
||||
d40155385d060f8d8608fa8a4931e2e42ddc3a8f
|
||||
8388ad149c698c951089606352fdb0cdcaaf40c9
|
||||
|
||||
https://github.com/dracut-ng/dracut-ng/issues/334
|
||||
|
||||
This is temporary, until the `20-grub.install` will be able to handle initrd
|
||||
from kernel staging area.
|
||||
---
|
||||
install.d/50-dracut.install | 152 ++++++++++++++++++-----------
|
||||
install.d/51-dracut-rescue.install | 22 +----
|
||||
2 files changed, 97 insertions(+), 77 deletions(-)
|
||||
|
||||
diff --git a/install.d/50-dracut.install b/install.d/50-dracut.install
|
||||
index 14f87721..441414ac 100755
|
||||
--- a/install.d/50-dracut.install
|
||||
+++ b/install.d/50-dracut.install
|
||||
@@ -1,13 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
-COMMAND="${1:?}"
|
||||
-KERNEL_VERSION="${2:?}"
|
||||
-#shellcheck disable=SC2034
|
||||
+COMMAND="$1"
|
||||
+KERNEL_VERSION="$2"
|
||||
BOOT_DIR_ABS="$3"
|
||||
KERNEL_IMAGE="$4"
|
||||
|
||||
-# If the initrd was provided on the kernel command line, we shouldn't generate our own.
|
||||
-if [[ "$COMMAND" != "add" || "$#" -gt 4 ]]; then
|
||||
+# If KERNEL_INSTALL_MACHINE_ID is defined but empty, BOOT_DIR_ABS is a fake directory.
|
||||
+# So, let's skip to create initrd.
|
||||
+if ! [[ ${KERNEL_INSTALL_MACHINE_ID-x} ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -16,64 +16,102 @@ if [[ "$KERNEL_INSTALL_IMAGE_TYPE" = "uki" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
-if [[ "${KERNEL_INSTALL_INITRD_GENERATOR:-dracut}" = "dracut" ]]; then
|
||||
- # We are the initrd generator
|
||||
- IMAGE="initrd"
|
||||
- UEFI_OPTS="--no-uefi"
|
||||
+# 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
|
||||
else
|
||||
- exit 0
|
||||
+ # No layout information, use users --uefi/--no-uefi preference
|
||||
+ UEFI_OPTS=""
|
||||
+ if [[ -d $BOOT_DIR_ABS ]]; then
|
||||
+ IMAGE="initrd"
|
||||
+ else
|
||||
+ BOOT_DIR_ABS="/boot"
|
||||
+ IMAGE="initramfs-${KERNEL_VERSION}.img"
|
||||
+ fi
|
||||
fi
|
||||
|
||||
-if [[ "$KERNEL_INSTALL_UKI_GENERATOR" = "dracut" ]]; then
|
||||
- # We are chosen to generate the UKI as well as initrd
|
||||
- IMAGE="uki.efi"
|
||||
- UEFI_OPTS="--uefi"
|
||||
-fi
|
||||
+ret=0
|
||||
|
||||
-if [[ -f ${KERNEL_IMAGE%/*}/$IMAGE ]]; then
|
||||
- # we found an initrd or uki.efi at the same place as the kernel
|
||||
- # use this and don't generate a new one
|
||||
- [[ $KERNEL_INSTALL_VERBOSE == 1 ]] && echo \
|
||||
- "There is an $IMAGE image at the same place as the kernel, skipping generating a new one"
|
||||
- cp --reflink=auto "${KERNEL_IMAGE%/*}/$IMAGE" "$KERNEL_INSTALL_STAGING_AREA/$IMAGE" \
|
||||
- && chown root:root "$KERNEL_INSTALL_STAGING_AREA/$IMAGE" \
|
||||
- && chmod 0600 "$KERNEL_INSTALL_STAGING_AREA/$IMAGE" \
|
||||
- && exit 0
|
||||
-fi
|
||||
+case "$COMMAND" in
|
||||
+ add)
|
||||
+ if [[ $IMAGE == "uki.efi" ]]; then
|
||||
+ IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/uki.efi
|
||||
+ else
|
||||
+ IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/initrd
|
||||
+ fi
|
||||
+ if [[ -f ${IMAGE_PREGENERATED} ]]; then
|
||||
+ # we found an initrd or uki.efi at the same place as the kernel
|
||||
+ # use this and don't generate a new one
|
||||
+ [[ $KERNEL_INSTALL_VERBOSE == 1 ]] && echo \
|
||||
+ "There is an ${IMAGE} image at the same place as the kernel, skipping generating a new one"
|
||||
+ cp --reflink=auto "$IMAGE_PREGENERATED" "$BOOT_DIR_ABS/$IMAGE" \
|
||||
+ && chown root:root "$BOOT_DIR_ABS/$IMAGE" \
|
||||
+ && chmod 0600 "$BOOT_DIR_ABS/$IMAGE" \
|
||||
+ && exit 0
|
||||
+ fi
|
||||
|
||||
-if [ -n "$KERNEL_INSTALL_CONF_ROOT" ]; then
|
||||
- if [ -f "$KERNEL_INSTALL_CONF_ROOT/cmdline" ]; then
|
||||
- read -r -d '' -a BOOT_OPTIONS < "$KERNEL_INSTALL_CONF_ROOT/cmdline"
|
||||
- fi
|
||||
-elif [[ -f /etc/kernel/cmdline ]]; then
|
||||
- read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline
|
||||
-elif [[ -f /usr/lib/kernel/cmdline ]]; then
|
||||
- read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline
|
||||
-else
|
||||
- declare -a BOOT_OPTIONS
|
||||
+ if [ -n "$KERNEL_INSTALL_CONF_ROOT" ]; then
|
||||
+ if [ -f "$KERNEL_INSTALL_CONF_ROOT/cmdline" ]; then
|
||||
+ read -r -d '' -a BOOT_OPTIONS < "$KERNEL_INSTALL_CONF_ROOT/cmdline"
|
||||
+ fi
|
||||
+ elif [[ -f /etc/kernel/cmdline ]]; then
|
||||
+ read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline
|
||||
+ elif [[ -f /usr/lib/kernel/cmdline ]]; then
|
||||
+ read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline
|
||||
+ else
|
||||
+ declare -a BOOT_OPTIONS
|
||||
|
||||
- read -r -d '' -a line < /proc/cmdline
|
||||
- for i in "${line[@]}"; do
|
||||
- [[ ${i#initrd=*} != "$i" ]] && continue
|
||||
- BOOT_OPTIONS+=("$i")
|
||||
- done
|
||||
-fi
|
||||
+ read -r -d '' -a line < /proc/cmdline
|
||||
+ for i in "${line[@]}"; do
|
||||
+ [[ ${i#initrd=*} != "$i" ]] && continue
|
||||
+ BOOT_OPTIONS+=("$i")
|
||||
+ done
|
||||
+ fi
|
||||
|
||||
-unset noimageifnotneeded
|
||||
+ unset noimageifnotneeded
|
||||
|
||||
-for ((i = 0; i < "${#BOOT_OPTIONS[@]}"; i++)); do
|
||||
- # shellcheck disable=SC1001
|
||||
- if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then
|
||||
- noimageifnotneeded="yes"
|
||||
- break
|
||||
- fi
|
||||
-done
|
||||
+ for ((i = 0; i < "${#BOOT_OPTIONS[@]}"; i++)); do
|
||||
+ # shellcheck disable=SC1001
|
||||
+ if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then
|
||||
+ noimageifnotneeded="yes"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ # shellcheck disable=SC2046
|
||||
+ dracut -f \
|
||||
+ ${noimageifnotneeded:+--noimageifnotneeded} \
|
||||
+ $([[ $KERNEL_INSTALL_VERBOSE == 1 ]] && echo --verbose) \
|
||||
+ $([[ -n $KERNEL_IMAGE ]] && echo --kernel-image "$KERNEL_IMAGE") \
|
||||
+ "$UEFI_OPTS" \
|
||||
+ --kver "$KERNEL_VERSION" \
|
||||
+ "$BOOT_DIR_ABS/$IMAGE"
|
||||
+ ret=$?
|
||||
+ ;;
|
||||
+
|
||||
+ remove)
|
||||
+ rm -f -- "$BOOT_DIR_ABS/$IMAGE"
|
||||
+ ret=$?
|
||||
+ ;;
|
||||
+esac
|
||||
|
||||
-# shellcheck disable=SC2046
|
||||
-dracut -f \
|
||||
- ${noimageifnotneeded:+--noimageifnotneeded} \
|
||||
- $([[ $KERNEL_INSTALL_VERBOSE == 1 ]] && echo --verbose) \
|
||||
- $([[ -n $KERNEL_IMAGE ]] && echo --kernel-image "$KERNEL_IMAGE") \
|
||||
- "$UEFI_OPTS" \
|
||||
- --kver "$KERNEL_VERSION" \
|
||||
- "$KERNEL_INSTALL_STAGING_AREA/$IMAGE" || exit 1
|
||||
+exit $ret
|
||||
diff --git a/install.d/51-dracut-rescue.install b/install.d/51-dracut-rescue.install
|
||||
index 25f75557..aa0ccdc5 100755
|
||||
--- a/install.d/51-dracut-rescue.install
|
||||
+++ b/install.d/51-dracut-rescue.install
|
||||
@@ -2,29 +2,11 @@
|
||||
|
||||
export LANG=C
|
||||
|
||||
-COMMAND="${1:?}"
|
||||
-KERNEL_VERSION="${2:?}"
|
||||
+COMMAND="$1"
|
||||
+KERNEL_VERSION="$2"
|
||||
BOOT_DIR_ABS="${3%/*}/0-rescue"
|
||||
KERNEL_IMAGE="$4"
|
||||
|
||||
-# If the initrd was provided on the kernel command line, we shouldn't generate our own.
|
||||
-if [[ "$COMMAND" = "add" && "$#" -gt 4 ]]; 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
|
||||
- exit 0
|
||||
-fi
|
||||
-
|
||||
-if [[ "$KERNEL_INSTALL_UKI_GENERATOR" = "dracut" ]]; then
|
||||
- # Rescue images currently not compatible with UKIs
|
||||
- exit 0
|
||||
-elif [[ "${KERNEL_INSTALL_INITRD_GENERATOR:-dracut}" != "dracut" ]]; then
|
||||
- # We are not the initrd generator
|
||||
- exit 0
|
||||
-fi
|
||||
-
|
||||
dropindirs_sort() {
|
||||
suffix=$1
|
||||
shift
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,96 +0,0 @@
|
||||
From 0d2983f7dbc1f5fbaa60735c839ea111d3f5d4e0 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 03/32] 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
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 65d5bd785458da98b0388ddf3f8e67e569af67c1 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:58:58 +0100
|
||||
Subject: [PATCH 04/32] fix(kernel-install): do not generate an initrd when one
|
||||
was specified
|
||||
|
||||
According to the synopsis, kernel-install can be called with an
|
||||
already-prepared initrd. In that case, no initrd should be generated by dracut.
|
||||
|
||||
(Cherry-picked commit 0b72cf5c4eca0e0db76e3e210cfdc48e6b49bb74 from PR#1825)
|
||||
---
|
||||
install.d/50-dracut.install | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/install.d/50-dracut.install b/install.d/50-dracut.install
|
||||
index efb184cd..3907e303 100755
|
||||
--- a/install.d/50-dracut.install
|
||||
+++ b/install.d/50-dracut.install
|
||||
@@ -4,6 +4,7 @@ COMMAND="$1"
|
||||
KERNEL_VERSION="$2"
|
||||
BOOT_DIR_ABS="$3"
|
||||
KERNEL_IMAGE="$4"
|
||||
+INITRD_OPTIONS_SHIFT=4
|
||||
|
||||
# If KERNEL_INSTALL_MACHINE_ID is defined but empty, BOOT_DIR_ABS is a fake directory.
|
||||
# In this case, do not create the initrd.
|
||||
@@ -34,6 +35,9 @@ ret=0
|
||||
|
||||
case "$COMMAND" in
|
||||
add)
|
||||
+ # If the initrd was provided on the kernel command line, we shouldn't generate our own.
|
||||
+ [ "$#" -gt "$INITRD_OPTIONS_SHIFT" ] && exit 0
|
||||
+
|
||||
if [[ $IMAGE == "uki.efi" ]]; then
|
||||
IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/uki.efi
|
||||
else
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,75 +0,0 @@
|
||||
From 35326479721f8b439f291bf8ff35354107144012 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 11 Jul 2024 07:33:05 +0200
|
||||
Subject: [PATCH 05/32] fix: incorrectly applied patch in commit
|
||||
c6d18c3c71597e78572378fc4dde391f1845b8
|
||||
|
||||
named: "feat(kernel-install): do nothing when $KERNEL_INSTALL_INITRD_GENERATOR says so"
|
||||
|
||||
Resolves: rhbz#2276271
|
||||
---
|
||||
install.d/50-dracut.install | 30 ++++++++++++++++++++++++++++--
|
||||
install.d/51-dracut-rescue.install | 6 +++---
|
||||
2 files changed, 31 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/install.d/50-dracut.install b/install.d/50-dracut.install
|
||||
index 3907e303..076b4f5e 100755
|
||||
--- a/install.d/50-dracut.install
|
||||
+++ b/install.d/50-dracut.install
|
||||
@@ -18,8 +18,34 @@ if [ "${KERNEL_INSTALL_INITRD_GENERATOR:-dracut}" != "dracut" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
-if [[ -d "$BOOT_DIR_ABS" ]]; then
|
||||
- INITRD="initrd"
|
||||
+# Do not attempt to create initramfs if the supplied image is already a UKI
|
||||
+if [[ "$KERNEL_INSTALL_IMAGE_TYPE" = "uki" ]]; 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
|
||||
+
|
||||
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 be4172b5..5310229e 100755
|
||||
--- a/install.d/51-dracut-rescue.install
|
||||
+++ b/install.d/51-dracut-rescue.install
|
||||
@@ -13,9 +13,9 @@ if [ "${KERNEL_INSTALL_INITRD_GENERATOR:-dracut}" != "dracut" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
-dropindirs_sort()
|
||||
-{
|
||||
- suffix=$1; shift
|
||||
+dropindirs_sort() {
|
||||
+ suffix=$1
|
||||
+ shift
|
||||
args=("$@")
|
||||
files=$(
|
||||
while (($# > 0)); do
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,29 +0,0 @@
|
||||
From afcfd7378110969cce445d7613d9e81c9d85cac0 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 11 Jul 2024 16:24:14 +0200
|
||||
Subject: [PATCH 06/32] revert: "fix(crypt): unlock encrypted devices by
|
||||
default during boot"
|
||||
|
||||
This reverts commit 2339acfaeee60d6bb26a1103db2e53bc8f9cb2d1.
|
||||
|
||||
Resolves: rhbz#2295215
|
||||
---
|
||||
modules.d/90crypt/parse-crypt.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
|
||||
index 9567a4a9..e46e347a 100755
|
||||
--- a/modules.d/90crypt/parse-crypt.sh
|
||||
+++ b/modules.d/90crypt/parse-crypt.sh
|
||||
@@ -174,7 +174,7 @@ else
|
||||
} >> "$hookdir/emergency/90-crypt.sh"
|
||||
fi
|
||||
done
|
||||
- elif getargbool 1 rd.auto && [ -z "$(getargs rd.luks.name)" ]; then
|
||||
+ elif getargbool 0 rd.auto; then
|
||||
if [ -z "$DRACUT_SYSTEMD" ]; then
|
||||
{
|
||||
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="%s ' "$(command -v initqueue)"
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,30 +0,0 @@
|
||||
From 02bc9391cfdf7f3b16c49cde9d881642c13fc8c0 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Gombos <laszlo.gombos@gmail.com>
|
||||
Date: Sat, 20 Jul 2024 18:49:38 -0400
|
||||
Subject: [PATCH 07/32] test: do not force include dash, let sh module make a
|
||||
selection
|
||||
|
||||
This is important for alpine, so that it does not install both
|
||||
dash and busybox dracut modules that are potentially conflicting.
|
||||
|
||||
(cherry picked from commit 6e3c2bf9d01ad0f93176ee121bb70404f24de4e7)
|
||||
---
|
||||
modules.d/80test-makeroot/module-setup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/80test-makeroot/module-setup.sh b/modules.d/80test-makeroot/module-setup.sh
|
||||
index f311e4a0..fc105d7e 100755
|
||||
--- a/modules.d/80test-makeroot/module-setup.sh
|
||||
+++ b/modules.d/80test-makeroot/module-setup.sh
|
||||
@@ -6,7 +6,7 @@ check() {
|
||||
}
|
||||
|
||||
depends() {
|
||||
- echo "dash rootfs-block kernel-modules qemu"
|
||||
+ echo "rootfs-block kernel-modules qemu"
|
||||
}
|
||||
|
||||
installkernel() {
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,31 +0,0 @@
|
||||
From bdfdbdee356cb83dad86f1d49fc21df9117ba8eb Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 8 Aug 2024 01:30:50 +0200
|
||||
Subject: [PATCH 08/32] fix(dracut-functions): allow for \ in get_maj_min file
|
||||
path
|
||||
|
||||
as the path might be f.e. /dev/disk/by-partlabel/EFI\x20System\x20Partition
|
||||
|
||||
which would produce Warning 'grep: warning: stray \ before x' in get_maj_min
|
||||
|
||||
Resolves: RHEL-47145
|
||||
---
|
||||
dracut-functions.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
||||
index 1f7a9052..d436a357 100755
|
||||
--- a/dracut-functions.sh
|
||||
+++ b/dracut-functions.sh
|
||||
@@ -243,7 +243,7 @@ get_maj_min() {
|
||||
local _out
|
||||
|
||||
if [[ $get_maj_min_cache_file ]]; then
|
||||
- _out="$(grep -m1 -oE "^$1 \S+$" "$get_maj_min_cache_file" | grep -oE "\S+$")"
|
||||
+ _out="$(grep -m1 -oE "^${1//\\/\\\\} \S+$" "$get_maj_min_cache_file" | grep -oE "\S+$")"
|
||||
fi
|
||||
|
||||
if ! [[ "$_out" ]]; then
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 31fe330589cfd564790c4255c951567a3479df94 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fvogt@suse.de>
|
||||
Date: Mon, 5 Aug 2024 11:28:32 +0200
|
||||
Subject: [PATCH 09/32] fix(dracut-functions.sh): only return block devices
|
||||
from get_persistent_dev
|
||||
|
||||
With udev 256, there are now directories such as
|
||||
/dev/disk/by-path/pci-0000:02:00.0-nvme-1-part/ which match here.
|
||||
|
||||
In case a nonexisting file/device was passed to get_persistent_dev, it
|
||||
returned the first directory it looked at because both have maj:min 0:0.
|
||||
This accidental conversion from garbage to a sensible looking path leads
|
||||
to weird behaviour later.
|
||||
|
||||
Instead of filtering out directories explicitly switch the check to only
|
||||
return block devices, which also takes care of the character special
|
||||
/dev/mapper/control.
|
||||
|
||||
(cherry picked from commit 55d2fb5b459f356fdbde60ddefb97be942a0c141)
|
||||
|
||||
Resolves: RHEL-49744
|
||||
---
|
||||
dracut-functions.sh | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
||||
index d436a357..b4d57454 100755
|
||||
--- a/dracut-functions.sh
|
||||
+++ b/dracut-functions.sh
|
||||
@@ -294,8 +294,7 @@ get_persistent_dev() {
|
||||
/dev/disk/by-partlabel/* \
|
||||
/dev/disk/by-id/* \
|
||||
/dev/disk/by-path/*; do
|
||||
- [[ -e $i ]] || continue
|
||||
- [[ $i == /dev/mapper/control ]] && continue
|
||||
+ [[ -b $i ]] || continue
|
||||
[[ $i == /dev/mapper/mpath* ]] && continue
|
||||
_tmp=$(get_maj_min "$i")
|
||||
if [ "$_tmp" = "$_dev" ]; then
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,112 +0,0 @@
|
||||
From e90249443fe2285f221849359e9066aefff29eff Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Wed, 12 Jun 2024 06:06:32 +0200
|
||||
Subject: [PATCH 10/32] feat(systemd*): include systemd config files from
|
||||
/usr/lib/systemd
|
||||
|
||||
and also use proper variables for the paths, and fixup invalid paths.
|
||||
--
|
||||
|
||||
The new systemd reads from both /etc and /usr/, so to accomodate this,
|
||||
I've added new paths to install configs from (I probably haven't covered
|
||||
all). This changes only hostonly behaviour; uses global variables:
|
||||
|
||||
systemdutilconfdir: "/etc/systemd"
|
||||
systemdutildir: "/lib/systemd:/lib/systemd/systemd-udevd" "/usr/lib/systemd:/usr/lib/systemd/systemd-udevd"
|
||||
|
||||
(cherry picked from commit ea4905e944a2acd75ba3a48a5dfeaba417f724e8)
|
||||
|
||||
Resolves: RHEL-32506
|
||||
---
|
||||
modules.d/00systemd/module-setup.sh | 6 ++++--
|
||||
modules.d/01systemd-coredump/module-setup.sh | 3 ++-
|
||||
modules.d/01systemd-pstore/module-setup.sh | 2 ++
|
||||
modules.d/01systemd-resolved/module-setup.sh | 1 +
|
||||
modules.d/01systemd-timesyncd/module-setup.sh | 1 +
|
||||
5 files changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
|
||||
index ce7bb520..70a2a78f 100755
|
||||
--- a/modules.d/00systemd/module-setup.sh
|
||||
+++ b/modules.d/00systemd/module-setup.sh
|
||||
@@ -42,6 +42,8 @@ install() {
|
||||
"$systemdutildir"/system-generators/systemd-debug-generator \
|
||||
"$systemdutildir"/system-generators/systemd-fstab-generator \
|
||||
"$systemdutildir"/system-generators/systemd-gpt-auto-generator \
|
||||
+ "$systemdutildir"/system.conf \
|
||||
+ "$systemdutildir"/system.conf.d/*.conf \
|
||||
"$systemdsystemunitdir"/debug-shell.service \
|
||||
"$systemdsystemunitdir"/cryptsetup.target \
|
||||
"$systemdsystemunitdir"/cryptsetup-pre.target \
|
||||
@@ -94,8 +96,8 @@ install() {
|
||||
|
||||
if [[ $hostonly ]]; then
|
||||
inst_multiple -H -o \
|
||||
- /etc/systemd/system.conf \
|
||||
- /etc/systemd/system.conf.d/*.conf \
|
||||
+ "$systemdutilconfdir"/system.conf \
|
||||
+ "$systemdutilconfdir"/system.conf.d/*.conf \
|
||||
/etc/hosts \
|
||||
/etc/hostname \
|
||||
/etc/nsswitch.conf \
|
||||
diff --git a/modules.d/01systemd-coredump/module-setup.sh b/modules.d/01systemd-coredump/module-setup.sh
|
||||
index 0c5cbcfb..6acbe75f 100755
|
||||
--- a/modules.d/01systemd-coredump/module-setup.sh
|
||||
+++ b/modules.d/01systemd-coredump/module-setup.sh
|
||||
@@ -35,6 +35,7 @@ install() {
|
||||
inst_multiple -o \
|
||||
"$sysctld"/50-coredump.conf \
|
||||
"$systemdutildir"/coredump.conf \
|
||||
+ "$systemdutildir/coredump.conf.d/*.conf" \
|
||||
"$systemdutildir"/systemd-coredump \
|
||||
"$systemdsystemunitdir"/systemd-coredump.socket \
|
||||
"$systemdsystemunitdir"/systemd-coredump@.service \
|
||||
@@ -52,7 +53,7 @@ install() {
|
||||
if [[ $hostonly ]]; then
|
||||
inst_multiple -H -o \
|
||||
"$systemdutilconfdir"/coredump.conf \
|
||||
- "$systemdsystemconfdir/coredump.conf.d/*.conf" \
|
||||
+ "$systemdutilconfdir/coredump.conf.d/*.conf" \
|
||||
"$systemdsystemconfdir"/systemd-coredump.socket \
|
||||
"$systemdsystemconfdir/systemd-coredump.socket.d/*.conf" \
|
||||
"$systemdsystemconfdir"/systemd-coredump@.service \
|
||||
diff --git a/modules.d/01systemd-pstore/module-setup.sh b/modules.d/01systemd-pstore/module-setup.sh
|
||||
index 67034bbf..5de5db4b 100755
|
||||
--- a/modules.d/01systemd-pstore/module-setup.sh
|
||||
+++ b/modules.d/01systemd-pstore/module-setup.sh
|
||||
@@ -34,6 +34,8 @@ install() {
|
||||
inst_dir /var/lib/systemd/pstore
|
||||
inst_multiple -o \
|
||||
"$tmpfilesdir/systemd-pstore.conf" \
|
||||
+ "$systemdutildir"/pstore.conf \
|
||||
+ "$systemdutildir/pstore.conf.d/*.conf" \
|
||||
"$systemdutildir"/systemd-pstore \
|
||||
"$systemdsystemunitdir"/systemd-pstore.service \
|
||||
"$systemdsystemunitdir/systemd-pstore.service.d/*.conf"
|
||||
diff --git a/modules.d/01systemd-resolved/module-setup.sh b/modules.d/01systemd-resolved/module-setup.sh
|
||||
index b354bc6c..d20f211c 100755
|
||||
--- a/modules.d/01systemd-resolved/module-setup.sh
|
||||
+++ b/modules.d/01systemd-resolved/module-setup.sh
|
||||
@@ -50,6 +50,7 @@ install() {
|
||||
# Install the hosts local user configurations if enabled.
|
||||
if [[ $hostonly ]]; then
|
||||
inst_multiple -H -o \
|
||||
+ "$systemdutilconfdir"/resolv.conf \
|
||||
"$systemdutilconfdir"/resolved.conf \
|
||||
"$systemdutilconfdir/resolved.conf.d/*.conf" \
|
||||
"$systemdsystemconfdir"/systemd-resolved.service \
|
||||
diff --git a/modules.d/01systemd-timesyncd/module-setup.sh b/modules.d/01systemd-timesyncd/module-setup.sh
|
||||
index 0c065af6..82902b3b 100755
|
||||
--- a/modules.d/01systemd-timesyncd/module-setup.sh
|
||||
+++ b/modules.d/01systemd-timesyncd/module-setup.sh
|
||||
@@ -40,6 +40,7 @@ install() {
|
||||
"$systemdntpunits/*.list" \
|
||||
"$systemdutildir"/systemd-timesyncd \
|
||||
"$systemdutildir"/systemd-time-wait-sync \
|
||||
+ "$systemdutildir"/timesyncd.conf \
|
||||
"$systemdutildir/timesyncd.conf.d/*.conf" \
|
||||
"$systemdsystemunitdir"/systemd-timesyncd.service \
|
||||
"$systemdsystemunitdir/systemd-timesyncd.service.d/*.conf" \
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,34 +0,0 @@
|
||||
From 91f878a4fe4ed694baad59cdb1c7366b002cf1da Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 8 Aug 2024 00:21:12 +0200
|
||||
Subject: [PATCH 11/32] fix(resume): always include the resume module
|
||||
|
||||
as we can't determine with certainity that it won't be needed.
|
||||
|
||||
rhel-only
|
||||
|
||||
Resolves: RHEL-53350
|
||||
---
|
||||
modules.d/95resume/module-setup.sh | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
|
||||
index d419566e..c0f04a6c 100755
|
||||
--- a/modules.d/95resume/module-setup.sh
|
||||
+++ b/modules.d/95resume/module-setup.sh
|
||||
@@ -1,7 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# called by dracut
|
||||
+# shellcheck disable=SC2317
|
||||
check() {
|
||||
+
|
||||
+ # Always include resume module
|
||||
+ return 0
|
||||
+
|
||||
swap_on_netdevice() {
|
||||
local _dev
|
||||
for _dev in "${swap_devs[@]}"; do
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,197 +0,0 @@
|
||||
From 5ed57d866f2be5dc73c7c70a70f51ccae9bdd47d Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Mon, 22 Jul 2024 16:46:47 +0200
|
||||
Subject: [PATCH 12/32] feat(dracut-init.sh): allow changing the destination
|
||||
directory for inst et al
|
||||
|
||||
When using 99squash dracut actually builds two separate initrds. The
|
||||
"normal" one, that gets squashed into a squashfs image, and a
|
||||
"minimalistic" one, whose only task is to mount and switch_root to the
|
||||
squashfs image.
|
||||
|
||||
This is currently done the following way:
|
||||
1. Skipp install() for 99squash during the "normal" installation phase.
|
||||
2. Trigger a special postinstall hook in 99squash that moves the content
|
||||
of $initdir to $squashdir and installs the "minimalistic" initrd to
|
||||
$initdir.
|
||||
3. Strip the binaries in $initdir (of which $squashdir is a sub
|
||||
directory of).
|
||||
4. Squash the content of $squashdir into the squashfs image and remove
|
||||
$squashdir.
|
||||
|
||||
The problem with this approach is that the steps 2 and 4 specific to
|
||||
99squash but need to be done in dracut.sh. Thus a lot of special
|
||||
handling for 99squash is needed in dracut.sh. This will get even more
|
||||
complex once support for different filesystem images, e.g. erofs, are
|
||||
implemented.
|
||||
|
||||
In order to be able to move most of the functionality into 99squash
|
||||
itself a new approach will be chosen, i.e.
|
||||
1. During the installation phase install the "normal" initrd into
|
||||
$initdir and the "minimalistic" initrd into $squashdir.
|
||||
2. Strip the binaries in $initdir.
|
||||
3. Trigger a special postinstall hook in 99squash that squashes the
|
||||
content of $initdir (excluding $squashdir) into the squashfs image,
|
||||
removes the content of $intidir (excluding $suqashdir) and, moves the
|
||||
content of $squashdir into $initdir.
|
||||
|
||||
With that the only special handling remaining in dracut.sh is triggering
|
||||
the postinstall hook.
|
||||
|
||||
However, in inst et al. the destination directory is hard coded to
|
||||
$initdir. Thus allow setting a different destination directory in inst
|
||||
et al. to get the new approach to work. For the time being only do that
|
||||
for the functions required by 99squash.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit 5ab4470cf136c2d9983564b84b49fd700d4b8514)
|
||||
|
||||
Related: RHEL-43460
|
||||
---
|
||||
dracut-init.sh | 40 +++++++++++++++++++++++++---------------
|
||||
1 file changed, 25 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/dracut-init.sh b/dracut-init.sh
|
||||
index 986da96b..8e943493 100755
|
||||
--- a/dracut-init.sh
|
||||
+++ b/dracut-init.sh
|
||||
@@ -240,34 +240,36 @@ inst_dir() {
|
||||
}
|
||||
|
||||
inst() {
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
local _ret _hostonly_install
|
||||
if [[ $1 == "-H" ]]; then
|
||||
_hostonly_install="-H"
|
||||
shift
|
||||
fi
|
||||
- [[ -e ${initdir}/"${2:-$1}" ]] && return 0 # already there
|
||||
- if $DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${initdir:+-D "$initdir"} ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"; then
|
||||
+ [[ -e ${dstdir}/"${2:-$1}" ]] && return 0 # already there
|
||||
+ if $DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${dstdir:+-D "$dstdir"} ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"; then
|
||||
return 0
|
||||
else
|
||||
_ret=$?
|
||||
- derror FAILED: "$DRACUT_INSTALL" ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${initdir:+-D "$initdir"} ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"
|
||||
+ derror FAILED: "$DRACUT_INSTALL" ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${dstdir:+-D "$dstdir"} ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"
|
||||
return $_ret
|
||||
fi
|
||||
}
|
||||
|
||||
inst_simple() {
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
local _ret _hostonly_install
|
||||
if [[ $1 == "-H" ]]; then
|
||||
_hostonly_install="-H"
|
||||
shift
|
||||
fi
|
||||
- [[ -e ${initdir}/"${2:-$1}" ]] && return 0 # already there
|
||||
- [[ -e $1 ]] || return 1 # no source
|
||||
- if $DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${initdir:+-D "$initdir"} ${loginstall:+-L "$loginstall"} ${_hostonly_install:+-H} "$@"; then
|
||||
+ [[ -e ${dstdir}/"${2:-$1}" ]] && return 0 # already there
|
||||
+ [[ -e $1 ]] || return 1 # no source
|
||||
+ if $DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${dstdir:+-D "$dstdir"} ${loginstall:+-L "$loginstall"} ${_hostonly_install:+-H} "$@"; then
|
||||
return 0
|
||||
else
|
||||
_ret=$?
|
||||
- derror FAILED: "$DRACUT_INSTALL" ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${initdir:+-D "$initdir"} ${loginstall:+-L "$loginstall"} ${_hostonly_install:+-H} "$@"
|
||||
+ derror FAILED: "$DRACUT_INSTALL" ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${dstdir:+-D "$dstdir"} ${loginstall:+-L "$loginstall"} ${_hostonly_install:+-H} "$@"
|
||||
return $_ret
|
||||
fi
|
||||
}
|
||||
@@ -290,16 +292,17 @@ inst_symlink() {
|
||||
}
|
||||
|
||||
inst_multiple() {
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
local _ret _hostonly_install
|
||||
if [[ $1 == "-H" ]]; then
|
||||
_hostonly_install="-H"
|
||||
shift
|
||||
fi
|
||||
- if $DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${initdir:+-D "$initdir"} -a ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"; then
|
||||
+ if $DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${dstdir:+-D "$dstdir"} -a ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"; then
|
||||
return 0
|
||||
else
|
||||
_ret=$?
|
||||
- derror FAILED: "$DRACUT_INSTALL" ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${initdir:+-D "$initdir"} -a ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"
|
||||
+ derror FAILED: "$DRACUT_INSTALL" ${dracutsysrootdir:+-r "$dracutsysrootdir"} ${dstdir:+-D "$dstdir"} -a ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"
|
||||
return $_ret
|
||||
fi
|
||||
}
|
||||
@@ -566,6 +569,8 @@ inst_rules_wildcard() {
|
||||
|
||||
# make sure that library links are correct and up to date
|
||||
build_ld_cache() {
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
+
|
||||
for f in "$dracutsysrootdir"/etc/ld.so.conf "$dracutsysrootdir"/etc/ld.so.conf.d/*; do
|
||||
[[ -f $f ]] && inst_simple "${f#"$dracutsysrootdir"}"
|
||||
done
|
||||
@@ -1056,13 +1061,15 @@ for_each_module_dir() {
|
||||
}
|
||||
|
||||
dracut_kernel_post() {
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
+
|
||||
for _f in modules.builtin modules.builtin.alias modules.builtin.modinfo modules.order; do
|
||||
[[ -e $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
|
||||
done
|
||||
|
||||
# generate module dependencies for the initrd
|
||||
- if [[ -d $initdir/lib/modules/$kernel ]] \
|
||||
- && ! depmod -a -b "$initdir" "$kernel"; then
|
||||
+ if [[ -d $dstdir/lib/modules/$kernel ]] \
|
||||
+ && ! depmod -a -b "$dstdir" "$kernel"; then
|
||||
dfatal "\"depmod -a $kernel\" failed."
|
||||
exit 1
|
||||
fi
|
||||
@@ -1076,6 +1083,7 @@ instmods() {
|
||||
# <kernel subsystem> can be e.g. "=block" or "=drivers/usb/storage"
|
||||
# -c check
|
||||
# -s silent
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
local _optional="-o"
|
||||
local _silent
|
||||
local _ret
|
||||
@@ -1101,7 +1109,7 @@ instmods() {
|
||||
fi
|
||||
|
||||
$DRACUT_INSTALL \
|
||||
- ${initdir:+-D "$initdir"} \
|
||||
+ ${dstdir:+-D "$dstdir"} \
|
||||
${dracutsysrootdir:+-r "$dracutsysrootdir"} \
|
||||
${loginstall:+-L "$loginstall"} \
|
||||
${hostonly:+-H} \
|
||||
@@ -1115,7 +1123,7 @@ instmods() {
|
||||
if ((_ret != 0)) && [[ -z $_silent ]]; then
|
||||
derror "FAILED: " \
|
||||
"$DRACUT_INSTALL" \
|
||||
- ${initdir:+-D "$initdir"} \
|
||||
+ ${dstdir:+-D "$dstdir"} \
|
||||
${dracutsysrootdir:+-r "$dracutsysrootdir"} \
|
||||
${loginstall:+-L "$loginstall"} \
|
||||
${hostonly:+-H} \
|
||||
@@ -1132,14 +1140,16 @@ instmods() {
|
||||
|
||||
if [[ "$(ln --help)" == *--relative* ]]; then
|
||||
ln_r() {
|
||||
- ln -sfnr "${initdir}/$1" "${initdir}/$2"
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
+ ln -sfnr "${dstdir}/$1" "${dstdir}/$2"
|
||||
}
|
||||
else
|
||||
ln_r() {
|
||||
+ local dstdir="${dstdir:-"$initdir"}"
|
||||
local _source=$1
|
||||
local _dest=$2
|
||||
[[ -d ${_dest%/*} ]] && _dest=$(readlink -f "${_dest%/*}")/${_dest##*/}
|
||||
- ln -sfn -- "$(convert_abs_rel "${_dest}" "${_source}")" "${initdir}/${_dest}"
|
||||
+ ln -sfn -- "$(convert_abs_rel "${_dest}" "${_source}")" "${dstdir}/${_dest}"
|
||||
}
|
||||
fi
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,82 +0,0 @@
|
||||
From 150e428c0e8d40257a983c2f82be5e8e0f30920f Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Thu, 25 Jul 2024 12:47:00 +0200
|
||||
Subject: [PATCH 13/32] fix(dracut-init.sh): add module to mods_to_load before
|
||||
checking dependencies
|
||||
|
||||
When implementing erofs support for 99squash we end up with three
|
||||
modules 99squash, 95squash-squashfs and 95squash-erofs. Where 99squash
|
||||
contains the common code for filesystem images and
|
||||
95squash-{squashfs,erofs} the special handing depending on the
|
||||
filesystem used. This leads to a dependency cycle as we want to allow
|
||||
users both to choose 99squash, when the exact filesystem doesn't matter,
|
||||
as well as 95squash-{squashfs,erofs} when a specific filesystem is
|
||||
required.
|
||||
|
||||
But when 99squash is added as a dependency calling
|
||||
dracut_module_included fails in its depends() function. This lead to
|
||||
cases where both handlers, 95squash-squashfs and 95squash-erofs, were
|
||||
added to the initrd.
|
||||
|
||||
Reason for the failure is that a module only is marked to be loaded
|
||||
after all it's dependencies have been checked as well. Thus a child
|
||||
module cannot detect which parent module wants it to be included. Fix
|
||||
this by marking modules to be loaded before checking its dependencies in
|
||||
check_module. Do the same change in check_mount for consistency.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit 634b4a5c6fbe595eb240cd529d669d21eadd510c)
|
||||
|
||||
Related: RHEL-43460
|
||||
---
|
||||
dracut-init.sh | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dracut-init.sh b/dracut-init.sh
|
||||
index 8e943493..746362d1 100755
|
||||
--- a/dracut-init.sh
|
||||
+++ b/dracut-init.sh
|
||||
@@ -924,6 +924,9 @@ check_mount() {
|
||||
fi
|
||||
fi
|
||||
|
||||
+ [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
+ || mods_to_load+=" $_mod "
|
||||
+
|
||||
for _moddep in $(module_depends "$_mod" "$_moddir"); do
|
||||
# handle deps as if they were manually added
|
||||
[[ " $dracutmodules " == *\ $_mod\ * ]] \
|
||||
@@ -942,9 +945,6 @@ check_mount() {
|
||||
fi
|
||||
done
|
||||
|
||||
- [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
- || mods_to_load+=" $_mod "
|
||||
-
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -999,6 +999,9 @@ check_module() {
|
||||
fi
|
||||
fi
|
||||
|
||||
+ [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
+ || mods_to_load+=" $_mod "
|
||||
+
|
||||
for _moddep in $(module_depends "$_mod" "$_moddir"); do
|
||||
# handle deps as if they were manually added
|
||||
[[ " $dracutmodules " == *\ $_mod\ * ]] \
|
||||
@@ -1017,9 +1020,6 @@ check_module() {
|
||||
fi
|
||||
done
|
||||
|
||||
- [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
- || mods_to_load+=" $_mod "
|
||||
-
|
||||
return 0
|
||||
}
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,192 +0,0 @@
|
||||
From 2d851d7d1709f5a03d8dab847aa42770bff2644b Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Mon, 22 Jul 2024 16:30:50 +0200
|
||||
Subject: [PATCH 14/32] feat(squash): move mksquashfs to 99squash/modules-setup
|
||||
|
||||
When using 99squash dracut actually builds two separat initrds. The
|
||||
"normal" one, that gets squashed into a squashfs image, and a
|
||||
"minimalistic" one, whose only task is to mount and switch_root to the
|
||||
squashfs image.
|
||||
|
||||
For that 99squash currently requires a lot of special handling in
|
||||
dracut.sh. Move most of this special handling into 99squash itself. This
|
||||
requires a new approach when building the "minimalistic" initrd. The new
|
||||
approach works the following way
|
||||
|
||||
1. During the installation phase install the "normal" initrd into
|
||||
$initdir and the "minimalistic" initrd into $squashdir.
|
||||
2. Strip the binaries in $initdir.
|
||||
3. Trigger a special postinstall hook in 99squash that squashes the
|
||||
content of $initdir (excluding $squashdir) into the squashfs image,
|
||||
removes the content of $intidir (excluding $suqashdir) and, moves the
|
||||
content of $squashdir into $initdir.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit 7a4dd89ca732329893628b886fe8e78337d896e8)
|
||||
|
||||
Related: RHEL-43460
|
||||
---
|
||||
dracut.sh | 35 ++++--------------
|
||||
modules.d/99squash/module-setup.sh | 58 +++++++++++++++++++++---------
|
||||
2 files changed, 49 insertions(+), 44 deletions(-)
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index 856b884e..4d2e3df2 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -1260,6 +1260,7 @@ trap '
|
||||
trap 'exit 1;' SIGINT
|
||||
|
||||
readonly initdir="${DRACUT_TMPDIR}/initramfs"
|
||||
+readonly squashdir="$initdir/squash_root"
|
||||
mkdir -p "$initdir"
|
||||
|
||||
if [[ $early_microcode == yes ]] || { [[ $acpi_override == yes ]] && [[ -d $acpi_table_dir ]]; }; then
|
||||
@@ -1787,7 +1788,8 @@ export initdir dracutbasedir \
|
||||
host_fs_types host_devs swap_devs sshkey add_fstab \
|
||||
DRACUT_VERSION \
|
||||
prefix filesystems drivers \
|
||||
- hostonly_cmdline loginstall
|
||||
+ hostonly_cmdline loginstall \
|
||||
+ squashdir squash_compress
|
||||
|
||||
mods_to_load=""
|
||||
# check all our modules to see if they should be sourced.
|
||||
@@ -1892,6 +1894,8 @@ if [[ $kernel_only != yes ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
+dracut_module_included "squash" && mkdir -p "$squashdir"
|
||||
+
|
||||
_isize=0 #initramfs size
|
||||
modules_loaded=" "
|
||||
# source our modules.
|
||||
@@ -2243,14 +2247,6 @@ if [[ $kernel_only != yes ]]; then
|
||||
build_ld_cache
|
||||
fi
|
||||
|
||||
-if dracut_module_included "squash"; then
|
||||
- readonly squash_dir="$initdir/squash/root"
|
||||
- readonly squash_img="$initdir/squash-root.img"
|
||||
- mkdir -p "$squash_dir"
|
||||
- dinfo "*** Install squash loader ***"
|
||||
- DRACUT_SQUASH_POST_INST=1 module_install "squash"
|
||||
-fi
|
||||
-
|
||||
if [[ $do_strip == yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then
|
||||
# stripping files negates (dedup) benefits of using reflink
|
||||
[[ -n $enhanced_cpio ]] && ddebug "strip is enabled alongside cpio reflink"
|
||||
@@ -2270,25 +2266,8 @@ fi
|
||||
|
||||
if dracut_module_included "squash"; then
|
||||
dinfo "*** Squashing the files inside the initramfs ***"
|
||||
- declare squash_compress_arg
|
||||
- # shellcheck disable=SC2086
|
||||
- if [[ $squash_compress ]]; then
|
||||
- if ! mksquashfs /dev/null "$DRACUT_TMPDIR"/.squash-test.img -no-progress -comp $squash_compress &> /dev/null; then
|
||||
- dwarn "mksquashfs doesn't support compressor '$squash_compress', failing back to default compressor."
|
||||
- else
|
||||
- squash_compress_arg="$squash_compress"
|
||||
- fi
|
||||
- fi
|
||||
-
|
||||
- # shellcheck disable=SC2086
|
||||
- if ! mksquashfs "$squash_dir" "$squash_img" \
|
||||
- -no-xattrs -no-exports -noappend -no-recovery -always-use-fragments \
|
||||
- -no-progress ${squash_compress_arg:+-comp $squash_compress_arg} 1> /dev/null; then
|
||||
- dfatal "Failed making squash image"
|
||||
- exit 1
|
||||
- fi
|
||||
-
|
||||
- rm -rf "$squash_dir"
|
||||
+ DRACUT_SQUASH_POST_INST=1 module_install "squash"
|
||||
+ rm -rf "$squashdir"
|
||||
dinfo "*** Squashing the files inside the initramfs done ***"
|
||||
|
||||
# Skip initramfs compress
|
||||
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
|
||||
index dc2e0a20..96d097af 100755
|
||||
--- a/modules.d/99squash/module-setup.sh
|
||||
+++ b/modules.d/99squash/module-setup.sh
|
||||
@@ -12,26 +12,13 @@ depends() {
|
||||
return 0
|
||||
}
|
||||
|
||||
-installpost() {
|
||||
+squash_install() {
|
||||
local _busybox
|
||||
_busybox=$(find_binary busybox)
|
||||
|
||||
- # Move everything under $initdir except $squash_dir
|
||||
- # itself into squash image
|
||||
- for i in "$initdir"/*; do
|
||||
- [[ $squash_dir == "$i"/* ]] || mv "$i" "$squash_dir"/
|
||||
- done
|
||||
-
|
||||
# Create mount points for squash loader
|
||||
mkdir -p "$initdir"/squash/
|
||||
- mkdir -p "$squash_dir"/squash/
|
||||
-
|
||||
- # Copy dracut spec files out side of the squash image
|
||||
- # so dracut rebuild and lsinitrd can work
|
||||
- for file in "$squash_dir"/usr/lib/dracut/*; do
|
||||
- [[ -f $file ]] || continue
|
||||
- DRACUT_RESOLVE_DEPS=1 dracutsysrootdir="$squash_dir" inst "${file#"$squash_dir"}"
|
||||
- done
|
||||
+ mkdir -p "$squashdir"/squash/
|
||||
|
||||
# Install required modules and binaries for the squash image init script.
|
||||
if [[ $_busybox ]]; then
|
||||
@@ -61,8 +48,47 @@ installpost() {
|
||||
build_ld_cache
|
||||
}
|
||||
|
||||
+squash_installpost() {
|
||||
+ local _img="$squashdir"/squash-root.img
|
||||
+ local _comp _file
|
||||
+
|
||||
+ # shellcheck disable=SC2086
|
||||
+ if [[ $squash_compress ]]; then
|
||||
+ if ! mksquashfs /dev/null "$DRACUT_TMPDIR"/.squash-test.img -no-progress -comp $squash_compress &> /dev/null; then
|
||||
+ dwarn "mksquashfs doesn't support compressor '$squash_compress', failing back to default compressor."
|
||||
+ else
|
||||
+ _comp="$squash_compress"
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
+ # shellcheck disable=SC2086
|
||||
+ if ! mksquashfs "$initdir" "$_img" \
|
||||
+ -no-xattrs -no-exports -noappend -no-recovery -always-use-fragments \
|
||||
+ -no-progress ${_comp:+-comp $_comp} \
|
||||
+ -e "$squashdir" 1> /dev/null; then
|
||||
+ dfatal "Failed making squash image"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
+ # Rescue the dracut spec files so dracut rebuild and lsinitrd can work
|
||||
+ for _file in "$initdir"/usr/lib/dracut/*; do
|
||||
+ [[ -f $_file ]] || continue
|
||||
+ DRACUT_RESOLVE_DEPS=1 dstdir=$squashdir inst "$_file" "${_file#"$initdir"}"
|
||||
+ done
|
||||
+
|
||||
+ # Remove everything that got squashed into the image
|
||||
+ for _file in "$initdir"/*; do
|
||||
+ [[ $_file == "$squashdir" ]] && continue
|
||||
+ rm -rf "$_file"
|
||||
+ done
|
||||
+ mv "$squashdir"/* "$initdir"
|
||||
+}
|
||||
+
|
||||
install() {
|
||||
+
|
||||
if [[ $DRACUT_SQUASH_POST_INST ]]; then
|
||||
- installpost
|
||||
+ squash_installpost
|
||||
+ else
|
||||
+ dstdir="$squashdir" squash_install
|
||||
fi
|
||||
}
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,183 +0,0 @@
|
||||
From dd3daa0560e4e4f809b42a901cd79076d3577f96 Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Tue, 23 Jul 2024 16:39:13 +0200
|
||||
Subject: [PATCH 15/32] feat(squash): split 95squash-squashfs from 99squash
|
||||
|
||||
99squash only allows squashing the files using squashfs. In order to
|
||||
make the implementation for different filesystems easier split out the
|
||||
squashfs specific parts into 95squash-squashfs.
|
||||
|
||||
While at it rename the root image contained in the initrd to
|
||||
squashfs-root.img. This allows tools like lsinitrd to detect the
|
||||
filesystem used later on.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit f281606f110be1549cd6b1cd34828653879a5f50)
|
||||
|
||||
Related: RHEL-43460
|
||||
---
|
||||
modules.d/95squash-squashfs/module-setup.sh | 48 ++++++++++++++++++
|
||||
modules.d/99squash/init-squash.sh | 2 +-
|
||||
modules.d/99squash/module-setup.sh | 54 ++++++++++++---------
|
||||
3 files changed, 80 insertions(+), 24 deletions(-)
|
||||
create mode 100755 modules.d/95squash-squashfs/module-setup.sh
|
||||
|
||||
diff --git a/modules.d/95squash-squashfs/module-setup.sh b/modules.d/95squash-squashfs/module-setup.sh
|
||||
new file mode 100755
|
||||
index 00000000..83973700
|
||||
--- /dev/null
|
||||
+++ b/modules.d/95squash-squashfs/module-setup.sh
|
||||
@@ -0,0 +1,48 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+check() {
|
||||
+ require_binaries mksquashfs unsquashfs || return 1
|
||||
+ require_kernel_modules squashfs || return 1
|
||||
+
|
||||
+ return 255
|
||||
+}
|
||||
+
|
||||
+depends() {
|
||||
+ echo "squash"
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+squashfs_install() {
|
||||
+ hostonly="" instmods "squashfs"
|
||||
+}
|
||||
+
|
||||
+squashfs_installpost() {
|
||||
+ local _img="$squashdir/squashfs-root.img"
|
||||
+ local _comp
|
||||
+
|
||||
+ # shellcheck disable=SC2086
|
||||
+ if [[ $squash_compress ]]; then
|
||||
+ if ! mksquashfs /dev/null "$DRACUT_TMPDIR"/.squash-test.img -no-progress -comp $squash_compress &> /dev/null; then
|
||||
+ dwarn "mksquashfs doesn't support compressor '$squash_compress', failing back to default compressor."
|
||||
+ else
|
||||
+ _comp="$squash_compress"
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
+ # shellcheck disable=SC2086
|
||||
+ if ! mksquashfs "$initdir" "$_img" \
|
||||
+ -no-xattrs -no-exports -noappend -no-recovery -always-use-fragments \
|
||||
+ -no-progress ${_comp:+-comp $_comp} \
|
||||
+ -e "$squashdir" 1> /dev/null; then
|
||||
+ dfatal "Failed making squash image"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+install() {
|
||||
+ if [[ $DRACUT_SQUASH_POST_INST ]]; then
|
||||
+ squashfs_installpost
|
||||
+ else
|
||||
+ dstdir="$squashdir" squashfs_install
|
||||
+ fi
|
||||
+}
|
||||
diff --git a/modules.d/99squash/init-squash.sh b/modules.d/99squash/init-squash.sh
|
||||
index 59769f62..42a9a86f 100755
|
||||
--- a/modules.d/99squash/init-squash.sh
|
||||
+++ b/modules.d/99squash/init-squash.sh
|
||||
@@ -21,7 +21,7 @@ modprobe overlay
|
||||
# Mount the squash image
|
||||
mount -t ramfs ramfs /squash
|
||||
mkdir -p /squash/root /squash/overlay/upper /squash/overlay/work
|
||||
-mount -t squashfs -o ro,loop /squash-root.img /squash/root
|
||||
+mount -t squashfs -o ro,loop /squashfs-root.img /squash/root
|
||||
|
||||
# Setup new root overlay
|
||||
mkdir /newroot
|
||||
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
|
||||
index 96d097af..015944c2 100755
|
||||
--- a/modules.d/99squash/module-setup.sh
|
||||
+++ b/modules.d/99squash/module-setup.sh
|
||||
@@ -1,17 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
check() {
|
||||
- require_binaries mksquashfs unsquashfs || return 1
|
||||
- require_kernel_modules squashfs loop overlay || return 1
|
||||
+ require_kernel_modules loop overlay || return 1
|
||||
|
||||
return 255
|
||||
}
|
||||
|
||||
depends() {
|
||||
- echo "systemd-initrd"
|
||||
+ local _handler
|
||||
+
|
||||
+ _handler=$(squash_get_handler) || return 1
|
||||
+
|
||||
+ echo "systemd-initrd $_handler"
|
||||
return 0
|
||||
}
|
||||
|
||||
+squash_get_handler() {
|
||||
+ local _module _handler
|
||||
+
|
||||
+ for _module in squash-squashfs; do
|
||||
+ if dracut_module_included "$_module"; then
|
||||
+ _handler="$_module"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ if [ -z "$_handler" ]; then
|
||||
+ if check_module "squash-squashfs"; then
|
||||
+ _handler="squash-squashfs"
|
||||
+ else
|
||||
+ dfatal "No valid handler for found"
|
||||
+ return 1
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
+ echo "$_handler"
|
||||
+}
|
||||
+
|
||||
squash_install() {
|
||||
local _busybox
|
||||
_busybox=$(find_binary busybox)
|
||||
@@ -36,7 +61,7 @@ squash_install() {
|
||||
[[ $DRACUT_FIPS_MODE ]] && inst_libdir_file -o "libssl.so*"
|
||||
fi
|
||||
|
||||
- hostonly="" instmods "loop" "squashfs" "overlay"
|
||||
+ hostonly="" instmods "loop" "overlay"
|
||||
dracut_kernel_post
|
||||
|
||||
# Install squash image init script.
|
||||
@@ -49,26 +74,9 @@ squash_install() {
|
||||
}
|
||||
|
||||
squash_installpost() {
|
||||
- local _img="$squashdir"/squash-root.img
|
||||
- local _comp _file
|
||||
-
|
||||
- # shellcheck disable=SC2086
|
||||
- if [[ $squash_compress ]]; then
|
||||
- if ! mksquashfs /dev/null "$DRACUT_TMPDIR"/.squash-test.img -no-progress -comp $squash_compress &> /dev/null; then
|
||||
- dwarn "mksquashfs doesn't support compressor '$squash_compress', failing back to default compressor."
|
||||
- else
|
||||
- _comp="$squash_compress"
|
||||
- fi
|
||||
- fi
|
||||
+ local _file
|
||||
|
||||
- # shellcheck disable=SC2086
|
||||
- if ! mksquashfs "$initdir" "$_img" \
|
||||
- -no-xattrs -no-exports -noappend -no-recovery -always-use-fragments \
|
||||
- -no-progress ${_comp:+-comp $_comp} \
|
||||
- -e "$squashdir" 1> /dev/null; then
|
||||
- dfatal "Failed making squash image"
|
||||
- exit 1
|
||||
- fi
|
||||
+ DRACUT_SQUASH_POST_INST=1 module_install "$(squash_get_handler)"
|
||||
|
||||
# Rescue the dracut spec files so dracut rebuild and lsinitrd can work
|
||||
for _file in "$initdir"/usr/lib/dracut/*; do
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,128 +0,0 @@
|
||||
From fcc73940a1e21fa79b7133e12ed0f8ed13645a54 Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Tue, 23 Jul 2024 17:42:33 +0200
|
||||
Subject: [PATCH 16/32] feat(squash): add module 95squash-erofs
|
||||
|
||||
Allow squashing the image in 99squash using erofs. Keep squashfs as
|
||||
default to not change existing systems. I.e. only use erofs if the user
|
||||
explicitly include 95squash-erofs or when the prereqs for squashfs are
|
||||
missing.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit e185d6ae1cc38af90f741d3d6c677458d69a345f)
|
||||
|
||||
Resolves: RHEL-43460
|
||||
---
|
||||
modules.d/95squash-erofs/module-setup.sh | 45 ++++++++++++++++++++++++
|
||||
modules.d/99squash/init-squash.sh | 12 +++++--
|
||||
modules.d/99squash/module-setup.sh | 4 ++-
|
||||
3 files changed, 58 insertions(+), 3 deletions(-)
|
||||
create mode 100755 modules.d/95squash-erofs/module-setup.sh
|
||||
|
||||
diff --git a/modules.d/95squash-erofs/module-setup.sh b/modules.d/95squash-erofs/module-setup.sh
|
||||
new file mode 100755
|
||||
index 00000000..71c2b672
|
||||
--- /dev/null
|
||||
+++ b/modules.d/95squash-erofs/module-setup.sh
|
||||
@@ -0,0 +1,45 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+check() {
|
||||
+ require_binaries mkfs.erofs || return 1
|
||||
+ require_kernel_modules erofs || return 1
|
||||
+
|
||||
+ return 255
|
||||
+}
|
||||
+
|
||||
+depends() {
|
||||
+ echo "squash"
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+erofs_install() {
|
||||
+ hostonly="" instmods "erofs"
|
||||
+}
|
||||
+
|
||||
+erofs_installpost() {
|
||||
+ local _img="$squashdir/erofs-root.img"
|
||||
+ local -a _erofs_args
|
||||
+
|
||||
+ _erofs_args+=("--exclude-path=$squashdir")
|
||||
+ _erofs_args+=("-E" "fragments")
|
||||
+
|
||||
+ if [[ -n $squash_compress ]]; then
|
||||
+ if mkfs.erofs "${_erofs_args[@]}" -z "$squash_compress" "$_img" "$initdir" &> /dev/null; then
|
||||
+ return
|
||||
+ fi
|
||||
+ dwarn "mkfs.erofs doesn't support compressor '$squash_compress', failing back to default compressor."
|
||||
+ fi
|
||||
+
|
||||
+ if ! mkfs.erofs "${_erofs_args[@]}" "$_img" "$initdir" &> /dev/null; then
|
||||
+ dfatal "Failed making squash image"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+install() {
|
||||
+ if [[ $DRACUT_SQUASH_POST_INST ]]; then
|
||||
+ erofs_installpost
|
||||
+ else
|
||||
+ dstdir="$squashdir" erofs_install
|
||||
+ fi
|
||||
+}
|
||||
diff --git a/modules.d/99squash/init-squash.sh b/modules.d/99squash/init-squash.sh
|
||||
index 42a9a86f..31a39cfd 100755
|
||||
--- a/modules.d/99squash/init-squash.sh
|
||||
+++ b/modules.d/99squash/init-squash.sh
|
||||
@@ -13,15 +13,23 @@ grep -q '^devtmpfs /dev devtmpfs' /proc/self/mounts \
|
||||
grep -q '^tmpfs /run tmpfs' /proc/self/mounts \
|
||||
|| (mkdir -p /run && mount -t tmpfs -o mode=755,noexec,nosuid,strictatime tmpfs /run)
|
||||
|
||||
+if [ -e /erofs-root.img ]; then
|
||||
+ _fs=erofs
|
||||
+ _img=erofs-root.img
|
||||
+else
|
||||
+ _fs=squashfs
|
||||
+ _img=squashfs-root.img
|
||||
+fi
|
||||
+
|
||||
# Load required modules
|
||||
modprobe loop
|
||||
-modprobe squashfs
|
||||
+modprobe "$_fs"
|
||||
modprobe overlay
|
||||
|
||||
# Mount the squash image
|
||||
mount -t ramfs ramfs /squash
|
||||
mkdir -p /squash/root /squash/overlay/upper /squash/overlay/work
|
||||
-mount -t squashfs -o ro,loop /squashfs-root.img /squash/root
|
||||
+mount -t "$_fs" -o ro,loop /"$_img" /squash/root
|
||||
|
||||
# Setup new root overlay
|
||||
mkdir /newroot
|
||||
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
|
||||
index 015944c2..5cbbec63 100755
|
||||
--- a/modules.d/99squash/module-setup.sh
|
||||
+++ b/modules.d/99squash/module-setup.sh
|
||||
@@ -18,7 +18,7 @@ depends() {
|
||||
squash_get_handler() {
|
||||
local _module _handler
|
||||
|
||||
- for _module in squash-squashfs; do
|
||||
+ for _module in squash-squashfs squash-erofs; do
|
||||
if dracut_module_included "$_module"; then
|
||||
_handler="$_module"
|
||||
break
|
||||
@@ -28,6 +28,8 @@ squash_get_handler() {
|
||||
if [ -z "$_handler" ]; then
|
||||
if check_module "squash-squashfs"; then
|
||||
_handler="squash-squashfs"
|
||||
+ elif check_module "squash-erofs"; then
|
||||
+ _handler="squash-erofs"
|
||||
else
|
||||
dfatal "No valid handler for found"
|
||||
return 1
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,240 +0,0 @@
|
||||
From fc5efe96e0ffbfa447d27ba28245420f91b638dc Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Tue, 23 Jul 2024 18:33:37 +0200
|
||||
Subject: [PATCH 17/32] feat(lsinitrd): add support for erofs images
|
||||
|
||||
Add support to handle erofs images in lsinitrd. Unfortunately the erofs
|
||||
tooling is missing some functionality of unsquashfs, esp. the ability to
|
||||
extract single files and list the content of the image. Work around this
|
||||
deficiency by always extracting the full image and emulate the missing
|
||||
functionality as close as possible.
|
||||
|
||||
While at it also handle the rename of the squashfs image to
|
||||
squashfs-root.img.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit 009b4ccc94fe3fcf129dddc5aca4f25b1e1b1862)
|
||||
|
||||
Resolves: RHEL-43460
|
||||
---
|
||||
lsinitrd.sh | 167 +++++++++++++++++++++++++++++++++++-----------------
|
||||
1 file changed, 113 insertions(+), 54 deletions(-)
|
||||
|
||||
diff --git a/lsinitrd.sh b/lsinitrd.sh
|
||||
index b36d0e12..6799f938 100755
|
||||
--- a/lsinitrd.sh
|
||||
+++ b/lsinitrd.sh
|
||||
@@ -174,10 +174,47 @@ dracutlibdirs() {
|
||||
done
|
||||
}
|
||||
|
||||
+SQUASH_TMPFILE=""
|
||||
+SQUASH_EXTRACT="$TMPDIR/squash-extract"
|
||||
+
|
||||
+extract_squash_img() {
|
||||
+ local _img _tmp
|
||||
+
|
||||
+ [[ $SQUASH_TMPDIR == none ]] && return 1
|
||||
+ [[ -s $SQUASH_TMPFILE ]] && return 0
|
||||
+
|
||||
+ # Before dracut 104 the image was named squash-root.img. Keep the old name
|
||||
+ # so newer versions of lsinitrd can inspect initrds build with older dracut
|
||||
+ # versions.
|
||||
+ for _img in squash-root.img squashfs-root.img erofs-root.img; do
|
||||
+ _tmp="$TMPDIR/$_img"
|
||||
+ $CAT "$image" 2> /dev/null | cpio --extract --verbose --quiet --to-stdout -- \
|
||||
+ $_img > "$_tmp" 2> /dev/null
|
||||
+ [[ -s $_tmp ]] || continue
|
||||
+
|
||||
+ SQUASH_TMPFILE="$_tmp"
|
||||
+
|
||||
+ # fsck.erofs doesn't allow extracting single files or listing the
|
||||
+ # content of the image. So always extract the full image.
|
||||
+ if [[ $_img == erofs-root.img ]]; then
|
||||
+ mkdir -p "$SQUASH_EXTRACT"
|
||||
+ fsck.erofs --extract="$SQUASH_EXTRACT/erofs-root" --overwrite "$SQUASH_TMPFILE" 2> /dev/null
|
||||
+ ((ret += $?))
|
||||
+ fi
|
||||
+
|
||||
+ break
|
||||
+ done
|
||||
+
|
||||
+ if [[ -z $SQUASH_TMPFILE ]]; then
|
||||
+ SQUASH_TMPFILE=none
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
extract_files() {
|
||||
- SQUASH_IMG="squash-root.img"
|
||||
- SQUASH_TMPFILE="$TMPDIR/initrd.root.sqsh"
|
||||
- SQUASH_EXTRACT="$TMPDIR/squash-extract"
|
||||
+ local nofileinfo
|
||||
|
||||
((${#filenames[@]} == 1)) && nofileinfo=1
|
||||
for f in "${!filenames[@]}"; do
|
||||
@@ -185,18 +222,24 @@ extract_files() {
|
||||
[[ $nofileinfo ]] || echo "========================================================================"
|
||||
# shellcheck disable=SC2001
|
||||
[[ $f == *"\\x"* ]] && f=$(echo "$f" | sed 's/\\x.\{2\}/????/g')
|
||||
- $CAT "$image" 2> /dev/null | cpio --extract --verbose --quiet --to-stdout "$f" 2> /dev/null
|
||||
- ((ret += $?))
|
||||
- if [[ -z ${f/#squashfs-root*/} ]]; then
|
||||
- if [[ ! -s $SQUASH_TMPFILE ]]; then
|
||||
- $CAT "$image" 2> /dev/null | cpio --extract --verbose --quiet --to-stdout -- \
|
||||
- $SQUASH_IMG > "$SQUASH_TMPFILE" 2> /dev/null
|
||||
- fi
|
||||
- unsquashfs -force -d "$SQUASH_EXTRACT" -no-progress "$SQUASH_TMPFILE" "${f#squashfs-root/}" > /dev/null 2>&1
|
||||
- ((ret += $?))
|
||||
- cat "$SQUASH_EXTRACT/${f#squashfs-root/}" 2> /dev/null
|
||||
- rm "$SQUASH_EXTRACT/${f#squashfs-root/}" 2> /dev/null
|
||||
- fi
|
||||
+
|
||||
+ case $f in
|
||||
+ squashfs-root/*)
|
||||
+ extract_squash_img
|
||||
+ unsquashfs -force -d "$SQUASH_EXTRACT" -no-progress "$SQUASH_TMPFILE" "${f#squashfs-root/}" &> /dev/null
|
||||
+ ((ret += $?))
|
||||
+ cat "$SQUASH_EXTRACT/${f#squashfs-root/}" 2> /dev/null
|
||||
+ ;;
|
||||
+ erofs-root/*)
|
||||
+ extract_squash_img
|
||||
+ cat "$SQUASH_EXTRACT/$f" 2> /dev/null
|
||||
+ ;;
|
||||
+ *)
|
||||
+ $CAT "$image" 2> /dev/null | cpio --extract --verbose --quiet --to-stdout "$f" 2> /dev/null
|
||||
+ ((ret += $?))
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
[[ $nofileinfo ]] || echo "========================================================================"
|
||||
[[ $nofileinfo ]] || echo
|
||||
done
|
||||
@@ -222,66 +265,82 @@ list_files() {
|
||||
}
|
||||
|
||||
list_squash_content() {
|
||||
- SQUASH_IMG="squash-root.img"
|
||||
- SQUASH_TMPFILE="$TMPDIR/initrd.root.sqsh"
|
||||
+ extract_squash_img || return 0
|
||||
|
||||
- $CAT "$image" 2> /dev/null | cpio --extract --verbose --quiet --to-stdout -- \
|
||||
- $SQUASH_IMG > "$SQUASH_TMPFILE" 2> /dev/null
|
||||
- if [[ -s $SQUASH_TMPFILE ]]; then
|
||||
- echo "Squashed content ($SQUASH_IMG):"
|
||||
- echo "========================================================================"
|
||||
- unsquashfs -d "squashfs-root" -ll "$SQUASH_TMPFILE" | tail -n +4
|
||||
- echo "========================================================================"
|
||||
- fi
|
||||
+ echo "Squashed content (${SQUASH_TMPFILE##*/}):"
|
||||
+ echo "========================================================================"
|
||||
+ case $SQUASH_TMPFILE in
|
||||
+ */squash-root.img | */squashfs-root.img)
|
||||
+ unsquashfs -ll "$SQUASH_TMPFILE" | tail -n +4
|
||||
+ ;;
|
||||
+ */erofs-root.img)
|
||||
+ (
|
||||
+ cd "$SQUASH_EXTRACT" || return 1
|
||||
+ find erofs-root/ -ls
|
||||
+ )
|
||||
+ ;;
|
||||
+ esac
|
||||
+ echo "========================================================================"
|
||||
}
|
||||
|
||||
list_cmdline() {
|
||||
- # depends on list_squash_content() having run before
|
||||
- SQUASH_IMG="squash-root.img"
|
||||
- SQUASH_TMPFILE="$TMPDIR/initrd.root.sqsh"
|
||||
- SQUASH_EXTRACT="$TMPDIR/squash-extract"
|
||||
|
||||
echo "dracut cmdline:"
|
||||
# shellcheck disable=SC2046
|
||||
$CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- \
|
||||
etc/cmdline.d/\*.conf 2> /dev/null
|
||||
((ret += $?))
|
||||
- if [[ -s $SQUASH_TMPFILE ]]; then
|
||||
- unsquashfs -force -d "$SQUASH_EXTRACT" -no-progress "$SQUASH_TMPFILE" etc/cmdline.d/\*.conf > /dev/null 2>&1
|
||||
- ((ret += $?))
|
||||
- cat "$SQUASH_EXTRACT"/etc/cmdline.d/*.conf 2> /dev/null
|
||||
- rm "$SQUASH_EXTRACT"/etc/cmdline.d/*.conf 2> /dev/null
|
||||
- fi
|
||||
+
|
||||
+ extract_squash_img || return 0
|
||||
+ case $SQUASH_TMPFILE in
|
||||
+ */squash-root.img | */squashfs-root.img)
|
||||
+ unsquashfs -force -d "$SQUASH_EXTRACT" -no-progress "$SQUASH_TMPFILE" etc/cmdline.d/\*.conf &> /dev/null
|
||||
+ ((ret += $?))
|
||||
+ cat "$SQUASH_EXTRACT"/etc/cmdline.d/*.conf 2> /dev/null
|
||||
+ ;;
|
||||
+ */erofs-root.img)
|
||||
+ cat "$SQUASH_EXTRACT"/erofs-root/etc/cmdline.d/*.conf 2> /dev/null
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
}
|
||||
|
||||
unpack_files() {
|
||||
- SQUASH_IMG="squash-root.img"
|
||||
- SQUASH_TMPFILE="$TMPDIR/initrd.root.sqsh"
|
||||
-
|
||||
if ((${#filenames[@]} > 0)); then
|
||||
for f in "${!filenames[@]}"; do
|
||||
# shellcheck disable=SC2001
|
||||
[[ $f == *"\\x"* ]] && f=$(echo "$f" | sed 's/\\x.\{2\}/????/g')
|
||||
- $CAT "$image" 2> /dev/null | cpio -id --quiet $verbose "$f"
|
||||
- ((ret += $?))
|
||||
- if [[ -z ${f/#squashfs-root*/} ]]; then
|
||||
- if [[ ! -s $SQUASH_TMPFILE ]]; then
|
||||
- $CAT "$image" 2> /dev/null | cpio --extract --verbose --quiet --to-stdout -- \
|
||||
- $SQUASH_IMG > "$SQUASH_TMPFILE" 2> /dev/null
|
||||
- fi
|
||||
- unsquashfs -force -d "squashfs-root" -no-progress "$SQUASH_TMPFILE" "${f#squashfs-root/}" > /dev/null
|
||||
- ((ret += $?))
|
||||
- fi
|
||||
+ case $f in
|
||||
+ squashfs-root/*)
|
||||
+ extract_squash_img || continue
|
||||
+ unsquashfs -force -d "squashfs-root" -no-progress "$SQUASH_TMPFILE" "${f#squashfs-root/}" > /dev/null
|
||||
+ ((ret += $?))
|
||||
+ ;;
|
||||
+ erofs-root/*)
|
||||
+ extract_squash_img || continue
|
||||
+ mkdir -p "${f%/*}"
|
||||
+ cp -rf "$SQUASH_EXTRACT/$f" "$f"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ $CAT "$image" 2> /dev/null | cpio -id --quiet $verbose "$f"
|
||||
+ ((ret += $?))
|
||||
+ ;;
|
||||
+ esac
|
||||
done
|
||||
else
|
||||
$CAT "$image" 2> /dev/null | cpio -id --quiet $verbose
|
||||
((ret += $?))
|
||||
- $CAT "$image" 2> /dev/null | cpio --extract --verbose --quiet --to-stdout -- \
|
||||
- $SQUASH_IMG > "$SQUASH_TMPFILE" 2> /dev/null
|
||||
- if [[ -s $SQUASH_TMPFILE ]]; then
|
||||
- unsquashfs -d "squashfs-root" -no-progress "$SQUASH_TMPFILE" > /dev/null
|
||||
- ((ret += $?))
|
||||
- fi
|
||||
+
|
||||
+ extract_squash_img || return 0
|
||||
+ case $SQUASH_TMPFILE in
|
||||
+ */squash-root.img | */squashfs-root.img)
|
||||
+ unsquashfs -d "squashfs-root" -no-progress "$SQUASH_TMPFILE" > /dev/null
|
||||
+ ((ret += $?))
|
||||
+ ;;
|
||||
+ */erofs-root.img)
|
||||
+ cp -rf "$SQUASH_EXTRACT/erofs-root" .
|
||||
+ ;;
|
||||
+ esac
|
||||
fi
|
||||
}
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,59 +0,0 @@
|
||||
From ac4b18bf89bfa440ff741557fe9928cd2b19b66e Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Tue, 30 Jul 2024 17:24:28 +0200
|
||||
Subject: [PATCH 18/32] feat(dracut-initramfs-restore): unpack erofs images
|
||||
|
||||
Follow the example for squashfs images and also unpack erofs images in
|
||||
dracut-initramfs-restore.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit b390e194911835e6bd24eeeb0946e374852b8ddc)
|
||||
|
||||
Resolves: RHEL-43460
|
||||
---
|
||||
dracut-initramfs-restore.sh | 10 ++++++++--
|
||||
modules.d/95squash-erofs/module-setup.sh | 2 +-
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh
|
||||
index 74725308..98cfaed7 100755
|
||||
--- a/dracut-initramfs-restore.sh
|
||||
+++ b/dracut-initramfs-restore.sh
|
||||
@@ -81,12 +81,18 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
-if [[ -d squash ]]; then
|
||||
- if ! unsquashfs -no-xattrs -f -d . squash-root.img > /dev/null; then
|
||||
+if [[ -f squashfs-root.img ]]; then
|
||||
+ if ! unsquashfs -no-xattrs -f -d . squashfs-root.img > /dev/null; then
|
||||
echo "Squash module is enabled for this initramfs but failed to unpack squash-root.img" >&2
|
||||
rm -f -- /run/initramfs/shutdown
|
||||
exit 1
|
||||
fi
|
||||
+elif [[ -f erofs-root.img ]]; then
|
||||
+ if ! fsck.erofs --extract=. --overwrite erofs-root.img > /dev/null; then
|
||||
+ echo "Squash module is enabled for this initramfs but failed to unpack erofs-root.img" >&2
|
||||
+ rm -f -- /run/initramfs/shutdown
|
||||
+ exit 1
|
||||
+ fi
|
||||
fi
|
||||
|
||||
if grep -q -w selinux /sys/kernel/security/lsm 2> /dev/null \
|
||||
diff --git a/modules.d/95squash-erofs/module-setup.sh b/modules.d/95squash-erofs/module-setup.sh
|
||||
index 71c2b672..d763a902 100755
|
||||
--- a/modules.d/95squash-erofs/module-setup.sh
|
||||
+++ b/modules.d/95squash-erofs/module-setup.sh
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
check() {
|
||||
- require_binaries mkfs.erofs || return 1
|
||||
+ require_binaries mkfs.erofs fsck.erofs || return 1
|
||||
require_kernel_modules erofs || return 1
|
||||
|
||||
return 255
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,55 +0,0 @@
|
||||
From c0bd2334708d9bfc6fbeb1c63eae0037eb4157b6 Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Tue, 30 Jul 2024 13:35:17 +0200
|
||||
Subject: [PATCH 19/32] fix(squash): explicitly create required directories
|
||||
|
||||
At the moment 99squash relies on dracut-install to create the required
|
||||
directories it later links to. This approach is error prone and will
|
||||
cause problems when switching to use 99busybox later on, which tries to
|
||||
add a link to /usr/sbin that hasn't been created. Thus explicitly
|
||||
create the expected directories before installing the minimal initrd.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
(cherry picked from commit dde95b10ff6b28330370fd697350f8bc5da422da)
|
||||
|
||||
Related: RHEL-43460
|
||||
---
|
||||
modules.d/99squash/module-setup.sh | 13 +++++++------
|
||||
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
|
||||
index 5cbbec63..6aa649b7 100755
|
||||
--- a/modules.d/99squash/module-setup.sh
|
||||
+++ b/modules.d/99squash/module-setup.sh
|
||||
@@ -40,12 +40,15 @@ squash_get_handler() {
|
||||
}
|
||||
|
||||
squash_install() {
|
||||
- local _busybox
|
||||
+ local _busybox _dir
|
||||
_busybox=$(find_binary busybox)
|
||||
|
||||
- # Create mount points for squash loader
|
||||
- mkdir -p "$initdir"/squash/
|
||||
- mkdir -p "$squashdir"/squash/
|
||||
+ # Create mount points for squash loader and basic directories
|
||||
+ mkdir -p "$initdir"/squash
|
||||
+ for _dir in squash usr/bin usr/sbin usr/lib; do
|
||||
+ mkdir -p "$squashdir/$_dir"
|
||||
+ [[ $_dir == usr/* ]] && ln_r "/$_dir" "${_dir#usr}"
|
||||
+ done
|
||||
|
||||
# Install required modules and binaries for the squash image init script.
|
||||
if [[ $_busybox ]]; then
|
||||
@@ -67,8 +70,6 @@ squash_install() {
|
||||
dracut_kernel_post
|
||||
|
||||
# Install squash image init script.
|
||||
- ln_r /usr/bin /bin
|
||||
- ln_r /usr/sbin /sbin
|
||||
inst_simple "$moddir"/init-squash.sh /init
|
||||
|
||||
# make sure that library links are correct and up to date for squash loader
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,64 +0,0 @@
|
||||
From eef65961330c8fb68493d9a3eab55171482984c1 Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Tue, 30 Jul 2024 13:44:32 +0200
|
||||
Subject: [PATCH 20/32] 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
|
||||
|
@ -1,39 +0,0 @@
|
||||
From c6c9f871b87cdc334be989b42e9a5d2070ae17c5 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Mon, 19 Jul 2021 11:27:28 +0200
|
||||
Subject: [PATCH 21/32] fix(nfs): set correct ownership and permissions for
|
||||
statd directory
|
||||
|
||||
The directory ownership for the statd directory should be
|
||||
rpcuser:rpcuser.
|
||||
|
||||
(cherry picked from commit ed5ab5787177f2be8a620a8d2d63a9ad26fbf149 from PR#583)
|
||||
|
||||
Resolves: RHEL-53361
|
||||
---
|
||||
modules.d/95nfs/module-setup.sh | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
|
||||
index 5cc42892..fbaeeb00 100755
|
||||
--- a/modules.d/95nfs/module-setup.sh
|
||||
+++ b/modules.d/95nfs/module-setup.sh
|
||||
@@ -120,8 +120,13 @@ install() {
|
||||
mkdir -m 0755 -p "$initdir/var/lib/nfs"
|
||||
mkdir -m 0755 -p "$initdir/var/lib/nfs/rpc_pipefs"
|
||||
mkdir -m 0770 -p "$initdir/var/lib/rpcbind"
|
||||
- [ -d "/var/lib/nfs/statd/sm" ] && mkdir -m 0755 -p "$initdir/var/lib/nfs/statd/sm"
|
||||
- [ -d "/var/lib/nfs/sm" ] && mkdir -m 0755 -p "$initdir/var/lib/nfs/sm"
|
||||
+ [ -d "$dracutsysrootdir/var/lib/nfs/statd/sm" ] \
|
||||
+ && mkdir -m 0700 -p "$initdir/var/lib/nfs/statd" \
|
||||
+ && mkdir -m 0755 -p "$initdir/var/lib/nfs/statd/sm" \
|
||||
+ && chown -R rpcuser:rpcuser "$initdir/var/lib/nfs/statd"
|
||||
+ [ -d "$dracutsysrootdir/var/lib/nfs/sm" ] \
|
||||
+ && mkdir -m 0755 -p "$initdir/var/lib/nfs/sm" \
|
||||
+ && chown -R rpcuser:rpcuser "$initdir/var/lib/nfs/sm"
|
||||
|
||||
# Rather than copy the passwd file in, just set a user for rpcbind
|
||||
# We'll save the state and restart the daemon from the root anyway
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 4a6806efae05b453bb9b93efe961fb1033bb562b Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Sat, 17 Aug 2024 00:39:17 +0200
|
||||
Subject: [PATCH 22/32] fix(resume): do not include resume if swap is on
|
||||
netdevice
|
||||
|
||||
Additional fix, restoring previous behavior identical to RHEL-9.
|
||||
|
||||
rhel-only
|
||||
|
||||
Resolves: RHEL-53350
|
||||
---
|
||||
modules.d/95resume/module-setup.sh | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
|
||||
index c0f04a6c..785f681a 100755
|
||||
--- a/modules.d/95resume/module-setup.sh
|
||||
+++ b/modules.d/95resume/module-setup.sh
|
||||
@@ -4,9 +4,6 @@
|
||||
# shellcheck disable=SC2317
|
||||
check() {
|
||||
|
||||
- # Always include resume module
|
||||
- return 0
|
||||
-
|
||||
swap_on_netdevice() {
|
||||
local _dev
|
||||
for _dev in "${swap_devs[@]}"; do
|
||||
@@ -23,6 +20,9 @@ check() {
|
||||
# hibernation support requested on kernel command line
|
||||
return 0
|
||||
else
|
||||
+ # always include resume module when not on netdevice
|
||||
+ return 0
|
||||
+
|
||||
# resume= not set on kernel command line
|
||||
if [[ -f /sys/power/resume ]]; then
|
||||
if [[ "$(< /sys/power/resume)" == "0:0" ]]; then
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 2f3c9cb56cc7ccdccbd8f8056b21d39fa736da1e Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Sat, 17 Aug 2024 01:43:50 +0200
|
||||
Subject: [PATCH 23/32] feat(dracut-init.sh): give --force-add precedence over
|
||||
--omit
|
||||
|
||||
This gives precedence of force_add_dracutmodules to omit_dracutmodules,
|
||||
as there is not other way to override omit_dracutmodules list, and users
|
||||
would expect it to be overriden from command line.
|
||||
|
||||
Ref: https://github.com/dracut-ng/dracut-ng/pull/569
|
||||
|
||||
This way, `--add` retains it behaviour, and `--force-add` gains additional
|
||||
functionality in non-hostonly mode. The module may still be skipped
|
||||
if the module check returns 1, but it should throw error (as I'd expect
|
||||
for `--force-add`).
|
||||
|
||||
(cherry picked commit a669346f48cbb3278c51ba5e95b1b91f9bfdee0a from PR#584)
|
||||
|
||||
Resolves: RHEL-53791
|
||||
---
|
||||
dracut-init.sh | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dracut-init.sh b/dracut-init.sh
|
||||
index 746362d1..3917bb0d 100755
|
||||
--- a/dracut-init.sh
|
||||
+++ b/dracut-init.sh
|
||||
@@ -969,8 +969,10 @@ check_module() {
|
||||
[[ $2 ]] || mods_checked_as_dep+=" $_mod "
|
||||
|
||||
if [[ " $omit_dracutmodules " == *\ $_mod\ * ]]; then
|
||||
- ddebug "Module '$_mod' will not be installed, because it's in the list to be omitted!"
|
||||
- return 1
|
||||
+ if [[ " $force_add_dracutmodules " != *\ $_mod\ * ]]; then
|
||||
+ ddebug "Module '$_mod' will not be installed, because it's in the list to be omitted!"
|
||||
+ return 1
|
||||
+ fi
|
||||
fi
|
||||
|
||||
if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ $_mod\ * ]]; then
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 226de396c97d483380bd0604bfe2ff7f6a2ef48c Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Fri, 16 Aug 2024 20:40:15 +0200
|
||||
Subject: [PATCH 24/32] feat(lsinitrd.sh): look for initrd in /usr/lib/modules/
|
||||
|
||||
Introduce new path for lsinitrd.sh to look into:
|
||||
|
||||
/usr/lib/modules/$kver/initramfs.img
|
||||
|
||||
Which is valid on all ostree-based systems, and also other image based
|
||||
systems with pre-generated initramfs.
|
||||
|
||||
Ref: https://issues.redhat.com/browse/RHEL-35890
|
||||
(cherry picked from commit 22ae6ecaf9ecdb9db3e79aa9a72d527e7436c282)
|
||||
|
||||
Resolves: RHEL-54650
|
||||
---
|
||||
lsinitrd.sh | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/lsinitrd.sh b/lsinitrd.sh
|
||||
index 6799f938..35314b78 100755
|
||||
--- a/lsinitrd.sh
|
||||
+++ b/lsinitrd.sh
|
||||
@@ -125,6 +125,10 @@ find_initrd_for_kernel_version() {
|
||||
echo "/lib/modules/${kernel_version}/initrd"
|
||||
elif [[ -f /lib/modules/${kernel_version}/initramfs.img ]]; then
|
||||
echo "/lib/modules/${kernel_version}/initramfs.img"
|
||||
+ elif [[ -f /usr/lib/modules/${kernel_version}/initrd ]]; then
|
||||
+ echo "/usr/lib/modules/${kernel_version}/initrd"
|
||||
+ elif [[ -f /usr/lib/modules/${kernel_version}/initramfs.img ]]; then
|
||||
+ echo "/usr/lib/modules/${kernel_version}/initramfs.img"
|
||||
elif [[ -f /boot/initramfs-${kernel_version}.img ]]; then
|
||||
echo "/boot/initramfs-${kernel_version}.img"
|
||||
else
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 3e25517a0d1f0054e69409eb89484879251f47a3 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Mon, 19 Aug 2024 09:41:27 +0200
|
||||
Subject: [PATCH 25/32] feat(fips): include fips module unconditionally
|
||||
|
||||
rhel-only
|
||||
|
||||
Resolves: RHEL-39404
|
||||
---
|
||||
modules.d/01fips/module-setup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
|
||||
index 1e0c9d09..005f0b6d 100755
|
||||
--- a/modules.d/01fips/module-setup.sh
|
||||
+++ b/modules.d/01fips/module-setup.sh
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# called by dracut
|
||||
check() {
|
||||
- return 255
|
||||
+ return 0
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,40 +0,0 @@
|
||||
From 4dfd0c8de071f074c813a87cc06335fa43e93a9d Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 8 Aug 2024 00:55:03 +0200
|
||||
Subject: [PATCH 26/32] fix(nfs): include also entries from
|
||||
/usr/lib/{passwd,group}
|
||||
|
||||
as those paths are used by bootc instead of the /etc ones.
|
||||
|
||||
(cherry picked from commit 45cdf3c4f24f77f04b264a7747f115d1031b2e67)
|
||||
|
||||
Resolves: RHEL-53431
|
||||
---
|
||||
modules.d/95nfs/module-setup.sh | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
|
||||
index fbaeeb00..df2d0e05 100755
|
||||
--- a/modules.d/95nfs/module-setup.sh
|
||||
+++ b/modules.d/95nfs/module-setup.sh
|
||||
@@ -130,8 +130,15 @@ install() {
|
||||
|
||||
# Rather than copy the passwd file in, just set a user for rpcbind
|
||||
# We'll save the state and restart the daemon from the root anyway
|
||||
- grep -E '^(nfsnobody|_rpc|rpc|rpcuser):' "$dracutsysrootdir"/etc/passwd >> "$initdir/etc/passwd"
|
||||
- grep -E '^nogroup:|^rpc:|^nobody:' "$dracutsysrootdir"/etc/group >> "$initdir/etc/group"
|
||||
+ local _confdir
|
||||
+ for _confdir in etc usr/lib; do
|
||||
+
|
||||
+ grep -sE '^(nfsnobody|_rpc|rpc|rpcuser):' "${dracutsysrootdir}/${_confdir}/passwd" \
|
||||
+ >> "$initdir/${_confdir}/passwd"
|
||||
+
|
||||
+ grep -sE '^(nogroup|rpc|nobody):' "${dracutsysrootdir}/${_confdir}/group" \
|
||||
+ >> "$initdir/${_confdir}/group"
|
||||
+ done
|
||||
|
||||
dracut_need_initqueue
|
||||
}
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,73 +0,0 @@
|
||||
From f26573ec709c7703863e8affdec990b100c25598 Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Mon, 26 Aug 2024 15:58:54 +0200
|
||||
Subject: [PATCH 27/32] revert(dracut-init.sh): add module to mods_to_load
|
||||
before checking dependencies
|
||||
|
||||
Commit d0f8fde5 ("fix(dracut-init.sh): add module to mods_to_load before
|
||||
checking dependencies") introduced a regression. When dracut is in
|
||||
"auto" mode, i.e. '--modules auto' or no --modules is provided, the
|
||||
expected behavior is that all modules that return 0 in their check()
|
||||
function are included. Except for the ones where the dependencies cannot
|
||||
be installed. The commit however, caused those modules to be included
|
||||
without their dependencies. Thus revert the commit.
|
||||
|
||||
This reverts commit d0f8fde5668cfd7fda1d15824e268b4949b4fd04.
|
||||
|
||||
Reported-by: Jo Zzsi <jozzsicsataban@gmail.com>
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
|
||||
(cherry picked from commit bddbb11bbbfc405317a6fbd53bb189b575d46da2)
|
||||
|
||||
Resolves: RHEL-43460
|
||||
---
|
||||
dracut-init.sh | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dracut-init.sh b/dracut-init.sh
|
||||
index 3917bb0d..644825c9 100755
|
||||
--- a/dracut-init.sh
|
||||
+++ b/dracut-init.sh
|
||||
@@ -924,9 +924,6 @@ check_mount() {
|
||||
fi
|
||||
fi
|
||||
|
||||
- [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
- || mods_to_load+=" $_mod "
|
||||
-
|
||||
for _moddep in $(module_depends "$_mod" "$_moddir"); do
|
||||
# handle deps as if they were manually added
|
||||
[[ " $dracutmodules " == *\ $_mod\ * ]] \
|
||||
@@ -945,6 +942,9 @@ check_mount() {
|
||||
fi
|
||||
done
|
||||
|
||||
+ [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
+ || mods_to_load+=" $_mod "
|
||||
+
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -1001,9 +1001,6 @@ check_module() {
|
||||
fi
|
||||
fi
|
||||
|
||||
- [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
- || mods_to_load+=" $_mod "
|
||||
-
|
||||
for _moddep in $(module_depends "$_mod" "$_moddir"); do
|
||||
# handle deps as if they were manually added
|
||||
[[ " $dracutmodules " == *\ $_mod\ * ]] \
|
||||
@@ -1022,6 +1019,9 @@ check_module() {
|
||||
fi
|
||||
done
|
||||
|
||||
+ [[ " $mods_to_load " == *\ $_mod\ * ]] \
|
||||
+ || mods_to_load+=" $_mod "
|
||||
+
|
||||
return 0
|
||||
}
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,313 +0,0 @@
|
||||
From 043aef3a9dee83818d67697fb6ad203dc3e87c39 Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Mon, 26 Aug 2024 15:23:41 +0200
|
||||
Subject: [PATCH 28/32] fix(squash): remove cyclic dependency
|
||||
|
||||
With commit d0f8fde5 ("fix(dracut-init.sh): add module to mods_to_load
|
||||
before checking dependencies") reverted 99squash can no longer rely on
|
||||
dracut_module_included working as expected in its check() and depends()
|
||||
function. Solve this problem by breaking up the cyclic dependency
|
||||
between 99squash and 95squash-{squashfs,erofs} as the commit was
|
||||
originally introduced to allow this cyclic dependency.
|
||||
|
||||
This requires to move all code shared by 95squash-{squashfs,erofs} from
|
||||
99squash to a new 99squash-lib module and update the dependencies
|
||||
accordingly. In addition update the checks in dracut.sh to check for
|
||||
99squash-lib as 99squash is no longer guaranteed to be included.
|
||||
Finally make sure that 99squash-lib isn't included without a back
|
||||
end.
|
||||
|
||||
While at it improve and align the error messages in 99squash and
|
||||
99squash-lib.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
(cherry picked from commit d5783635950e38cccf334e7163db79f280650fa2)
|
||||
|
||||
Resolves: RHEL-43460
|
||||
---
|
||||
dracut.sh | 6 +-
|
||||
modules.d/95squash-erofs/module-setup.sh | 2 +-
|
||||
modules.d/95squash-squashfs/module-setup.sh | 2 +-
|
||||
.../{99squash => 99squash-lib}/init-squash.sh | 0
|
||||
modules.d/99squash-lib/module-setup.sh | 101 ++++++++++++++++++
|
||||
modules.d/99squash/module-setup.sh | 80 +-------------
|
||||
6 files changed, 110 insertions(+), 81 deletions(-)
|
||||
rename modules.d/{99squash => 99squash-lib}/init-squash.sh (100%)
|
||||
create mode 100755 modules.d/99squash-lib/module-setup.sh
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index 4d2e3df2..db6713a9 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -1894,7 +1894,7 @@ if [[ $kernel_only != yes ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
-dracut_module_included "squash" && mkdir -p "$squashdir"
|
||||
+dracut_module_included "squash-lib" && mkdir -p "$squashdir"
|
||||
|
||||
_isize=0 #initramfs size
|
||||
modules_loaded=" "
|
||||
@@ -2264,9 +2264,9 @@ if [[ $do_strip == yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then
|
||||
dinfo "*** Stripping files done ***"
|
||||
fi
|
||||
|
||||
-if dracut_module_included "squash"; then
|
||||
+if dracut_module_included "squash-lib"; then
|
||||
dinfo "*** Squashing the files inside the initramfs ***"
|
||||
- DRACUT_SQUASH_POST_INST=1 module_install "squash"
|
||||
+ DRACUT_SQUASH_POST_INST=1 module_install "squash-lib"
|
||||
rm -rf "$squashdir"
|
||||
dinfo "*** Squashing the files inside the initramfs done ***"
|
||||
|
||||
diff --git a/modules.d/95squash-erofs/module-setup.sh b/modules.d/95squash-erofs/module-setup.sh
|
||||
index d763a902..a6e7ad0b 100755
|
||||
--- a/modules.d/95squash-erofs/module-setup.sh
|
||||
+++ b/modules.d/95squash-erofs/module-setup.sh
|
||||
@@ -8,7 +8,7 @@ check() {
|
||||
}
|
||||
|
||||
depends() {
|
||||
- echo "squash"
|
||||
+ echo "squash-lib"
|
||||
return 0
|
||||
}
|
||||
|
||||
diff --git a/modules.d/95squash-squashfs/module-setup.sh b/modules.d/95squash-squashfs/module-setup.sh
|
||||
index 83973700..d15586da 100755
|
||||
--- a/modules.d/95squash-squashfs/module-setup.sh
|
||||
+++ b/modules.d/95squash-squashfs/module-setup.sh
|
||||
@@ -8,7 +8,7 @@ check() {
|
||||
}
|
||||
|
||||
depends() {
|
||||
- echo "squash"
|
||||
+ echo "squash-lib"
|
||||
return 0
|
||||
}
|
||||
|
||||
diff --git a/modules.d/99squash/init-squash.sh b/modules.d/99squash-lib/init-squash.sh
|
||||
similarity index 100%
|
||||
rename from modules.d/99squash/init-squash.sh
|
||||
rename to modules.d/99squash-lib/init-squash.sh
|
||||
diff --git a/modules.d/99squash-lib/module-setup.sh b/modules.d/99squash-lib/module-setup.sh
|
||||
new file mode 100755
|
||||
index 00000000..6a0b6f85
|
||||
--- /dev/null
|
||||
+++ b/modules.d/99squash-lib/module-setup.sh
|
||||
@@ -0,0 +1,101 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+check() {
|
||||
+ require_kernel_modules loop overlay || return 1
|
||||
+
|
||||
+ return 255
|
||||
+}
|
||||
+
|
||||
+depends() {
|
||||
+ echo "systemd-initrd"
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+squash_get_handler() {
|
||||
+ local _module _handler
|
||||
+ local -a _modules=(squash-squashfs squash-erofs)
|
||||
+
|
||||
+ for _module in "${_modules[@]}"; do
|
||||
+ if dracut_module_included "$_module"; then
|
||||
+ _handler="$_module"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ if [[ -z $_handler ]]; then
|
||||
+ dfatal "Cannot include squash-lib directly. It requires one of: ${_modules[*]}"
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ echo "$_handler"
|
||||
+}
|
||||
+
|
||||
+squash_install() {
|
||||
+ local _busybox _dir
|
||||
+
|
||||
+ # verify that there is a valid handler before doing anything
|
||||
+ squash_get_handler > /dev/null || return 1
|
||||
+
|
||||
+ _busybox=$(find_binary busybox)
|
||||
+
|
||||
+ # Create mount points for squash loader and basic directories
|
||||
+ mkdir -p "$initdir"/squash
|
||||
+ for _dir in squash usr/bin usr/sbin usr/lib; do
|
||||
+ mkdir -p "$squashdir/$_dir"
|
||||
+ [[ $_dir == usr/* ]] && ln_r "/$_dir" "${_dir#usr}"
|
||||
+ done
|
||||
+
|
||||
+ # Install required modules and binaries for the squash image init script.
|
||||
+ if [[ $_busybox ]]; then
|
||||
+ module_install "busybox"
|
||||
+ else
|
||||
+ DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root grep umount
|
||||
+
|
||||
+ # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so
|
||||
+ inst_libdir_file -o "libgcc_s.so*"
|
||||
+
|
||||
+ # FIPS workaround for Fedora/RHEL: libcrypto needs libssl when FIPS is enabled
|
||||
+ [[ $DRACUT_FIPS_MODE ]] && inst_libdir_file -o "libssl.so*"
|
||||
+ fi
|
||||
+
|
||||
+ hostonly="" instmods "loop" "overlay"
|
||||
+ dracut_kernel_post
|
||||
+
|
||||
+ # Install squash image init script.
|
||||
+ inst_simple "$moddir"/init-squash.sh /init
|
||||
+
|
||||
+ # make sure that library links are correct and up to date for squash loader
|
||||
+ build_ld_cache
|
||||
+}
|
||||
+
|
||||
+squash_installpost() {
|
||||
+ local _file _handler
|
||||
+
|
||||
+ _handler=$(squash_get_handler)
|
||||
+ [[ -n $_handler ]] || return 1
|
||||
+
|
||||
+ DRACUT_SQUASH_POST_INST=1 module_install "$_handler"
|
||||
+
|
||||
+ # Rescue the dracut spec files so dracut rebuild and lsinitrd can work
|
||||
+ for _file in "$initdir"/usr/lib/dracut/*; do
|
||||
+ [[ -f $_file ]] || continue
|
||||
+ DRACUT_RESOLVE_DEPS=1 dstdir=$squashdir inst "$_file" "${_file#"$initdir"}"
|
||||
+ done
|
||||
+
|
||||
+ # Remove everything that got squashed into the image
|
||||
+ for _file in "$initdir"/*; do
|
||||
+ [[ $_file == "$squashdir" ]] && continue
|
||||
+ rm -rf "$_file"
|
||||
+ done
|
||||
+ mv "$squashdir"/* "$initdir"
|
||||
+}
|
||||
+
|
||||
+install() {
|
||||
+
|
||||
+ if [[ $DRACUT_SQUASH_POST_INST ]]; then
|
||||
+ squash_installpost
|
||||
+ else
|
||||
+ dstdir="$squashdir" squash_install
|
||||
+ fi
|
||||
+}
|
||||
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
|
||||
index 56f70774..c48ba2c5 100755
|
||||
--- a/modules.d/99squash/module-setup.sh
|
||||
+++ b/modules.d/99squash/module-setup.sh
|
||||
@@ -1,102 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
check() {
|
||||
- require_kernel_modules loop overlay || return 1
|
||||
-
|
||||
return 255
|
||||
}
|
||||
|
||||
depends() {
|
||||
- local _handler
|
||||
-
|
||||
- _handler=$(squash_get_handler) || return 1
|
||||
-
|
||||
- echo "systemd-initrd $_handler"
|
||||
- return 0
|
||||
-}
|
||||
-
|
||||
-squash_get_handler() {
|
||||
local _module _handler
|
||||
+ local -a _modules=(squash-squashfs squash-erofs)
|
||||
|
||||
- for _module in squash-squashfs squash-erofs; do
|
||||
+ for _module in "${_modules[@]}"; do
|
||||
if dracut_module_included "$_module"; then
|
||||
_handler="$_module"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
- if [ -z "$_handler" ]; then
|
||||
+ if [[ -z $_handler ]]; then
|
||||
if check_module "squash-squashfs"; then
|
||||
_handler="squash-squashfs"
|
||||
elif check_module "squash-erofs"; then
|
||||
_handler="squash-erofs"
|
||||
else
|
||||
- dfatal "No valid handler for found"
|
||||
+ dfatal "Cannot find valid handler for squash. It requires one of: ${_modules[*]}"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "$_handler"
|
||||
}
|
||||
-
|
||||
-squash_install() {
|
||||
- local _busybox _dir
|
||||
- _busybox=$(find_binary busybox)
|
||||
-
|
||||
- # Create mount points for squash loader and basic directories
|
||||
- mkdir -p "$initdir"/squash
|
||||
- for _dir in squash usr/bin usr/sbin usr/lib; do
|
||||
- mkdir -p "$squashdir/$_dir"
|
||||
- [[ $_dir == usr/* ]] && ln_r "/$_dir" "${_dir#usr}"
|
||||
- done
|
||||
-
|
||||
- # Install required modules and binaries for the squash image init script.
|
||||
- if [[ $_busybox ]]; then
|
||||
- module_install "busybox"
|
||||
- else
|
||||
- DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root grep umount
|
||||
-
|
||||
- # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so
|
||||
- inst_libdir_file -o "libgcc_s.so*"
|
||||
-
|
||||
- # FIPS workaround for Fedora/RHEL: libcrypto needs libssl when FIPS is enabled
|
||||
- [[ $DRACUT_FIPS_MODE ]] && inst_libdir_file -o "libssl.so*"
|
||||
- fi
|
||||
-
|
||||
- hostonly="" instmods "loop" "overlay"
|
||||
- dracut_kernel_post
|
||||
-
|
||||
- # Install squash image init script.
|
||||
- inst_simple "$moddir"/init-squash.sh /init
|
||||
-
|
||||
- # make sure that library links are correct and up to date for squash loader
|
||||
- build_ld_cache
|
||||
-}
|
||||
-
|
||||
-squash_installpost() {
|
||||
- local _file
|
||||
-
|
||||
- DRACUT_SQUASH_POST_INST=1 module_install "$(squash_get_handler)"
|
||||
-
|
||||
- # Rescue the dracut spec files so dracut rebuild and lsinitrd can work
|
||||
- for _file in "$initdir"/usr/lib/dracut/*; do
|
||||
- [[ -f $_file ]] || continue
|
||||
- DRACUT_RESOLVE_DEPS=1 dstdir=$squashdir inst "$_file" "${_file#"$initdir"}"
|
||||
- done
|
||||
-
|
||||
- # Remove everything that got squashed into the image
|
||||
- for _file in "$initdir"/*; do
|
||||
- [[ $_file == "$squashdir" ]] && continue
|
||||
- rm -rf "$_file"
|
||||
- done
|
||||
- mv "$squashdir"/* "$initdir"
|
||||
-}
|
||||
-
|
||||
-install() {
|
||||
-
|
||||
- if [[ $DRACUT_SQUASH_POST_INST ]]; then
|
||||
- squash_installpost
|
||||
- else
|
||||
- dstdir="$squashdir" squash_install
|
||||
- fi
|
||||
-}
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 2ce3f3ff72e608d7a3d42b566f9772393e313df4 Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Tue, 27 Aug 2024 12:14:40 +0200
|
||||
Subject: [PATCH 29/32] fix(dracut.sh): exit when installing the squash loader
|
||||
fails
|
||||
|
||||
The postinstall phase in 99squash-lib can fail, e.g. when 99squash-lib
|
||||
is added without one of the required back ends. Usually this isn't fatal
|
||||
and simply results in a "normal" initrd, i.e. one without squashed
|
||||
image, being created. Nevertheless, a user needs to explicitly add one
|
||||
of the required modules for the code to be triggered. So it is better
|
||||
to fail with an error rather than giving the user something he didn't
|
||||
ask for.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
(cherry picked from commit 8909d892a7a055ae95be45416e6fbf1b833ff426)
|
||||
|
||||
Resolves: RHEL-43460
|
||||
---
|
||||
dracut.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index db6713a9..c5ef61ad 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -2266,7 +2266,7 @@ fi
|
||||
|
||||
if dracut_module_included "squash-lib"; then
|
||||
dinfo "*** Squashing the files inside the initramfs ***"
|
||||
- DRACUT_SQUASH_POST_INST=1 module_install "squash-lib"
|
||||
+ DRACUT_SQUASH_POST_INST=1 module_install "squash-lib" || exit 1
|
||||
rm -rf "$squashdir"
|
||||
dinfo "*** Squashing the files inside the initramfs done ***"
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,40 +0,0 @@
|
||||
From e391c64afd187a81861301c949db5ffd1f9a3e5d Mon Sep 17 00:00:00 2001
|
||||
From: Philipp Rudo <prudo@redhat.com>
|
||||
Date: Mon, 26 Aug 2024 15:29:01 +0200
|
||||
Subject: [PATCH 30/32] fix(squash-lib): harden against empty $initdir
|
||||
|
||||
The postinstall phase of 99squash-lib has the potential to delete the
|
||||
whole rootfs if $initdir is empty. This should(tm) never happen.
|
||||
Nevertheless as the consequences are so devastating it is better to
|
||||
double check.
|
||||
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
(cherry picked from commit 6b089c70761c81a7b82a1bfba5f2c1faef7e972f)
|
||||
|
||||
Resolves: RHEL-43460
|
||||
---
|
||||
modules.d/99squash-lib/module-setup.sh | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/modules.d/99squash-lib/module-setup.sh b/modules.d/99squash-lib/module-setup.sh
|
||||
index 6a0b6f85..be3d3dc0 100755
|
||||
--- a/modules.d/99squash-lib/module-setup.sh
|
||||
+++ b/modules.d/99squash-lib/module-setup.sh
|
||||
@@ -72,6 +72,14 @@ squash_install() {
|
||||
squash_installpost() {
|
||||
local _file _handler
|
||||
|
||||
+ # this shouldn't happen but...
|
||||
+ # ...better safe than deleting your rootfs
|
||||
+ if [[ -z $initdir ]]; then
|
||||
+ #shellcheck disable=SC2016
|
||||
+ dfatal '$initdir not set. Something went terribly wrong.'
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
_handler=$(squash_get_handler)
|
||||
[[ -n $_handler ]] || return 1
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,158 +0,0 @@
|
||||
From 626280f62a8f05e68e70b8db81eeffe196642bf3 Mon Sep 17 00:00:00 2001
|
||||
From: Clemens Lang <cllang@redhat.com>
|
||||
Date: Thu, 8 Aug 2024 16:43:31 +0200
|
||||
Subject: [PATCH 31/32] feat(fips-crypto-policies): make c-p follow FIPS mode
|
||||
automatically
|
||||
|
||||
For a system that uses crypto-policies to be switched to FIPS mode
|
||||
correctly, it needs to be
|
||||
|
||||
- booted with `fips=1` on the kernel command line
|
||||
- switched to the FIPS crypto-policy (or a policy derived from it)
|
||||
- have the fips dracut module enabled
|
||||
|
||||
On older systems, there were additional steps, for example, creating
|
||||
`/etc/system-fips`.
|
||||
|
||||
We have repeatedly seen inconsistencies between those different toggles,
|
||||
either because the user space tooling to switch between those does not
|
||||
(for reliability, maintainability, and compliance reasons) undo some of
|
||||
the steps it does when disabling FIPS mode, or because other
|
||||
installation methods (bootc, containers, image builder) independently do
|
||||
some of those steps. Eventually, all of these ended with user confusion.
|
||||
|
||||
We can avoid this situation by eliminating the difference by treating
|
||||
the `fips=1` kernel command line switch as a single source of truth, and
|
||||
making all others follow automatically. This module provides this for
|
||||
crypto-policies, by adding bind-mounts before pivot if the system has
|
||||
not already been switched to a FIPS-based crypto-policy.
|
||||
|
||||
This requires some support from the crypto-policies package (because it
|
||||
needs to deal with the bind mounts when a user calls
|
||||
`update-crypto-policies --set`), so make it a no-op unless
|
||||
|
||||
- `fips=1` is on the kernel command line
|
||||
- crypto-policies is installed
|
||||
- crypto-policies supports the bind-mounts (indicated by the presence
|
||||
of the `default-fips-config` file)
|
||||
- the policy isn't already FIPS
|
||||
|
||||
These checks should make this safe to add to the initramfs on all
|
||||
current systems.
|
||||
|
||||
The bind-mounts also need to happen in the initramfs already, because
|
||||
systemd links against OpenSSL, and doing them later means that systemd
|
||||
will start with an OpenSSL configuration that isn't tailored for FIPS.
|
||||
|
||||
See also [1], which adds the user space support to crypto-policies,
|
||||
along with a systemd service that does the same steps in case dracut
|
||||
hasn't already done them (which is useful for environments that don't
|
||||
use an initramfs like containers).
|
||||
|
||||
[1]: https://gitlab.com/redhat-crypto/fedora-crypto-policies/-/merge_requests/191
|
||||
|
||||
Signed-off-by: Clemens Lang <cllang@redhat.com>
|
||||
(cherry picked from commit bd3c1e1cc2f656f7ee4ff47e00ca716d52a86a3d)
|
||||
|
||||
Resolves: RHEL-59678
|
||||
---
|
||||
.../fips-crypto-policies.sh | 52 +++++++++++++++++++
|
||||
.../01fips-crypto-policies/module-setup.sh | 27 ++++++++++
|
||||
2 files changed, 79 insertions(+)
|
||||
create mode 100755 modules.d/01fips-crypto-policies/fips-crypto-policies.sh
|
||||
create mode 100755 modules.d/01fips-crypto-policies/module-setup.sh
|
||||
|
||||
diff --git a/modules.d/01fips-crypto-policies/fips-crypto-policies.sh b/modules.d/01fips-crypto-policies/fips-crypto-policies.sh
|
||||
new file mode 100755
|
||||
index 00000000..ff298298
|
||||
--- /dev/null
|
||||
+++ b/modules.d/01fips-crypto-policies/fips-crypto-policies.sh
|
||||
@@ -0,0 +1,52 @@
|
||||
+#!/usr/bin/sh
|
||||
+
|
||||
+type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||
+
|
||||
+if ! fipsmode=$(getarg fips) || [ "$fipsmode" = "0" ] || [ -z "$fipsmode" ]; then
|
||||
+ # Do nothing if not in FIPS mode
|
||||
+ return 0
|
||||
+fi
|
||||
+
|
||||
+policyfile=/etc/crypto-policies/config
|
||||
+fipspolicyfile=/usr/share/crypto-policies/default-fips-config
|
||||
+backends=/etc/crypto-policies/back-ends
|
||||
+fipsbackends=/usr/share/crypto-policies/back-ends/FIPS
|
||||
+
|
||||
+# When in FIPS mode, check the active crypto policy by reading the
|
||||
+# $root/etc/crypto-policies/config file. If it is not "FIPS", or does not start
|
||||
+# with "FIPS:", automatically switch to the FIPS policy by creating
|
||||
+# bind-mounts.
|
||||
+
|
||||
+if ! [ -r "${NEWROOT}${policyfile}" ]; then
|
||||
+ # No crypto-policies configured, possibly not a system that uses
|
||||
+ # crypto-policies?
|
||||
+ return 0
|
||||
+fi
|
||||
+
|
||||
+if ! [ -f "${NEWROOT}${fipspolicyfile}" ]; then
|
||||
+ # crypto-policies is too old to deal with automatic bind-mounting of the
|
||||
+ # FIPS policy over the normal policy, do not attempt to do the bind-mount.
|
||||
+ return 0
|
||||
+fi
|
||||
+
|
||||
+policy=$(cat "${NEWROOT}${policyfile}")
|
||||
+
|
||||
+# Remove the largest suffix pattern matching ":*" from the string (i.e., the
|
||||
+# complete list of active policy modules), then check for FIPS. This is part of
|
||||
+# POSIX sh (https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02).
|
||||
+if [ "${policy%%:*}" = "FIPS" ]; then
|
||||
+ return 0
|
||||
+fi
|
||||
+
|
||||
+# Current crypto policy is not FIPS or FIPS-based, but the system is in FIPS
|
||||
+# mode; this is an inconsistent configuration. Automatically bind-mount a FIPS
|
||||
+# configuration over this.
|
||||
+if ! mount -o bind,ro "${NEWROOT}${fipsbackends}" "${NEWROOT}${backends}"; then
|
||||
+ warn "Failed to bind-mount FIPS policy over ${backends} (the system is in FIPS mode, but the crypto-policy is not)."
|
||||
+ # If this bind-mount failed, don't attempt to do the other one to avoid
|
||||
+ # a system that seems to be in FIPS crypto-policy but actually is not.
|
||||
+ return 0
|
||||
+fi
|
||||
+
|
||||
+mount -o bind,ro "${NEWROOT}${fipspolicyfile}" "${NEWROOT}${policyfile}" \
|
||||
+ || warn "Failed to bind-mount FIPS crypto-policy state file over ${policyfile} (the system is in FIPS mode, but the crypto-policy is not)."
|
||||
diff --git a/modules.d/01fips-crypto-policies/module-setup.sh b/modules.d/01fips-crypto-policies/module-setup.sh
|
||||
new file mode 100755
|
||||
index 00000000..ee00452e
|
||||
--- /dev/null
|
||||
+++ b/modules.d/01fips-crypto-policies/module-setup.sh
|
||||
@@ -0,0 +1,27 @@
|
||||
+#!/usr/bin/bash
|
||||
+
|
||||
+# called by dracut
|
||||
+check() {
|
||||
+ # only enable on systems that use crypto-policies
|
||||
+ [ -d "$dracutsysrootdir/etc/crypto-policies" ] && return 0
|
||||
+
|
||||
+ # include when something else depends on it or it is explicitly requested
|
||||
+ return 255
|
||||
+}
|
||||
+
|
||||
+# called by dracut
|
||||
+depends() {
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+# called by dracut
|
||||
+installkernel() {
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+# called by dracut
|
||||
+install() {
|
||||
+ inst_hook pre-pivot 01 "$moddir/fips-crypto-policies.sh"
|
||||
+
|
||||
+ inst_multiple mount
|
||||
+}
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,34 +0,0 @@
|
||||
From cd5dbe004652d88b5d73418cba1e45c54ff9fd12 Mon Sep 17 00:00:00 2001
|
||||
From: Jo Zzsi <jozzsicsataban@gmail.com>
|
||||
Date: Thu, 5 Sep 2024 09:09:36 -0400
|
||||
Subject: [PATCH 32/32] fix(fips-crypto-policies): make it depend on fips
|
||||
dracut module
|
||||
|
||||
(cherry picked from commit a2096dafdbfc88eed91ce34b1f4d27e7eb7ca839)
|
||||
|
||||
Conflicts:
|
||||
modules.d/01fips-crypto-policies/module-setup.sh
|
||||
Due to upstream e6117b92fa0108dbaf9ea3ac0ec8f5a02487c812, which
|
||||
was not cherry-picked. Resolved the conflict by keeping the
|
||||
functions (i.e., undoing the cleanup of the upstream commit).
|
||||
|
||||
Resolves: RHEL-59678
|
||||
---
|
||||
modules.d/01fips-crypto-policies/module-setup.sh | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/modules.d/01fips-crypto-policies/module-setup.sh b/modules.d/01fips-crypto-policies/module-setup.sh
|
||||
index ee00452e..140eae00 100755
|
||||
--- a/modules.d/01fips-crypto-policies/module-setup.sh
|
||||
+++ b/modules.d/01fips-crypto-policies/module-setup.sh
|
||||
@@ -11,6 +11,7 @@ check() {
|
||||
|
||||
# called by dracut
|
||||
depends() {
|
||||
+ echo fips
|
||||
return 0
|
||||
}
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
53
SOURCES/0001.patch
Normal file
53
SOURCES/0001.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From 3cb0f01a1e8a05dd4c6412907f5e9a398b2ace2c Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Fri, 31 Aug 2018 13:06:34 +0200
|
||||
Subject: [PATCH] Revert "use cp --reflink=auto"
|
||||
|
||||
This reverts commit 8cd8820547257299a33b2d1e3ecf7c6241a569b2.
|
||||
Resolves: #1623990
|
||||
---
|
||||
50-dracut.install | 2 +-
|
||||
51-dracut-rescue-postinst.sh | 2 +-
|
||||
51-dracut-rescue.install | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/50-dracut.install b/50-dracut.install
|
||||
index 64e3549f..ec59dcb3 100755
|
||||
--- a/50-dracut.install
|
||||
+++ b/50-dracut.install
|
||||
@@ -25,7 +25,7 @@ case "$COMMAND" in
|
||||
if [[ -f ${INITRD_IMAGE_PREGENERATED} ]]; then
|
||||
# we found an initrd at the same place as the kernel
|
||||
# use this and don't generate a new one
|
||||
- cp --reflink=auto "$INITRD_IMAGE_PREGENERATED" "$BOOT_DIR_ABS/$INITRD" \
|
||||
+ cp "$INITRD_IMAGE_PREGENERATED" "$BOOT_DIR_ABS/$INITRD" \
|
||||
&& chown root:root "$BOOT_DIR_ABS/$INITRD" \
|
||||
&& chmod 0600 "$BOOT_DIR_ABS/$INITRD" \
|
||||
&& exit 0
|
||||
diff --git a/51-dracut-rescue-postinst.sh b/51-dracut-rescue-postinst.sh
|
||||
index 67f5b717..23158552 100755
|
||||
--- a/51-dracut-rescue-postinst.sh
|
||||
+++ b/51-dracut-rescue-postinst.sh
|
||||
@@ -57,7 +57,7 @@ if [[ ! -f $INITRDFILE ]]; then
|
||||
fi
|
||||
|
||||
if [[ ! -f $NEW_KERNEL_IMAGE ]]; then
|
||||
- cp --reflink=auto "$KERNEL_IMAGE" "$NEW_KERNEL_IMAGE"
|
||||
+ cp "$KERNEL_IMAGE" "$NEW_KERNEL_IMAGE"
|
||||
((ret+=$?))
|
||||
fi
|
||||
|
||||
diff --git a/51-dracut-rescue.install b/51-dracut-rescue.install
|
||||
index 6ddafdb6..426ddee5 100755
|
||||
--- a/51-dracut-rescue.install
|
||||
+++ b/51-dracut-rescue.install
|
||||
@@ -93,7 +93,7 @@ case "$COMMAND" in
|
||||
|
||||
[[ -d "$BOOT_DIR_ABS" ]] || mkdir -p "$BOOT_DIR_ABS"
|
||||
|
||||
- if ! cp --reflink=auto "$KERNEL_IMAGE" "$BOOT_DIR_ABS/$KERNEL"; then
|
||||
+ if ! cp "$KERNEL_IMAGE" "$BOOT_DIR_ABS/$KERNEL"; then
|
||||
echo "Can't copy '$KERNEL_IMAGE to '$BOOT_DIR_ABS/$KERNEL'!" >&2
|
||||
fi
|
||||
|
||||
|
28
SOURCES/0002.patch
Normal file
28
SOURCES/0002.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 2e5265c80e03112c75888a31c170963e913070ed Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 14 Aug 2018 14:04:02 +0200
|
||||
Subject: [PATCH] spec: return old provides
|
||||
|
||||
---
|
||||
dracut.spec | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/dracut.spec b/dracut.spec
|
||||
index 155868ce..553280c3 100644
|
||||
--- a/dracut.spec
|
||||
+++ b/dracut.spec
|
||||
@@ -65,6 +65,13 @@ Provides: dracut-fips = %{version}-%{release}
|
||||
Obsoletes: dracut-fips-aesni <= 047
|
||||
Provides: dracut-fips-aesni = %{version}-%{release}
|
||||
|
||||
+Obsoletes: dracut-kernel < 005
|
||||
+Provides: dracut-kernel = %{version}-%{release}
|
||||
+
|
||||
+Obsoletes: dracut < 030
|
||||
+Obsoletes: dracut-norescue < 030
|
||||
+Provides: dracut-norescue = %{version}-%{release}
|
||||
+
|
||||
Requires: bash >= 4
|
||||
Requires: coreutils
|
||||
Requires: cpio
|
||||
|
44
SOURCES/0003.patch
Normal file
44
SOURCES/0003.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From 44c9d019d88df05f69f2112aeae34bdbff61cee6 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Sat, 29 Sep 2018 17:14:31 +0800
|
||||
Subject: [PATCH] dracut.spec: Fix error introduced by 70291ed
|
||||
|
||||
70291e0 ('dracut.spec: Add dracut-squash package') introduced a new
|
||||
dracut-squash package, but by accident it overrided some other package
|
||||
spec and the dependency name is wrong. This patch will fix it.
|
||||
---
|
||||
dracut.spec | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dracut.spec b/dracut.spec
|
||||
index 553280c3..de57703c 100644
|
||||
--- a/dracut.spec
|
||||
+++ b/dracut.spec
|
||||
@@ -188,7 +188,7 @@ This package contains tools to assemble the local initrd and host configuration.
|
||||
%package squash
|
||||
Summary: dracut module to build an initramfs with most files in a squashfs image
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
-Requires: squash-tools
|
||||
+Requires: squashfs-tools
|
||||
|
||||
%description squash
|
||||
This package provides a dracut module to build an initramfs, but store most files
|
||||
@@ -459,14 +459,14 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
|
||||
%doc %{_mandir}/man8/dracut-catimages.8*
|
||||
%endif
|
||||
|
||||
-%files squash
|
||||
-%{dracutlibdir}/modules.d/99squash
|
||||
-
|
||||
%{_bindir}/dracut-catimages
|
||||
%dir /boot/dracut
|
||||
%dir /var/lib/dracut
|
||||
%dir /var/lib/dracut/overlay
|
||||
|
||||
+%files squash
|
||||
+%{dracutlibdir}/modules.d/99squash
|
||||
+
|
||||
%files config-generic
|
||||
%{dracutlibdir}/dracut.conf.d/02-generic-image.conf
|
||||
|
||||
|
34
SOURCES/0004.patch
Normal file
34
SOURCES/0004.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 3b9b20d237b3ec939b1bf9dd065c875fee54fe63 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Fri, 12 Oct 2018 13:07:13 +0800
|
||||
Subject: [PATCH] 40network: Don't include 40network by default
|
||||
|
||||
commit 7347391 ('network-legacy: split off from network module')
|
||||
splitted network function to network-legacy and removed check() function
|
||||
of 40network. This caused 40network to be included even if network is
|
||||
not needed.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
|
||||
Cherry-picked from: 83cbc06ab91288e2d931b4f36935bfdb79a99b0e
|
||||
Resolves: #1639088
|
||||
---
|
||||
modules.d/40network/module-setup.sh | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
||||
index 57c0a45e..e8541636 100755
|
||||
--- a/modules.d/40network/module-setup.sh
|
||||
+++ b/modules.d/40network/module-setup.sh
|
||||
@@ -1,5 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
+# called by dracut
|
||||
+check() {
|
||||
+ return 255
|
||||
+}
|
||||
+
|
||||
# called by dracut
|
||||
depends() {
|
||||
echo -n "kernel-network-modules "
|
||||
|
34
SOURCES/0005.patch
Normal file
34
SOURCES/0005.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From b63e0c5040d9881f8c3c0bc09fc21c6588c8a26f Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Thu, 18 Oct 2018 17:05:22 +0800
|
||||
Subject: [PATCH] 99squash: Don't clean up squahfs on isolate
|
||||
|
||||
The only time we need to cleanup squahfs manually is on switch root, to
|
||||
release resource and memory. We've covered that by setting
|
||||
"Conflicts=initrd-switch-root.target" for squash cleanup service.
|
||||
On shutdown systemd will take care of squahfs mounts. But for other
|
||||
isolate, files in initramfs are most likely still required, so don't
|
||||
clean up squahfs. For example, kdump's emergency handler will isolate
|
||||
into its own target, if squahfs is cleaned up it will fail.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
|
||||
Cherry-picked from: b9af0fcd
|
||||
Resolves: #1641423
|
||||
---
|
||||
modules.d/99squash/squash-mnt-clear.service | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/modules.d/99squash/squash-mnt-clear.service b/modules.d/99squash/squash-mnt-clear.service
|
||||
index 8dd17812..f8d5db46 100644
|
||||
--- a/modules.d/99squash/squash-mnt-clear.service
|
||||
+++ b/modules.d/99squash/squash-mnt-clear.service
|
||||
@@ -9,6 +9,7 @@ After=dracut-initqueue.service dracut-pre-pivot.service
|
||||
Before=initrd-cleanup.service
|
||||
ConditionPathExists=/squash/root
|
||||
Conflicts=initrd-switch-root.target
|
||||
+IgnoreOnIsolate=true
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
|
46
SOURCES/0006.patch
Normal file
46
SOURCES/0006.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From 5541b0c46f02f678c698aa523db7a86dde82a947 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Thu, 25 Oct 2018 15:30:36 +0200
|
||||
Subject: [PATCH] dracut.install: call dracut with --force
|
||||
|
||||
The kernel-install is called even if you run make install.
|
||||
Since we don't call dracut with -f a second make install will fail
|
||||
because initrd with same version is already there.
|
||||
This makes kernel developers feel miserable.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1642402
|
||||
|
||||
Cherry-picked from: 48c283a2
|
||||
Resolves: #1642402
|
||||
---
|
||||
50-dracut.install | 2 +-
|
||||
51-dracut-rescue.install | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/50-dracut.install b/50-dracut.install
|
||||
index ec59dcb3..139ff82e 100755
|
||||
--- a/50-dracut.install
|
||||
+++ b/50-dracut.install
|
||||
@@ -49,7 +49,7 @@ case "$COMMAND" in
|
||||
break
|
||||
fi
|
||||
done
|
||||
- dracut ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS/$INITRD" "$KERNEL_VERSION"
|
||||
+ dracut -f ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS/$INITRD" "$KERNEL_VERSION"
|
||||
ret=$?
|
||||
;;
|
||||
remove)
|
||||
diff --git a/51-dracut-rescue.install b/51-dracut-rescue.install
|
||||
index 426ddee5..0580062f 100755
|
||||
--- a/51-dracut-rescue.install
|
||||
+++ b/51-dracut-rescue.install
|
||||
@@ -98,7 +98,7 @@ case "$COMMAND" in
|
||||
fi
|
||||
|
||||
if [[ ! -f "$BOOT_DIR_ABS/$INITRD" ]]; then
|
||||
- dracut --no-hostonly -a "rescue" "$BOOT_DIR_ABS/$INITRD" "$KERNEL_VERSION"
|
||||
+ dracut -f --no-hostonly -a "rescue" "$BOOT_DIR_ABS/$INITRD" "$KERNEL_VERSION"
|
||||
((ret+=$?))
|
||||
fi
|
||||
|
||||
|
41
SOURCES/0007.patch
Normal file
41
SOURCES/0007.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From d8386b5d8fae2e45a27635c48ecab63abba10e39 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Wed, 24 Oct 2018 15:14:03 +0200
|
||||
Subject: [PATCH] Makefile: add srpm target
|
||||
|
||||
---
|
||||
Makefile | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 80623437..503d069f 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -40,7 +40,7 @@ man8pages = dracut.8 \
|
||||
|
||||
manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages)
|
||||
|
||||
-.PHONY: install clean archive rpm testimage test all check AUTHORS doc dracut-version.sh
|
||||
+.PHONY: install clean archive rpm srpm testimage test all check AUTHORS doc dracut-version.sh
|
||||
|
||||
all: dracut-version.sh dracut.pc dracut-install skipcpio/skipcpio
|
||||
|
||||
@@ -216,6 +216,17 @@ rpm: dracut-$(VERSION).tar.xz syncheck
|
||||
--define "_rpmdir $$PWD" -ba dracut.spec; ) && \
|
||||
( mv "$$rpmbuild"/{,$$(arch)/}*.rpm $(DESTDIR).; rm -fr -- "$$rpmbuild"; ls $(DESTDIR)*.rpm )
|
||||
|
||||
+srpm: dracut-$(VERSION).tar.xz syncheck
|
||||
+ rpmbuild=$$(mktemp -d -t rpmbuild-dracut.XXXXXX); src=$$(pwd); \
|
||||
+ cp dracut-$(VERSION).tar.xz "$$rpmbuild"; \
|
||||
+ LC_MESSAGES=C $$src/git2spec.pl $(VERSION) "$$rpmbuild" < dracut.spec > $$rpmbuild/dracut.spec; \
|
||||
+ (cd "$$rpmbuild"; \
|
||||
+ [ -f $$src/lgpl-2.1.txt ] && cp $$src/lgpl-2.1.txt . || wget https://www.gnu.org/licenses/lgpl-2.1.txt; \
|
||||
+ rpmbuild --define "_topdir $$PWD" --define "_sourcedir $$PWD" \
|
||||
+ --define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \
|
||||
+ --define "_rpmdir $$PWD" -bs dracut.spec; ) && \
|
||||
+ ( mv "$$rpmbuild"/*.src.rpm $(DESTDIR).; rm -fr -- "$$rpmbuild"; ls $(DESTDIR)*.rpm )
|
||||
+
|
||||
syncheck:
|
||||
@ret=0;for i in dracut-initramfs-restore.sh modules.d/*/*.sh; do \
|
||||
[ "$${i##*/}" = "module-setup.sh" ] && continue; \
|
||||
|
38
SOURCES/0008.patch
Normal file
38
SOURCES/0008.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 90054e4f1f2f64cb9a2b06b44b5a82b293c387dd Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Thu, 10 Jan 2019 18:08:32 +0100
|
||||
Subject: [PATCH] 95iscsi: decouple iscsi from sysinit.target
|
||||
|
||||
---
|
||||
modules.d/95iscsi/module-setup.sh | 17 +++++++++++++++++
|
||||
1 file changed, 17 insertions(+)
|
||||
|
||||
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
|
||||
index 5c2073bb..ae1924cc 100755
|
||||
--- a/modules.d/95iscsi/module-setup.sh
|
||||
+++ b/modules.d/95iscsi/module-setup.sh
|
||||
@@ -265,6 +265,23 @@ install() {
|
||||
echo "After=dracut-cmdline.service"
|
||||
echo "Before=dracut-initqueue.service"
|
||||
) > "${initdir}/$systemdsystemunitdir/iscsid.service.d/dracut.conf"
|
||||
+
|
||||
+ # The iscsi deamon does not need to wait for any storage inside initrd
|
||||
+ mkdir -p "${initdir}/$systemdsystemunitdir/iscsid.socket.d"
|
||||
+ (
|
||||
+ echo "[Unit]"
|
||||
+ echo "DefaultDependencies=no"
|
||||
+ echo "Conflicts=shutdown.target"
|
||||
+ echo "Before=shutdown.target sockets.target"
|
||||
+ ) > "${initdir}/$systemdsystemunitdir/iscsid.socket.d/dracut.conf"
|
||||
+ mkdir -p "${initdir}/$systemdsystemunitdir/iscsuio.socket.d"
|
||||
+ (
|
||||
+ echo "[Unit]"
|
||||
+ echo "DefaultDependencies=no"
|
||||
+ echo "Conflicts=shutdown.target"
|
||||
+ echo "Before=shutdown.target sockets.target"
|
||||
+ ) > "${initdir}/$systemdsystemunitdir/iscsuio.socket.d/dracut.conf"
|
||||
+
|
||||
fi
|
||||
inst_dir /var/lib/iscsi
|
||||
dracut_need_initqueue
|
||||
|
30
SOURCES/0009.patch
Normal file
30
SOURCES/0009.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From e44c26f0fc6b29fb42cbc6d5ab57e34b07aa2ce1 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 15 Jan 2019 16:42:38 +0100
|
||||
Subject: [PATCH] 95iscsi: fix a typo in a name of iscsiuio
|
||||
|
||||
---
|
||||
modules.d/95iscsi/module-setup.sh | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
|
||||
index ae1924cc..79af4a47 100755
|
||||
--- a/modules.d/95iscsi/module-setup.sh
|
||||
+++ b/modules.d/95iscsi/module-setup.sh
|
||||
@@ -274,13 +274,13 @@ install() {
|
||||
echo "Conflicts=shutdown.target"
|
||||
echo "Before=shutdown.target sockets.target"
|
||||
) > "${initdir}/$systemdsystemunitdir/iscsid.socket.d/dracut.conf"
|
||||
- mkdir -p "${initdir}/$systemdsystemunitdir/iscsuio.socket.d"
|
||||
+ mkdir -p "${initdir}/$systemdsystemunitdir/iscsiuio.socket.d"
|
||||
(
|
||||
echo "[Unit]"
|
||||
echo "DefaultDependencies=no"
|
||||
echo "Conflicts=shutdown.target"
|
||||
echo "Before=shutdown.target sockets.target"
|
||||
- ) > "${initdir}/$systemdsystemunitdir/iscsuio.socket.d/dracut.conf"
|
||||
+ ) > "${initdir}/$systemdsystemunitdir/iscsiuio.socket.d/dracut.conf"
|
||||
|
||||
fi
|
||||
inst_dir /var/lib/iscsi
|
||||
|
26
SOURCES/0010.patch
Normal file
26
SOURCES/0010.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From c787ad30ab5467c9f3c740a1cd7ed8b3198b9719 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 21 May 2019 17:58:38 +0200
|
||||
Subject: [PATCH] net-lib: strstr is not for globs
|
||||
|
||||
(cherry picked from commit 1a3dcc8b46c967445794e679280a3fb3b8e77ae0)
|
||||
|
||||
Resolves: #1712469
|
||||
---
|
||||
modules.d/40network/net-lib.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
||||
index 1e7f1b33..7b93f25e 100755
|
||||
--- a/modules.d/40network/net-lib.sh
|
||||
+++ b/modules.d/40network/net-lib.sh
|
||||
@@ -463,7 +463,7 @@ ip_to_var() {
|
||||
# ip=<ipv4-address> means anaconda-style static config argument cluster
|
||||
autoconf="$1"
|
||||
|
||||
- if strstr "$autoconf" "*.*.*.*"; then
|
||||
+ if strglob "$autoconf" "*.*.*.*"; then
|
||||
# ip=<ipv4-address> means anaconda-style static config argument cluster:
|
||||
# ip=<ip> gateway=<gw> netmask=<nm> hostname=<host> mtu=<mtu>
|
||||
# ksdevice={link|bootif|ibft|<MAC>|<ifname>}
|
||||
|
40
SOURCES/0011.patch
Normal file
40
SOURCES/0011.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From 81b59fbbd6ebeee05b5d6869ae4f36bb9e486f72 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 8 Jan 2019 17:16:07 +0100
|
||||
Subject: [PATCH] 95iscsi: rd.iscsi.initiator should have priority over stored
|
||||
configuration
|
||||
|
||||
(cherry picked from commit 61afc704548cecc7f7d2fa3b5f1319e790cc5bee)
|
||||
|
||||
Resolves: #1664062
|
||||
---
|
||||
modules.d/95iscsi/parse-iscsiroot.sh | 15 +++++++--------
|
||||
1 file changed, 7 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
index 7a64d888..f00a83bb 100755
|
||||
--- a/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
@@ -107,14 +107,13 @@ if arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=) && [ -n "$arg" ] && ! [
|
||||
iscsi_initiator=$arg
|
||||
echo "InitiatorName=$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
ln -fs /run/initiatorname.iscsi /dev/.initiatorname.iscsi
|
||||
- if ! [ -e /etc/iscsi/initiatorname.iscsi ]; then
|
||||
- mkdir -p /etc/iscsi
|
||||
- ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi
|
||||
- if [ -n "$DRACUT_SYSTEMD" ]; then
|
||||
- systemctl try-restart iscsid
|
||||
- # FIXME: iscsid is not yet ready, when the service is :-/
|
||||
- sleep 1
|
||||
- fi
|
||||
+ rm -f /etc/iscsi/initiatorname.iscsi
|
||||
+ mkdir -p /etc/iscsi
|
||||
+ ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi
|
||||
+ if [ -n "$DRACUT_SYSTEMD" ]; then
|
||||
+ systemctl try-restart iscsid
|
||||
+ # FIXME: iscsid is not yet ready, when the service is :-/
|
||||
+ sleep 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
86
SOURCES/0012.patch
Normal file
86
SOURCES/0012.patch
Normal file
@ -0,0 +1,86 @@
|
||||
From 9c54932f590fd7accadc780c6ee946a94286b7e6 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 14 May 2019 09:23:55 +0200
|
||||
Subject: [PATCH] fips: split loading the crypto modules and checking the
|
||||
kernel
|
||||
|
||||
In e54ab383 we moved the fips script to a later pahse of boot, since
|
||||
the /boot might not be available early on.
|
||||
|
||||
The problem is that systemd-cryptsetup* services could be run now
|
||||
started before the do_fips is executed and need the crypto modules
|
||||
to decrypted the devices.
|
||||
|
||||
So let's split the do_fips and load the module before udev does the
|
||||
trigger.
|
||||
---
|
||||
modules.d/01fips/fips-load-crypto.sh | 8 ++++++++
|
||||
modules.d/01fips/fips.sh | 19 +++++++++++--------
|
||||
modules.d/01fips/module-setup.sh | 1 +
|
||||
3 files changed, 20 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/modules.d/01fips/fips-load-crypto.sh b/modules.d/01fips/fips-load-crypto.sh
|
||||
new file mode 100644
|
||||
index 00000000..82cbeee4
|
||||
--- /dev/null
|
||||
+++ b/modules.d/01fips/fips-load-crypto.sh
|
||||
@@ -0,0 +1,8 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+if ! fipsmode=$(getarg fips) || [ $fipsmode = "0" ]; then
|
||||
+ rm -f -- /etc/modprobe.d/fips.conf >/dev/null 2>&1
|
||||
+else
|
||||
+ . /sbin/fips.sh
|
||||
+ fips_load_crypto || die "FIPS integrity test failed"
|
||||
+fi
|
||||
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
|
||||
index 9bc089f2..beaa692b 100755
|
||||
--- a/modules.d/01fips/fips.sh
|
||||
+++ b/modules.d/01fips/fips.sh
|
||||
@@ -69,15 +69,8 @@ do_rhevh_check()
|
||||
return 0
|
||||
}
|
||||
|
||||
-do_fips()
|
||||
+fips_load_crypto()
|
||||
{
|
||||
- local _v
|
||||
- local _s
|
||||
- local _v
|
||||
- local _module
|
||||
-
|
||||
- KERNEL=$(uname -r)
|
||||
-
|
||||
FIPSMODULES=$(cat /etc/fipsmodules)
|
||||
|
||||
info "Loading and integrity checking all crypto modules"
|
||||
@@ -102,6 +95,16 @@ do_fips()
|
||||
info "Self testing crypto algorithms"
|
||||
modprobe tcrypt || return 1
|
||||
rmmod tcrypt
|
||||
+}
|
||||
+
|
||||
+do_fips()
|
||||
+{
|
||||
+ local _v
|
||||
+ local _s
|
||||
+ local _v
|
||||
+ local _module
|
||||
+
|
||||
+ KERNEL=$(uname -r)
|
||||
|
||||
info "Checking integrity of kernel"
|
||||
if [ -e "/run/initramfs/live/vmlinuz0" ]; then
|
||||
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
|
||||
index f3af4d90..18186d62 100755
|
||||
--- a/modules.d/01fips/module-setup.sh
|
||||
+++ b/modules.d/01fips/module-setup.sh
|
||||
@@ -54,6 +54,7 @@ install() {
|
||||
local _dir
|
||||
inst_hook pre-trigger 01 "$moddir/fips-boot.sh"
|
||||
inst_hook pre-pivot 01 "$moddir/fips-noboot.sh"
|
||||
+ inst_hook pre-udev 01 "$moddir/fips-load-crypto.sh"
|
||||
inst_script "$moddir/fips.sh" /sbin/fips.sh
|
||||
|
||||
inst_multiple sha512hmac rmmod insmod mount uname umount
|
||||
|
51
SOURCES/0013.patch
Normal file
51
SOURCES/0013.patch
Normal file
@ -0,0 +1,51 @@
|
||||
From a1435c3d535707f1d21aaf85e62175ff2bb1ad2b Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Thu, 14 Mar 2019 18:54:10 +0800
|
||||
Subject: [PATCH] fips: ensure fs module for /boot is installed
|
||||
|
||||
When using dracut with --hostonly and --no-hostonly-default-device,
|
||||
/boot will be inaccessible as dracut will most fs modules unless
|
||||
specified. But FIPS require /boot to be accessible, and it will try
|
||||
to mount it on boot. It will fail if corresponding fs module is missing.
|
||||
|
||||
For most case /boot will be a simple partition, include the fs module
|
||||
will be enough for FIPS to mount it. For other cases users have to pass
|
||||
extra parameters by themselves.
|
||||
|
||||
Suggested-by: Kenneth Dsouza <kdsouza@redhat.com>
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
---
|
||||
modules.d/01fips/module-setup.sh | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
|
||||
index 18186d62..89734a09 100755
|
||||
--- a/modules.d/01fips/module-setup.sh
|
||||
+++ b/modules.d/01fips/module-setup.sh
|
||||
@@ -12,7 +12,7 @@ depends() {
|
||||
|
||||
# called by dracut
|
||||
installkernel() {
|
||||
- local _fipsmodules _mod
|
||||
+ local _fipsmodules _mod _bootfstype
|
||||
if [[ -f "${srcmods}/modules.fips" ]]; then
|
||||
_fipsmodules="$(cat "${srcmods}/modules.fips")"
|
||||
else
|
||||
@@ -47,6 +47,16 @@ installkernel() {
|
||||
echo "blacklist $_mod" >> "${initdir}/etc/modprobe.d/fips.conf"
|
||||
fi
|
||||
done
|
||||
+
|
||||
+ # with hostonly_default_device fs module for /boot is not installed by default
|
||||
+ if [[ $hostonly ]] && [[ "$hostonly_default_device" == "no" ]]; then
|
||||
+ _bootfstype=$(find_mp_fstype /boot)
|
||||
+ if [[ -n "$_bootfstype" ]]; then
|
||||
+ hostonly='' instmods $_bootfstype
|
||||
+ else
|
||||
+ dwarning "Can't determine fs type for /boot, FIPS check may fail."
|
||||
+ fi
|
||||
+ fi
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
|
49
SOURCES/0014.patch
Normal file
49
SOURCES/0014.patch
Normal file
@ -0,0 +1,49 @@
|
||||
From 7c35556da4c803bbb08c96e96262e598d5c42274 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Tue, 21 Aug 2018 13:14:44 +0200
|
||||
Subject: [PATCH] network: skip already enslaved interfaces
|
||||
|
||||
(cherry picked from commit f6e3b59e5ea6f52a25631557badc7f4dfabbd7ee)
|
||||
|
||||
Resolves: #1625042
|
||||
---
|
||||
modules.d/35network-legacy/ifup.sh | 6 +++++-
|
||||
modules.d/40network/net-lib.sh | 7 +++++++
|
||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh
|
||||
index ea2a67ff..b4f5bf10 100755
|
||||
--- a/modules.d/35network-legacy/ifup.sh
|
||||
+++ b/modules.d/35network-legacy/ifup.sh
|
||||
@@ -408,7 +408,11 @@ for p in $(getargs ip=); do
|
||||
esac
|
||||
|
||||
# If this option isn't directed at our interface, skip it
|
||||
- [ -n "$dev" ] && [ "$dev" != "$netif" ] && continue
|
||||
+ if [ -n "$dev" ]; then
|
||||
+ [ "$dev" != "$netif" ] && continue
|
||||
+ else
|
||||
+ iface_is_enslaved "$netif" && continue
|
||||
+ fi
|
||||
|
||||
# Store config for later use
|
||||
for i in ip srv gw mask hostname macaddr mtu dns1 dns2; do
|
||||
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
||||
index 7b93f25e..f9569573 100755
|
||||
--- a/modules.d/40network/net-lib.sh
|
||||
+++ b/modules.d/40network/net-lib.sh
|
||||
@@ -745,6 +745,13 @@ iface_has_link() {
|
||||
iface_has_carrier "$@"
|
||||
}
|
||||
|
||||
+iface_is_enslaved() {
|
||||
+ local _li
|
||||
+ _li=$(ip -o link show dev $1)
|
||||
+ strstr "$li" " master " || return 1
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
find_iface_with_link() {
|
||||
local iface_path="" iface=""
|
||||
for iface_path in /sys/class/net/*; do
|
||||
|
24
SOURCES/0015.patch
Normal file
24
SOURCES/0015.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 4971a2c4eb4526cb88a5c9aff30c57527a746036 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 16 Jul 2019 08:27:01 +0100
|
||||
Subject: [PATCH] 01fips: add cfb cipher
|
||||
|
||||
Required by FIPS standard
|
||||
---
|
||||
modules.d/01fips/module-setup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
|
||||
index 89734a09..f011f15d 100755
|
||||
--- a/modules.d/01fips/module-setup.sh
|
||||
+++ b/modules.d/01fips/module-setup.sh
|
||||
@@ -24,7 +24,7 @@ installkernel() {
|
||||
_fipsmodules+="crc32c crct10dif ghash "
|
||||
|
||||
# Ciphers:
|
||||
- _fipsmodules+="cipher_null des3_ede aes "
|
||||
+ _fipsmodules+="cipher_null des3_ede aes cfb "
|
||||
|
||||
# Modes/templates:
|
||||
_fipsmodules+="ecb cbc ctr xts gcm ccm authenc hmac cmac "
|
||||
|
86
SOURCES/0016.patch
Normal file
86
SOURCES/0016.patch
Normal file
@ -0,0 +1,86 @@
|
||||
From 31116110ff0090324a568ce2aba6519a860d66b3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Renaud=20M=C3=A9trich?= <rmetrich@redhat.com>
|
||||
Date: Thu, 11 Jul 2019 10:50:40 +0200
|
||||
Subject: [PATCH] rngd: new module running early during boot to help generating
|
||||
entropy when system's default entropy sources are poor (e.g. use of SSD disks
|
||||
or UEFI RNG not available)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
On systems with low entropy at boot, the boot can take up to several
|
||||
hours, specially when NBDE is used (e.g. clevis) which makes use of
|
||||
the random number generator.
|
||||
|
||||
Enabling rngd service at boot early, because dracut-initqueue runs,
|
||||
enables to initialize the random number generator in a couple of seconds
|
||||
instead of minutes or hours.
|
||||
|
||||
Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
|
||||
(cherry picked from commit adee5b97bc5418b6e357342bb3be20568668aa55)
|
||||
|
||||
Resolves: #1726617
|
||||
---
|
||||
modules.d/06rngd/module-setup.sh | 39 +++++++++++++++++++++++++++++++++++++++
|
||||
modules.d/06rngd/rngd.service | 7 +++++++
|
||||
2 files changed, 46 insertions(+)
|
||||
|
||||
diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh
|
||||
new file mode 100644
|
||||
index 00000000..43d5c2d3
|
||||
--- /dev/null
|
||||
+++ b/modules.d/06rngd/module-setup.sh
|
||||
@@ -0,0 +1,39 @@
|
||||
+#!/bin/bash
|
||||
+# vim: set tabstop=8 shiftwidth=4 softtabstop=4 expandtab smarttab colorcolumn=80:
|
||||
+#
|
||||
+# Copyright (c) 2019 Red Hat, Inc.
|
||||
+# Author: Renaud Métrich <rmetrich@redhat.com>
|
||||
+#
|
||||
+# This program is free software: you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation, either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+#
|
||||
+
|
||||
+depends() {
|
||||
+ echo systemd
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+check() {
|
||||
+ # if there's no rngd binary, no go.
|
||||
+ require_binaries rngd || return 1
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+install() {
|
||||
+ inst rngd
|
||||
+ inst_simple "${moddir}/rngd.service" "${systemdsystemunitdir}/rngd.service"
|
||||
+ mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants"
|
||||
+ ln -rfs "${initdir}${systemdsystemunitdir}/rngd.service" \
|
||||
+ "${initdir}${systemdsystemunitdir}/sysinit.target.wants/rngd.service"
|
||||
+}
|
||||
diff --git a/modules.d/06rngd/rngd.service b/modules.d/06rngd/rngd.service
|
||||
new file mode 100644
|
||||
index 00000000..570fbedb
|
||||
--- /dev/null
|
||||
+++ b/modules.d/06rngd/rngd.service
|
||||
@@ -0,0 +1,7 @@
|
||||
+[Unit]
|
||||
+Description=Hardware RNG Entropy Gatherer Daemon
|
||||
+DefaultDependencies=no
|
||||
+Before=systemd-udevd.service
|
||||
+
|
||||
+[Service]
|
||||
+ExecStart=/usr/sbin/rngd -f
|
||||
|
22
SOURCES/0017.patch
Normal file
22
SOURCES/0017.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From d86dfcd148e5d726f00b8a83eeadb11aa0017fba Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Mon, 22 Jul 2019 14:07:26 +0200
|
||||
Subject: [PATCH] dracut.spec: add 06rngd
|
||||
|
||||
---
|
||||
dracut.spec | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dracut.spec b/dracut.spec
|
||||
index de57703c..92c7f7bf 100644
|
||||
--- a/dracut.spec
|
||||
+++ b/dracut.spec
|
||||
@@ -346,6 +346,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
|
||||
%{dracutlibdir}/modules.d/03rescue
|
||||
%{dracutlibdir}/modules.d/04watchdog
|
||||
%{dracutlibdir}/modules.d/05busybox
|
||||
+%{dracutlibdir}/modules.d/06rngd
|
||||
%{dracutlibdir}/modules.d/10i18n
|
||||
%{dracutlibdir}/modules.d/30convertfs
|
||||
%{dracutlibdir}/modules.d/45url-lib
|
||||
|
49
SOURCES/0018.patch
Normal file
49
SOURCES/0018.patch
Normal file
@ -0,0 +1,49 @@
|
||||
From 927428e6a5e90b2214ee9edf15d4eb6c0fc5c203 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Mon, 11 Mar 2019 18:44:02 +0800
|
||||
Subject: [PATCH] squash: squash systemd binary and udevadm
|
||||
|
||||
systemd binary and udevadm are not needed to be outside the squash
|
||||
image. Some binaries are kept outside because they are required before
|
||||
mounting the image, or after umounting the image (when switching root),
|
||||
or they may block umounting the image. But we are using lazy umounting,
|
||||
so actually nothing will block the umount.
|
||||
|
||||
Keep more binaries outside the squash image won't hurt but cost extra
|
||||
memories, the idea of squash image is to save memory usage.
|
||||
|
||||
So, there is no reason to keep udevadm outside, that should be a debug
|
||||
left over. For systemd binary, it's running when switch root happens,
|
||||
But we have lazy umounted the image and overlay, once systemd process
|
||||
exec the new systemd in new root, everything will be cleared by kernel.
|
||||
|
||||
Also tidy up the comment make it less confussing.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
(cherry picked from commit e1e1f6e8e6747d8f32c065e267e0a57587818c9e)
|
||||
|
||||
Resolves: #1691705
|
||||
---
|
||||
dracut.sh | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index e683a9bc..a0158f22 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -1772,9 +1772,11 @@ if dracut_module_included "squash"; then
|
||||
mv $initdir/$folder $squash_dir/$folder
|
||||
done
|
||||
|
||||
- # Reinstall required files, because we have moved some important folders to $squash_dir
|
||||
- inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" \
|
||||
- "systemctl" "udevadm" "$systemdutildir/systemd"
|
||||
+ # Reinstall required files for the squash image setup script.
|
||||
+ # We have moved them inside the squashed image, but they need to be
|
||||
+ # accessible before mounting the image. Also install systemctl,
|
||||
+ # it's requires for switch-root, but we will umount the image before switch-root
|
||||
+ inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" "systemctl"
|
||||
hostonly="" instmods "loop" "squashfs" "overlay"
|
||||
|
||||
for folder in "${squash_candidate[@]}"; do
|
||||
|
71
SOURCES/0019.patch
Normal file
71
SOURCES/0019.patch
Normal file
@ -0,0 +1,71 @@
|
||||
From b6d52b504fc7eefc3f405f75463d9e818471ee99 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Mon, 11 Mar 2019 19:46:19 +0800
|
||||
Subject: [PATCH] squash: fix and simplify required_in_root
|
||||
|
||||
If required target is a symbol link, create the link then following the
|
||||
link. If it's a directory, create new directory, else just move it.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
(cherry picked from commit 11ce69e4bd9172cf54251ea62bb4a5ead1700fd6)
|
||||
|
||||
Resolves: #1691705
|
||||
---
|
||||
dracut.sh | 42 +++++++++++++++++++-----------------------
|
||||
1 file changed, 19 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index a0158f22..6de88b3e 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -1811,30 +1811,26 @@ if dracut_module_included "squash"; then
|
||||
required_in_root $(dirname $file)
|
||||
fi
|
||||
|
||||
- if [[ -d $_sqsh_file ]]; then
|
||||
- if [[ -L $_sqsh_file ]]; then
|
||||
- cp --preserve=all -P $_sqsh_file $_init_file
|
||||
- else
|
||||
- mkdir $_init_file
|
||||
- fi
|
||||
+ if [[ -L $_sqsh_file ]]; then
|
||||
+ cp --preserve=all -P $_sqsh_file $_init_file
|
||||
+ _sqsh_file=$(realpath $_sqsh_file 2>/dev/null)
|
||||
+ if [[ -e $_sqsh_file ]] && [[ "$_sqsh_file" == "$squash_dir"* ]]; then
|
||||
+ # Relative symlink
|
||||
+ required_in_root ${_sqsh_file#$squash_dir/}
|
||||
+ return
|
||||
+ fi
|
||||
+ if [[ -e $squash_dir$_sqsh_file ]]; then
|
||||
+ # Absolute symlink
|
||||
+ required_in_root ${_sqsh_file#/}
|
||||
+ return
|
||||
+ fi
|
||||
+ required_in_root ${module_spec#$squash_dir/}
|
||||
else
|
||||
- if [[ -L $_sqsh_file ]]; then
|
||||
- cp --preserve=all -P $_sqsh_file $_init_file
|
||||
- _sqsh_file=$(realpath $_sqsh_file 2>/dev/null)
|
||||
- if [[ -e $_sqsh_file ]] && [[ "$_sqsh_file" == "$squash_dir"* ]]; then
|
||||
- # Relative symlink
|
||||
- required_in_root ${_sqsh_file#$squash_dir/}
|
||||
- return
|
||||
- fi
|
||||
- if [[ -e $squash_dir$_sqsh_file ]]; then
|
||||
- # Absolute symlink
|
||||
- required_in_root ${_sqsh_file#/}
|
||||
- return
|
||||
- fi
|
||||
- required_in_root ${module_spec#$squash_dir/}
|
||||
- else
|
||||
- mv $_sqsh_file $_init_file
|
||||
- fi
|
||||
+ if [[ -d $_sqsh_file ]]; then
|
||||
+ mkdir $_init_file
|
||||
+ else
|
||||
+ mv $_sqsh_file $_init_file
|
||||
+ fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
94
SOURCES/0020.patch
Normal file
94
SOURCES/0020.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From 829ed8ef5cca250fac475ad6b0265c792c3af015 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Wed, 13 Mar 2019 17:36:53 +0800
|
||||
Subject: [PATCH] squash: also squash systemctl if switch-root is not needed
|
||||
|
||||
systemctl need to be accessible on switch-root, but we unmount the
|
||||
squash image on switch-root, so it will fail. systemctl depends on a lot
|
||||
of libraries, squash them can save more RAM. So allow modules
|
||||
(eg. kdump) to tell dracut that switch-root will be intercepted,
|
||||
then we don't need to take care of that.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
(cherry picked from commit 3ee0ca5eb74be5d1fbd0e6d643f6fff06234177f)
|
||||
|
||||
Resolves: #1691705
|
||||
---
|
||||
dracut-init.sh | 4 ++++
|
||||
dracut.sh | 40 ++++++++++++++++++++++------------------
|
||||
2 files changed, 26 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/dracut-init.sh b/dracut-init.sh
|
||||
index 50d23e2d..b1ac9966 100644
|
||||
--- a/dracut-init.sh
|
||||
+++ b/dracut-init.sh
|
||||
@@ -150,6 +150,10 @@ dracut_module_included() {
|
||||
[[ " $mods_to_load $modules_loaded " == *\ $*\ * ]]
|
||||
}
|
||||
|
||||
+dracut_no_switch_root() {
|
||||
+ >"$initdir/lib/dracut/no-switch-root"
|
||||
+}
|
||||
+
|
||||
if ! [[ $DRACUT_INSTALL ]]; then
|
||||
DRACUT_INSTALL=$(find_binary dracut-install)
|
||||
fi
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index 6de88b3e..8144a16e 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -1772,24 +1772,6 @@ if dracut_module_included "squash"; then
|
||||
mv $initdir/$folder $squash_dir/$folder
|
||||
done
|
||||
|
||||
- # Reinstall required files for the squash image setup script.
|
||||
- # We have moved them inside the squashed image, but they need to be
|
||||
- # accessible before mounting the image. Also install systemctl,
|
||||
- # it's requires for switch-root, but we will umount the image before switch-root
|
||||
- inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" "systemctl"
|
||||
- hostonly="" instmods "loop" "squashfs" "overlay"
|
||||
-
|
||||
- for folder in "${squash_candidate[@]}"; do
|
||||
- # Remove duplicated files in squashfs image, save some more space
|
||||
- [[ ! -d $initdir/$folder/ ]] && continue
|
||||
- for file in $(find $initdir/$folder/ -not -type d);
|
||||
- do
|
||||
- if [[ -e $squash_dir${file#$initdir} ]]; then
|
||||
- mv $squash_dir${file#$initdir} $file
|
||||
- fi
|
||||
- done
|
||||
- done
|
||||
-
|
||||
# Move some files out side of the squash image, including:
|
||||
# - Files required to boot and mount the squashfs image
|
||||
# - Files need to be accessable without mounting the squash image
|
||||
@@ -1851,6 +1833,28 @@ if dracut_module_included "squash"; then
|
||||
ln -s squash/init.sh $initdir/init
|
||||
ln -s squash/shutdown.sh $initdir/shutdown
|
||||
|
||||
+ # Reinstall required files for the squash image setup script.
|
||||
+ # We have moved them inside the squashed image, but they need to be
|
||||
+ # accessible before mounting the image.
|
||||
+ inst_multiple "echo" "sh" "mount" "modprobe" "mkdir"
|
||||
+ hostonly="" instmods "loop" "squashfs" "overlay"
|
||||
+
|
||||
+ # Only keep systemctl outsite if we need switch root
|
||||
+ if [[ ! -f "$initdir/lib/dracut/no-switch-root" ]]; then
|
||||
+ inst "systemctl"
|
||||
+ fi
|
||||
+
|
||||
+ for folder in "${squash_candidate[@]}"; do
|
||||
+ # Remove duplicated files in squashfs image, save some more space
|
||||
+ [[ ! -d $initdir/$folder/ ]] && continue
|
||||
+ for file in $(find $initdir/$folder/ -not -type d);
|
||||
+ do
|
||||
+ if [[ -e $squash_dir${file#$initdir} ]]; then
|
||||
+ mv $squash_dir${file#$initdir} $file
|
||||
+ fi
|
||||
+ done
|
||||
+ done
|
||||
+
|
||||
mksquashfs $squash_dir $squash_img -comp xz -b 64K -Xdict-size 100% &> /dev/null
|
||||
|
||||
if [[ $? != 0 ]]; then
|
||||
|
94
SOURCES/0021.patch
Normal file
94
SOURCES/0021.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From 7ee74e539dba61c3765afe34426b085eff0de027 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Thu, 21 Feb 2019 13:18:37 +0800
|
||||
Subject: [PATCH] dracut: let module handling function accept optional path
|
||||
option
|
||||
|
||||
Let the caller pass in the module path instead of try to find the module
|
||||
path everytime. This helps optimize the overall runtime.
|
||||
|
||||
Test results (3 rounds) on Fedora 30 in KVM VM with 8 CPUs, 2G memory, HDD:
|
||||
|
||||
$ time ./dracut.sh --local --quiet --hostonly --hostonly-cmdline --hostonly-i18n --hostonly-mode 'strict' -o 'plymouth dash resume ifcfg' --mount '/dev/mapper/fedora-root /sysroot xfs defaults' --no-hostonly-default-device -f initramfs.img
|
||||
Before the commit:
|
||||
real 0m11.782s | real 0m11.505s | real 0m11.958s
|
||||
user 0m9.169s | user 0m9.218s | user 0m9.327s
|
||||
sys 0m10.839s | sys 0m10.829s | sys 0m10.925s
|
||||
|
||||
After this commit:
|
||||
real 0m9.866s | real 0m9.580s | real 0m9.638s
|
||||
user 0m9.048s | user 0m9.142s | user 0m9.120s
|
||||
sys 0m7.411s | sys 0m7.775s | sys 0m7.745s
|
||||
|
||||
Test result of building a ordinary image:
|
||||
|
||||
$ time ./dracut.sh --local --quiet -f initramfs.img
|
||||
Before the commit:
|
||||
real 0m34.697s | real 0m34.371s | real 0m35.122s
|
||||
user 0m27.608s | user 0m27.524s | user 0m27.705s
|
||||
sys 0m22.341s | sys 0m22.032s | sys 0m22.246s
|
||||
|
||||
After the commit:
|
||||
real 0m31.914s | real 0m31.006 | real 0m31.289ss
|
||||
user 0m27.315s | user 0m27.324 | user 0m27.290ss
|
||||
sys 0m19.051s | sys 0m18.916 | sys 0m19.022ss
|
||||
|
||||
This will have an ~2s speed up.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
(cherry picked from commit 5916d31b24ad9eb21fd376929a96c459813315a1)
|
||||
|
||||
Cherry-picked from: 5916d31b
|
||||
Resolves: #1734047
|
||||
---
|
||||
dracut-init.sh | 4 ++++
|
||||
dracut.sh | 8 ++++----
|
||||
2 files changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dracut-init.sh b/dracut-init.sh
|
||||
index b1ac9966..ab07cabf 100644
|
||||
--- a/dracut-init.sh
|
||||
+++ b/dracut-init.sh
|
||||
@@ -154,6 +154,10 @@ dracut_no_switch_root() {
|
||||
>"$initdir/lib/dracut/no-switch-root"
|
||||
}
|
||||
|
||||
+dracut_module_path() {
|
||||
+ echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; }
|
||||
+}
|
||||
+
|
||||
if ! [[ $DRACUT_INSTALL ]]; then
|
||||
DRACUT_INSTALL=$(find_binary dracut-install)
|
||||
fi
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index 8144a16e..f270af76 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -1373,7 +1373,7 @@ do_print_cmdline()
|
||||
for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
|
||||
_d_mod=${moddir##*/}; _d_mod=${_d_mod#[0-9][0-9]}
|
||||
[[ ${_mods_to_print[$_d_mod]} ]] || continue
|
||||
- module_cmdline "$_d_mod"
|
||||
+ module_cmdline "$_d_mod" "$moddir"
|
||||
done
|
||||
unset moddir
|
||||
}
|
||||
@@ -1454,14 +1454,14 @@ for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
|
||||
dinfo "*** Including module: $_d_mod ***"
|
||||
fi
|
||||
if [[ $kernel_only == yes ]]; then
|
||||
- module_installkernel "$_d_mod" || {
|
||||
+ module_installkernel "$_d_mod" "$moddir" || {
|
||||
dfatal "installkernel failed in module $_d_mod"
|
||||
exit 1
|
||||
}
|
||||
else
|
||||
- module_install "$_d_mod"
|
||||
+ module_install "$_d_mod" "$moddir"
|
||||
if [[ $no_kernel != yes ]]; then
|
||||
- module_installkernel "$_d_mod" || {
|
||||
+ module_installkernel "$_d_mod" "$moddir" || {
|
||||
dfatal "installkernel failed in module $_d_mod"
|
||||
exit 1
|
||||
}
|
||||
|
36
SOURCES/0022.patch
Normal file
36
SOURCES/0022.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 17cd55169c3549d85ba3e4d7e0e81c496d1b2940 Mon Sep 17 00:00:00 2001
|
||||
From: Lianbo Jiang <lijiang@redhat.com>
|
||||
Date: Mon, 13 May 2019 16:09:25 +0800
|
||||
Subject: [PATCH] 99base: enable the initqueue in both 'dracut --add-device'
|
||||
and 'dracut --mount' cases.
|
||||
|
||||
The commit 9f3c31cd8d68 ("99base: enable initqueue if extra devices are added")
|
||||
only covers 'dracut --add-device' case, but it did not cover 'dracut --mount'
|
||||
case, which causes the kdump failure in the Amazon virtual machine.
|
||||
|
||||
Lets make sure that the initqueue is enabled in both cases in order to wake up
|
||||
the device in time.
|
||||
|
||||
Reported-by: Xiao Liang <xiliang@redhat.com>
|
||||
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
|
||||
(cherry picked from commit e0fc62f619ba55a96179382e22f7665e969c3d42)
|
||||
|
||||
Resolves: #1678094
|
||||
---
|
||||
modules.d/99base/module-setup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
|
||||
index 21523fc9..c9ead01d 100755
|
||||
--- a/modules.d/99base/module-setup.sh
|
||||
+++ b/modules.d/99base/module-setup.sh
|
||||
@@ -93,7 +93,7 @@ install() {
|
||||
|
||||
## save host_devs which we need bring up
|
||||
if [[ $hostonly_cmdline == "yes" ]]; then
|
||||
- if [[ -n $add_device ]]; then
|
||||
+ if [[ -n "${host_devs[@]}" ]]; then
|
||||
dracut_need_initqueue
|
||||
fi
|
||||
if [[ -f "$initdir/lib/dracut/need-initqueue" ]] || ! dracut_module_included "systemd"; then
|
||||
|
34
SOURCES/0023.patch
Normal file
34
SOURCES/0023.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 1851348709df5413a767faecdee908534baf0da1 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Wed, 12 Jun 2019 14:27:44 +0800
|
||||
Subject: [PATCH] 95fcoe: load 'libfcoe' module as a fallback
|
||||
|
||||
The kernel may only enable 'libfcoe' module. Some modules like bnx2fc
|
||||
provides FCoE but only depend on 'libfcoe'. Loading 'fcoe' module may
|
||||
fail but the kernel do support FCoE.
|
||||
|
||||
'libfcoe' will be installed as a dependency when installing block device
|
||||
drivers if it's required. So no need to install it in installkernel.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
(cherry picked from commit 65fe1af2eca7d0ed340520577ab861fcd695b34a)
|
||||
|
||||
Resolves: #1719645
|
||||
---
|
||||
modules.d/95fcoe/parse-fcoe.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/95fcoe/parse-fcoe.sh b/modules.d/95fcoe/parse-fcoe.sh
|
||||
index 75cca9a5..12701cdb 100755
|
||||
--- a/modules.d/95fcoe/parse-fcoe.sh
|
||||
+++ b/modules.d/95fcoe/parse-fcoe.sh
|
||||
@@ -18,7 +18,7 @@
|
||||
# If it's not set we don't continue
|
||||
[ -z "$fcoe" ] && return
|
||||
|
||||
-[ -e /sys/bus/fcoe/ctlr_create ] || modprobe -b -a fcoe || die "FCoE requested but kernel/initrd does not support FCoE"
|
||||
+[ -e /sys/bus/fcoe/ctlr_create ] || modprobe -b -a fcoe || modprobe -b -a libfcoe || die "FCoE requested but kernel/initrd does not support FCoE"
|
||||
|
||||
initqueue --onetime modprobe -b -q bnx2fc
|
||||
|
||||
|
36
SOURCES/0024.patch
Normal file
36
SOURCES/0024.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 9b2497dffb8f699ce040cdbafa967f5fe02b57b6 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Fri, 2 Aug 2019 14:26:23 +0200
|
||||
Subject: [PATCH] 90kernel-modules-extra: don't resolve symlinks before instmod
|
||||
|
||||
When you install a third-party driver, you will probably end in a
|
||||
situation, where the module will be in a different directory and
|
||||
in $depmod_module_dir you will only have symlink. If we resolve the
|
||||
symlink before we pass the module path to instmod, the dracut-install
|
||||
will only include the module with its original path, but not the
|
||||
symlink. Hence the module can't be automatically loaded.
|
||||
|
||||
Dracut-install is clever enough to handle symlinks and will include both
|
||||
the symlink and the module to the initrd.
|
||||
|
||||
(cherry picked from commit d1afff43aea01c8d43817adf3ac4041dd4b9f022)
|
||||
|
||||
Resolves: #1720275
|
||||
---
|
||||
modules.d/90kernel-modules-extra/module-setup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/90kernel-modules-extra/module-setup.sh b/modules.d/90kernel-modules-extra/module-setup.sh
|
||||
index c0a2b7f9..1706c822 100755
|
||||
--- a/modules.d/90kernel-modules-extra/module-setup.sh
|
||||
+++ b/modules.d/90kernel-modules-extra/module-setup.sh
|
||||
@@ -187,7 +187,7 @@ installkernel()
|
||||
printf "^%s\.ko(\.gz|\.bz2|\.xz)?:\n" "${pathlist[@]}" \
|
||||
| (LANG=C grep -E -o -f - -- "$depmod_modules_dep" || exit 0) \
|
||||
| tr -d ':' \
|
||||
- | (cd "$depmod_module_dir" || exit; xargs -r realpath -e --) \
|
||||
+ | (cd "$depmod_module_dir" || exit; xargs -r realpath -se --) \
|
||||
| instmods || return 1
|
||||
|
||||
return 0
|
||||
|
26
SOURCES/0025.patch
Normal file
26
SOURCES/0025.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 3464297288b50a062e1094e57d46ad21e51b351b Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 6 Aug 2019 10:54:09 +0200
|
||||
Subject: [PATCH] net-lib: fix typo $li -> $_li
|
||||
|
||||
(cherry picked from commit cd97d8d2c0646b95aee47efd5eee39f29d617a67)
|
||||
|
||||
Resolves: #1625042
|
||||
---
|
||||
modules.d/40network/net-lib.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
||||
index f9569573..ad78d225 100755
|
||||
--- a/modules.d/40network/net-lib.sh
|
||||
+++ b/modules.d/40network/net-lib.sh
|
||||
@@ -748,7 +748,7 @@ iface_has_link() {
|
||||
iface_is_enslaved() {
|
||||
local _li
|
||||
_li=$(ip -o link show dev $1)
|
||||
- strstr "$li" " master " || return 1
|
||||
+ strstr "$_li" " master " || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
38
SOURCES/0026.patch
Normal file
38
SOURCES/0026.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 95bbcaa8550534f03b332487ef3a2ed6650424fe Mon Sep 17 00:00:00 2001
|
||||
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
||||
Date: Wed, 21 Aug 2019 11:16:07 +0200
|
||||
Subject: [PATCH] git2spec: avoid malforming of SHA-1 hashes
|
||||
|
||||
When a SHA-1 hash of a specific commit is used as a tag, the regex
|
||||
shenanigans later in the script can (and will) corrupt it in certain
|
||||
cases.
|
||||
|
||||
e.g.:
|
||||
$ perl -e '
|
||||
$tag="6e8cd92261577230daa1098f7e05ec198c3c4281";
|
||||
$tag=~s/[^0-9]+?([0-9]+)/$1/;
|
||||
print("$tag\n");
|
||||
'
|
||||
68cd92261577230daa1098f7e05ec198c3c4281
|
||||
|
||||
(Notice the missing 'e')
|
||||
|
||||
Let's fix this by limiting the regex's scope to a non-SHA-1 tags only.
|
||||
---
|
||||
git2spec.pl | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/git2spec.pl b/git2spec.pl
|
||||
index 7853791e..9ddc3805 100755
|
||||
--- a/git2spec.pl
|
||||
+++ b/git2spec.pl
|
||||
@@ -37,7 +37,7 @@ $tag=`git describe --abbrev=0 --tags` if not defined $tag;
|
||||
chomp($tag);
|
||||
my @patches=&create_patches($tag, $pdir);
|
||||
my $num=$#patches + 2;
|
||||
-$tag=~s/[^0-9]+?([0-9]+)/$1/;
|
||||
+$tag=~s/[^0-9]+?([0-9]+)/$1/ if $tag !~ /\b[0-9a-f]{5,40}\b/;
|
||||
my $release="$num.git$datestr";
|
||||
$release="1" if $num == 1;
|
||||
|
||||
|
25
SOURCES/0027.patch
Normal file
25
SOURCES/0027.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From d3f542cc9d0135a408be7ba995b8adad80bcd606 Mon Sep 17 00:00:00 2001
|
||||
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
||||
Date: Wed, 21 Aug 2019 14:06:29 +0200
|
||||
Subject: [PATCH] travis: fetch only tags
|
||||
|
||||
The original `git pull` would try to pull & merge changes from the
|
||||
master branch, which breaks CI runs on PRs based on non-master branches
|
||||
---
|
||||
.travis.yml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.travis.yml b/.travis.yml
|
||||
index f913db57..efb0df1b 100644
|
||||
--- a/.travis.yml
|
||||
+++ b/.travis.yml
|
||||
@@ -29,7 +29,7 @@ before_script:
|
||||
sudo modprobe kvm-intel nested=1 || :
|
||||
sudo modprobe kvm-amd nested=1 || :
|
||||
dmesg | tail || :
|
||||
- - git pull --depth=100
|
||||
+ - git fetch --tags --unshallow
|
||||
- |
|
||||
git describe --abbrev=0 --tags || :
|
||||
git describe --tags || :
|
||||
|
98
SOURCES/0028.patch
Normal file
98
SOURCES/0028.patch
Normal file
@ -0,0 +1,98 @@
|
||||
From e3b2b02c7f5b4e9f1d2a3cfe8749534959e29e3e Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Fri, 21 Jun 2019 18:39:48 +0200
|
||||
Subject: [PATCH] fs-lib: drop a bashism
|
||||
|
||||
Bash 5 apparently longer propagates variable assignments to local variables
|
||||
in front of function calls when in POSIX mode:
|
||||
|
||||
[lkundrak@demiurge ~]$ cat feh.sh
|
||||
print_VAR () {
|
||||
echo "$VAR";
|
||||
}
|
||||
|
||||
testfunc () {
|
||||
local VAR="OLD"
|
||||
VAR=NEW print_VAR
|
||||
}
|
||||
|
||||
testfunc
|
||||
[lkundrak@demiurge ~]$ bash4 --posix feh.sh
|
||||
NEW
|
||||
[lkundrak@demiurge ~]$ bash5 --posix feh.sh
|
||||
OLD
|
||||
[lkundrak@demiurge ~]$ bash5 feh.sh
|
||||
NEW
|
||||
[lkundrak@demiurge ~]$
|
||||
|
||||
It works the way it did in Bash 4 in non-POSIX mode, for external programs,
|
||||
or for non-local variables. Don't ask me why -- it's probably some
|
||||
compatibility thing for some sad old people.
|
||||
|
||||
However, this precisely happens when fsck_single() is calling into the
|
||||
fsck_drv_com(), assigned to _drv by fsck_able(). That ruins the
|
||||
TEST-70-BONDBRIDGETEAMVLAN test's server and probably more.
|
||||
|
||||
Let's pass the fsck driver binary via the function argument instead. It's
|
||||
less messy anyway.
|
||||
|
||||
(cherry picked from commit 43c8c4ce0471abbb8c0fc4b8be2515cebc636030)
|
||||
---
|
||||
modules.d/99fs-lib/fs-lib.sh | 13 +++++++------
|
||||
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
|
||||
index d39ca1b7..11e795d9 100755
|
||||
--- a/modules.d/99fs-lib/fs-lib.sh
|
||||
+++ b/modules.d/99fs-lib/fs-lib.sh
|
||||
@@ -44,22 +44,22 @@ fsck_able() {
|
||||
;;
|
||||
ext?)
|
||||
type e2fsck >/dev/null 2>&1 &&
|
||||
- _drv="_drv=e2fsck fsck_drv_com" &&
|
||||
+ _drv="fsck_drv_com e2fsck" &&
|
||||
return 0
|
||||
;;
|
||||
f2fs)
|
||||
type fsck.f2fs >/dev/null 2>&1 &&
|
||||
- _drv="_drv=fsck.f2fs fsck_drv_com" &&
|
||||
+ _drv="fsck_drv_com fsck.f2fs" &&
|
||||
return 0
|
||||
;;
|
||||
jfs)
|
||||
type jfs_fsck >/dev/null 2>&1 &&
|
||||
- _drv="_drv=jfs_fsck fsck_drv_com" &&
|
||||
+ _drv="fsck_drv_com jfs_fsck" &&
|
||||
return 0
|
||||
;;
|
||||
reiserfs)
|
||||
type reiserfsck >/dev/null 2>&1 &&
|
||||
- _drv="_drv=reiserfsck fsck_drv_com" &&
|
||||
+ _drv="fsck_drv_com reiserfsck" &&
|
||||
return 0
|
||||
;;
|
||||
btrfs)
|
||||
@@ -70,12 +70,12 @@ fsck_able() {
|
||||
;;
|
||||
nfs*)
|
||||
# nfs can be a nop, returning success
|
||||
- _drv="_drv=none :" &&
|
||||
+ _drv=":" &&
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
type fsck >/dev/null 2>&1 &&
|
||||
- _drv="_drv=fsck fsck_drv_std" &&
|
||||
+ _drv="fsck_drv_std fsck" &&
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
@@ -97,6 +97,7 @@ fsck_drv_btrfs() {
|
||||
|
||||
# common code for checkers that follow usual subset of options and return codes
|
||||
fsck_drv_com() {
|
||||
+ local _drv="$1"
|
||||
local _ret
|
||||
local _out
|
||||
|
||||
|
79
SOURCES/0029.patch
Normal file
79
SOURCES/0029.patch
Normal file
@ -0,0 +1,79 @@
|
||||
From e671c3a06a7e58461d4e9c9f3546cf6eac809300 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Tue, 4 Dec 2018 10:27:17 +0100
|
||||
Subject: [PATCH] 95iscsi/module-setup.sh: do not require 'hostname' anymore
|
||||
|
||||
(cherry picked from commit ebe1821635dd99f07c817179ee5358d27aab53c5)
|
||||
|
||||
[lkundrak@v3.sk: fixes TEST-30 that fails with: dracut: dracut module
|
||||
'iscsi' will not be installed, because command 'hostname' could not be
|
||||
found!]
|
||||
---
|
||||
modules.d/40network/netroot.sh | 2 +-
|
||||
modules.d/95iscsi/module-setup.sh | 4 ++--
|
||||
modules.d/98dracut-systemd/dracut-cmdline.sh | 2 +-
|
||||
modules.d/99base/init.sh | 2 +-
|
||||
4 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh
|
||||
index 207364cd..654cfc72 100755
|
||||
--- a/modules.d/40network/netroot.sh
|
||||
+++ b/modules.d/40network/netroot.sh
|
||||
@@ -66,7 +66,7 @@ if [ -z "$2" ]; then
|
||||
|
||||
# Check: do we really know how to handle (net)root?
|
||||
[ -z "$root" ] && die "No or empty root= argument"
|
||||
- [ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
|
||||
+ [ -z "$rootok" ] && die "X2 Don't know how to handle 'root=$root'"
|
||||
|
||||
handler=${netroot%%:*}
|
||||
handler=${handler%%4}
|
||||
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
|
||||
index 79af4a47..f6f3520d 100755
|
||||
--- a/modules.d/95iscsi/module-setup.sh
|
||||
+++ b/modules.d/95iscsi/module-setup.sh
|
||||
@@ -4,7 +4,7 @@
|
||||
check() {
|
||||
local _rootdev
|
||||
# If our prerequisites are not met, fail anyways.
|
||||
- require_binaries hostname iscsi-iname iscsiadm iscsid || return 1
|
||||
+ require_binaries iscsi-iname iscsiadm iscsid || return 1
|
||||
|
||||
# If hostonly was requested, fail the check if we are not actually
|
||||
# booting from root.
|
||||
@@ -206,7 +206,7 @@ cmdline() {
|
||||
install() {
|
||||
inst_multiple -o iscsiuio
|
||||
inst_libdir_file 'libgcc_s.so*'
|
||||
- inst_multiple umount hostname iscsi-iname iscsiadm iscsid
|
||||
+ inst_multiple umount iscsi-iname iscsiadm iscsid
|
||||
|
||||
inst_multiple -o \
|
||||
$systemdsystemunitdir/iscsid.socket \
|
||||
diff --git a/modules.d/98dracut-systemd/dracut-cmdline.sh b/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||
index bff9435a..89c52d13 100755
|
||||
--- a/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||
+++ b/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||
@@ -76,7 +76,7 @@ case "${root}${root_unset}" in
|
||||
esac
|
||||
|
||||
[ -z "${root}${root_unset}" ] && die "Empty root= argument"
|
||||
-[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
|
||||
+[ -z "$rootok" ] && die "X1 Don't know how to handle 'root=$root'"
|
||||
|
||||
export root rflags fstype netroot NEWROOT
|
||||
|
||||
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
|
||||
index e4f7cff1..3e20069f 100755
|
||||
--- a/modules.d/99base/init.sh
|
||||
+++ b/modules.d/99base/init.sh
|
||||
@@ -136,7 +136,7 @@ getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Br
|
||||
source_hook cmdline
|
||||
|
||||
[ -z "$root" ] && die "No or empty root= argument"
|
||||
-[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
|
||||
+[ -z "$rootok" ] && die "X0 Don't know how to handle 'root=$root'"
|
||||
|
||||
export root rflags fstype netroot NEWROOT
|
||||
|
||||
|
24
SOURCES/0030.patch
Normal file
24
SOURCES/0030.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 50192de38d756203a414405e2d7552e89b1c0423 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Tue, 4 Dec 2018 10:06:12 +0100
|
||||
Subject: [PATCH] test/test-functions: correctly move server.log
|
||||
|
||||
(cherry picked from commit 712f471ebfae70fd71c0c740e9a3e120464ca7e7)
|
||||
---
|
||||
test/test-functions | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/test-functions b/test/test-functions
|
||||
index a6254ec7..51b3df80 100644
|
||||
--- a/test/test-functions
|
||||
+++ b/test/test-functions
|
||||
@@ -80,7 +80,7 @@ while (($# > 0)); do
|
||||
ret=$?
|
||||
test_cleanup
|
||||
if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
|
||||
- mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
|
||||
+ mv "$TESTDIR"/server.log ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
|
||||
fi
|
||||
rm -fr -- "$TESTDIR"
|
||||
rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
|
||||
|
43
SOURCES/0031.patch
Normal file
43
SOURCES/0031.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From bf69beb6f3824b1ebed221c8255d1f5c9efd136a Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Wed, 26 Jun 2019 16:42:04 +0200
|
||||
Subject: [PATCH] test/TEST-17-LVM-THIN: fail setup if we run out of space in
|
||||
the thin pool
|
||||
|
||||
This condition is rather difficult to detect -- the writes will just remain
|
||||
queued and get lost on shutdown, resulting in a corrupt filesystem.
|
||||
|
||||
(cherry picked from commit 91c15babdf0215df59325f3086acfdf0ba247bfa)
|
||||
---
|
||||
test/TEST-17-LVM-THIN/create-root.sh | 5 +++--
|
||||
test/TEST-17-LVM-THIN/test.sh | 2 +-
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/test/TEST-17-LVM-THIN/create-root.sh b/test/TEST-17-LVM-THIN/create-root.sh
|
||||
index 117d1341..0e52f879 100755
|
||||
--- a/test/TEST-17-LVM-THIN/create-root.sh
|
||||
+++ b/test/TEST-17-LVM-THIN/create-root.sh
|
||||
@@ -27,6 +27,7 @@ cp -a -t /sysroot /source/* && \
|
||||
umount /sysroot && \
|
||||
sleep 1 && \
|
||||
lvm lvchange -a n /dev/dracut/root && \
|
||||
-sleep 1 && \
|
||||
-echo "dracut-root-block-created" >/dev/sda1
|
||||
+sleep 1
|
||||
+dmsetup status |grep out_of_data_space || \
|
||||
+ echo "dracut-root-block-created" >/dev/sda1
|
||||
poweroff -f
|
||||
diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh
|
||||
index af349246..1b36a216 100755
|
||||
--- a/test/TEST-17-LVM-THIN/test.sh
|
||||
+++ b/test/TEST-17-LVM-THIN/test.sh
|
||||
@@ -56,7 +56,7 @@ test_setup() {
|
||||
(
|
||||
export initdir=$TESTDIR/overlay
|
||||
. $basedir/dracut-init.sh
|
||||
- inst_multiple sfdisk mke2fs poweroff cp umount
|
||||
+ inst_multiple sfdisk mke2fs poweroff cp umount grep dmsetup
|
||||
inst_hook initqueue 01 ./create-root.sh
|
||||
inst_hook initqueue/finished 01 ./finished-false.sh
|
||||
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
|
||||
|
66
SOURCES/0032.patch
Normal file
66
SOURCES/0032.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From 0f0b8c8f90cbcd56140e85b9997deda906c71118 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Tue, 25 Jun 2019 17:39:57 +0200
|
||||
Subject: [PATCH] test/TEST-14-IMSM: detect failure to compose the test setup
|
||||
root
|
||||
|
||||
The dracut-root-block-created line should not be created if we fail to copy
|
||||
in the required files to sysroot. Let's turn on -e to trap failures and
|
||||
poweroff on them, like some other tests do.
|
||||
|
||||
Also remove the &&. Not only it is unnecessary with -e, but defeats it.
|
||||
From bash(1):
|
||||
|
||||
The shell does not exit if the command that fails is [...] part of any
|
||||
command executed in a && or || list except the command following the
|
||||
final && or || [...]
|
||||
|
||||
(cherry picked from commit c27ed38bb2986d31b08257782ce2b24a80415c6c)
|
||||
---
|
||||
test/TEST-14-IMSM/create-root.sh | 23 +++++++++++++----------
|
||||
1 file changed, 13 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/test/TEST-14-IMSM/create-root.sh b/test/TEST-14-IMSM/create-root.sh
|
||||
index f637ec88..a0324c6f 100755
|
||||
--- a/test/TEST-14-IMSM/create-root.sh
|
||||
+++ b/test/TEST-14-IMSM/create-root.sh
|
||||
@@ -1,4 +1,7 @@
|
||||
#!/bin/sh
|
||||
+
|
||||
+trap 'poweroff -f' EXIT
|
||||
+
|
||||
# don't let udev and this script step on eachother's toes
|
||||
for x in 61-dmraid-imsm.rules 64-md-raid.rules 65-md-incremental-imsm.rules 65-md-incremental.rules 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
|
||||
rm -f -- "/etc/udev/rules.d/$x"
|
||||
@@ -55,20 +58,20 @@ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 \
|
||||
# wait for the array to finish initailizing, otherwise this sometimes fails
|
||||
# randomly.
|
||||
mdadm -W /dev/md0
|
||||
+set -e
|
||||
lvm pvcreate -ff -y /dev/md0
|
||||
-lvm vgcreate dracut /dev/md0 && \
|
||||
-lvm lvcreate -l 100%FREE -n root dracut && \
|
||||
-lvm vgchange -ay && \
|
||||
-mke2fs -L root /dev/dracut/root && \
|
||||
-mkdir -p /sysroot && \
|
||||
-mount /dev/dracut/root /sysroot && \
|
||||
-cp -a -t /sysroot /source/* && \
|
||||
-umount /sysroot && \
|
||||
-lvm lvchange -a n /dev/dracut/root && \
|
||||
+lvm vgcreate dracut /dev/md0
|
||||
+lvm lvcreate -l 100%FREE -n root dracut
|
||||
+lvm vgchange -ay
|
||||
+mke2fs -L root /dev/dracut/root
|
||||
+mkdir -p /sysroot
|
||||
+mount /dev/dracut/root /sysroot
|
||||
+cp -a -t /sysroot /source/*
|
||||
+umount /sysroot
|
||||
+lvm lvchange -a n /dev/dracut/root
|
||||
udevadm settle
|
||||
mdadm --detail --export /dev/md0 |grep -F MD_UUID > /tmp/mduuid
|
||||
. /tmp/mduuid
|
||||
echo "MD_UUID=$MD_UUID"
|
||||
{ echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID;} > /dev/sda
|
||||
mdadm --wait-clean /dev/md0
|
||||
-poweroff -f
|
||||
|
346
SOURCES/0033.patch
Normal file
346
SOURCES/0033.patch
Normal file
@ -0,0 +1,346 @@
|
||||
From e35e43c1c28a8935660fe72650614e5dc1defb65 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Wed, 26 Jun 2019 11:47:21 +0200
|
||||
Subject: [PATCH] test: tell systemd to reboot on fatal errors
|
||||
|
||||
Otherwise systemd would freeze execution, causing the test to time out
|
||||
instead of failing fast.
|
||||
|
||||
(cherry picked from commit 7934c6f918de2e82d0df5da557c5792c4fb7b798)
|
||||
---
|
||||
test/TEST-01-BASIC/test.sh | 2 +-
|
||||
test/TEST-02-SYSTEMD/test.sh | 2 +-
|
||||
test/TEST-03-USR-MOUNT/test.sh | 2 +-
|
||||
test/TEST-04-FULL-SYSTEMD/test.sh | 2 +-
|
||||
test/TEST-10-RAID/test.sh | 2 +-
|
||||
test/TEST-11-LVM/test.sh | 2 +-
|
||||
test/TEST-12-RAID-DEG/test.sh | 2 +-
|
||||
test/TEST-13-ENC-RAID-LVM/test.sh | 6 +++---
|
||||
test/TEST-14-IMSM/test.sh | 2 +-
|
||||
test/TEST-15-BTRFSRAID/test.sh | 2 +-
|
||||
test/TEST-16-DMSQUASH/test.sh | 2 +-
|
||||
test/TEST-17-LVM-THIN/test.sh | 2 +-
|
||||
test/TEST-20-NFS/test.sh | 4 ++--
|
||||
test/TEST-30-ISCSI/test.sh | 4 ++--
|
||||
test/TEST-31-ISCSI-MULTI/test.sh | 4 ++--
|
||||
test/TEST-40-NBD/test.sh | 4 ++--
|
||||
test/TEST-50-MULTINIC/test.sh | 4 ++--
|
||||
test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 6 +++---
|
||||
18 files changed, 27 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh
|
||||
index ed2ae5de..ca4a8288 100755
|
||||
--- a/test/TEST-01-BASIC/test.sh
|
||||
+++ b/test/TEST-01-BASIC/test.sh
|
||||
@@ -15,7 +15,7 @@ test_run() {
|
||||
-net none \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=LABEL=dracut rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=LABEL=dracut rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing || return 1
|
||||
grep -F -m 1 -q dracut-root-block-success $TESTDIR/result || return 1
|
||||
}
|
||||
diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh
|
||||
index 8c5eb168..848021e5 100755
|
||||
--- a/test/TEST-02-SYSTEMD/test.sh
|
||||
+++ b/test/TEST-02-SYSTEMD/test.sh
|
||||
@@ -11,7 +11,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext3 || return 1
|
||||
}
|
||||
diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh
|
||||
index 42c0da65..5d5ec8f8 100755
|
||||
--- a/test/TEST-03-USR-MOUNT/test.sh
|
||||
+++ b/test/TEST-03-USR-MOUNT/test.sh
|
||||
@@ -22,7 +22,7 @@ client_run() {
|
||||
-net none \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=LABEL=dracut $client_opts quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
|
||||
if (($? != 0)); then
|
||||
diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh
|
||||
index 97528e4f..f65f30f2 100755
|
||||
--- a/test/TEST-04-FULL-SYSTEMD/test.sh
|
||||
+++ b/test/TEST-04-FULL-SYSTEMD/test.sh
|
||||
@@ -23,7 +23,7 @@ client_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=LABEL=dracut $client_opts rd.retry=3 console=ttyS0,115200n81 selinux=0 $DEBUGOUT rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts rd.retry=3 console=ttyS0,115200n81 selinux=0 $DEBUGOUT rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
|
||||
if (($? != 0)); then
|
||||
diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh
|
||||
index 444126b2..0beb26c3 100755
|
||||
--- a/test/TEST-10-RAID/test.sh
|
||||
+++ b/test/TEST-10-RAID/test.sh
|
||||
@@ -13,7 +13,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/dracut/root rd.auto rw rd.retry=10 console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rd.auto rw rd.retry=10 console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $DISKIMAGE || return 1
|
||||
}
|
||||
diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh
|
||||
index 5c105e01..a907c4b1 100755
|
||||
--- a/test/TEST-11-LVM/test.sh
|
||||
+++ b/test/TEST-11-LVM/test.sh
|
||||
@@ -12,7 +12,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1
|
||||
}
|
||||
diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
|
||||
index 4e381d84..c82cde1e 100755
|
||||
--- a/test/TEST-12-RAID-DEG/test.sh
|
||||
+++ b/test/TEST-12-RAID-DEG/test.sh
|
||||
@@ -20,7 +20,7 @@ client_run() {
|
||||
-drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img.new \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 $* systemd.log_target=kmsg loglevel=7 root=LABEL=root rw rd.retry=20 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.debug rd.shell=0 $DEBUGFAIL " \
|
||||
+ -append "panic=1 systemd.crash_reboot $* systemd.log_target=kmsg loglevel=7 root=LABEL=root rw rd.retry=20 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.debug rd.shell=0 $DEBUGFAIL " \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then
|
||||
echo "CLIENT TEST END: $@ [FAIL]"
|
||||
diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
index 76ec36b3..99324ce9 100755
|
||||
--- a/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
+++ b/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
@@ -20,7 +20,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/dracut/root rw rd.auto rd.retry=20 console=ttyS0,115200n81 selinux=0 rd.debug rootwait $LUKSARGS rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto rd.retry=20 console=ttyS0,115200n81 selinux=0 rd.debug rootwait $LUKSARGS rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1
|
||||
echo "CLIENT TEST END: [OK]"
|
||||
@@ -34,7 +34,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/dracut/root rw quiet rd.auto rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1
|
||||
echo "CLIENT TEST END: [OK]"
|
||||
@@ -48,7 +48,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/dracut/root rw quiet rd.auto rd.retry=10 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL rd.luks.uuid=failme" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=10 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL rd.luks.uuid=failme" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img && return 1
|
||||
echo "CLIENT TEST END: [OK]"
|
||||
diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh
|
||||
index 8ebc285a..ed60f052 100755
|
||||
--- a/test/TEST-14-IMSM/test.sh
|
||||
+++ b/test/TEST-14-IMSM/test.sh
|
||||
@@ -16,7 +16,7 @@ client_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 $* root=LABEL=root rw debug rd.retry=5 rd.debug console=ttyS0,115200n81 selinux=0 rd.info rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot $* root=LABEL=root rw debug rd.retry=5 rd.debug console=ttyS0,115200n81 selinux=0 rd.info rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then
|
||||
echo "CLIENT TEST END: $@ [FAIL]"
|
||||
diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
|
||||
index 02cb4976..dda76672 100755
|
||||
--- a/test/TEST-15-BTRFSRAID/test.sh
|
||||
+++ b/test/TEST-15-BTRFSRAID/test.sh
|
||||
@@ -15,7 +15,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $MARKER_DISKIMAGE || return 1
|
||||
}
|
||||
diff --git a/test/TEST-16-DMSQUASH/test.sh b/test/TEST-16-DMSQUASH/test.sh
|
||||
index 45d8c4c0..65d5bdbb 100755
|
||||
--- a/test/TEST-16-DMSQUASH/test.sh
|
||||
+++ b/test/TEST-16-DMSQUASH/test.sh
|
||||
@@ -23,7 +23,7 @@ test_run() {
|
||||
-nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=live:CDLABEL=LiveCD live rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=live:CDLABEL=LiveCD live rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd "$TESTDIR"/initramfs.testing
|
||||
|
||||
# mediacheck test with qemu GUI
|
||||
diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh
|
||||
index 1b36a216..c13e9063 100755
|
||||
--- a/test/TEST-17-LVM-THIN/test.sh
|
||||
+++ b/test/TEST-17-LVM-THIN/test.sh
|
||||
@@ -12,7 +12,7 @@ test_run() {
|
||||
-m 512M -smp 2 -nographic \
|
||||
-net none \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1
|
||||
}
|
||||
diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh
|
||||
index e942745a..4ad7fd77 100755
|
||||
--- a/test/TEST-20-NFS/test.sh
|
||||
+++ b/test/TEST-20-NFS/test.sh
|
||||
@@ -22,7 +22,7 @@ run_server() {
|
||||
${SERIAL:--serial file:"$TESTDIR"/server.log} \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 rd.debug loglevel=77 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
|
||||
+ -append "panic=1 systemd.crash_reboot rd.debug loglevel=77 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
|
||||
-initrd $TESTDIR/initramfs.server \
|
||||
-pidfile $TESTDIR/server.pid -daemonize || return 1
|
||||
sudo chmod 644 $TESTDIR/server.pid || return 1
|
||||
@@ -57,7 +57,7 @@ client_test() {
|
||||
-net socket,connect=127.0.0.1:12320 \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.debug rd.retry=10 rd.info quiet ro console=ttyS0,115200n81 selinux=0" \
|
||||
+ -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.debug rd.retry=10 rd.info quiet ro console=ttyS0,115200n81 selinux=0" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
|
||||
if [[ $? -ne 0 ]] || ! grep -F -m 1 -q nfs-OK $TESTDIR/client.img; then
|
||||
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
|
||||
index f6cc56d5..d5a6ba58 100755
|
||||
--- a/test/TEST-30-ISCSI/test.sh
|
||||
+++ b/test/TEST-30-ISCSI/test.sh
|
||||
@@ -26,7 +26,7 @@ run_server() {
|
||||
-net nic,macaddr=52:54:00:12:34:57,model=e1000 \
|
||||
-net socket,listen=127.0.0.1:12330 \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
|
||||
-initrd $TESTDIR/initramfs.server \
|
||||
-pidfile $TESTDIR/server.pid -daemonize || return 1
|
||||
sudo chmod 644 $TESTDIR/server.pid || return 1
|
||||
@@ -51,7 +51,7 @@ run_client() {
|
||||
-net nic,macaddr=52:54:00:12:34:01,model=e1000 \
|
||||
-net socket,connect=127.0.0.1:12330 \
|
||||
-no-reboot \
|
||||
- -append "panic=1 rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
|
||||
+ -append "panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
if ! grep -F -m 1 -q iscsi-OK $TESTDIR/client.img; then
|
||||
echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]"
|
||||
diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
|
||||
index 5c38249c..20db2451 100755
|
||||
--- a/test/TEST-31-ISCSI-MULTI/test.sh
|
||||
+++ b/test/TEST-31-ISCSI-MULTI/test.sh
|
||||
@@ -26,7 +26,7 @@ run_server() {
|
||||
-net nic,macaddr=52:54:00:12:34:57,model=e1000 \
|
||||
-net socket,listen=127.0.0.1:12331 \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
|
||||
-initrd $TESTDIR/initramfs.server \
|
||||
-pidfile $TESTDIR/server.pid -daemonize || return 1
|
||||
sudo chmod 644 $TESTDIR/server.pid || return 1
|
||||
@@ -51,7 +51,7 @@ run_client() {
|
||||
-net nic,macaddr=52:54:00:12:34:01,model=e1000 \
|
||||
-net socket,connect=127.0.0.1:12331 \
|
||||
-no-reboot \
|
||||
- -append "panic=1 rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
|
||||
+ -append "panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
if ! grep -F -m 1 -q iscsi-OK $TESTDIR/client.img; then
|
||||
echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]"
|
||||
diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
|
||||
index 12736a15..19ec5b0e 100755
|
||||
--- a/test/TEST-40-NBD/test.sh
|
||||
+++ b/test/TEST-40-NBD/test.sh
|
||||
@@ -28,7 +28,7 @@ run_server() {
|
||||
${SERIAL:+-serial "$SERIAL"} \
|
||||
${SERIAL:--serial file:"$TESTDIR"/server.log} \
|
||||
-no-reboot \
|
||||
- -append "panic=1 root=/dev/sda rootfstype=ext2 rw quiet console=ttyS0,115200n81 selinux=0" \
|
||||
+ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext2 rw quiet console=ttyS0,115200n81 selinux=0" \
|
||||
-initrd $TESTDIR/initramfs.server -pidfile $TESTDIR/server.pid -daemonize || return 1
|
||||
sudo chmod 644 $TESTDIR/server.pid || return 1
|
||||
|
||||
@@ -65,7 +65,7 @@ client_test() {
|
||||
-net nic,macaddr=$mac,model=e1000 \
|
||||
-net socket,connect=127.0.0.1:12340 \
|
||||
-no-reboot \
|
||||
- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.auto rd.info rd.retry=10 ro console=ttyS0,115200n81 selinux=0 " \
|
||||
+ -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.auto rd.info rd.retry=10 ro console=ttyS0,115200n81 selinux=0 " \
|
||||
-initrd $TESTDIR/initramfs.testing
|
||||
|
||||
if [[ $? -ne 0 ]] || ! grep -F -m 1 -q nbd-OK $TESTDIR/flag.img; then
|
||||
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
|
||||
index 495a66f2..ff2961dc 100755
|
||||
--- a/test/TEST-50-MULTINIC/test.sh
|
||||
+++ b/test/TEST-50-MULTINIC/test.sh
|
||||
@@ -23,7 +23,7 @@ run_server() {
|
||||
${SERIAL:--serial file:"$TESTDIR"/server.log} \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
|
||||
+ -append "panic=1 systemd.crash_reboot loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
|
||||
-initrd "$TESTDIR"/initramfs.server \
|
||||
-pidfile "$TESTDIR"/server.pid -daemonize || return 1
|
||||
|
||||
@@ -63,7 +63,7 @@ client_test() {
|
||||
-device e1000,netdev=n2,mac=52:54:00:12:34:99 \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
|
||||
+ -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
|
||||
-initrd "$TESTDIR"/initramfs.testing
|
||||
|
||||
{ read OK; read IFACES; } < "$TESTDIR"/client.img
|
||||
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
|
||||
index 8c11a7d3..5618baee 100755
|
||||
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
|
||||
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
|
||||
@@ -31,7 +31,7 @@ run_server() {
|
||||
${SERIAL:--serial file:"$TESTDIR"/server.log} \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \
|
||||
+ -append "panic=1 systemd.crash_reboot loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \
|
||||
-initrd "$TESTDIR"/initramfs.server \
|
||||
-pidfile "$TESTDIR"/server.pid -daemonize || return 1
|
||||
chmod 644 -- "$TESTDIR"/server.pid || return 1
|
||||
@@ -79,7 +79,7 @@ client_test() {
|
||||
$nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
|
||||
+ -append "panic=1 systemd.crash_reboot $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
|
||||
-initrd "$TESTDIR"/initramfs.testing
|
||||
else
|
||||
$testdir/run-qemu \
|
||||
@@ -95,7 +95,7 @@ client_test() {
|
||||
-net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-no-reboot \
|
||||
- -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
|
||||
+ -append "panic=1 systemd.crash_reboot $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
|
||||
-initrd "$TESTDIR"/initramfs.testing
|
||||
fi
|
||||
|
||||
|
229
SOURCES/0034.patch
Normal file
229
SOURCES/0034.patch
Normal file
@ -0,0 +1,229 @@
|
||||
From a34b1baa6ca45b420399ec4cefe3cfe225c14dcf Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Tue, 11 Jun 2019 09:56:13 +0200
|
||||
Subject: [PATCH] test/{10,12,13,14,17,30,31}: increase the disk sizes
|
||||
|
||||
On Fedora 30 the paritition sizes turn out to be too small again:
|
||||
|
||||
+ mkdir -p /sysroot
|
||||
+ mount /dev/dracut/root /sysroot
|
||||
+ cp -a -t /sysroot /source/bin /source/dev /source/etc /source/lib /source/lib64 /source/proc /source/root /source/sbin /source/sys /source/tmp /source/usr /source/var
|
||||
cp: error writing '/sysroot/usr/lib64/libkrb5.so.3.3': No space left on device
|
||||
cp: error writing '/sysroot/usr/lib64/libkrb5support.so.0.1': No space left on device
|
||||
|
||||
It turns out that there has been quite some size increase in some libraries,
|
||||
notably glibc, though not all -- some even shrunk, ruling out a toolchain
|
||||
problem. Here's are files over 1M we install on Fedora 30:
|
||||
|
||||
f29 f30
|
||||
2.7M => 6.4M /usr/lib64/{libc-2.28.so => libc-2.29.so}
|
||||
3.1M => 6.0M /usr/lib64/libcrypto.so.1.1.1c
|
||||
2.0M => 3.5M /usr/lib64/{libm-2.28.so => libm-2.29.so}
|
||||
2.9M => 2.8M /usr/lib/systemd/{libsystemd-shared-239.so => libsystemd-shared-241.so}
|
||||
1.7M => 2.5M /usr/lib64/libunistring.so.2.1.0
|
||||
2.3M => 2.4M /usr/lib64/bind9-export/libdns-export.so.1105.0.0
|
||||
1.2M => 2.1M /usr/bin/bash
|
||||
1.1M => 1.4M /usr/lib64/libkrb5.so.3.3
|
||||
1.2M => 1.4M /usr/lib64/libgcrypt.so.20.2.4
|
||||
612K => 1.1M /usr/lib64/libssl.so.1.1.1c
|
||||
|
||||
This increases the image sizes to accomodate for this. There's probably
|
||||
little else we can do.
|
||||
|
||||
(cherry picked from commit e318ba30fbd84d510a5bbb071d868e523d965869)
|
||||
---
|
||||
test/TEST-10-RAID/create-root.sh | 6 +++---
|
||||
test/TEST-10-RAID/test.sh | 2 +-
|
||||
test/TEST-12-RAID-DEG/test.sh | 6 +++---
|
||||
test/TEST-13-ENC-RAID-LVM/create-root.sh | 6 +++---
|
||||
test/TEST-13-ENC-RAID-LVM/test.sh | 2 +-
|
||||
test/TEST-14-IMSM/create-root.sh | 6 +++---
|
||||
test/TEST-14-IMSM/test.sh | 4 ++--
|
||||
test/TEST-17-LVM-THIN/create-root.sh | 8 ++++----
|
||||
test/TEST-17-LVM-THIN/test.sh | 2 +-
|
||||
test/TEST-30-ISCSI/test.sh | 6 +++---
|
||||
test/TEST-31-ISCSI-MULTI/test.sh | 6 +++---
|
||||
11 files changed, 27 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/test/TEST-10-RAID/create-root.sh b/test/TEST-10-RAID/create-root.sh
|
||||
index 7b5f2a76..af4cac0d 100755
|
||||
--- a/test/TEST-10-RAID/create-root.sh
|
||||
+++ b/test/TEST-10-RAID/create-root.sh
|
||||
@@ -8,9 +8,9 @@ udevadm control --reload
|
||||
# save a partition at the beginning for future flagging purposes
|
||||
sfdisk /dev/sda <<EOF
|
||||
,4M
|
||||
-,25M
|
||||
-,25M
|
||||
-,25M
|
||||
+,41M
|
||||
+,41M
|
||||
+,41M
|
||||
EOF
|
||||
udevadm settle
|
||||
mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sda2 /dev/sda3 /dev/sda4
|
||||
diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh
|
||||
index 0beb26c3..07179a29 100755
|
||||
--- a/test/TEST-10-RAID/test.sh
|
||||
+++ b/test/TEST-10-RAID/test.sh
|
||||
@@ -22,7 +22,7 @@ test_setup() {
|
||||
DISKIMAGE=$TESTDIR/TEST-10-RAID-root.img
|
||||
# Create the blank file to use as a root filesystem
|
||||
rm -f -- $DISKIMAGE
|
||||
- dd if=/dev/null of=$DISKIMAGE bs=1M seek=80
|
||||
+ dd if=/dev/null of=$DISKIMAGE bs=1M seek=128
|
||||
|
||||
kernel=$KVERSION
|
||||
# Create what will eventually be our root filesystem onto an overlay
|
||||
diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
|
||||
index c82cde1e..920baafd 100755
|
||||
--- a/test/TEST-12-RAID-DEG/test.sh
|
||||
+++ b/test/TEST-12-RAID-DEG/test.sh
|
||||
@@ -59,9 +59,9 @@ test_setup() {
|
||||
# Create the blank file to use as a root filesystem
|
||||
rm -f -- $TESTDIR/root.ext2
|
||||
dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=40
|
||||
- dd if=/dev/null of=$TESTDIR/disk1.img bs=1M seek=20
|
||||
- dd if=/dev/null of=$TESTDIR/disk2.img bs=1M seek=20
|
||||
- dd if=/dev/null of=$TESTDIR/disk3.img bs=1M seek=20
|
||||
+ dd if=/dev/null of=$TESTDIR/disk1.img bs=1M seek=35
|
||||
+ dd if=/dev/null of=$TESTDIR/disk2.img bs=1M seek=35
|
||||
+ dd if=/dev/null of=$TESTDIR/disk3.img bs=1M seek=35
|
||||
|
||||
kernel=$KVERSION
|
||||
# Create what will eventually be our root filesystem onto an overlay
|
||||
diff --git a/test/TEST-13-ENC-RAID-LVM/create-root.sh b/test/TEST-13-ENC-RAID-LVM/create-root.sh
|
||||
index 72bc765f..13e65838 100755
|
||||
--- a/test/TEST-13-ENC-RAID-LVM/create-root.sh
|
||||
+++ b/test/TEST-13-ENC-RAID-LVM/create-root.sh
|
||||
@@ -9,9 +9,9 @@ udevadm control --reload
|
||||
# save a partition at the beginning for future flagging purposes
|
||||
sfdisk /dev/sda <<EOF
|
||||
,4M
|
||||
-,25M
|
||||
-,25M
|
||||
-,25M
|
||||
+,43M
|
||||
+,43M
|
||||
+,43M
|
||||
EOF
|
||||
udevadm settle
|
||||
printf test >keyfile
|
||||
diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
index 99324ce9..9ffe24b1 100755
|
||||
--- a/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
+++ b/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
@@ -59,7 +59,7 @@ test_run() {
|
||||
test_setup() {
|
||||
# Create the blank file to use as a root filesystem
|
||||
rm -f -- $TESTDIR/root.ext2
|
||||
- dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=80
|
||||
+ dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=134
|
||||
|
||||
kernel=$KVERSION
|
||||
# Create what will eventually be our root filesystem onto an overlay
|
||||
diff --git a/test/TEST-14-IMSM/create-root.sh b/test/TEST-14-IMSM/create-root.sh
|
||||
index a0324c6f..0d10945b 100755
|
||||
--- a/test/TEST-14-IMSM/create-root.sh
|
||||
+++ b/test/TEST-14-IMSM/create-root.sh
|
||||
@@ -32,9 +32,9 @@ sfdisk -g /dev/mapper/isw*Test0
|
||||
# save a partition at the beginning for future flagging purposes
|
||||
sfdisk --no-reread /dev/mapper/isw*Test0 <<EOF
|
||||
,4M
|
||||
-,20M
|
||||
-,20M
|
||||
-,20M
|
||||
+,28M
|
||||
+,28M
|
||||
+,28M
|
||||
EOF
|
||||
|
||||
udevadm settle
|
||||
diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh
|
||||
index ed60f052..a3e52b53 100755
|
||||
--- a/test/TEST-14-IMSM/test.sh
|
||||
+++ b/test/TEST-14-IMSM/test.sh
|
||||
@@ -53,8 +53,8 @@ test_setup() {
|
||||
rm -f -- $TESTDIR/disk1
|
||||
rm -f -- $TESTDIR/disk2
|
||||
dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=1
|
||||
- dd if=/dev/null of=$TESTDIR/disk1 bs=1M seek=80
|
||||
- dd if=/dev/null of=$TESTDIR/disk2 bs=1M seek=80
|
||||
+ dd if=/dev/null of=$TESTDIR/disk1 bs=1M seek=104
|
||||
+ dd if=/dev/null of=$TESTDIR/disk2 bs=1M seek=104
|
||||
|
||||
kernel=$KVERSION
|
||||
# Create what will eventually be our root filesystem onto an overlay
|
||||
diff --git a/test/TEST-17-LVM-THIN/create-root.sh b/test/TEST-17-LVM-THIN/create-root.sh
|
||||
index 0e52f879..6e09012e 100755
|
||||
--- a/test/TEST-17-LVM-THIN/create-root.sh
|
||||
+++ b/test/TEST-17-LVM-THIN/create-root.sh
|
||||
@@ -8,16 +8,16 @@ udevadm control --reload
|
||||
# save a partition at the beginning for future flagging purposes
|
||||
sfdisk /dev/sda <<EOF
|
||||
,4M
|
||||
-,25M
|
||||
-,25M
|
||||
-,25M
|
||||
+,29M
|
||||
+,29M
|
||||
+,29M
|
||||
EOF
|
||||
udevadm settle
|
||||
for i in sda2 sda3 sda4; do
|
||||
lvm pvcreate -ff -y /dev/$i ;
|
||||
done && \
|
||||
lvm vgcreate dracut /dev/sda[234] && \
|
||||
-lvm lvcreate -l 16 -T dracut/mythinpool && \
|
||||
+lvm lvcreate -l 17 -T dracut/mythinpool && \
|
||||
lvm lvcreate -V1G -T dracut/mythinpool -n root && \
|
||||
lvm vgchange -ay && \
|
||||
mke2fs /dev/dracut/root && \
|
||||
diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh
|
||||
index c13e9063..c7247c91 100755
|
||||
--- a/test/TEST-17-LVM-THIN/test.sh
|
||||
+++ b/test/TEST-17-LVM-THIN/test.sh
|
||||
@@ -19,7 +19,7 @@ test_run() {
|
||||
|
||||
test_setup() {
|
||||
# Create the blank file to use as a root filesystem
|
||||
- dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=80
|
||||
+ dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=92
|
||||
|
||||
kernel=$KVERSION
|
||||
# Create what will eventually be our root filesystem onto an overlay
|
||||
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
|
||||
index d5a6ba58..c126e3dd 100755
|
||||
--- a/test/TEST-30-ISCSI/test.sh
|
||||
+++ b/test/TEST-30-ISCSI/test.sh
|
||||
@@ -109,9 +109,9 @@ test_setup() {
|
||||
fi
|
||||
|
||||
# Create the blank file to use as a root filesystem
|
||||
- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=40
|
||||
- dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=40
|
||||
- dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=40
|
||||
+ dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=45
|
||||
+ dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=45
|
||||
+ dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=45
|
||||
|
||||
kernel=$KVERSION
|
||||
# Create what will eventually be our root filesystem onto an overlay
|
||||
diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
|
||||
index 20db2451..122c69e3 100755
|
||||
--- a/test/TEST-31-ISCSI-MULTI/test.sh
|
||||
+++ b/test/TEST-31-ISCSI-MULTI/test.sh
|
||||
@@ -131,9 +131,9 @@ test_setup() {
|
||||
fi
|
||||
|
||||
# Create the blank file to use as a root filesystem
|
||||
- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=40
|
||||
- dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=40
|
||||
- dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=40
|
||||
+ dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=45
|
||||
+ dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=45
|
||||
+ dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=45
|
||||
|
||||
kernel=$KVERSION
|
||||
# Create what will eventually be our root filesystem onto an overlay
|
||||
|
27
SOURCES/0035.patch
Normal file
27
SOURCES/0035.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From d9bf0c38be49199724abe1d18bc1c2686e6f0c88 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Thu, 27 Jun 2019 16:20:32 +0200
|
||||
Subject: [PATCH] travis: run TEST-14-IMSM on Fedora 29
|
||||
|
||||
Systemd in Fedora 30 is broken at the moment.
|
||||
Fix: https://github.com/systemd/systemd/pull/12872/
|
||||
|
||||
(cherry picked from commit 7a2503ab8cec9473ad6dacf4f48b17344219f3c0)
|
||||
---
|
||||
.travis.yml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.travis.yml b/.travis.yml
|
||||
index efb0df1b..de0af438 100644
|
||||
--- a/.travis.yml
|
||||
+++ b/.travis.yml
|
||||
@@ -19,7 +19,7 @@ env:
|
||||
- IMAGE=latest TESTS=10
|
||||
- IMAGE=latest TESTS=11
|
||||
- IMAGE=latest TESTS=13
|
||||
- - IMAGE=latest TESTS=14
|
||||
+ - IMAGE=29 TESTS=14
|
||||
- IMAGE=latest TESTS=15
|
||||
- IMAGE=latest TESTS=17
|
||||
|
||||
|
27
SOURCES/0036.patch
Normal file
27
SOURCES/0036.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From c60f4fc027272c221a887128070ac89547b6ecc3 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Thu, 27 Jun 2019 16:22:04 +0200
|
||||
Subject: [PATCH] travis: run TEST-13-ENC-RAID-LVM on Fedora 29
|
||||
|
||||
Systemd in Fedora 30 is broken at the moment.
|
||||
Fix: https://github.com/systemd/systemd/pull/12897
|
||||
|
||||
(cherry picked from commit 8238f41b34777c3c75b03a9b598d4b9e1c7bf911)
|
||||
---
|
||||
.travis.yml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.travis.yml b/.travis.yml
|
||||
index de0af438..364078cf 100644
|
||||
--- a/.travis.yml
|
||||
+++ b/.travis.yml
|
||||
@@ -18,7 +18,7 @@ env:
|
||||
- IMAGE=latest TESTS=04
|
||||
- IMAGE=latest TESTS=10
|
||||
- IMAGE=latest TESTS=11
|
||||
- - IMAGE=latest TESTS=13
|
||||
+ - IMAGE=29 TESTS=13
|
||||
- IMAGE=29 TESTS=14
|
||||
- IMAGE=latest TESTS=15
|
||||
- IMAGE=latest TESTS=17
|
||||
|
53
SOURCES/0037.patch
Normal file
53
SOURCES/0037.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From d8f0e52ac7d05c364ca24d2058c970e5e03f82ff Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Fri, 30 Aug 2019 16:16:51 +0200
|
||||
Subject: [PATCH] all: remove debugging leftovers
|
||||
|
||||
Accidentally folded into commit e671c3a06a7e5 ('95iscsi/module-setup.sh:
|
||||
do not require 'hostname' anymore').
|
||||
---
|
||||
modules.d/40network/netroot.sh | 2 +-
|
||||
modules.d/98dracut-systemd/dracut-cmdline.sh | 2 +-
|
||||
modules.d/99base/init.sh | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh
|
||||
index 654cfc72..207364cd 100755
|
||||
--- a/modules.d/40network/netroot.sh
|
||||
+++ b/modules.d/40network/netroot.sh
|
||||
@@ -66,7 +66,7 @@ if [ -z "$2" ]; then
|
||||
|
||||
# Check: do we really know how to handle (net)root?
|
||||
[ -z "$root" ] && die "No or empty root= argument"
|
||||
- [ -z "$rootok" ] && die "X2 Don't know how to handle 'root=$root'"
|
||||
+ [ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
|
||||
|
||||
handler=${netroot%%:*}
|
||||
handler=${handler%%4}
|
||||
diff --git a/modules.d/98dracut-systemd/dracut-cmdline.sh b/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||
index 89c52d13..bff9435a 100755
|
||||
--- a/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||
+++ b/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||
@@ -76,7 +76,7 @@ case "${root}${root_unset}" in
|
||||
esac
|
||||
|
||||
[ -z "${root}${root_unset}" ] && die "Empty root= argument"
|
||||
-[ -z "$rootok" ] && die "X1 Don't know how to handle 'root=$root'"
|
||||
+[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
|
||||
|
||||
export root rflags fstype netroot NEWROOT
|
||||
|
||||
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
|
||||
index 3e20069f..e4f7cff1 100755
|
||||
--- a/modules.d/99base/init.sh
|
||||
+++ b/modules.d/99base/init.sh
|
||||
@@ -136,7 +136,7 @@ getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Br
|
||||
source_hook cmdline
|
||||
|
||||
[ -z "$root" ] && die "No or empty root= argument"
|
||||
-[ -z "$rootok" ] && die "X0 Don't know how to handle 'root=$root'"
|
||||
+[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
|
||||
|
||||
export root rflags fstype netroot NEWROOT
|
||||
|
||||
|
31
SOURCES/0038.patch
Normal file
31
SOURCES/0038.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 8eb08e55286e77f005246d1db1bfd2adf4a0e40b Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Tue, 27 Nov 2018 15:30:48 +0100
|
||||
Subject: [PATCH] network-manager: call the online hook for connected devices
|
||||
|
||||
Look for "connection-uuid" instead of "managed" to determine the devices
|
||||
that are actually activated with a connection and call the online hook.
|
||||
|
||||
This fixes the anaconda-net root mount, which utilizes the online hook.
|
||||
|
||||
(cherry picked from commit 79a17b0112995eb60c85c64d15070c52f213b28d)
|
||||
---
|
||||
modules.d/35network-manager/nm-run.sh | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
|
||||
index f6defa99..0f943631 100755
|
||||
--- a/modules.d/35network-manager/nm-run.sh
|
||||
+++ b/modules.d/35network-manager/nm-run.sh
|
||||
@@ -9,8 +9,9 @@ fi
|
||||
for _i in /sys/class/net/*/
|
||||
do
|
||||
state=/run/NetworkManager/devices/$(cat $_i/ifindex)
|
||||
- grep -q managed=true $state 2>/dev/null || continue
|
||||
+ grep -q connection-uuid= $state 2>/dev/null || continue
|
||||
ifname=$(basename $_i)
|
||||
sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts
|
||||
+ source_hook initqueue/online $ifname
|
||||
/sbin/netroot $ifname
|
||||
done
|
||||
|
24
SOURCES/0039.patch
Normal file
24
SOURCES/0039.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 34011ee53e745f74d70bc5b52dade6d4ef349e90 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 17 Jun 2019 10:07:38 +0200
|
||||
Subject: [PATCH] network-manager: remove useless use of basename
|
||||
|
||||
(cherry picked from commit 5e0f8c8a4ced36268d0077acafa1db2402776fa6)
|
||||
---
|
||||
modules.d/35network-manager/nm-run.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
|
||||
index 0f943631..5f4b38ca 100755
|
||||
--- a/modules.d/35network-manager/nm-run.sh
|
||||
+++ b/modules.d/35network-manager/nm-run.sh
|
||||
@@ -10,7 +10,7 @@ for _i in /sys/class/net/*/
|
||||
do
|
||||
state=/run/NetworkManager/devices/$(cat $_i/ifindex)
|
||||
grep -q connection-uuid= $state 2>/dev/null || continue
|
||||
- ifname=$(basename $_i)
|
||||
+ ifname=${_i##*/}
|
||||
sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts
|
||||
source_hook initqueue/online $ifname
|
||||
/sbin/netroot $ifname
|
||||
|
24
SOURCES/0040.patch
Normal file
24
SOURCES/0040.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 94c75a2a827ff09ffac18454d5c4ba4756d721d6 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 27 May 2019 12:44:17 +0200
|
||||
Subject: [PATCH] network-manager: also read out next-server from NM state
|
||||
|
||||
(cherry picked from commit 4be95b67a73e7434f92a7d7c40955eae0b59717e)
|
||||
---
|
||||
modules.d/35network-manager/nm-run.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
|
||||
index 5f4b38ca..a539d5b2 100755
|
||||
--- a/modules.d/35network-manager/nm-run.sh
|
||||
+++ b/modules.d/35network-manager/nm-run.sh
|
||||
@@ -11,7 +11,7 @@ do
|
||||
state=/run/NetworkManager/devices/$(cat $_i/ifindex)
|
||||
grep -q connection-uuid= $state 2>/dev/null || continue
|
||||
ifname=${_i##*/}
|
||||
- sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts
|
||||
+ sed -n 's/root-path/new_root_path/p;s/next-server/new_next_server/p' <$state >/tmp/dhclient.$ifname.dhcpopts
|
||||
source_hook initqueue/online $ifname
|
||||
/sbin/netroot $ifname
|
||||
done
|
||||
|
30
SOURCES/0041.patch
Normal file
30
SOURCES/0041.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From 68fefe6f9424d3f29e6da9133579c385e7b470b2 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 27 May 2019 12:43:59 +0200
|
||||
Subject: [PATCH] network-manager: generate configuration with netroot=
|
||||
|
||||
If the root is on network, let nm-initrd-generator create configuration
|
||||
even if none was explicitly specified on the command line.
|
||||
|
||||
Also do the same if /tmp/net.ifaces exists, because the anaconda plugin
|
||||
creates an empty file in that location in hopes that will make us
|
||||
configure the network.
|
||||
|
||||
(cherry picked from commit 381ab6b7cd2d35bf7f9da63b10c20f5ef6e61a8b)
|
||||
---
|
||||
modules.d/35network-manager/nm-config.sh | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-config.sh b/modules.d/35network-manager/nm-config.sh
|
||||
index 1339ebe7..1efa737c 100755
|
||||
--- a/modules.d/35network-manager/nm-config.sh
|
||||
+++ b/modules.d/35network-manager/nm-config.sh
|
||||
@@ -1,3 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
+if [ -n "$netroot" ] || [ -e /tmp/net.ifaces ]; then
|
||||
+ echo rd.neednet >> /etc/cmdline.d/35-neednet.conf
|
||||
+fi
|
||||
+
|
||||
/usr/libexec/nm-initrd-generator -- $(getcmdline)
|
||||
|
43
SOURCES/0042.patch
Normal file
43
SOURCES/0042.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 53cece208a44c53ecc001cb8eb769f6fb9b3d1dc Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 27 May 2019 11:12:22 +0200
|
||||
Subject: [PATCH] network: parse root=dhcp also with network-manager module
|
||||
|
||||
Move the logic from network-legacy to common network code.
|
||||
|
||||
(cherry picked from commit 35efada5ecffd139660b4a89f4cc3d627752c91e)
|
||||
---
|
||||
modules.d/35network-legacy/module-setup.sh | 1 -
|
||||
modules.d/{35network-legacy => 40network}/dhcp-root.sh | 0
|
||||
modules.d/40network/module-setup.sh | 1 +
|
||||
3 files changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/35network-legacy/module-setup.sh b/modules.d/35network-legacy/module-setup.sh
|
||||
index 71abda36..5a82e998 100755
|
||||
--- a/modules.d/35network-legacy/module-setup.sh
|
||||
+++ b/modules.d/35network-legacy/module-setup.sh
|
||||
@@ -36,7 +36,6 @@ install() {
|
||||
inst_simple -H "/etc/dhclient.conf"
|
||||
cat "$moddir/dhclient.conf" >> "${initdir}/etc/dhclient.conf"
|
||||
inst_hook pre-udev 60 "$moddir/net-genrules.sh"
|
||||
- inst_hook cmdline 91 "$moddir/dhcp-root.sh"
|
||||
inst_hook cmdline 92 "$moddir/parse-ibft.sh"
|
||||
inst_hook cmdline 95 "$moddir/parse-vlan.sh"
|
||||
inst_hook cmdline 96 "$moddir/parse-bond.sh"
|
||||
diff --git a/modules.d/35network-legacy/dhcp-root.sh b/modules.d/40network/dhcp-root.sh
|
||||
similarity index 100%
|
||||
rename from modules.d/35network-legacy/dhcp-root.sh
|
||||
rename to modules.d/40network/dhcp-root.sh
|
||||
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
||||
index e8541636..8e2a74a3 100755
|
||||
--- a/modules.d/40network/module-setup.sh
|
||||
+++ b/modules.d/40network/module-setup.sh
|
||||
@@ -28,6 +28,7 @@ install() {
|
||||
inst_script "$moddir/netroot.sh" "/sbin/netroot"
|
||||
inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh"
|
||||
inst_hook pre-udev 50 "$moddir/ifname-genrules.sh"
|
||||
+ inst_hook cmdline 91 "$moddir/dhcp-root.sh"
|
||||
|
||||
dracut_need_initqueue
|
||||
}
|
||||
|
620
SOURCES/0043.patch
Normal file
620
SOURCES/0043.patch
Normal file
@ -0,0 +1,620 @@
|
||||
From 4e10601254bb20891dc2919416d7151583678c3d Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 10 Jun 2019 16:04:18 +0200
|
||||
Subject: [PATCH] test: copy BONDBRIDGETEAMVLAN to IFCFG
|
||||
|
||||
The IFCFG test will make sure the network-legacy plugin keeps writing
|
||||
out correct ifcfg files.
|
||||
|
||||
This is a separate commit so that actual changes are visible in the
|
||||
following one.
|
||||
|
||||
(cherry picked from commit 70787ab61957741a05e4046bad49758c4e9bc1cc)
|
||||
---
|
||||
test/TEST-60-IFCFG/99-idesymlinks.rules | 8 +
|
||||
test/TEST-60-IFCFG/Makefile | 10 +
|
||||
test/TEST-60-IFCFG/client-init.sh | 22 +++
|
||||
test/TEST-60-IFCFG/dhcpd.conf | 27 +++
|
||||
test/TEST-60-IFCFG/exports | 1 +
|
||||
test/TEST-60-IFCFG/finished-false.sh | 2 +
|
||||
test/TEST-60-IFCFG/hard-off.sh | 3 +
|
||||
test/TEST-60-IFCFG/hosts | 5 +
|
||||
test/TEST-60-IFCFG/server-init.sh | 120 ++++++++++++
|
||||
test/TEST-60-IFCFG/test.sh | 336 ++++++++++++++++++++++++++++++++
|
||||
10 files changed, 534 insertions(+)
|
||||
|
||||
diff --git a/test/TEST-60-IFCFG/99-idesymlinks.rules b/test/TEST-60-IFCFG/99-idesymlinks.rules
|
||||
new file mode 100644
|
||||
index 00000000..d557790a
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/99-idesymlinks.rules
|
||||
@@ -0,0 +1,8 @@
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hda", SYMLINK+="sda"
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hda*", SYMLINK+="sda$env{MINOR}"
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdb", SYMLINK+="sdb"
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdb*", SYMLINK+="sdb$env{MINOR}"
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdc", SYMLINK+="sdc"
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdc*", SYMLINK+="sdc$env{MINOR}"
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdd", SYMLINK+="sdd"
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdd*", SYMLINK+="sdd$env{MINOR}"
|
||||
diff --git a/test/TEST-60-IFCFG/Makefile b/test/TEST-60-IFCFG/Makefile
|
||||
new file mode 100644
|
||||
index 00000000..aad27059
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/Makefile
|
||||
@@ -0,0 +1,10 @@
|
||||
+all:
|
||||
+ @$(MAKE) -s --no-print-directory -C ../.. all
|
||||
+ @V=$(V) basedir=../.. testdir=../ ./test.sh --all
|
||||
+setup:
|
||||
+ @$(MAKE) --no-print-directory -C ../.. all
|
||||
+ @basedir=../.. testdir=../ ./test.sh --setup
|
||||
+clean:
|
||||
+ @basedir=../.. testdir=../ ./test.sh --clean
|
||||
+run:
|
||||
+ @basedir=../.. testdir=../ ./test.sh --run
|
||||
diff --git a/test/TEST-60-IFCFG/client-init.sh b/test/TEST-60-IFCFG/client-init.sh
|
||||
new file mode 100755
|
||||
index 00000000..8c33ff0f
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/client-init.sh
|
||||
@@ -0,0 +1,22 @@
|
||||
+#!/bin/sh
|
||||
+exec >/dev/console 2>&1
|
||||
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
+strstr() { [ "${1#*$2*}" != "$1" ]; }
|
||||
+CMDLINE=$(while read line; do echo $line;done < /proc/cmdline)
|
||||
+export TERM=linux
|
||||
+export PS1='initramfs-test:\w\$ '
|
||||
+stty sane
|
||||
+echo "made it to the rootfs! Powering down."
|
||||
+
|
||||
+(
|
||||
+ echo OK
|
||||
+ ip -o -4 address show scope global | while read n if rest; do echo $if;done | sort
|
||||
+ for i in /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-*; do
|
||||
+ echo $i
|
||||
+ grep -v 'UUID=' $i
|
||||
+ done
|
||||
+ echo EOF
|
||||
+) > /dev/sda
|
||||
+
|
||||
+strstr "$CMDLINE" "rd.shell" && sh -i
|
||||
+poweroff -f
|
||||
diff --git a/test/TEST-60-IFCFG/dhcpd.conf b/test/TEST-60-IFCFG/dhcpd.conf
|
||||
new file mode 100644
|
||||
index 00000000..e26bd60b
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/dhcpd.conf
|
||||
@@ -0,0 +1,27 @@
|
||||
+ddns-update-style none;
|
||||
+
|
||||
+use-host-decl-names true;
|
||||
+
|
||||
+subnet 192.168.50.0 netmask 255.255.255.0 {
|
||||
+ option subnet-mask 255.255.255.0;
|
||||
+ option routers 192.168.50.1;
|
||||
+ next-server 192.168.50.1;
|
||||
+ server-identifier 192.168.50.1;
|
||||
+ option domain-name-servers 192.168.50.1;
|
||||
+ option domain-search "example.com";
|
||||
+ option domain-name "other.com";
|
||||
+ option root-path "nfs:192.168.50.1:/nfs/client";
|
||||
+ range 192.168.50.10 192.168.50.100;
|
||||
+}
|
||||
+
|
||||
+subnet 192.168.51.0 netmask 255.255.255.0 {
|
||||
+ option subnet-mask 255.255.255.0;
|
||||
+ option routers 192.168.51.1;
|
||||
+ next-server 192.168.51.1;
|
||||
+ server-identifier 192.168.51.1;
|
||||
+ option domain-name-servers 192.168.51.1;
|
||||
+ option domain-search "example.com";
|
||||
+ option domain-name "other.com";
|
||||
+ option root-path "nfs:192.168.51.1:/nfs/client";
|
||||
+ range 192.168.51.10 192.168.51.100;
|
||||
+}
|
||||
diff --git a/test/TEST-60-IFCFG/exports b/test/TEST-60-IFCFG/exports
|
||||
new file mode 100644
|
||||
index 00000000..ff5f29b1
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/exports
|
||||
@@ -0,0 +1 @@
|
||||
+/nfs/client 192.168.50.0/24(rw,insecure,no_subtree_check,no_root_squash)
|
||||
diff --git a/test/TEST-60-IFCFG/finished-false.sh b/test/TEST-60-IFCFG/finished-false.sh
|
||||
new file mode 100755
|
||||
index 00000000..ecdbef95
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/finished-false.sh
|
||||
@@ -0,0 +1,2 @@
|
||||
+#!/bin/sh
|
||||
+exit 1
|
||||
diff --git a/test/TEST-60-IFCFG/hard-off.sh b/test/TEST-60-IFCFG/hard-off.sh
|
||||
new file mode 100755
|
||||
index 00000000..12c3d5ac
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/hard-off.sh
|
||||
@@ -0,0 +1,3 @@
|
||||
+#!/bin/sh
|
||||
+getarg rd.shell || poweroff -f
|
||||
+getarg failme && poweroff -f
|
||||
diff --git a/test/TEST-60-IFCFG/hosts b/test/TEST-60-IFCFG/hosts
|
||||
new file mode 100644
|
||||
index 00000000..d02a4e9b
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/hosts
|
||||
@@ -0,0 +1,5 @@
|
||||
+127.0.0.1 localhost
|
||||
+192.168.50.1 server
|
||||
+192.168.50.100 client-if1
|
||||
+192.168.50.101 client-if2
|
||||
+192.168.50.102 client-if3
|
||||
diff --git a/test/TEST-60-IFCFG/server-init.sh b/test/TEST-60-IFCFG/server-init.sh
|
||||
new file mode 100755
|
||||
index 00000000..b9f01c9b
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/server-init.sh
|
||||
@@ -0,0 +1,120 @@
|
||||
+#!/bin/sh
|
||||
+exec </dev/console >/dev/console 2>&1
|
||||
+set -x
|
||||
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
+export TERM=linux
|
||||
+export PS1='nfstest-server:\w\$ '
|
||||
+stty sane
|
||||
+echo "made it to the rootfs!"
|
||||
+echo server > /proc/sys/kernel/hostname
|
||||
+
|
||||
+wait_for_if_link() {
|
||||
+ local cnt=0
|
||||
+ local li
|
||||
+ while [ $cnt -lt 600 ]; do
|
||||
+ li=$(ip -o link show dev $1 2>/dev/null)
|
||||
+ [ -n "$li" ] && return 0
|
||||
+ sleep 0.1
|
||||
+ cnt=$(($cnt+1))
|
||||
+ done
|
||||
+ return 1
|
||||
+}
|
||||
+
|
||||
+wait_for_if_up() {
|
||||
+ local cnt=0
|
||||
+ local li
|
||||
+ while [ $cnt -lt 200 ]; do
|
||||
+ li=$(ip -o link show up dev $1)
|
||||
+ [ -n "$li" ] && return 0
|
||||
+ sleep 0.1
|
||||
+ cnt=$(($cnt+1))
|
||||
+ done
|
||||
+ return 1
|
||||
+}
|
||||
+
|
||||
+wait_for_route_ok() {
|
||||
+ local cnt=0
|
||||
+ while [ $cnt -lt 200 ]; do
|
||||
+ li=$(ip route show)
|
||||
+ [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
|
||||
+ sleep 0.1
|
||||
+ cnt=$(($cnt+1))
|
||||
+ done
|
||||
+ return 1
|
||||
+}
|
||||
+
|
||||
+linkup() {
|
||||
+ wait_for_if_link $1 2>/dev/null\
|
||||
+ && ip link set $1 up 2>/dev/null\
|
||||
+ && wait_for_if_up $1 2>/dev/null
|
||||
+}
|
||||
+
|
||||
+modprobe --all -b -q 8021q ipvlan macvlan
|
||||
+>/dev/watchdog
|
||||
+ip addr add 127.0.0.1/8 dev lo
|
||||
+linkup lo
|
||||
+ip link set dev eth0 name ens3
|
||||
+ip addr add 192.168.50.1/24 dev ens3
|
||||
+linkup ens3
|
||||
+>/dev/watchdog
|
||||
+ip link set dev eth1 name ens4
|
||||
+ip link add dev ens4.1 link ens4 type vlan id 1
|
||||
+ip link add dev ens4.2 link ens4 type vlan id 2
|
||||
+ip link add dev ens4.3 link ens4 type vlan id 3
|
||||
+ip link add dev ens4.4 link ens4 type vlan id 4
|
||||
+ip addr add 192.168.54.1/24 dev ens4.1
|
||||
+ip addr add 192.168.55.1/24 dev ens4.2
|
||||
+ip addr add 192.168.56.1/24 dev ens4.3
|
||||
+ip addr add 192.168.57.1/24 dev ens4.4
|
||||
+linkup ens4
|
||||
+ip link set dev ens4.1 up
|
||||
+ip link set dev ens4.2 up
|
||||
+ip link set dev ens4.3 up
|
||||
+ip link set dev ens4.4 up
|
||||
+ip link set dev eth2 name ens5
|
||||
+ip addr add 192.168.51.1/24 dev ens5
|
||||
+linkup ens5
|
||||
+ip link set dev eth3 name ens6
|
||||
+linkup ens6
|
||||
+>/dev/watchdog
|
||||
+modprobe af_packet
|
||||
+> /dev/watchdog
|
||||
+modprobe sunrpc
|
||||
+>/dev/watchdog
|
||||
+mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs
|
||||
+>/dev/watchdog
|
||||
+[ -x /sbin/portmap ] && portmap
|
||||
+>/dev/watchdog
|
||||
+mkdir -p /run/rpcbind
|
||||
+[ -x /sbin/rpcbind ] && rpcbind
|
||||
+>/dev/watchdog
|
||||
+modprobe nfsd
|
||||
+>/dev/watchdog
|
||||
+mount -t nfsd nfsd /proc/fs/nfsd
|
||||
+>/dev/watchdog
|
||||
+exportfs -r
|
||||
+>/dev/watchdog
|
||||
+rpc.nfsd
|
||||
+>/dev/watchdog
|
||||
+rpc.mountd
|
||||
+>/dev/watchdog
|
||||
+rpc.idmapd
|
||||
+>/dev/watchdog
|
||||
+exportfs -r
|
||||
+>/dev/watchdog
|
||||
+>/var/lib/dhcpd/dhcpd.leases
|
||||
+>/dev/watchdog
|
||||
+chmod 777 /var/lib/dhcpd/dhcpd.leases
|
||||
+>/dev/watchdog
|
||||
+dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases ens3 ens5
|
||||
+#echo -n 'V' > /dev/watchdog
|
||||
+#sh -i
|
||||
+#tcpdump -i ens3
|
||||
+# Wait forever for the VM to die
|
||||
+echo "Serving NFS mounts"
|
||||
+while :; do
|
||||
+ sleep 10
|
||||
+ >/dev/watchdog
|
||||
+done
|
||||
+mount -n -o remount,ro /
|
||||
+poweroff -f
|
||||
diff --git a/test/TEST-60-IFCFG/test.sh b/test/TEST-60-IFCFG/test.sh
|
||||
new file mode 100755
|
||||
index 00000000..8c11a7d3
|
||||
--- /dev/null
|
||||
+++ b/test/TEST-60-IFCFG/test.sh
|
||||
@@ -0,0 +1,336 @@
|
||||
+#!/bin/bash
|
||||
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||
+# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||
+TEST_DESCRIPTION="root filesystem on NFS with bridging/bonding/vlan"
|
||||
+KVERSION=${KVERSION-$(uname -r)}
|
||||
+
|
||||
+# Uncomment this to debug failures
|
||||
+#DEBUGFAIL="rd.shell rd.break"
|
||||
+#DEBUGFAIL="rd.shell rd.break rd.debug"
|
||||
+#SERIAL="tcp:127.0.0.1:9999"
|
||||
+
|
||||
+run_server() {
|
||||
+ # Start server first
|
||||
+ echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"
|
||||
+
|
||||
+ fsck -a "$TESTDIR"/server.ext3 || return 1
|
||||
+
|
||||
+ $testdir/run-qemu \
|
||||
+ -hda "$TESTDIR"/server.ext3 \
|
||||
+ -m 512M -smp 2 \
|
||||
+ -display none \
|
||||
+ -netdev socket,id=n0,listen=127.0.0.1:12370 \
|
||||
+ -netdev socket,id=n1,listen=127.0.0.1:12371 \
|
||||
+ -netdev socket,id=n2,listen=127.0.0.1:12372 \
|
||||
+ -netdev socket,id=n3,listen=127.0.0.1:12373 \
|
||||
+ -device e1000,netdev=n0,mac=52:54:01:12:34:56 \
|
||||
+ -device e1000,netdev=n1,mac=52:54:01:12:34:57 \
|
||||
+ -device e1000,netdev=n2,mac=52:54:01:12:34:58 \
|
||||
+ -device e1000,netdev=n3,mac=52:54:01:12:34:59 \
|
||||
+ ${SERIAL:+-serial "$SERIAL"} \
|
||||
+ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
|
||||
+ -watchdog i6300esb -watchdog-action poweroff \
|
||||
+ -no-reboot \
|
||||
+ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \
|
||||
+ -initrd "$TESTDIR"/initramfs.server \
|
||||
+ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
|
||||
+ chmod 644 -- "$TESTDIR"/server.pid || return 1
|
||||
+
|
||||
+ # Cleanup the terminal if we have one
|
||||
+ tty -s && stty sane
|
||||
+
|
||||
+ echo Sleeping 10 seconds to give the server a head start
|
||||
+ sleep 10
|
||||
+}
|
||||
+
|
||||
+client_test() {
|
||||
+ local test_name="$1"
|
||||
+ local do_vlan13="$2"
|
||||
+ local cmdline="$3"
|
||||
+ local check="$4"
|
||||
+ local CONF
|
||||
+
|
||||
+ echo "CLIENT TEST START: $test_name"
|
||||
+
|
||||
+ [ "$do_vlan13" != "yes" ] && unset do_vlan13
|
||||
+
|
||||
+ # Need this so kvm-qemu will boot (needs non-/dev/zero local disk)
|
||||
+ if ! dd if=/dev/zero of="$TESTDIR"/client.img bs=1M count=1; then
|
||||
+ echo "Unable to make client sda image" 1>&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [[ $do_vlan13 ]]; then
|
||||
+ nic1=" -netdev socket,connect=127.0.0.1:12371,id=n1"
|
||||
+ nic3=" -netdev socket,connect=127.0.0.1:12373,id=n3"
|
||||
+ else
|
||||
+ nic1=" -netdev hubport,id=n1,hubid=2"
|
||||
+ nic3=" -netdev hubport,id=n3,hubid=3"
|
||||
+ fi
|
||||
+
|
||||
+ if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
|
||||
+ $testdir/run-qemu \
|
||||
+ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
|
||||
+ -netdev socket,connect=127.0.0.1:12370,id=s1 \
|
||||
+ -netdev hubport,hubid=1,id=h1,netdev=s1 \
|
||||
+ -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \
|
||||
+ -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \
|
||||
+ $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
|
||||
+ -netdev socket,connect=127.0.0.1:12372,id=n2 -device e1000,mac=52:54:00:12:34:04,netdev=n2 \
|
||||
+ $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
|
||||
+ -watchdog i6300esb -watchdog-action poweroff \
|
||||
+ -no-reboot \
|
||||
+ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
|
||||
+ -initrd "$TESTDIR"/initramfs.testing
|
||||
+ else
|
||||
+ $testdir/run-qemu \
|
||||
+ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
|
||||
+ -net socket,vlan=0,connect=127.0.0.1:12370 \
|
||||
+ ${do_vlan13:+-net socket,vlan=1,connect=127.0.0.1:12371} \
|
||||
+ -net socket,vlan=2,connect=127.0.0.1:12372 \
|
||||
+ ${do_vlan13:+-net socket,vlan=3,connect=127.0.0.1:12373} \
|
||||
+ -net nic,vlan=0,macaddr=52:54:00:12:34:01,model=e1000 \
|
||||
+ -net nic,vlan=0,macaddr=52:54:00:12:34:02,model=e1000 \
|
||||
+ -net nic,vlan=1,macaddr=52:54:00:12:34:03,model=e1000 \
|
||||
+ -net nic,vlan=2,macaddr=52:54:00:12:34:04,model=e1000 \
|
||||
+ -net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \
|
||||
+ -watchdog i6300esb -watchdog-action poweroff \
|
||||
+ -no-reboot \
|
||||
+ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
|
||||
+ -initrd "$TESTDIR"/initramfs.testing
|
||||
+ fi
|
||||
+
|
||||
+ {
|
||||
+ read OK
|
||||
+ if [[ "$OK" != "OK" ]]; then
|
||||
+ echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]"
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ while read line; do
|
||||
+ [[ $line == END ]] && break
|
||||
+ CONF+="$line "
|
||||
+ done
|
||||
+ } < "$TESTDIR"/client.img || return 1
|
||||
+
|
||||
+ if [[ "$check" != "$CONF" ]]; then
|
||||
+ echo "Expected: '$check'"
|
||||
+ echo
|
||||
+ echo
|
||||
+ echo "Got: '$CONF'"
|
||||
+ echo "CLIENT TEST END: $test_name [FAILED - BAD CONF]"
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ echo "CLIENT TEST END: $test_name [OK]"
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+
|
||||
+test_run() {
|
||||
+ if ! run_server; then
|
||||
+ echo "Failed to start server" 1>&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ test_client || { kill_server; return 1; }
|
||||
+}
|
||||
+
|
||||
+test_client() {
|
||||
+ client_test "Multiple VLAN" \
|
||||
+ "yes" \
|
||||
+ "
|
||||
+vlan=vlan0001:ens5
|
||||
+vlan=vlan2:ens5
|
||||
+vlan=ens5.3:ens5
|
||||
+vlan=ens5.0004:ens5
|
||||
+ip=ens3:dhcp
|
||||
+ip=192.168.54.101::192.168.54.1:24:test:vlan0001:none
|
||||
+ip=192.168.55.102::192.168.55.1:24:test:vlan2:none
|
||||
+ip=192.168.56.103::192.168.56.1:24:test:ens5.3:none
|
||||
+ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none
|
||||
+rd.neednet=1
|
||||
+root=nfs:192.168.50.1:/nfs/client bootdev=ens3
|
||||
+" \
|
||||
+ 'ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.0004 # Generated by dracut initrd NAME="ens5.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens5.0004" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.3 # Generated by dracut initrd NAME="ens5.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens5.3" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens5" EOF ' \
|
||||
+ || return 1
|
||||
+
|
||||
+ client_test "Multiple Bonds" \
|
||||
+ "yes" \
|
||||
+ "
|
||||
+bond=bond0:ens4,ens5
|
||||
+bond=bond1:ens6,ens7
|
||||
+ip=bond0:dhcp
|
||||
+ip=bond1:dhcp
|
||||
+rd.neednet=1
|
||||
+root=nfs:192.168.50.1:/nfs/client bootdev=bond0
|
||||
+" \
|
||||
+ 'bond0 bond1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond0 # Generated by dracut initrd NAME="bond0" DEVICE="bond0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond0" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond1 # Generated by dracut initrd NAME="bond1" DEVICE="bond1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond1" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens7" EOF ' \
|
||||
+ || return 1
|
||||
+
|
||||
+ client_test "Multiple Bridges" \
|
||||
+ "no" \
|
||||
+ "
|
||||
+bridge=br0:ens4,ens5
|
||||
+bridge=br1:ens6,ens7
|
||||
+ip=br0:dhcp
|
||||
+ip=br1:dhcp
|
||||
+rd.neednet=1
|
||||
+root=nfs:192.168.50.1:/nfs/client bootdev=br0
|
||||
+" \
|
||||
+ 'br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br0 # Generated by dracut initrd NAME="br0" DEVICE="br0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br0" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br1 # Generated by dracut initrd NAME="br1" DEVICE="br1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens7" EOF ' \
|
||||
+ || return 1
|
||||
+
|
||||
+ kill_server
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+test_setup() {
|
||||
+ # Make server root
|
||||
+ dd if=/dev/null of="$TESTDIR"/server.ext3 bs=1M seek=120
|
||||
+ mke2fs -j -F -- "$TESTDIR"/server.ext3
|
||||
+ mkdir -- "$TESTDIR"/mnt
|
||||
+ mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt
|
||||
+ kernel=$KVERSION
|
||||
+ (
|
||||
+ export initdir="$TESTDIR"/mnt
|
||||
+ . "$basedir"/dracut-init.sh
|
||||
+
|
||||
+ (
|
||||
+ cd "$initdir";
|
||||
+ mkdir -p -- dev sys proc run etc var/run tmp var/lib/{dhcpd,rpcbind}
|
||||
+ mkdir -p -- var/lib/nfs/{v4recovery,rpc_pipefs}
|
||||
+ chmod 777 -- var/lib/rpcbind var/lib/nfs
|
||||
+ )
|
||||
+
|
||||
+ for _f in modules.builtin.bin modules.builtin; do
|
||||
+ [[ $srcmods/$_f ]] && break
|
||||
+ done || {
|
||||
+ dfatal "No modules.builtin.bin and modules.builtin found!"
|
||||
+ return 1
|
||||
+ }
|
||||
+
|
||||
+ for _f in modules.builtin.bin modules.builtin modules.order; do
|
||||
+ [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
|
||||
+ done
|
||||
+
|
||||
+ inst_multiple sh ls shutdown poweroff stty cat ps ln ip \
|
||||
+ dmesg mkdir cp ping exportfs \
|
||||
+ modprobe rpc.nfsd rpc.mountd showmount tcpdump \
|
||||
+ /etc/services sleep mount chmod
|
||||
+ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
|
||||
+ [ -f "${_terminfodir}"/l/linux ] && break
|
||||
+ done
|
||||
+ inst_multiple -o "${_terminfodir}"/l/linux
|
||||
+ type -P portmap >/dev/null && inst_multiple portmap
|
||||
+ type -P rpcbind >/dev/null && inst_multiple rpcbind
|
||||
+ [ -f /etc/netconfig ] && inst_multiple /etc/netconfig
|
||||
+ type -P dhcpd >/dev/null && inst_multiple dhcpd
|
||||
+ [ -x /usr/sbin/dhcpd3 ] && inst /usr/sbin/dhcpd3 /usr/sbin/dhcpd
|
||||
+ instmods nfsd sunrpc ipv6 lockd af_packet 8021q ipvlan macvlan
|
||||
+ inst_simple /etc/os-release
|
||||
+ inst ./server-init.sh /sbin/init
|
||||
+ inst ./hosts /etc/hosts
|
||||
+ inst ./exports /etc/exports
|
||||
+ inst ./dhcpd.conf /etc/dhcpd.conf
|
||||
+ inst_multiple /etc/nsswitch.conf /etc/rpc /etc/protocols
|
||||
+
|
||||
+ inst_multiple rpc.idmapd /etc/idmapd.conf
|
||||
+
|
||||
+ inst_libdir_file 'libnfsidmap_nsswitch.so*'
|
||||
+ inst_libdir_file 'libnfsidmap/*.so*'
|
||||
+ inst_libdir_file 'libnfsidmap*.so*'
|
||||
+
|
||||
+ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
|
||||
+ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
|
||||
+ _nsslibs=${_nsslibs#|}
|
||||
+ _nsslibs=${_nsslibs%|}
|
||||
+
|
||||
+ inst_libdir_file -n "$_nsslibs" 'libnss_*.so*'
|
||||
+
|
||||
+ inst /etc/nsswitch.conf /etc/nsswitch.conf
|
||||
+ inst /etc/passwd /etc/passwd
|
||||
+ inst /etc/group /etc/group
|
||||
+
|
||||
+ cp -a -- /etc/ld.so.conf* "$initdir"/etc
|
||||
+ ldconfig -r "$initdir"
|
||||
+ dracut_kernel_post
|
||||
+ )
|
||||
+
|
||||
+ # Make client root inside server root
|
||||
+ (
|
||||
+ export initdir="$TESTDIR"/mnt/nfs/client
|
||||
+ . "$basedir"/dracut-init.sh
|
||||
+ inst_multiple sh shutdown poweroff stty cat ps ln ip \
|
||||
+ mount dmesg mkdir cp ping grep ls sort
|
||||
+ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
|
||||
+ [[ -f ${_terminfodir}/l/linux ]] && break
|
||||
+ done
|
||||
+ inst_multiple -o "${_terminfodir}"/l/linux
|
||||
+ inst_simple /etc/os-release
|
||||
+ inst ./client-init.sh /sbin/init
|
||||
+ (
|
||||
+ cd "$initdir"
|
||||
+ mkdir -p -- dev sys proc etc run
|
||||
+ mkdir -p -- var/lib/nfs/rpc_pipefs
|
||||
+ )
|
||||
+ inst /etc/nsswitch.conf /etc/nsswitch.conf
|
||||
+ inst /etc/passwd /etc/passwd
|
||||
+ inst /etc/group /etc/group
|
||||
+
|
||||
+ inst_multiple rpc.idmapd /etc/idmapd.conf
|
||||
+ inst_libdir_file 'libnfsidmap_nsswitch.so*'
|
||||
+ inst_libdir_file 'libnfsidmap/*.so*'
|
||||
+ inst_libdir_file 'libnfsidmap*.so*'
|
||||
+
|
||||
+ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' -- /etc/nsswitch.conf \
|
||||
+ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
|
||||
+ _nsslibs=${_nsslibs#|}
|
||||
+ _nsslibs=${_nsslibs%|}
|
||||
+
|
||||
+ inst_libdir_file -n "$_nsslibs" 'libnss_*.so*'
|
||||
+
|
||||
+ cp -a -- /etc/ld.so.conf* "$initdir"/etc
|
||||
+ ldconfig -r "$initdir"
|
||||
+ )
|
||||
+
|
||||
+ umount "$TESTDIR"/mnt
|
||||
+ rm -fr -- "$TESTDIR"/mnt
|
||||
+
|
||||
+ # Make an overlay with needed tools for the test harness
|
||||
+ (
|
||||
+ export initdir="$TESTDIR"/overlay
|
||||
+ . "$basedir"/dracut-init.sh
|
||||
+ inst_multiple poweroff shutdown
|
||||
+ inst_hook emergency 000 ./hard-off.sh
|
||||
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
|
||||
+ )
|
||||
+
|
||||
+ # Make server's dracut image
|
||||
+ $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
|
||||
+ --no-early-microcode \
|
||||
+ -m "udev-rules base rootfs-block fs-lib debug kernel-modules watchdog" \
|
||||
+ -d "ipvlan macvlan af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
|
||||
+ --no-hostonly-cmdline -N \
|
||||
+ -f "$TESTDIR"/initramfs.server "$KVERSION" || return 1
|
||||
+
|
||||
+ # Make client's dracut image
|
||||
+ $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
|
||||
+ --no-early-microcode \
|
||||
+ -o "plymouth" \
|
||||
+ -a "debug" \
|
||||
+ -d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
|
||||
+ --no-hostonly-cmdline -N \
|
||||
+ -f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1
|
||||
+}
|
||||
+
|
||||
+kill_server() {
|
||||
+ if [[ -s "$TESTDIR"/server.pid ]]; then
|
||||
+ kill -TERM -- $(cat "$TESTDIR"/server.pid)
|
||||
+ rm -f -- "$TESTDIR"/server.pid
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+test_cleanup() {
|
||||
+ kill_server
|
||||
+}
|
||||
+
|
||||
+. "$testdir"/test-functions
|
||||
|
53
SOURCES/0044.patch
Normal file
53
SOURCES/0044.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From 3b89c398895abe5fc62e3c9240718310222925ef Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 10 Jun 2019 16:04:33 +0200
|
||||
Subject: [PATCH] test/IFCFG: make sure the network-legacy plugin is being used
|
||||
|
||||
If the network-manager plugin is used instead, it wouldn't write out
|
||||
ifcfg files and we wouldn't have anything to check.
|
||||
|
||||
While at that, also enable the test.
|
||||
|
||||
(cherry picked from commit 2b1b3bcdcb0ddaa18337f18da515adb6284df0ab)
|
||||
---
|
||||
.travis.yml | 1 +
|
||||
README.md | 1 +
|
||||
test/TEST-60-IFCFG/test.sh | 2 +-
|
||||
3 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.travis.yml b/.travis.yml
|
||||
index 364078cf..37002e9a 100644
|
||||
--- a/.travis.yml
|
||||
+++ b/.travis.yml
|
||||
@@ -11,6 +11,7 @@ env:
|
||||
- IMAGE=latest TESTS=50
|
||||
- IMAGE=latest TESTS=30
|
||||
- IMAGE=latest TESTS=31
|
||||
+ - IMAGE=latest TESTS=60
|
||||
- IMAGE=latest TESTS=70
|
||||
- IMAGE=latest TESTS=99
|
||||
- IMAGE=latest TESTS=02
|
||||
diff --git a/README.md b/README.md
|
||||
index 36ae7e1b..530f1c1b 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -27,4 +27,5 @@ dracut is an initramfs infrastructure.
|
||||
- Test 31: [![Test 31](https://ci.centos.org/job/dracut-matrix-master/TESTS=31,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=31,label=dracut-ci-slave01/)
|
||||
- Test 40: [![Test 40](https://ci.centos.org/job/dracut-matrix-master/TESTS=40,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=40,label=dracut-ci-slave01/)
|
||||
- Test 50: [![Test 50](https://ci.centos.org/job/dracut-matrix-master/TESTS=50,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=50,label=dracut-ci-slave01/)
|
||||
+- Test 60: [![Test 60](https://ci.centos.org/job/dracut-matrix-master/TESTS=60,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=60,label=dracut-ci-slave01/)
|
||||
- Test 70: [![Test 70](https://ci.centos.org/job/dracut-matrix-master/TESTS=70,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=70,label=dracut-ci-slave01/)
|
||||
diff --git a/test/TEST-60-IFCFG/test.sh b/test/TEST-60-IFCFG/test.sh
|
||||
index 8c11a7d3..8e8bd982 100755
|
||||
--- a/test/TEST-60-IFCFG/test.sh
|
||||
+++ b/test/TEST-60-IFCFG/test.sh
|
||||
@@ -316,7 +316,7 @@ test_setup() {
|
||||
$basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
|
||||
--no-early-microcode \
|
||||
-o "plymouth" \
|
||||
- -a "debug" \
|
||||
+ -a "debug network-legacy" \
|
||||
-d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
|
||||
--no-hostonly-cmdline -N \
|
||||
-f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1
|
||||
|
83
SOURCES/0045.patch
Normal file
83
SOURCES/0045.patch
Normal file
@ -0,0 +1,83 @@
|
||||
From 15ff303dde65e97ba224a9f2cc6275cbaafee52c Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 10 Jun 2019 16:05:23 +0200
|
||||
Subject: [PATCH] test/BONDBRIDGETEAMVLAN: don't assert against ifcfg files
|
||||
|
||||
The network-manager module writes keyfiles instead of ifcfg files. Just
|
||||
check whether the configuration got actually applied correctly.
|
||||
|
||||
(cherry picked from commit 9dfd73bcbd899d8da4bc680fa8b3326c47b939bd)
|
||||
---
|
||||
test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh | 6 +-----
|
||||
test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 12 ++++++------
|
||||
2 files changed, 7 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh
|
||||
index 8c33ff0f..083e0f59 100755
|
||||
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh
|
||||
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh
|
||||
@@ -10,11 +10,7 @@ echo "made it to the rootfs! Powering down."
|
||||
|
||||
(
|
||||
echo OK
|
||||
- ip -o -4 address show scope global | while read n if rest; do echo $if;done | sort
|
||||
- for i in /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-*; do
|
||||
- echo $i
|
||||
- grep -v 'UUID=' $i
|
||||
- done
|
||||
+ ip -o -4 address show scope global |sed -n 's/^[^:]*: \([^ ]*\) *\(.*\) scope.*/\1 \2/p' |sort
|
||||
echo EOF
|
||||
) > /dev/sda
|
||||
|
||||
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
|
||||
index 5618baee..b6dd080c 100755
|
||||
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
|
||||
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
|
||||
@@ -112,8 +112,8 @@ client_test() {
|
||||
done
|
||||
} < "$TESTDIR"/client.img || return 1
|
||||
|
||||
- if [[ "$check" != "$CONF" ]]; then
|
||||
- echo "Expected: '$check'"
|
||||
+ if [[ ! "$CONF" =~ ^$check$ ]]; then
|
||||
+ echo "Expected: /^$check\$/"
|
||||
echo
|
||||
echo
|
||||
echo "Got: '$CONF'"
|
||||
@@ -150,7 +150,7 @@ ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none
|
||||
rd.neednet=1
|
||||
root=nfs:192.168.50.1:/nfs/client bootdev=ens3
|
||||
" \
|
||||
- 'ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.0004 # Generated by dracut initrd NAME="ens5.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens5.0004" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.3 # Generated by dracut initrd NAME="ens5.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens5.3" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens5" EOF ' \
|
||||
+ 'ens3 inet 192\.168\.50\.[0-9]*/24 brd 192\.168\.50\.255 ens5\.0004 inet 192\.168\.57\.104/24 brd 192\.168\.57\.255 ens5\.3 inet 192\.168\.56\.103/24 brd 192\.168\.56\.255 vlan0001 inet 192\.168\.54\.101/24 brd 192\.168\.54\.255 vlan2 inet 192\.168\.55\.102/24 brd 192\.168\.55\.255 EOF ' \
|
||||
|| return 1
|
||||
|
||||
client_test "Multiple Bonds" \
|
||||
@@ -163,7 +163,7 @@ ip=bond1:dhcp
|
||||
rd.neednet=1
|
||||
root=nfs:192.168.50.1:/nfs/client bootdev=bond0
|
||||
" \
|
||||
- 'bond0 bond1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond0 # Generated by dracut initrd NAME="bond0" DEVICE="bond0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond0" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond1 # Generated by dracut initrd NAME="bond1" DEVICE="bond1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond1" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens7" EOF ' \
|
||||
+ 'bond0 inet 192\.168\.50\.[0-9]*/24 brd 192\.168\.50\.255 bond1 inet 192\.168\.51\.[0-9]*/24 brd 192\.168\.51\.255 EOF ' \
|
||||
|| return 1
|
||||
|
||||
client_test "Multiple Bridges" \
|
||||
@@ -176,7 +176,7 @@ ip=br1:dhcp
|
||||
rd.neednet=1
|
||||
root=nfs:192.168.50.1:/nfs/client bootdev=br0
|
||||
" \
|
||||
- 'br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br0 # Generated by dracut initrd NAME="br0" DEVICE="br0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br0" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br1 # Generated by dracut initrd NAME="br1" DEVICE="br1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens7" EOF ' \
|
||||
+ 'br0 inet 192\.168\.50\.[0-9]*/24 brd 192\.168\.50\.255 br1 inet 192\.168\.51\.[0-9]*/24 brd 192\.168\.51\.255 EOF ' \
|
||||
|| return 1
|
||||
|
||||
kill_server
|
||||
@@ -260,7 +260,7 @@ test_setup() {
|
||||
export initdir="$TESTDIR"/mnt/nfs/client
|
||||
. "$basedir"/dracut-init.sh
|
||||
inst_multiple sh shutdown poweroff stty cat ps ln ip \
|
||||
- mount dmesg mkdir cp ping grep ls sort
|
||||
+ mount dmesg mkdir cp ping grep ls sort sed
|
||||
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
|
||||
[[ -f ${_terminfodir}/l/linux ]] && break
|
||||
done
|
||||
|
37
SOURCES/0046.patch
Normal file
37
SOURCES/0046.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 96976e84e2c8544ab32026f05da8a35b9c48b2e5 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Mon, 10 Jun 2019 16:05:49 +0200
|
||||
Subject: [PATCH] test/MULTINIC: correctly note activated devices when using
|
||||
network-manager
|
||||
|
||||
The .did-setup files are not there. What is there is the NetworkManager
|
||||
connection files.
|
||||
|
||||
(cherry picked from commit 393fb1ac05ec3386a07d885e99985a647634803e)
|
||||
---
|
||||
test/TEST-50-MULTINIC/client-init.sh | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/test/TEST-50-MULTINIC/client-init.sh b/test/TEST-50-MULTINIC/client-init.sh
|
||||
index 529379f0..7099dcf3 100755
|
||||
--- a/test/TEST-50-MULTINIC/client-init.sh
|
||||
+++ b/test/TEST-50-MULTINIC/client-init.sh
|
||||
@@ -105,7 +105,17 @@ export TERM=linux
|
||||
export PS1='initramfs-test:\w\$ '
|
||||
stty sane
|
||||
echo "made it to the rootfs! Powering down."
|
||||
+for i in /sys/class/net/*/
|
||||
+do
|
||||
+ # booting with network-manager module
|
||||
+ state=/run/NetworkManager/devices/$(cat $i/ifindex)
|
||||
+ grep -q connection-uuid= $state 2>/dev/null || continue
|
||||
+ i=${i##*/}
|
||||
+ ip link show $i |grep -q master && continue
|
||||
+ IFACES+="$i "
|
||||
+done
|
||||
for i in /run/initramfs/net.*.did-setup; do
|
||||
+ # booting with network-legacy module
|
||||
[ -f "$i" ] || continue
|
||||
strglobin "$i" ":*:*:*:*:" && continue
|
||||
i=${i%.did-setup}
|
||||
|
115
SOURCES/0047.patch
Normal file
115
SOURCES/0047.patch
Normal file
@ -0,0 +1,115 @@
|
||||
From 08961eef2ad09e4ce38ee034baf4e8c2b3934cd1 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Date: Tue, 3 Sep 2019 10:44:36 -0500
|
||||
Subject: [PATCH] modules.d: fix udev rules detection of multipath devices
|
||||
|
||||
Starting with the 0.7.7 release of the multipath tools, the multipath
|
||||
udev rules always set a value in ENV{DM_MULTIPATH_DEVICE_PATH} for any
|
||||
device that multipath scans. A value of 0 means that the device is not
|
||||
claimed by multipath, and a value of 1 means that it is. Because of
|
||||
this, udev rules that check ENV{DM_MULTIPATH_DEVICE_PATH}=="?*" will
|
||||
always return True, and act as if every scanned device is claimed by
|
||||
multipath. Checking ENV{DM_MULTIPATH_DEVICE_PATH}=="1" will work
|
||||
correctly for both the old and new versions of the multipath tools.
|
||||
---
|
||||
modules.d/90dm/59-persistent-storage-dm.rules | 2 +-
|
||||
modules.d/90dmraid/61-dmraid-imsm.rules | 2 +-
|
||||
modules.d/90lvm/64-lvm.rules | 2 +-
|
||||
modules.d/90mdraid/59-persistent-storage-md.rules | 2 +-
|
||||
modules.d/90mdraid/65-md-incremental-imsm.rules | 2 +-
|
||||
modules.d/95udev-rules/59-persistent-storage.rules | 2 +-
|
||||
modules.d/95udev-rules/61-persistent-storage.rules | 2 +-
|
||||
7 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/modules.d/90dm/59-persistent-storage-dm.rules b/modules.d/90dm/59-persistent-storage-dm.rules
|
||||
index 73b09376..2be11227 100644
|
||||
--- a/modules.d/90dm/59-persistent-storage-dm.rules
|
||||
+++ b/modules.d/90dm/59-persistent-storage-dm.rules
|
||||
@@ -1,7 +1,7 @@
|
||||
SUBSYSTEM!="block", GOTO="dm_end"
|
||||
ACTION!="add|change", GOTO="dm_end"
|
||||
# Also don't process disks that are slated to be a multipath device
|
||||
-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="dm_end"
|
||||
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="dm_end"
|
||||
|
||||
KERNEL!="dm-[0-9]*", GOTO="dm_end"
|
||||
ACTION=="add", GOTO="dm_end"
|
||||
diff --git a/modules.d/90dmraid/61-dmraid-imsm.rules b/modules.d/90dmraid/61-dmraid-imsm.rules
|
||||
index 72267d3c..8a6b215e 100644
|
||||
--- a/modules.d/90dmraid/61-dmraid-imsm.rules
|
||||
+++ b/modules.d/90dmraid/61-dmraid-imsm.rules
|
||||
@@ -5,7 +5,7 @@
|
||||
SUBSYSTEM!="block", GOTO="dm_end"
|
||||
ACTION!="add|change", GOTO="dm_end"
|
||||
# Also don't process disks that are slated to be a multipath device
|
||||
-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="dm_end"
|
||||
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="dm_end"
|
||||
|
||||
ENV{ID_FS_TYPE}=="linux_raid_member", GOTO="dm_end"
|
||||
|
||||
diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules
|
||||
index 3ce0c1f6..65f65249 100644
|
||||
--- a/modules.d/90lvm/64-lvm.rules
|
||||
+++ b/modules.d/90lvm/64-lvm.rules
|
||||
@@ -7,7 +7,7 @@
|
||||
SUBSYSTEM!="block", GOTO="lvm_end"
|
||||
ACTION!="add|change", GOTO="lvm_end"
|
||||
# Also don't process disks that are slated to be a multipath device
|
||||
-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="lvm_end"
|
||||
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="lvm_end"
|
||||
KERNEL=="dm-[0-9]*", ACTION=="add", GOTO="lvm_end"
|
||||
ENV{ID_FS_TYPE}!="LVM?_member", GOTO="lvm_end"
|
||||
|
||||
diff --git a/modules.d/90mdraid/59-persistent-storage-md.rules b/modules.d/90mdraid/59-persistent-storage-md.rules
|
||||
index 6ef858aa..96b10108 100644
|
||||
--- a/modules.d/90mdraid/59-persistent-storage-md.rules
|
||||
+++ b/modules.d/90mdraid/59-persistent-storage-md.rules
|
||||
@@ -1,7 +1,7 @@
|
||||
SUBSYSTEM!="block", GOTO="md_end"
|
||||
ACTION!="add|change", GOTO="md_end"
|
||||
# Also don't process disks that are slated to be a multipath device
|
||||
-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="md_end"
|
||||
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="md_end"
|
||||
|
||||
KERNEL!="md[0-9]*|md_d[0-9]*|md/*", KERNEL!="md*", GOTO="md_end"
|
||||
|
||||
diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
||||
index d66dd012..52f5b195 100644
|
||||
--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
|
||||
+++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
|
||||
@@ -9,7 +9,7 @@ KERNEL=="md*", ENV{ID_FS_TYPE}!="linux_raid_member", GOTO="md_end"
|
||||
KERNEL=="md*", ACTION!="change", GOTO="md_end"
|
||||
|
||||
# Also don't process disks that are slated to be a multipath device
|
||||
-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="md_end"
|
||||
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="md_end"
|
||||
|
||||
ENV{ID_FS_TYPE}=="ddf_raid_member|isw_raid_member|linux_raid_member", GOTO="md_try"
|
||||
GOTO="md_end"
|
||||
diff --git a/modules.d/95udev-rules/59-persistent-storage.rules b/modules.d/95udev-rules/59-persistent-storage.rules
|
||||
index 47ff6edd..8d8650f7 100644
|
||||
--- a/modules.d/95udev-rules/59-persistent-storage.rules
|
||||
+++ b/modules.d/95udev-rules/59-persistent-storage.rules
|
||||
@@ -1,7 +1,7 @@
|
||||
SUBSYSTEM!="block", GOTO="ps_end"
|
||||
ACTION!="add|change", GOTO="ps_end"
|
||||
# Also don't process disks that are slated to be a multipath device
|
||||
-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="ps_end"
|
||||
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="ps_end"
|
||||
|
||||
KERNEL=="cciss[0-9]*", IMPORT BLKID
|
||||
KERNEL=="nbd[0-9]*", IMPORT BLKID
|
||||
diff --git a/modules.d/95udev-rules/61-persistent-storage.rules b/modules.d/95udev-rules/61-persistent-storage.rules
|
||||
index 37148b07..895ecebd 100644
|
||||
--- a/modules.d/95udev-rules/61-persistent-storage.rules
|
||||
+++ b/modules.d/95udev-rules/61-persistent-storage.rules
|
||||
@@ -1,7 +1,7 @@
|
||||
SUBSYSTEM!="block", GOTO="pss_end"
|
||||
ACTION!="add|change", GOTO="pss_end"
|
||||
# Also don't process disks that are slated to be a multipath device
|
||||
-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="pss_end"
|
||||
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="pss_end"
|
||||
|
||||
ACTION=="change", KERNEL=="dm-[0-9]*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}!="1", GOTO="do_pss"
|
||||
KERNEL=="cciss[0-9]*", GOTO="do_pss"
|
||||
|
43
SOURCES/0048.patch
Normal file
43
SOURCES/0048.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From b59ae228851713f645751742136e34b854b0712a Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Thu, 10 Nov 2016 13:57:26 +0100
|
||||
Subject: [PATCH] test/test-rpms.txt: add list of rpms to install
|
||||
|
||||
(cherry picked from commit f432d367fc4fa7558761cb9bb4229e6c027bfa31)
|
||||
---
|
||||
test/test-rpms.txt | 26 ++++++++++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/test/test-rpms.txt b/test/test-rpms.txt
|
||||
new file mode 100644
|
||||
index 00000000..1723d8e9
|
||||
--- /dev/null
|
||||
+++ b/test/test-rpms.txt
|
||||
@@ -0,0 +1,26 @@
|
||||
+dash
|
||||
+bridge-utils
|
||||
+asciidoc
|
||||
+mdadm
|
||||
+lvm2
|
||||
+dmraid
|
||||
+cryptsetup
|
||||
+nfs-utils
|
||||
+nbd
|
||||
+dhcp-server
|
||||
+scsi-target-utils
|
||||
+iscsi-initiator-utils
|
||||
+net-tools
|
||||
+strace
|
||||
+syslinux
|
||||
+python-imgcreate
|
||||
+genisoimage
|
||||
+btrfs-progs
|
||||
+bridge-utils
|
||||
+kmod-devel
|
||||
+gcc
|
||||
+bzip2
|
||||
+xz
|
||||
+tar
|
||||
+wget
|
||||
+rpm-build
|
||||
|
23
SOURCES/0049.patch
Normal file
23
SOURCES/0049.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From 4ef5cdc120bdbb348345c964a19affbb3ca1fa32 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Fri, 11 Nov 2016 11:40:58 +0100
|
||||
Subject: [PATCH] test/test-rpms.txt: add gzip
|
||||
|
||||
(cherry picked from commit 7b4173d698be5163da1e5b5b52bafd2facba4db5)
|
||||
---
|
||||
test/test-rpms.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/test/test-rpms.txt b/test/test-rpms.txt
|
||||
index 1723d8e9..10596da7 100644
|
||||
--- a/test/test-rpms.txt
|
||||
+++ b/test/test-rpms.txt
|
||||
@@ -19,6 +19,7 @@ btrfs-progs
|
||||
bridge-utils
|
||||
kmod-devel
|
||||
gcc
|
||||
+gzip
|
||||
bzip2
|
||||
xz
|
||||
tar
|
||||
|
23
SOURCES/0050.patch
Normal file
23
SOURCES/0050.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From fe44aa1b14f427245bdfb2026f2211a19b52f5e3 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Fri, 11 Nov 2016 12:34:00 +0100
|
||||
Subject: [PATCH] test-rpms.txt: add dhcp
|
||||
|
||||
(cherry picked from commit a081e072d894c91fcf037e267cb6793c4b0356c4)
|
||||
---
|
||||
test/test-rpms.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/test/test-rpms.txt b/test/test-rpms.txt
|
||||
index 10596da7..95376bd2 100644
|
||||
--- a/test/test-rpms.txt
|
||||
+++ b/test/test-rpms.txt
|
||||
@@ -8,6 +8,7 @@ cryptsetup
|
||||
nfs-utils
|
||||
nbd
|
||||
dhcp-server
|
||||
+dhcp
|
||||
scsi-target-utils
|
||||
iscsi-initiator-utils
|
||||
net-tools
|
||||
|
19
SOURCES/0051.patch
Normal file
19
SOURCES/0051.patch
Normal file
@ -0,0 +1,19 @@
|
||||
From 81babdedec8c6f7b23bbf0e3418126c4f9e5e15f Mon Sep 17 00:00:00 2001
|
||||
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
||||
Date: Tue, 10 Sep 2019 16:46:55 +0200
|
||||
Subject: [PATCH] test-rpms.txt: add util-linux into the dependency list
|
||||
|
||||
---
|
||||
test/test-rpms.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/test/test-rpms.txt b/test/test-rpms.txt
|
||||
index 95376bd2..02577c8a 100644
|
||||
--- a/test/test-rpms.txt
|
||||
+++ b/test/test-rpms.txt
|
||||
@@ -26,3 +26,4 @@ xz
|
||||
tar
|
||||
wget
|
||||
rpm-build
|
||||
+util-linux
|
||||
|
33
SOURCES/0052.patch
Normal file
33
SOURCES/0052.patch
Normal file
@ -0,0 +1,33 @@
|
||||
From 7843bc52777683f6a4ef953d8dde7171ff3b911c Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Wed, 24 Jul 2019 16:45:19 +0200
|
||||
Subject: [PATCH] [RHEL] network: default to network-legacy even in presence of
|
||||
nm-initrd-generator
|
||||
|
||||
In RHEL 8.2, NetworkManager will ship with the nm-initrd-generator, but
|
||||
before the install bits fall into place we want to default to network-legacy.
|
||||
|
||||
This unblocks the enablement of the NetworkManager bits and is intended
|
||||
to be reverted later on.
|
||||
---
|
||||
modules.d/40network/module-setup.sh | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
|
||||
index 8e2a74a3..bf252eb7 100755
|
||||
--- a/modules.d/40network/module-setup.sh
|
||||
+++ b/modules.d/40network/module-setup.sh
|
||||
@@ -8,9 +8,9 @@ check() {
|
||||
# called by dracut
|
||||
depends() {
|
||||
echo -n "kernel-network-modules "
|
||||
- if ! dracut_module_included "network-legacy" && [ -x "/usr/libexec/nm-initrd-generator" ] ; then
|
||||
- echo "network-manager"
|
||||
- else
|
||||
+ # RHEL 8.1: Default to network-legacy unless the user chose
|
||||
+ # network-manager manually
|
||||
+ if ! dracut_module_included "network-manager" ; then
|
||||
echo "network-legacy"
|
||||
fi
|
||||
return 0
|
||||
|
32
SOURCES/0053.patch
Normal file
32
SOURCES/0053.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From dcbc74b01bfb360eecadb8e59480472b86fe63d0 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Lebon <jonathan@jlebon.com>
|
||||
Date: Tue, 29 Oct 2019 09:35:41 -0400
|
||||
Subject: [PATCH] 01fips: fix HMAC file path resolution
|
||||
|
||||
There is a small regression in #343: when handling the 'separate boot
|
||||
partition' case, we're checking for the kernel image in the wrong
|
||||
location: `BOOT_IMAGE` is the `/boot`-relative path to the kernel image,
|
||||
so `/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE}` expands to e.g.
|
||||
`/boot/mysubdir1/mysubdir2/mysubdir1/mysubdir2/vmlinuz...`.
|
||||
|
||||
We should be using `BOOT_IMAGE_NAME` here instead (and in fact, the next
|
||||
if-statement does this correctly, so it might've just been accidentally
|
||||
left out of #343).
|
||||
---
|
||||
modules.d/01fips/fips.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
|
||||
index beaa692b..c3dbcf74 100755
|
||||
--- a/modules.d/01fips/fips.sh
|
||||
+++ b/modules.d/01fips/fips.sh
|
||||
@@ -118,7 +118,7 @@ do_fips()
|
||||
|
||||
if [ -z "$BOOT_IMAGE_NAME" ]; then
|
||||
BOOT_IMAGE_NAME="vmlinuz-${KERNEL}"
|
||||
- elif ! [ -e "/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE}" ]; then
|
||||
+ elif ! [ -e "/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE_NAME}" ]; then
|
||||
#if /boot is not a separate partition BOOT_IMAGE might start with /boot
|
||||
BOOT_IMAGE_PATH=${BOOT_IMAGE_PATH#"/boot"}
|
||||
#on some achitectures BOOT_IMAGE does not contain path to kernel
|
||||
|
33
SOURCES/0054.patch
Normal file
33
SOURCES/0054.patch
Normal file
@ -0,0 +1,33 @@
|
||||
From 14310ca42f06c2156ab5cefd05dbaa47ae3b054d Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Lebon <jonathan@jlebon.com>
|
||||
Date: Tue, 29 Oct 2019 16:47:34 -0400
|
||||
Subject: [PATCH] 01fips: run sha512hmac from directory HMAC file directory
|
||||
|
||||
That way, the HMAC file can contain a relative path instead of an
|
||||
absolute one. The issue is that right now the kernel RPM bakes the
|
||||
`/boot/vmlinuz-${kver}` path into the HMAC file which poses an issue for
|
||||
rpm-ostree systems (and any other system where the kernel isn't simply
|
||||
in the top-level `/boot`.
|
||||
|
||||
For now, we're hacking around this in rpm-ostree:
|
||||
https://github.com/coreos/rpm-ostree/pull/1934
|
||||
|
||||
Though I'd like to propose the same change in the kernel spec file.
|
||||
---
|
||||
modules.d/01fips/fips.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
|
||||
index c3dbcf74..893143d0 100755
|
||||
--- a/modules.d/01fips/fips.sh
|
||||
+++ b/modules.d/01fips/fips.sh
|
||||
@@ -135,7 +135,7 @@ do_fips()
|
||||
return 1
|
||||
fi
|
||||
|
||||
- sha512hmac -c "${BOOT_IMAGE_HMAC}" || return 1
|
||||
+ (cd "${BOOT_IMAGE_HMAC%/*}" && sha512hmac -c "${BOOT_IMAGE_HMAC}") || return 1
|
||||
fi
|
||||
|
||||
info "All initrd crypto checks done"
|
||||
|
26
SOURCES/0055.patch
Normal file
26
SOURCES/0055.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 89dcbbe92f008f6c4ebccfedf09d32bab4a575e5 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Lebon <jonathan@jlebon.com>
|
||||
Date: Tue, 29 Oct 2019 16:53:00 -0400
|
||||
Subject: [PATCH] 01fips: add / in BOOT_IMAGE_HMAC filename for clarity
|
||||
|
||||
It's already the case the `BOOT_IMAGE_PATH` today, in the non-empty
|
||||
case, includes a trailing `/`, but let's add it to the path we build
|
||||
here too to make it more obvious.
|
||||
---
|
||||
modules.d/01fips/fips.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
|
||||
index 893143d0..de2755b0 100755
|
||||
--- a/modules.d/01fips/fips.sh
|
||||
+++ b/modules.d/01fips/fips.sh
|
||||
@@ -129,7 +129,7 @@ do_fips()
|
||||
fi
|
||||
fi
|
||||
|
||||
- BOOT_IMAGE_HMAC="/boot/${BOOT_IMAGE_PATH}.${BOOT_IMAGE_NAME}.hmac"
|
||||
+ BOOT_IMAGE_HMAC="/boot/${BOOT_IMAGE_PATH}/.${BOOT_IMAGE_NAME}.hmac"
|
||||
if ! [ -e "${BOOT_IMAGE_HMAC}" ]; then
|
||||
warn "${BOOT_IMAGE_HMAC} does not exist"
|
||||
return 1
|
||||
|
34
SOURCES/0056.patch
Normal file
34
SOURCES/0056.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 9e8f172dc01f7e013bb5d302ef6c90e2dc6b30c8 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Lebon <jonathan@jlebon.com>
|
||||
Date: Tue, 29 Oct 2019 16:54:10 -0400
|
||||
Subject: [PATCH] 01fips: trim off GRUB boot device from BOOT_IMAGE
|
||||
|
||||
E.g. in RHCOS, the `BOOT_IMAGE` from the cmdline is:
|
||||
|
||||
(hd0,gpt1)/ostree/rhcos-e493371e5ee8407889029ec979955a2b86fd7e3cae5a0591b9db1cd248d966e8/vmlinuz-4.18.0-146.el8.x86_64
|
||||
|
||||
Which of course is a GRUB thing, not an actual pathname we'll be able to
|
||||
resolve. In fact, we can simply scrap it off from the variable. Our code
|
||||
is already able to handle both cases: whether the device refers to a
|
||||
separate boot partition, or just the root filesystem with a regular
|
||||
`/boot` directory.
|
||||
---
|
||||
modules.d/01fips/fips.sh | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
|
||||
index de2755b0..559952ca 100755
|
||||
--- a/modules.d/01fips/fips.sh
|
||||
+++ b/modules.d/01fips/fips.sh
|
||||
@@ -113,6 +113,10 @@ do_fips()
|
||||
do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1
|
||||
else
|
||||
BOOT_IMAGE="$(getarg BOOT_IMAGE)"
|
||||
+
|
||||
+ # Trim off any leading GRUB boot device (e.g. ($root) )
|
||||
+ BOOT_IMAGE="$(echo "${BOOT_IMAGE}" | sed 's/^(.*)//')"
|
||||
+
|
||||
BOOT_IMAGE_NAME="${BOOT_IMAGE##*/}"
|
||||
BOOT_IMAGE_PATH="${BOOT_IMAGE%${BOOT_IMAGE_NAME}}"
|
||||
|
||||
|
25
SOURCES/0057.patch
Normal file
25
SOURCES/0057.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 346e57c1b6af4e2cfdbaae64941f2f3b8454a944 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Fri, 29 Nov 2019 13:29:23 +0100
|
||||
Subject: [PATCH] always include sg module
|
||||
|
||||
RHEL-only
|
||||
Resolves:#1579763
|
||||
---
|
||||
modules.d/00systemd/module-setup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
|
||||
index 1ed4b34f..ed177826 100755
|
||||
--- a/modules.d/00systemd/module-setup.sh
|
||||
+++ b/modules.d/00systemd/module-setup.sh
|
||||
@@ -18,7 +18,7 @@ depends() {
|
||||
}
|
||||
|
||||
installkernel() {
|
||||
- hostonly='' instmods autofs4 ipv6 algif_hash hmac sha256
|
||||
+ hostonly='' instmods autofs4 ipv6 algif_hash hmac sha256 sg
|
||||
instmods -s efivarfs
|
||||
}
|
||||
|
||||
|
44
SOURCES/0058.patch
Normal file
44
SOURCES/0058.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From 8061a432844d1f780d9b18144def0faef0145c0c Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Mon, 7 Oct 2019 16:48:09 +0200
|
||||
Subject: [PATCH] net-lib: check if addr exists before checking for dad state
|
||||
|
||||
Before we check if dad is done we should first make sure,
|
||||
that there is a link local address where we do the check.
|
||||
|
||||
Due to this issue, on ipv6 only setups sometimes dhclient started
|
||||
asking for ip address, before the link local address was present
|
||||
and failed immediately.
|
||||
|
||||
(cherry picked from commit daa49cc2216d6387541ef36e8427081f6b02f224)
|
||||
|
||||
Resolves: #1765014
|
||||
---
|
||||
modules.d/40network/net-lib.sh | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
||||
index ad78d225..dcb53804 100755
|
||||
--- a/modules.d/40network/net-lib.sh
|
||||
+++ b/modules.d/40network/net-lib.sh
|
||||
@@ -653,7 +653,8 @@ wait_for_ipv6_dad_link() {
|
||||
timeout=$(($timeout*10))
|
||||
|
||||
while [ $cnt -lt $timeout ]; do
|
||||
- [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \
|
||||
+ [ -n "$(ip -6 addr show dev "$1" scope link)" ] \
|
||||
+ && [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \
|
||||
&& [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \
|
||||
&& return 0
|
||||
[ -n "$(ip -6 addr show dev "$1" scope link dadfailed)" ] \
|
||||
@@ -671,7 +672,8 @@ wait_for_ipv6_dad() {
|
||||
timeout=$(($timeout*10))
|
||||
|
||||
while [ $cnt -lt $timeout ]; do
|
||||
- [ -z "$(ip -6 addr show dev "$1" tentative)" ] \
|
||||
+ [ -n "$(ip -6 addr show dev "$1")" ] \
|
||||
+ && [ -z "$(ip -6 addr show dev "$1" tentative)" ] \
|
||||
&& [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \
|
||||
&& return 0
|
||||
[ -n "$(ip -6 addr show dev "$1" dadfailed)" ] \
|
||||
|
58
SOURCES/0059.patch
Normal file
58
SOURCES/0059.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From 2caaf8b9ba5b95983154bd641f0f493ff1562cc0 Mon Sep 17 00:00:00 2001
|
||||
From: Kairui Song <kasong@redhat.com>
|
||||
Date: Tue, 6 Aug 2019 15:39:31 +0800
|
||||
Subject: [PATCH] 99squash: Only start the cleaner on switch-root
|
||||
|
||||
Currently it starts the cleaner early and do the clean up job if switch
|
||||
root is called. It's better to just start the service only on switch
|
||||
root to avoid any risk of service dependency failure and make is
|
||||
simpler.
|
||||
|
||||
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||
(cherry picked from commit 5d88809319049eb06e3472dcd11cca9c4557d8c2)
|
||||
|
||||
Resolves: #1678248
|
||||
---
|
||||
modules.d/99squash/module-setup.sh | 3 ++-
|
||||
modules.d/99squash/squash-mnt-clear.service | 11 ++++-------
|
||||
2 files changed, 6 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
|
||||
index 935fd721..e7e9ed8e 100644
|
||||
--- a/modules.d/99squash/module-setup.sh
|
||||
+++ b/modules.d/99squash/module-setup.sh
|
||||
@@ -25,5 +25,6 @@ install() {
|
||||
inst $moddir/init.sh /squash/init.sh
|
||||
|
||||
inst "$moddir/squash-mnt-clear.service" "$systemdsystemunitdir/squash-mnt-clear.service"
|
||||
- ln_r "$systemdsystemunitdir/squash-mnt-clear.service" "$systemdsystemunitdir/initrd.target.wants/squash-mnt-clear.service"
|
||||
+ mkdir -p "$initdir$systemdsystemunitdir/initrd-switch-root.target.wants"
|
||||
+ ln_r "$systemdsystemunitdir/squash-mnt-clear.service" "$systemdsystemunitdir/initrd-switch-root.target.wants/squash-mnt-clear.service"
|
||||
}
|
||||
diff --git a/modules.d/99squash/squash-mnt-clear.service b/modules.d/99squash/squash-mnt-clear.service
|
||||
index f8d5db46..84441f60 100644
|
||||
--- a/modules.d/99squash/squash-mnt-clear.service
|
||||
+++ b/modules.d/99squash/squash-mnt-clear.service
|
||||
@@ -4,17 +4,14 @@
|
||||
[Unit]
|
||||
Description=Cleanup squashfs mounts when switch root
|
||||
DefaultDependencies=no
|
||||
-After=initrd.target
|
||||
-After=dracut-initqueue.service dracut-pre-pivot.service
|
||||
-Before=initrd-cleanup.service
|
||||
+Before=initrd-switch-root.service
|
||||
+After=initrd-switch-root.target
|
||||
ConditionPathExists=/squash/root
|
||||
-Conflicts=initrd-switch-root.target
|
||||
-IgnoreOnIsolate=true
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-RemainAfterExit=yes
|
||||
+RemainAfterExit=no
|
||||
StandardInput=null
|
||||
StandardOutput=syslog+console
|
||||
StandardError=syslog+console
|
||||
-ExecStop=/squash/clear-squash.sh
|
||||
+ExecStart=/squash/clear-squash.sh
|
||||
|
31
SOURCES/0060.patch
Normal file
31
SOURCES/0060.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From ab679e91396a21489999c0acc9243415cb3235db Mon Sep 17 00:00:00 2001
|
||||
From: Colin Walters <walters@verbum.org>
|
||||
Date: Tue, 7 Jan 2020 20:53:53 +0000
|
||||
Subject: [PATCH] modules/network-manager: Install `ip`
|
||||
|
||||
We don't need `ip` but having it is *really* useful for people debugging
|
||||
in an emergency shell.
|
||||
|
||||
(cherry picked from commit 7fea85ce5f313445a260b5eb7bd7466217479d99)
|
||||
|
||||
Resolves: #1784358
|
||||
---
|
||||
modules.d/35network-manager/module-setup.sh | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/35network-manager/module-setup.sh b/modules.d/35network-manager/module-setup.sh
|
||||
index 62aba3c6..d6d0f9ce 100755
|
||||
--- a/modules.d/35network-manager/module-setup.sh
|
||||
+++ b/modules.d/35network-manager/module-setup.sh
|
||||
@@ -26,7 +26,9 @@ install() {
|
||||
|
||||
_nm_version=$(NetworkManager --version)
|
||||
|
||||
- inst_multiple sed grep
|
||||
+ # We don't need `ip` but having it is *really* useful for people debugging
|
||||
+ # in an emergency shell.
|
||||
+ inst_multiple ip sed grep
|
||||
|
||||
inst NetworkManager
|
||||
inst /usr/libexec/nm-initrd-generator
|
||||
|
31
SOURCES/0061.patch
Normal file
31
SOURCES/0061.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 7164155795f3f257cd119846de0b2a802a6a52c5 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Thu, 9 Jan 2020 10:49:52 +0100
|
||||
Subject: [PATCH] network-legacy/ifup: dhclient should be started in oneshot
|
||||
mode
|
||||
|
||||
since we handle the retries explicitly via rd.net.dhcp.retry
|
||||
|
||||
Without -1 if user sets ip=dhcp6 and there is no dhcp on the network,
|
||||
dhclient seems to wait indefinitely, ignoring rd.net.timeout.dhcp
|
||||
|
||||
(cherry picked from commit 2181c80c91f05bfae5e50de2f502e363b0219bae)
|
||||
|
||||
Resolves: #1787620
|
||||
---
|
||||
modules.d/35network-legacy/ifup.sh | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh
|
||||
index b4f5bf10..bfb57ad5 100755
|
||||
--- a/modules.d/35network-legacy/ifup.sh
|
||||
+++ b/modules.d/35network-legacy/ifup.sh
|
||||
@@ -52,6 +52,7 @@ do_dhcp() {
|
||||
dhclient "$@" \
|
||||
${_timeout:+-timeout $_timeout} \
|
||||
-q \
|
||||
+ -1 \
|
||||
-cf /etc/dhclient.conf \
|
||||
-pf /tmp/dhclient.$netif.pid \
|
||||
-lf /tmp/dhclient.$netif.lease \
|
||||
|
26
SOURCES/0062.patch
Normal file
26
SOURCES/0062.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From d20eb7b7b2a50f29ac02bd6b6d80113d495849ed Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Wed, 8 Jan 2020 16:20:29 +0100
|
||||
Subject: [PATCH] network-legacy/ifup: fix typo when calling dhclient --timeout
|
||||
|
||||
(cherry picked from commit 212043f94dde1693d777e933945138747537f12f)
|
||||
|
||||
Resolves: #1787620
|
||||
---
|
||||
modules.d/35network-legacy/ifup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh
|
||||
index bfb57ad5..16b950be 100755
|
||||
--- a/modules.d/35network-legacy/ifup.sh
|
||||
+++ b/modules.d/35network-legacy/ifup.sh
|
||||
@@ -50,7 +50,7 @@ do_dhcp() {
|
||||
while [ $_COUNT -lt $_DHCPRETRY ]; do
|
||||
info "Starting dhcp for interface $netif"
|
||||
dhclient "$@" \
|
||||
- ${_timeout:+-timeout $_timeout} \
|
||||
+ ${_timeout:+--timeout $_timeout} \
|
||||
-q \
|
||||
-1 \
|
||||
-cf /etc/dhclient.conf \
|
||||
|
31
SOURCES/0063.patch
Normal file
31
SOURCES/0063.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 46a8b8e9e7f150c2a17d4adeacb25ccf003ec425 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Lebon <jonathan@jlebon.com>
|
||||
Date: Tue, 21 Jan 2020 17:57:31 -0500
|
||||
Subject: [PATCH] network-legacy/ifup: nuke pid and lease files if dhclient
|
||||
failed
|
||||
|
||||
Otherwise we won't retry dhclient again on that interface. In
|
||||
FCOS/RHCOS, we want to bake in `ip=dhcp,dhcp6` so we automatically try
|
||||
getting a DHCPv6 lease if DHCPv4 failed.
|
||||
|
||||
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1793591
|
||||
(cherry picked from commit d0de58f23252a9da4a8badd71777e7c8418fa4b7)
|
||||
---
|
||||
modules.d/35network-legacy/ifup.sh | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh
|
||||
index 16b950be..dd18d70b 100755
|
||||
--- a/modules.d/35network-legacy/ifup.sh
|
||||
+++ b/modules.d/35network-legacy/ifup.sh
|
||||
@@ -62,6 +62,9 @@ do_dhcp() {
|
||||
[ $_COUNT -lt $_DHCPRETRY ] && sleep 1
|
||||
done
|
||||
warn "dhcp for interface $netif failed"
|
||||
+ # nuke those files since we failed; we might retry dhcp again if it's e.g.
|
||||
+ # `ip=dhcp,dhcp6` and we check for the PID file at the top
|
||||
+ rm -f /tmp/dhclient.$netif.{pid,lease}
|
||||
return 1
|
||||
}
|
||||
|
||||
|
39
SOURCES/0064.patch
Normal file
39
SOURCES/0064.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From 86d48f5c45d2d2c19cb575fa377763c069e57b8a Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Dubaj <odubaj@redhat.com>
|
||||
Date: Thu, 29 Aug 2019 14:31:06 +0200
|
||||
Subject: [PATCH] added debug-shell to initrd in systemd version >= 240
|
||||
|
||||
---
|
||||
dracut.spec | 2 +-
|
||||
modules.d/00systemd/module-setup.sh | 4 ++++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dracut.spec b/dracut.spec
|
||||
index 92c7f7bf..0f7eb4bf 100644
|
||||
--- a/dracut.spec
|
||||
+++ b/dracut.spec
|
||||
@@ -88,7 +88,7 @@ Recommends: hardlink
|
||||
Recommends: pigz
|
||||
Recommends: kpartx
|
||||
Requires: util-linux >= 2.21
|
||||
-Requires: systemd >= 219
|
||||
+Requires: systemd >= 239-23
|
||||
Requires: systemd-udev >= 219
|
||||
Requires: procps-ng
|
||||
%else
|
||||
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
|
||||
index ed177826..e4a3f323 100755
|
||||
--- a/modules.d/00systemd/module-setup.sh
|
||||
+++ b/modules.d/00systemd/module-setup.sh
|
||||
@@ -31,6 +31,10 @@ install() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
+ inst_multiple -o \
|
||||
+ $systemdutildir/system-generators/systemd-debug-generator \
|
||||
+ $systemdsystemunitdir/debug-shell.service
|
||||
+
|
||||
inst_multiple -o \
|
||||
$systemdutildir/systemd \
|
||||
$systemdutildir/systemd-coredump \
|
||||
|
32
SOURCES/0065.patch
Normal file
32
SOURCES/0065.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 543b1cff3c84af062da4d27ba81a9d394f44e4b6 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 11 Feb 2020 14:14:20 +0100
|
||||
Subject: [PATCH] dhclient-script: ipv6 uses different variables for
|
||||
nameservers
|
||||
|
||||
new_domain_name_servers and new_domain_search is only provided vit IPv4
|
||||
|
||||
see: https://src.fedoraproject.org/rpms/dhcp/blob/HEAD/f/dhclient-script#_148
|
||||
(cherry picked from commit 962310483f473dbc8d71d70ba464d273b9808d31)
|
||||
|
||||
Resolves: #1795276
|
||||
---
|
||||
modules.d/35network-legacy/dhclient-script.sh | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/35network-legacy/dhclient-script.sh b/modules.d/35network-legacy/dhclient-script.sh
|
||||
index fc6ed0a3..f1a60005 100755
|
||||
--- a/modules.d/35network-legacy/dhclient-script.sh
|
||||
+++ b/modules.d/35network-legacy/dhclient-script.sh
|
||||
@@ -75,8 +75,8 @@ setup_interface() {
|
||||
|
||||
setup_interface6() {
|
||||
domain=$new_domain_name
|
||||
- search=$(printf -- "$new_domain_search")
|
||||
- namesrv=$new_domain_name_servers
|
||||
+ search=$(printf -- "$new_dhcp6_domain_search")
|
||||
+ namesrv=$new_dhcp6_name_servers
|
||||
hostname=$new_host_name
|
||||
[ -n "$new_dhcp_lease_time" ] && lease_time=$new_dhcp_lease_time
|
||||
[ -n "$new_max_life" ] && lease_time=$new_max_life
|
||||
|
36
SOURCES/0066.patch
Normal file
36
SOURCES/0066.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 3468310486d0da8d2a6c6bdcddc598b7b8ce5587 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 4 Feb 2020 14:18:01 +0100
|
||||
Subject: [PATCH] Revert "wait for IPv6 RA if using none/static IPv6
|
||||
assignment"
|
||||
|
||||
This reverts commit c603419030136570b5944dc4620f62d07b9e82bb.
|
||||
|
||||
wait_for_ipv6_dad_link is only called from dhclient script,
|
||||
so the original intent "wait for IPv6 RA if using none/static IPv6 assignment"
|
||||
does not seem to be correct.
|
||||
|
||||
Anyway, this brings an issue on isolated networks, where you don't
|
||||
have any routes outside. dhclient-script hangs on this check
|
||||
and after it times out, dhclient is able to set the address normally.
|
||||
|
||||
(cherry picked from commit 76f6566fd777e0ee20416061ecb795e8daef33e1)
|
||||
|
||||
Resolves: #1795276
|
||||
---
|
||||
modules.d/40network/net-lib.sh | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
|
||||
index dcb53804..0f3ca6a8 100755
|
||||
--- a/modules.d/40network/net-lib.sh
|
||||
+++ b/modules.d/40network/net-lib.sh
|
||||
@@ -655,7 +655,6 @@ wait_for_ipv6_dad_link() {
|
||||
while [ $cnt -lt $timeout ]; do
|
||||
[ -n "$(ip -6 addr show dev "$1" scope link)" ] \
|
||||
&& [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \
|
||||
- && [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \
|
||||
&& return 0
|
||||
[ -n "$(ip -6 addr show dev "$1" scope link dadfailed)" ] \
|
||||
&& return 1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user