backport a patch for kernel-install
This commit is contained in:
parent
0eab21cb2b
commit
ee8fc244d8
111
0001-kernel-install-fix-dracut-initrd-detection-240-backw.patch
Normal file
111
0001-kernel-install-fix-dracut-initrd-detection-240-backw.patch
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
From d279b185c004fdaf7913778f052ec2ab249cd473 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
|
||||||
|
Date: Sun, 27 Jan 2019 17:32:21 +0100
|
||||||
|
Subject: [PATCH] kernel-install: fix dracut initrd detection (240 backward
|
||||||
|
compatibility) (#11570)
|
||||||
|
|
||||||
|
* kernel-install: fix initrd when called as installkernel
|
||||||
|
|
||||||
|
Running make install from the kernel runs e.g.:
|
||||||
|
installkernel 4.20.5 arch/x86/boot/bzImage System.map "/boot"
|
||||||
|
|
||||||
|
Since 0912c0b80eb24fb9a4e1cc4abf274a1358b9943d this would
|
||||||
|
cal 90-loaderentry.install with those arguments:
|
||||||
|
add 4.20.5 /boot/... arch/x86/boot/bzImage System.map "/boot"
|
||||||
|
|
||||||
|
The two last arguments would then be handled as the initrd files.
|
||||||
|
As System.map exists in current directory but not in /boot/...
|
||||||
|
it would get copied there, and used as initrd intead of the initrd
|
||||||
|
which has been generated by dracut.
|
||||||
|
|
||||||
|
With this change, nothing changes when kernel-install is called
|
||||||
|
directly, but when it's called as installkernel, we now pass
|
||||||
|
thos arguments to 90-loaderentry.install:
|
||||||
|
add 4.20.5 /boot/... arch/x86/boot/bzImage initrd
|
||||||
|
initrd is thus detected as the file to use for the initrd, and as it
|
||||||
|
exists, nothing is copied over and the initrd line generated is
|
||||||
|
consistent with what one would expect
|
||||||
|
|
||||||
|
* kernel-install: fix dracut initrd detection when called directly
|
||||||
|
|
||||||
|
This brings back the systemd 240 behaviour when called directly too
|
||||||
|
|
||||||
|
* kernel-install: unify initrd fallback
|
||||||
|
|
||||||
|
* kernel-install: move initrd fallback handling to 90-loaderentry.install
|
||||||
|
|
||||||
|
* kernel-install: move initrd fallback just before creating loader entry
|
||||||
|
---
|
||||||
|
src/kernel-install/90-loaderentry.install | 10 ++++++++--
|
||||||
|
src/kernel-install/kernel-install | 6 ++++--
|
||||||
|
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/kernel-install/90-loaderentry.install b/src/kernel-install/90-loaderentry.install
|
||||||
|
index e5fb232f35..75dd5a1b7d 100644
|
||||||
|
--- a/src/kernel-install/90-loaderentry.install
|
||||||
|
+++ b/src/kernel-install/90-loaderentry.install
|
||||||
|
@@ -83,7 +83,9 @@ cp "$KERNEL_IMAGE" "$BOOT_DIR_ABS/linux" &&
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
-for initrd in "${@:${INITRD_OPTIONS_START}}"; do
|
||||||
|
+INITRD_OPTIONS=( "${@:${INITRD_OPTIONS_START}}" )
|
||||||
|
+
|
||||||
|
+for initrd in "${INITRD_OPTIONS[@]}"; do
|
||||||
|
if [[ -f "${initrd}" ]]; then
|
||||||
|
initrd_basename="$(basename ${initrd})"
|
||||||
|
cp "${initrd}" "$BOOT_DIR_ABS/${initrd_basename}" &&
|
||||||
|
@@ -95,6 +97,10 @@ for initrd in "${@:${INITRD_OPTIONS_START}}"; do
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
+# If no initrd option is supplied, fallback to "initrd" which is
|
||||||
|
+# the name used by dracut when generating it in its kernel-install hook
|
||||||
|
+[[ ${#INITRD_OPTIONS[@]} == 0 ]] && INITRD_OPTIONS=( initrd )
|
||||||
|
+
|
||||||
|
mkdir -p "${LOADER_ENTRY%/*}" || {
|
||||||
|
echo "Could not create loader entry directory '${LOADER_ENTRY%/*}'." >&2
|
||||||
|
exit 1
|
||||||
|
@@ -106,7 +112,7 @@ mkdir -p "${LOADER_ENTRY%/*}" || {
|
||||||
|
echo "machine-id $MACHINE_ID"
|
||||||
|
echo "options ${BOOT_OPTIONS[*]}"
|
||||||
|
echo "linux $BOOT_DIR/linux"
|
||||||
|
- for initrd in "${@:${INITRD_OPTIONS_START}}"; do
|
||||||
|
+ for initrd in "${INITRD_OPTIONS[@]}"; do
|
||||||
|
[[ -f $BOOT_DIR_ABS/$(basename ${initrd}) ]] && \
|
||||||
|
echo "initrd $BOOT_DIR/$(basename ${initrd})"
|
||||||
|
done
|
||||||
|
diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install
|
||||||
|
index 7973818bca..b85c7c557e 100644
|
||||||
|
--- a/src/kernel-install/kernel-install
|
||||||
|
+++ b/src/kernel-install/kernel-install
|
||||||
|
@@ -65,14 +65,16 @@ done
|
||||||
|
|
||||||
|
if [[ "${0##*/}" == 'installkernel' ]]; then
|
||||||
|
COMMAND='add'
|
||||||
|
+ # make install doesn't pass any parameter wrt initrd handling
|
||||||
|
+ INITRD_OPTIONS=()
|
||||||
|
else
|
||||||
|
COMMAND="$1"
|
||||||
|
shift
|
||||||
|
+ INITRD_OPTIONS=( "${@:3}" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
KERNEL_VERSION="$1"
|
||||||
|
KERNEL_IMAGE="$2"
|
||||||
|
-INITRD_OPTIONS_START="3"
|
||||||
|
|
||||||
|
if [[ -f /etc/machine-id ]]; then
|
||||||
|
read MACHINE_ID < /etc/machine-id
|
||||||
|
@@ -124,7 +126,7 @@ case $COMMAND in
|
||||||
|
|
||||||
|
for f in "${PLUGINS[@]}"; do
|
||||||
|
if [[ -x $f ]]; then
|
||||||
|
- "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "${@:${INITRD_OPTIONS_START}}"
|
||||||
|
+ "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "${INITRD_OPTIONS[@]}"
|
||||||
|
x=$?
|
||||||
|
if [[ $x == $SKIP_REMAINING ]]; then
|
||||||
|
ret=0
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
@ -15,7 +15,7 @@
|
|||||||
Name: systemd
|
Name: systemd
|
||||||
Url: https://www.freedesktop.org/wiki/Software/systemd
|
Url: https://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 241~rc1
|
Version: 241~rc1
|
||||||
Release: 1%{?commit:.git%{shortcommit}}%{?dist}
|
Release: 2%{?commit:.git%{shortcommit}}%{?dist}
|
||||||
# For a breakdown of the licensing, see README
|
# For a breakdown of the licensing, see README
|
||||||
License: LGPLv2+ and MIT and GPLv2+
|
License: LGPLv2+ and MIT and GPLv2+
|
||||||
Summary: System and Service Manager
|
Summary: System and Service Manager
|
||||||
@ -52,6 +52,7 @@ i=1; for j in 00*patch; do printf "Patch%04d: %s\n" $i $j; i=$((i+1));done|
|
|||||||
GIT_DIR=../../src/systemd/.git git diffab -M v233..master@{2017-06-15} -- hwdb/[67]* hwdb/parse_hwdb.py > hwdb.patch
|
GIT_DIR=../../src/systemd/.git git diffab -M v233..master@{2017-06-15} -- hwdb/[67]* hwdb/parse_hwdb.py > hwdb.patch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Patch0001: 0001-kernel-install-fix-dracut-initrd-detection-240-backw.patch
|
||||||
Patch0002: 0002-Revert-units-set-NoNewPrivileges-for-all-long-runnin.patch
|
Patch0002: 0002-Revert-units-set-NoNewPrivileges-for-all-long-runnin.patch
|
||||||
|
|
||||||
Patch0998: 0998-resolved-create-etc-resolv.conf-symlink-at-runtime.patch
|
Patch0998: 0998-resolved-create-etc-resolv.conf-symlink-at-runtime.patch
|
||||||
@ -694,6 +695,9 @@ fi
|
|||||||
%files tests -f .file-list-tests
|
%files tests -f .file-list-tests
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Jan 27 2019 Yu Watanabe <watanabe.yu@gmail.com> - 241~rc1-2
|
||||||
|
- Backport a patch for kernel-install
|
||||||
|
|
||||||
* Sat Jan 26 2019 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 241~rc1-1
|
* Sat Jan 26 2019 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 241~rc1-1
|
||||||
- Update to latest release -rc1
|
- Update to latest release -rc1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user