dracut - 054-12.git20210521
- fix `get_maj_min` for kdump - suppress hardlink output - sane default --kerneldir for dracut-install - squash: don't mount the mount points if already mounted
This commit is contained in:
parent
8db2b6ad75
commit
9f8738445a
@ -1,4 +1,4 @@
|
|||||||
From 805599442110985dfee83ea826d35b5943805313 Mon Sep 17 00:00:00 2001
|
From 148e420be5b5809aa8d5033f47477573bbbf3e60 Mon Sep 17 00:00:00 2001
|
||||||
From: Harald Hoyer <harald@redhat.com>
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
Date: Tue, 18 May 2021 10:13:56 +0200
|
Date: Tue, 18 May 2021 10:13:56 +0200
|
||||||
Subject: [PATCH] fix(base): add missing `str_replace` to `dracut-dev-lib.sh`
|
Subject: [PATCH] fix(base): add missing `str_replace` to `dracut-dev-lib.sh`
|
||||||
@ -55,3 +55,4 @@ index 7eb0a277..07c33eef 100755
|
|||||||
|
|
||||||
# shellcheck source=dracut-dev-lib.sh
|
# shellcheck source=dracut-dev-lib.sh
|
||||||
. "$moddir/dracut-dev-lib.sh"
|
. "$moddir/dracut-dev-lib.sh"
|
||||||
|
|
||||||
|
61
0006.patch
Normal file
61
0006.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
From fa63c9be13660ae5223f9c3e87234ab281b97a95 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Mon, 17 May 2021 13:07:09 +0200
|
||||||
|
Subject: [PATCH] ci: add shfmt to Fedora containers
|
||||||
|
|
||||||
|
---
|
||||||
|
test/container/Dockerfile-Fedora-33 | 1 +
|
||||||
|
test/container/Dockerfile-Fedora-34 | 1 +
|
||||||
|
test/container/Dockerfile-Fedora-latest | 1 +
|
||||||
|
test/container/Dockerfile-Fedora-rawhide | 1 +
|
||||||
|
4 files changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/test/container/Dockerfile-Fedora-33 b/test/container/Dockerfile-Fedora-33
|
||||||
|
index 51ca39f4..8e09cf5e 100644
|
||||||
|
--- a/test/container/Dockerfile-Fedora-33
|
||||||
|
+++ b/test/container/Dockerfile-Fedora-33
|
||||||
|
@@ -48,6 +48,7 @@ RUN dnf -y install --setopt=install_weak_deps=False \
|
||||||
|
python3-imgcreate \
|
||||||
|
which \
|
||||||
|
ShellCheck \
|
||||||
|
+ shfmt \
|
||||||
|
&& dnf -y update && dnf clean all
|
||||||
|
|
||||||
|
# Set default command
|
||||||
|
diff --git a/test/container/Dockerfile-Fedora-34 b/test/container/Dockerfile-Fedora-34
|
||||||
|
index 7e295e9a..b9701f6d 100644
|
||||||
|
--- a/test/container/Dockerfile-Fedora-34
|
||||||
|
+++ b/test/container/Dockerfile-Fedora-34
|
||||||
|
@@ -48,6 +48,7 @@ RUN dnf -y install --setopt=install_weak_deps=False \
|
||||||
|
python3-imgcreate \
|
||||||
|
which \
|
||||||
|
ShellCheck \
|
||||||
|
+ shfmt \
|
||||||
|
&& dnf -y update && dnf clean all
|
||||||
|
|
||||||
|
# Set default command
|
||||||
|
diff --git a/test/container/Dockerfile-Fedora-latest b/test/container/Dockerfile-Fedora-latest
|
||||||
|
index 81d5b9b9..3fc4a370 100644
|
||||||
|
--- a/test/container/Dockerfile-Fedora-latest
|
||||||
|
+++ b/test/container/Dockerfile-Fedora-latest
|
||||||
|
@@ -48,6 +48,7 @@ RUN dnf -y install --setopt=install_weak_deps=False \
|
||||||
|
python3-imgcreate \
|
||||||
|
which \
|
||||||
|
ShellCheck \
|
||||||
|
+ shfmt \
|
||||||
|
&& dnf -y update && dnf clean all
|
||||||
|
|
||||||
|
# Set default command
|
||||||
|
diff --git a/test/container/Dockerfile-Fedora-rawhide b/test/container/Dockerfile-Fedora-rawhide
|
||||||
|
index bd75e611..2d5653a7 100644
|
||||||
|
--- a/test/container/Dockerfile-Fedora-rawhide
|
||||||
|
+++ b/test/container/Dockerfile-Fedora-rawhide
|
||||||
|
@@ -48,6 +48,7 @@ RUN dnf -y install --setopt=install_weak_deps=False \
|
||||||
|
python3-imgcreate \
|
||||||
|
which \
|
||||||
|
ShellCheck \
|
||||||
|
+ shfmt \
|
||||||
|
&& dnf -y update && dnf clean all
|
||||||
|
|
||||||
|
# Set default command
|
||||||
|
|
61
0007.patch
Normal file
61
0007.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
From 636d6df3134dde1dac72241937724bc59deb9303 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kairui Song <kasong@redhat.com>
|
||||||
|
Date: Wed, 7 Apr 2021 02:11:41 +0800
|
||||||
|
Subject: [PATCH] fix(squash): don't mount the mount points if already mounted
|
||||||
|
|
||||||
|
It is possible that user setup some early mount in the rootfs even
|
||||||
|
earlier, so just be more robust and cover that case too.
|
||||||
|
|
||||||
|
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/99squash/init-squash.sh | 17 +++++++++++------
|
||||||
|
modules.d/99squash/module-setup.sh | 4 ++--
|
||||||
|
2 files changed, 13 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/99squash/init-squash.sh b/modules.d/99squash/init-squash.sh
|
||||||
|
index 3de6f819..59769f62 100755
|
||||||
|
--- a/modules.d/99squash/init-squash.sh
|
||||||
|
+++ b/modules.d/99squash/init-squash.sh
|
||||||
|
@@ -1,12 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
PATH=/bin:/sbin
|
||||||
|
|
||||||
|
-# Basic mounts for mounting a squash image
|
||||||
|
-mkdir /proc /sys /dev /run
|
||||||
|
-mount -t proc -o nosuid,noexec,nodev proc /proc
|
||||||
|
-mount -t sysfs -o nosuid,noexec,nodev sysfs /sys
|
||||||
|
-mount -t devtmpfs -o mode=755,noexec,nosuid,strictatime devtmpfs /dev
|
||||||
|
-mount -t tmpfs -o mode=755,nodev,nosuid,strictatime tmpfs /run
|
||||||
|
+[ -e /proc/self/mounts ] \
|
||||||
|
+ || (mkdir -p /proc && mount -t proc -o nosuid,noexec,nodev proc /proc)
|
||||||
|
+
|
||||||
|
+grep -q '^sysfs /sys sysfs' /proc/self/mounts \
|
||||||
|
+ || (mkdir -p /sys && mount -t sysfs -o nosuid,noexec,nodev sysfs /sys)
|
||||||
|
+
|
||||||
|
+grep -q '^devtmpfs /dev devtmpfs' /proc/self/mounts \
|
||||||
|
+ || (mkdir -p /dev && mount -t devtmpfs -o mode=755,noexec,nosuid,strictatime devtmpfs /dev)
|
||||||
|
+
|
||||||
|
+grep -q '^tmpfs /run tmpfs' /proc/self/mounts \
|
||||||
|
+ || (mkdir -p /run && mount -t tmpfs -o mode=755,noexec,nosuid,strictatime tmpfs /run)
|
||||||
|
|
||||||
|
# Load required modules
|
||||||
|
modprobe loop
|
||||||
|
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
|
||||||
|
index 77520027..e3196213 100644
|
||||||
|
--- a/modules.d/99squash/module-setup.sh
|
||||||
|
+++ b/modules.d/99squash/module-setup.sh
|
||||||
|
@@ -42,11 +42,11 @@ installpost() {
|
||||||
|
# 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; do
|
||||||
|
+ for _i in sh echo mount modprobe mkdir switch_root grep; do
|
||||||
|
ln_r /usr/bin/busybox /usr/bin/$_i
|
||||||
|
done
|
||||||
|
else
|
||||||
|
- DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root
|
||||||
|
+ DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root grep
|
||||||
|
fi
|
||||||
|
|
||||||
|
hostonly="" instmods "loop" "squashfs" "overlay"
|
||||||
|
|
59
0008.patch
Normal file
59
0008.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
From 9355cb8ea5024533210067373657dc337d63ecb9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
|
||||||
|
Date: Tue, 18 May 2021 12:39:34 +0000
|
||||||
|
Subject: [PATCH] fix(bash): minor cleanups
|
||||||
|
|
||||||
|
- Remove hard coded path to binary
|
||||||
|
- Add missing license header
|
||||||
|
- Document sections
|
||||||
|
- refactor install section
|
||||||
|
---
|
||||||
|
modules.d/00bash/module-setup.sh | 28 ++++++++++++++++++++--------
|
||||||
|
1 file changed, 20 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/00bash/module-setup.sh b/modules.d/00bash/module-setup.sh
|
||||||
|
index f72c297b..89ef6541 100755
|
||||||
|
--- a/modules.d/00bash/module-setup.sh
|
||||||
|
+++ b/modules.d/00bash/module-setup.sh
|
||||||
|
@@ -1,20 +1,32 @@
|
||||||
|
#!/bin/bash
|
||||||
|
+# This file is part of dracut.
|
||||||
|
+# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
-# called by dracut
|
||||||
|
+# Prerequisite check(s) for module.
|
||||||
|
check() {
|
||||||
|
- require_binaries /bin/bash
|
||||||
|
+
|
||||||
|
+ # If the binary(s) requirements are not fulfilled the module can't be installed.
|
||||||
|
+ require_binaries bash || return 1
|
||||||
|
+
|
||||||
|
+ # Return 255 to only include the module, if another module requires it.
|
||||||
|
+ return 255
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
-# called by dracut
|
||||||
|
+# Module dependency requirements.
|
||||||
|
depends() {
|
||||||
|
+
|
||||||
|
+ # Return 0 to include the dependent module(s) in the initramfs.
|
||||||
|
return 0
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
-# called by dracut
|
||||||
|
+# Install the required file(s) and directories for the module in the initramfs.
|
||||||
|
install() {
|
||||||
|
- # If another shell is already installed, do not use bash
|
||||||
|
- [[ -x $initdir/bin/sh ]] && return
|
||||||
|
|
||||||
|
- # Prefer bash as /bin/sh if it is available.
|
||||||
|
- inst /bin/bash && ln -sf bash "${initdir}/bin/sh"
|
||||||
|
+ inst /bin/bash
|
||||||
|
+
|
||||||
|
+ # Prefer bash as default shell if no other shell is preferred.
|
||||||
|
+ [[ -L $initdir/bin/sh ]] || ln -sf bash "${initdir}/bin/sh"
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
29
0009.patch
Normal file
29
0009.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From c1ab36139d416e580e768c29f2addf7ccbc2c612 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marcos Mello <marcosfrm@gmail.com>
|
||||||
|
Date: Thu, 20 May 2021 15:41:26 -0300
|
||||||
|
Subject: [PATCH] fix(install): sane default --kerneldir
|
||||||
|
|
||||||
|
If --kerneldir is not specified, use /lib/modules/$(uname -r).
|
||||||
|
|
||||||
|
Fixes #1505
|
||||||
|
---
|
||||||
|
src/install/dracut-install.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/install/dracut-install.c b/src/install/dracut-install.c
|
||||||
|
index 9f044ae0..3fd70fc8 100644
|
||||||
|
--- a/src/install/dracut-install.c
|
||||||
|
+++ b/src/install/dracut-install.c
|
||||||
|
@@ -1167,7 +1167,10 @@ static int parse_argv(int argc, char *argv[])
|
||||||
|
if (!kerneldir) {
|
||||||
|
struct utsname buf;
|
||||||
|
uname(&buf);
|
||||||
|
- kerneldir = strdup(buf.version);
|
||||||
|
+ if (asprintf(&kerneldir, "%s%s", "/lib/modules/", buf.release) < 0) {
|
||||||
|
+ log_error("Out of memory!");
|
||||||
|
+ exit(EXIT_FAILURE);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arg_modalias) {
|
||||||
|
|
33
0010.patch
Normal file
33
0010.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From 0a6007bf4f472565d2c0c205a56edea7ba3e3bc3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 21 May 2021 11:30:47 +0200
|
||||||
|
Subject: [PATCH] fix(dracut): pipe hardlink output to `dinfo`
|
||||||
|
|
||||||
|
Otherwise the output is cluttered with:
|
||||||
|
```
|
||||||
|
Mode: real
|
||||||
|
Files: 1364
|
||||||
|
Linked: 5 files
|
||||||
|
Compared: 0 xattrs
|
||||||
|
Compared: 384 files
|
||||||
|
Saved: 12.84 KiB
|
||||||
|
Duration: 0.052674 seconds
|
||||||
|
```
|
||||||
|
---
|
||||||
|
dracut.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.sh b/dracut.sh
|
||||||
|
index 24e1c2e7..60ac46f4 100755
|
||||||
|
--- a/dracut.sh
|
||||||
|
+++ b/dracut.sh
|
||||||
|
@@ -2092,7 +2092,7 @@ done
|
||||||
|
|
||||||
|
if [[ $do_hardlink == yes ]] && command -v hardlink > /dev/null; then
|
||||||
|
dinfo "*** Hardlinking files ***"
|
||||||
|
- hardlink "$initdir" 2>&1
|
||||||
|
+ hardlink "$initdir" 2>&1 | dinfo
|
||||||
|
dinfo "*** Hardlinking files done ***"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
43
0011.patch
Normal file
43
0011.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From a277a5fc7acc0a9e8d853f09671495f9d27645c1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 21 May 2021 12:19:32 +0200
|
||||||
|
Subject: [PATCH] fix(dracut-functions): get_maj_min without
|
||||||
|
get_maj_min_cache_file set
|
||||||
|
|
||||||
|
If `get_maj_min_cache_file` is unset `get_maj_min()` would error out.
|
||||||
|
|
||||||
|
Fix it to work without a cache file set.
|
||||||
|
---
|
||||||
|
dracut-functions.sh | 17 ++++++++++++-----
|
||||||
|
1 file changed, 12 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
||||||
|
index 1991c62e..5206bd21 100755
|
||||||
|
--- a/dracut-functions.sh
|
||||||
|
+++ b/dracut-functions.sh
|
||||||
|
@@ -234,13 +234,20 @@ get_fs_env() {
|
||||||
|
# 8:2
|
||||||
|
get_maj_min() {
|
||||||
|
local _majmin
|
||||||
|
- out="$(grep -m1 -oP "^$1 \K\S+$" "${get_maj_min_cache_file:?}")"
|
||||||
|
- if [ -z "$out" ]; then
|
||||||
|
+ local _out
|
||||||
|
+
|
||||||
|
+ if [[ $get_maj_min_cache_file ]]; then
|
||||||
|
+ _out="$(grep -m1 -oP "^$1 \K\S+$" "$get_maj_min_cache_file")"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if ! [[ "$_out" ]]; then
|
||||||
|
_majmin="$(stat -L -c '%t:%T' "$1" 2> /dev/null)"
|
||||||
|
- out="$(printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))")"
|
||||||
|
- echo "$1 $out" >> "${get_maj_min_cache_file:?}"
|
||||||
|
+ _out="$(printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))")"
|
||||||
|
+ if [[ $get_maj_min_cache_file ]]; then
|
||||||
|
+ echo "$1 $_out" >> "$get_maj_min_cache_file"
|
||||||
|
+ fi
|
||||||
|
fi
|
||||||
|
- echo -n "$out"
|
||||||
|
+ echo -n "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
|
# get_devpath_block <device>
|
14
dracut.spec
14
dracut.spec
@ -5,7 +5,7 @@
|
|||||||
# strip the automatically generated dep here and instead co-own the
|
# strip the automatically generated dep here and instead co-own the
|
||||||
# directory.
|
# directory.
|
||||||
%global __requires_exclude pkg-config
|
%global __requires_exclude pkg-config
|
||||||
%define dist_free_release 6.git20210518
|
%define dist_free_release 12.git20210521
|
||||||
|
|
||||||
Name: dracut
|
Name: dracut
|
||||||
Version: 054
|
Version: 054
|
||||||
@ -34,6 +34,12 @@ Patch2: 0002.patch
|
|||||||
Patch3: 0003.patch
|
Patch3: 0003.patch
|
||||||
Patch4: 0004.patch
|
Patch4: 0004.patch
|
||||||
Patch5: 0005.patch
|
Patch5: 0005.patch
|
||||||
|
Patch6: 0006.patch
|
||||||
|
Patch7: 0007.patch
|
||||||
|
Patch8: 0008.patch
|
||||||
|
Patch9: 0009.patch
|
||||||
|
Patch10: 0010.patch
|
||||||
|
Patch11: 0011.patch
|
||||||
|
|
||||||
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
|
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
|
||||||
|
|
||||||
@ -489,6 +495,12 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
|||||||
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
|
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri May 21 2021 Harald Hoyer <harald@redhat.com> - 054-12.git20210521
|
||||||
|
- fix `get_maj_min` for kdump
|
||||||
|
- suppress hardlink output
|
||||||
|
- sane default --kerneldir for dracut-install
|
||||||
|
- squash: don't mount the mount points if already mounted
|
||||||
|
|
||||||
* Tue May 18 2021 Harald Hoyer <harald@redhat.com> - 054-6.git20210518
|
* Tue May 18 2021 Harald Hoyer <harald@redhat.com> - 054-6.git20210518
|
||||||
- fix for `str_replace: command not found`
|
- fix for `str_replace: command not found`
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user