version 054
This commit is contained in:
parent
7430406aed
commit
b7366e786e
1
.gitignore
vendored
1
.gitignore
vendored
@ -37,3 +37,4 @@
|
||||
/dracut-050.tar.xz
|
||||
/dracut-051.tar.xz
|
||||
/dracut-053.tar.xz
|
||||
/dracut-054.tar.xz
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 9db78bc16fc66d1200ab032bd667809a4404c869 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Mon, 19 Apr 2021 08:33:38 -0700
|
||||
Subject: [PATCH] Partially revert 41cfdfc to fix RHBZ #1936781 per @ryncsn
|
||||
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
---
|
||||
dracut.sh | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index 062ed6c1..71942ce1 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -2059,8 +2059,11 @@ if dracut_module_included "squash"; then
|
||||
|
||||
# Remove duplicated files
|
||||
for folder in "${squash_candidate[@]}"; do
|
||||
- find "$initdir/$folder/" -not -type d \
|
||||
- -exec bash -c 'mv -f "$squash_dir${1#$initdir}" "$1"' -- "{}" \;
|
||||
+ for file in $(find $initdir/$folder/ -not -type d); do
|
||||
+ if [[ -e $squash_dir${file#$initdir} ]]; then
|
||||
+ mv -f $squash_dir${file#$initdir} $file
|
||||
+ fi
|
||||
+ done
|
||||
done
|
||||
fi
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 82549210c375075bf79ad77bb915ed2d0808d60a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Wed, 21 Apr 2021 12:50:41 +0100
|
||||
Subject: [PATCH] fix(90kernel-modules): add watchdog drivers for generic
|
||||
initrd
|
||||
|
||||
The watchdog module pulls in the device specific watchdog if that
|
||||
module is enabled, but in the case where we need a generic initrd
|
||||
we don't get all watchdog drivers which means if we have a watchdog
|
||||
enabled for that usecase it may get kicked too late in the boot
|
||||
process so we need the drivers in the initrd for the generic case too.
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
modules.d/90kernel-modules/module-setup.sh | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
||||
index 1a1b56a2..b3c91f21 100755
|
||||
--- a/modules.d/90kernel-modules/module-setup.sh
|
||||
+++ b/modules.d/90kernel-modules/module-setup.sh
|
||||
@@ -59,6 +59,7 @@
|
||||
"=drivers/pci/host" \
|
||||
"=drivers/pci/controller" \
|
||||
"=drivers/pinctrl" \
|
||||
+ "=drivers/watchdog" \
|
||||
${NULL}
|
||||
|
||||
instmods \
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 4fbccde50456f513d388cdfd858018cd889890dc Mon Sep 17 00:00:00 2001
|
||||
From: Dusty Mabe <dusty@dustymabe.com>
|
||||
Date: Wed, 14 Apr 2021 16:23:29 -0400
|
||||
Subject: [PATCH] fix(dracut-logger.sh): double dash trigger unknown logger
|
||||
warnings during run
|
||||
|
||||
There are a bunch of `logger: unknown facility name: --user` errors
|
||||
during a run. This is because logger is getting passed something like:
|
||||
|
||||
```
|
||||
logger -p --user.info
|
||||
```
|
||||
|
||||
Where it should be something like:
|
||||
|
||||
```
|
||||
logger -p user.info
|
||||
```
|
||||
---
|
||||
dracut-logger.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dracut-logger.sh b/dracut-logger.sh
|
||||
index c36525d0..07389285 100755
|
||||
--- a/dracut-logger.sh
|
||||
+++ b/dracut-logger.sh
|
||||
@@ -241,7 +241,7 @@ _lvl2char() {
|
||||
# @retval 0 if @a lvl is correct.
|
||||
# @result Echoes logger priority.
|
||||
_lvl2syspri() {
|
||||
- printf "%s" -- "$syslogfacility."
|
||||
+ printf -- "%s" "$syslogfacility."
|
||||
case "$1" in
|
||||
1) echo crit;;
|
||||
2) echo error;;
|
||||
--
|
||||
2.30.2
|
||||
|
@ -1,46 +0,0 @@
|
||||
From 1f21fac646daa46cbe184ef8ff7705842f06ba15 Mon Sep 17 00:00:00 2001
|
||||
From: Dusty Mabe <dusty@dustymabe.com>
|
||||
Date: Wed, 14 Apr 2021 10:46:12 -0400
|
||||
Subject: [PATCH] fix(network-manager): nm-run.service: don't kill forked
|
||||
processes
|
||||
|
||||
If teaming is set up via NetworkManager we don't want systemd to take
|
||||
down the userspace teamd process when NetworkManager quits. `KillMode=process`
|
||||
will allow it to leave those processes behind.
|
||||
|
||||
This is fallout from the change to run NetworkManager via systemd (c17c5b7).
|
||||
|
||||
With `KillMode=process` we get something like:
|
||||
|
||||
```
|
||||
sh-5.1# journalctl -u nm-run -o cat | tail
|
||||
<info> [1618411262.7030] quitting now that startup is complete
|
||||
<info> [1618411262.7030] device (team0): carrier: link connected
|
||||
<info> [1618411262.7033] device (team0): team port ens2 was released
|
||||
<info> [1618411262.7033] device (team0): team port ens3 was released
|
||||
<info> [1618411262.7033] manager: NetworkManager state is now CONNECTED_SITE
|
||||
<info> [1618411262.7034] exiting (success)
|
||||
nm-run.service: Deactivated successfully.
|
||||
nm-run.service: Unit process 476 (teamd) remains running after unit stopped.
|
||||
Finished nm-run.service.
|
||||
```
|
||||
---
|
||||
modules.d/35network-manager/nm-run.service | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-run.service b/modules.d/35network-manager/nm-run.service
|
||||
index f3493c41..b667ce37 100644
|
||||
--- a/modules.d/35network-manager/nm-run.service
|
||||
+++ b/modules.d/35network-manager/nm-run.service
|
||||
@@ -23,6 +23,8 @@ ConditionPathExistsGlob=|/etc/sysconfig/network-scripts/ifcfg-*
|
||||
#run the script and wait before it finishes
|
||||
Type=oneshot
|
||||
ExecStart=/usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
|
||||
+#don't kill forked off processes (for example: teamd for teaming)
|
||||
+KillMode=process
|
||||
|
||||
[Install]
|
||||
WantedBy=initrd.target
|
||||
--
|
||||
2.30.2
|
||||
|
@ -1,27 +0,0 @@
|
||||
From ba4bcf5f4f11ad624c647ddf4f566997186135e7 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Wed, 31 Mar 2021 16:11:41 +0200
|
||||
Subject: [PATCH] fix(network-manager): no default deps for nm-run.service
|
||||
|
||||
Otherwise nm-run.service will run only in basic.target, which is too
|
||||
late in the initramfs.
|
||||
---
|
||||
modules.d/35network-manager/nm-run.service | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-run.service b/modules.d/35network-manager/nm-run.service
|
||||
index 63fe7564..f3493c41 100644
|
||||
--- a/modules.d/35network-manager/nm-run.service
|
||||
+++ b/modules.d/35network-manager/nm-run.service
|
||||
@@ -2,6 +2,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
[Unit]
|
||||
+DefaultDependencies=no
|
||||
+
|
||||
#make sure all devices showed up
|
||||
Wants=systemd-udev-settle.service
|
||||
After=systemd-udev-settle.service
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,47 +0,0 @@
|
||||
From ac0e8f7dcc81432311906c3fca0d4211f6a2f68c Mon Sep 17 00:00:00 2001
|
||||
From: Dusty Mabe <dusty@dustymabe.com>
|
||||
Date: Tue, 13 Apr 2021 11:36:21 -0400
|
||||
Subject: [PATCH 1/2] fix(network-manager): only run NetworkManager if
|
||||
rd.neednet=1
|
||||
|
||||
Don't run the new systemd unit (nm-run.service) if rd.neednet=1
|
||||
isn't set. nm-initrd-generator will generate configuration even
|
||||
without rd.neednet=1 so determining if we should start based on
|
||||
just if connection profiles exist isn't enough. We need some other
|
||||
indicator. In this case we lay down a /run/NetworkManager/initrd/neednet
|
||||
if rd.neednet=1, which is used by nm-run.service to determine the
|
||||
need to run.
|
||||
---
|
||||
modules.d/35network-manager/nm-lib.sh | 1 +
|
||||
modules.d/35network-manager/nm-run.service | 3 +++
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-lib.sh b/modules.d/35network-manager/nm-lib.sh
|
||||
index fe053cf..d756022 100644
|
||||
--- a/modules.d/35network-manager/nm-lib.sh
|
||||
+++ b/modules.d/35network-manager/nm-lib.sh
|
||||
@@ -14,6 +14,7 @@ nm_generate_connections()
|
||||
/etc/sysconfig/network-scripts/ifcfg-*; do
|
||||
[ -f "$i" ] || continue
|
||||
echo '[ -f /tmp/nm.done ]' >$hookdir/initqueue/finished/nm.sh
|
||||
+ : > /run/NetworkManager/initrd/neednet # activate nm-run.service
|
||||
break
|
||||
done
|
||||
fi
|
||||
diff --git a/modules.d/35network-manager/nm-run.service b/modules.d/35network-manager/nm-run.service
|
||||
index b667ce3..f041ade 100644
|
||||
--- a/modules.d/35network-manager/nm-run.service
|
||||
+++ b/modules.d/35network-manager/nm-run.service
|
||||
@@ -15,6 +15,9 @@ Before=network.target network-online.target
|
||||
#run before we try to mount anything from the dracut hooks
|
||||
Before=dracut-initqueue.service
|
||||
|
||||
+#do not run if networking not needed
|
||||
+ConditionPathExists=/run/NetworkManager/initrd/neednet
|
||||
+
|
||||
#do not run, if there is no configuration
|
||||
ConditionPathExistsGlob=|/usr/lib/NetworkManager/system-connections/*
|
||||
ConditionPathExistsGlob=|/run/NetworkManager/system-connections/*
|
||||
--
|
||||
2.30.2
|
||||
|
23
0001.patch
Normal file
23
0001.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From f634448b293ed232009b25c824f6dcd66961426f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
|
||||
Date: Fri, 14 May 2021 13:46:23 +0000
|
||||
Subject: [PATCH] fix(packit): downstream has renamed the master branch to main
|
||||
|
||||
---
|
||||
.packit.yml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.packit.yml b/.packit.yml
|
||||
index 8a995efe..482b4c4d 100644
|
||||
--- a/.packit.yml
|
||||
+++ b/.packit.yml
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
- job: propose_downstream
|
||||
trigger: release
|
||||
metadata:
|
||||
- dist_git_branches: master
|
||||
+ dist_git_branches: main
|
||||
|
||||
- job: tests
|
||||
trigger: pull_request
|
||||
|
@ -1,55 +0,0 @@
|
||||
From 6a37c6f6302f950df608db3fd45acf9342ee3de2 Mon Sep 17 00:00:00 2001
|
||||
From: Dusty Mabe <dusty@dustymabe.com>
|
||||
Date: Tue, 13 Apr 2021 11:45:35 -0400
|
||||
Subject: [PATCH 2/2] fix(network-manager): use
|
||||
/run/NetworkManager/initrd/neednet in initqueue
|
||||
|
||||
We don't want to start NetworkManager if networking is not needed.
|
||||
Right now nm-config.sh lays down /usr/lib/dracut/hooks/initqueue/finished/nm.sh
|
||||
which will cause the initqueue to run. If nothing exists in
|
||||
/usr/lib/dracut/hooks/initqueue/finished/ then it will short circuit and
|
||||
the initqueue won't run anything. But what if something else needed
|
||||
something to run in the initqueue? nm-run.sh would still get started,
|
||||
even though /usr/lib/dracut/hooks/initqueue/finished/nm.sh didn't exist.
|
||||
In this case let's just trigger off of /run/NetworkManager/initrd/neednet
|
||||
like we are doing in the systemd unit (nm-run.service).
|
||||
---
|
||||
modules.d/35network-manager/nm-run.sh | 22 +++++++++++++---------
|
||||
1 file changed, 13 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
|
||||
index d48028df..359bc9ee 100755
|
||||
--- a/modules.d/35network-manager/nm-run.sh
|
||||
+++ b/modules.d/35network-manager/nm-run.sh
|
||||
@@ -6,15 +6,19 @@ if [ -e /tmp/nm.done ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
-[ -z "$DRACUT_SYSTEMD" ] && \
|
||||
-for i in /usr/lib/NetworkManager/system-connections/* \
|
||||
- /run/NetworkManager/system-connections/* \
|
||||
- /etc/NetworkManager/system-connections/* \
|
||||
- /etc/sysconfig/network-scripts/ifcfg-*; do
|
||||
- [ -f "$i" ] || continue
|
||||
- /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
|
||||
- break
|
||||
-done
|
||||
+if [ -z "$DRACUT_SYSTEMD" ]; then
|
||||
+ # Only start NM if networking is needed
|
||||
+ if [ -e /run/NetworkManager/initrd/neednet ]; then
|
||||
+ for i in /usr/lib/NetworkManager/system-connections/* \
|
||||
+ /run/NetworkManager/system-connections/* \
|
||||
+ /etc/NetworkManager/system-connections/* \
|
||||
+ /etc/sysconfig/network-scripts/ifcfg-*; do
|
||||
+ [ -f "$i" ] || continue
|
||||
+ /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
|
||||
+ break
|
||||
+ done
|
||||
+ fi
|
||||
+fi
|
||||
|
||||
if [ -s /run/NetworkManager/initrd/hostname ]; then
|
||||
cat /run/NetworkManager/initrd/hostname > /proc/sys/kernel/hostname
|
||||
--
|
||||
2.30.2
|
||||
|
24
0002.patch
Normal file
24
0002.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From b9b6f0ee5b859a562e46a8c4e0dee0261fabf74d Mon Sep 17 00:00:00 2001
|
||||
From: Lars Wendler <polynomial-c@gentoo.org>
|
||||
Date: Fri, 14 May 2021 16:00:27 +0200
|
||||
Subject: [PATCH] fix(dracut-util): print error message with trailing newline
|
||||
|
||||
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
|
||||
---
|
||||
src/util/util.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/util/util.c b/src/util/util.c
|
||||
index 8ae06d6c..b3498df6 100644
|
||||
--- a/src/util/util.c
|
||||
+++ b/src/util/util.c
|
||||
@@ -123,7 +123,7 @@ static void usage(enum EXEC_MODE enumExecMode, int ret, char *msg)
|
||||
{
|
||||
switch (enumExecMode) {
|
||||
case UNDEFINED:
|
||||
- fprintf(stderr, "ERROR: 'dracut-util' has to be called via a symlink to the tool name.");
|
||||
+ fprintf(stderr, "ERROR: 'dracut-util' has to be called via a symlink to the tool name.\n");
|
||||
break;
|
||||
case GETARG:
|
||||
fprintf(stderr, "ERROR: %s\nUsage: dracut-getarg <KEY>[=[<VALUE>]]\n", msg);
|
||||
|
555
0003.patch
Normal file
555
0003.patch
Normal file
@ -0,0 +1,555 @@
|
||||
From c08bc8109d4c43beacfa4bcdc20a356102da6d02 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Mon, 17 May 2021 11:00:22 +0200
|
||||
Subject: [PATCH] fix(base): split out `dracut-dev-lib.sh`
|
||||
|
||||
To share the `wait_for_dev` function and use it without side effects on
|
||||
install time, split out the needed functions in an extra library.
|
||||
---
|
||||
modules.d/99base/dracut-dev-lib.sh | 119 +++++++++++++++++++++++++++++++++++++
|
||||
modules.d/99base/dracut-lib.sh | 115 +----------------------------------
|
||||
modules.d/99base/module-setup.sh | 9 ++-
|
||||
test/TEST-01-BASIC/test.sh | 1 +
|
||||
test/TEST-02-SYSTEMD/test.sh | 1 +
|
||||
test/TEST-03-USR-MOUNT/test.sh | 1 +
|
||||
test/TEST-04-FULL-SYSTEMD/test.sh | 1 +
|
||||
test/TEST-10-RAID/test.sh | 1 +
|
||||
test/TEST-11-LVM/test.sh | 1 +
|
||||
test/TEST-12-RAID-DEG/test.sh | 1 +
|
||||
test/TEST-13-ENC-RAID-LVM/test.sh | 1 +
|
||||
test/TEST-14-IMSM/test.sh | 1 +
|
||||
test/TEST-15-BTRFSRAID/test.sh | 1 +
|
||||
test/TEST-16-DMSQUASH/test.sh | 1 +
|
||||
test/TEST-17-LVM-THIN/test.sh | 1 +
|
||||
test/TEST-20-NFS/test.sh | 1 +
|
||||
test/TEST-30-ISCSI/test.sh | 1 +
|
||||
test/TEST-35-ISCSI-MULTI/test.sh | 1 +
|
||||
test/TEST-40-NBD/test.sh | 2 +
|
||||
test/TEST-50-MULTINIC/test.sh | 1 +
|
||||
test/TEST-98-GETARG/test.sh | 2 +
|
||||
21 files changed, 145 insertions(+), 118 deletions(-)
|
||||
|
||||
diff --git a/modules.d/99base/dracut-dev-lib.sh b/modules.d/99base/dracut-dev-lib.sh
|
||||
new file mode 100755
|
||||
index 00000000..5083f4f2
|
||||
--- /dev/null
|
||||
+++ b/modules.d/99base/dracut-dev-lib.sh
|
||||
@@ -0,0 +1,119 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+# get a systemd-compatible unit name from a path
|
||||
+# (mimicks unit_name_from_path_instance())
|
||||
+dev_unit_name() {
|
||||
+ local dev="$1"
|
||||
+
|
||||
+ if command -v systemd-escape > /dev/null; then
|
||||
+ systemd-escape -p -- "$dev"
|
||||
+ return $?
|
||||
+ fi
|
||||
+
|
||||
+ if [ "$dev" = "/" -o -z "$dev" ]; then
|
||||
+ printf -- "-"
|
||||
+ return 0
|
||||
+ fi
|
||||
+
|
||||
+ dev="${1%%/}"
|
||||
+ dev="${dev##/}"
|
||||
+ # shellcheck disable=SC1003
|
||||
+ dev="$(str_replace "$dev" '\' '\x5c')"
|
||||
+ dev="$(str_replace "$dev" '-' '\x2d')"
|
||||
+ if [ "${dev##.}" != "$dev" ]; then
|
||||
+ dev="\x2e${dev##.}"
|
||||
+ fi
|
||||
+ dev="$(str_replace "$dev" '/' '-')"
|
||||
+
|
||||
+ printf -- "%s" "$dev"
|
||||
+}
|
||||
+
|
||||
+# set_systemd_timeout_for_dev [-n] <dev> [<timeout>]
|
||||
+# Set 'rd.timeout' as the systemd timeout for <dev>
|
||||
+set_systemd_timeout_for_dev() {
|
||||
+ local _name
|
||||
+ local _needreload
|
||||
+ local _noreload
|
||||
+ local _timeout
|
||||
+
|
||||
+ [ -z "$DRACUT_SYSTEMD" ] && return 0
|
||||
+
|
||||
+ if [ "$1" = "-n" ]; then
|
||||
+ _noreload=1
|
||||
+ shift
|
||||
+ fi
|
||||
+
|
||||
+ if [ -n "$2" ]; then
|
||||
+ _timeout="$2"
|
||||
+ else
|
||||
+ _timeout=$(getarg rd.timeout)
|
||||
+ fi
|
||||
+
|
||||
+ _timeout=${_timeout:-0}
|
||||
+
|
||||
+ _name=$(dev_unit_name "$1")
|
||||
+ if ! [ -L "${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device" ]; then
|
||||
+ [ -d "${PREFIX}"/etc/systemd/system/initrd.target.wants ] || mkdir -p "${PREFIX}"/etc/systemd/system/initrd.target.wants
|
||||
+ ln -s ../"${_name}".device "${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device"
|
||||
+ type mark_hostonly > /dev/null 2>&1 && mark_hostonly /etc/systemd/system/initrd.target.wants/"${_name}".device
|
||||
+ _needreload=1
|
||||
+ fi
|
||||
+
|
||||
+ if ! [ -f "${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf" ]; then
|
||||
+ mkdir -p "${PREFIX}/etc/systemd/system/${_name}.device.d"
|
||||
+ {
|
||||
+ echo "[Unit]"
|
||||
+ echo "JobTimeoutSec=$_timeout"
|
||||
+ echo "JobRunningTimeoutSec=$_timeout"
|
||||
+ } > "${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf"
|
||||
+ type mark_hostonly > /dev/null 2>&1 && mark_hostonly /etc/systemd/system/"${_name}".device.d/timeout.conf
|
||||
+ _needreload=1
|
||||
+ fi
|
||||
+
|
||||
+ if [ -z "$PREFIX" ] && [ "$_needreload" = 1 ] && [ -z "$_noreload" ]; then
|
||||
+ /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+# wait_for_dev <dev> [<timeout>]
|
||||
+#
|
||||
+# Installs a initqueue-finished script,
|
||||
+# which will cause the main loop only to exit,
|
||||
+# if the device <dev> is recognized by the system.
|
||||
+wait_for_dev() {
|
||||
+ local _name
|
||||
+ local _noreload
|
||||
+
|
||||
+ if [ "$1" = "-n" ]; then
|
||||
+ _noreload=-n
|
||||
+ shift
|
||||
+ fi
|
||||
+
|
||||
+ _name="$(str_replace "$1" '/' '\x2f')"
|
||||
+
|
||||
+ type mark_hostonly > /dev/null 2>&1 && mark_hostonly "$hookdir/initqueue/finished/devexists-${_name}.sh"
|
||||
+
|
||||
+ [ -e "${PREFIX}$hookdir/initqueue/finished/devexists-${_name}.sh" ] && return 0
|
||||
+
|
||||
+ printf '[ -e "%s" ]\n' "$1" \
|
||||
+ >> "${PREFIX}$hookdir/initqueue/finished/devexists-${_name}.sh"
|
||||
+ {
|
||||
+ printf '[ -e "%s" ] || ' "$1"
|
||||
+ printf 'warn "\"%s\" does not exist"\n' "$1"
|
||||
+ } >> "${PREFIX}$hookdir/emergency/80-${_name}.sh"
|
||||
+
|
||||
+ set_systemd_timeout_for_dev $_noreload "$@"
|
||||
+}
|
||||
+
|
||||
+cancel_wait_for_dev() {
|
||||
+ local _name
|
||||
+ _name="$(str_replace "$1" '/' '\x2f')"
|
||||
+ rm -f -- "$hookdir/initqueue/finished/devexists-${_name}.sh"
|
||||
+ rm -f -- "$hookdir/emergency/80-${_name}.sh"
|
||||
+ if [ -n "$DRACUT_SYSTEMD" ]; then
|
||||
+ _name=$(dev_unit_name "$1")
|
||||
+ rm -f -- "${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device"
|
||||
+ rm -f -- "${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf"
|
||||
+ /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
|
||||
+ fi
|
||||
+}
|
||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||
index c35658fa..dc94e93f 100755
|
||||
--- a/modules.d/99base/dracut-lib.sh
|
||||
+++ b/modules.d/99base/dracut-lib.sh
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
+type wait_for_dev > /dev/null 2>&1 || . /lib/dracut-dev-lib.sh
|
||||
+
|
||||
export DRACUT_SYSTEMD
|
||||
export NEWROOT
|
||||
if [ -n "$NEWROOT" ]; then
|
||||
@@ -838,119 +840,6 @@ wait_for_mount() {
|
||||
} >> "$hookdir/emergency/90-${_name}.sh"
|
||||
}
|
||||
|
||||
-# get a systemd-compatible unit name from a path
|
||||
-# (mimicks unit_name_from_path_instance())
|
||||
-dev_unit_name() {
|
||||
- local dev="$1"
|
||||
-
|
||||
- if command -v systemd-escape > /dev/null; then
|
||||
- systemd-escape -p -- "$dev"
|
||||
- return
|
||||
- fi
|
||||
-
|
||||
- if [ "$dev" = "/" -o -z "$dev" ]; then
|
||||
- printf -- "-"
|
||||
- exit 0
|
||||
- fi
|
||||
-
|
||||
- dev="${1%%/}"
|
||||
- dev="${dev##/}"
|
||||
- # shellcheck disable=SC1003
|
||||
- dev="$(str_replace "$dev" '\' '\x5c')"
|
||||
- dev="$(str_replace "$dev" '-' '\x2d')"
|
||||
- if [ "${dev##.}" != "$dev" ]; then
|
||||
- dev="\x2e${dev##.}"
|
||||
- fi
|
||||
- dev="$(str_replace "$dev" '/' '-')"
|
||||
-
|
||||
- printf -- "%s" "$dev"
|
||||
-}
|
||||
-
|
||||
-# set_systemd_timeout_for_dev <dev>
|
||||
-# Set 'rd.timeout' as the systemd timeout for <dev>
|
||||
-
|
||||
-set_systemd_timeout_for_dev() {
|
||||
- local _name
|
||||
- local _needreload
|
||||
- local _noreload
|
||||
- local _timeout
|
||||
-
|
||||
- if [ "$1" = "-n" ]; then
|
||||
- _noreload=1
|
||||
- shift
|
||||
- fi
|
||||
-
|
||||
- _timeout=$(getarg rd.timeout)
|
||||
- _timeout=${_timeout:-0}
|
||||
-
|
||||
- if [ -n "$DRACUT_SYSTEMD" ]; then
|
||||
- _name=$(dev_unit_name "$1")
|
||||
- if ! [ -L "${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device" ]; then
|
||||
- [ -d "${PREFIX}"/etc/systemd/system/initrd.target.wants ] || mkdir -p "${PREFIX}"/etc/systemd/system/initrd.target.wants
|
||||
- ln -s ../"${_name}".device "${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device"
|
||||
- type mark_hostonly > /dev/null 2>&1 && mark_hostonly /etc/systemd/system/initrd.target.wants/"${_name}".device
|
||||
- _needreload=1
|
||||
- fi
|
||||
-
|
||||
- if ! [ -f "${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf" ]; then
|
||||
- mkdir -p "${PREFIX}/etc/systemd/system/${_name}.device.d"
|
||||
- {
|
||||
- echo "[Unit]"
|
||||
- echo "JobTimeoutSec=$_timeout"
|
||||
- echo "JobRunningTimeoutSec=$_timeout"
|
||||
- } > "${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf"
|
||||
- type mark_hostonly > /dev/null 2>&1 && mark_hostonly /etc/systemd/system/"${_name}".device.d/timeout.conf
|
||||
- _needreload=1
|
||||
- fi
|
||||
-
|
||||
- if [ -z "$PREFIX" ] && [ "$_needreload" = 1 ] && [ -z "$_noreload" ]; then
|
||||
- /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
|
||||
- fi
|
||||
- fi
|
||||
-}
|
||||
-# wait_for_dev <dev>
|
||||
-#
|
||||
-# Installs a initqueue-finished script,
|
||||
-# which will cause the main loop only to exit,
|
||||
-# if the device <dev> is recognized by the system.
|
||||
-wait_for_dev() {
|
||||
- local _name
|
||||
- local _noreload
|
||||
-
|
||||
- if [ "$1" = "-n" ]; then
|
||||
- _noreload=-n
|
||||
- shift
|
||||
- fi
|
||||
-
|
||||
- _name="$(str_replace "$1" '/' '\x2f')"
|
||||
-
|
||||
- type mark_hostonly > /dev/null 2>&1 && mark_hostonly "$hookdir/initqueue/finished/devexists-${_name}.sh"
|
||||
-
|
||||
- [ -e "${PREFIX}$hookdir/initqueue/finished/devexists-${_name}.sh" ] && return 0
|
||||
-
|
||||
- printf '[ -e "%s" ]\n' "$1" \
|
||||
- >> "${PREFIX}$hookdir/initqueue/finished/devexists-${_name}.sh"
|
||||
- {
|
||||
- printf '[ -e "%s" ] || ' "$1"
|
||||
- printf 'warn "\"%s\" does not exist"\n' "$1"
|
||||
- } >> "${PREFIX}$hookdir/emergency/80-${_name}.sh"
|
||||
-
|
||||
- set_systemd_timeout_for_dev $_noreload "$1"
|
||||
-}
|
||||
-
|
||||
-cancel_wait_for_dev() {
|
||||
- local _name
|
||||
- _name="$(str_replace "$1" '/' '\x2f')"
|
||||
- rm -f -- "$hookdir/initqueue/finished/devexists-${_name}.sh"
|
||||
- rm -f -- "$hookdir/emergency/80-${_name}.sh"
|
||||
- if [ -n "$DRACUT_SYSTEMD" ]; then
|
||||
- _name=$(dev_unit_name "$1")
|
||||
- rm -f -- "${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device"
|
||||
- rm -f -- "${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf"
|
||||
- /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
|
||||
- fi
|
||||
-}
|
||||
-
|
||||
killproc() {
|
||||
debug_off
|
||||
local _exe
|
||||
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
|
||||
index a52c643e..7eb0a277 100755
|
||||
--- a/modules.d/99base/module-setup.sh
|
||||
+++ b/modules.d/99base/module-setup.sh
|
||||
@@ -50,6 +50,7 @@ install() {
|
||||
mkdir -p "${initdir}"/tmp
|
||||
|
||||
inst_simple "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "$moddir/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
mkdir -p "${initdir}"/var
|
||||
|
||||
if ! dracut_module_included "systemd"; then
|
||||
@@ -117,10 +118,8 @@ install() {
|
||||
fi
|
||||
export PREFIX="$initdir"
|
||||
|
||||
- # suppress getarg for `rd.memdebug`
|
||||
- export DEBUG_MEM_LEVEL=0
|
||||
- # shellcheck source=dracut-lib.sh
|
||||
- . "$moddir/dracut-lib.sh"
|
||||
+ # shellcheck source=dracut-dev-lib.sh
|
||||
+ . "$moddir/dracut-dev-lib.sh"
|
||||
|
||||
for _dev in "${host_devs[@]}"; do
|
||||
for _dev2 in "${root_devs[@]}"; do
|
||||
@@ -137,7 +136,7 @@ install() {
|
||||
_pdev=$(get_persistent_dev "$_dev")
|
||||
|
||||
case "$_pdev" in
|
||||
- /dev/?*) wait_for_dev "$_pdev" ;;
|
||||
+ /dev/?*) wait_for_dev "$_pdev" 0 ;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh
|
||||
index 7ac2a8b9..012f2e5a 100755
|
||||
--- a/test/TEST-01-BASIC/test.sh
|
||||
+++ b/test/TEST-01-BASIC/test.sh
|
||||
@@ -49,6 +49,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh
|
||||
index a8185b09..8b6b5930 100755
|
||||
--- a/test/TEST-02-SYSTEMD/test.sh
|
||||
+++ b/test/TEST-02-SYSTEMD/test.sh
|
||||
@@ -48,6 +48,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh
|
||||
index 13361173..3bb7fab7 100755
|
||||
--- a/test/TEST-03-USR-MOUNT/test.sh
|
||||
+++ b/test/TEST-03-USR-MOUNT/test.sh
|
||||
@@ -69,6 +69,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh
|
||||
index 9b8fab24..38cb1464 100755
|
||||
--- a/test/TEST-04-FULL-SYSTEMD/test.sh
|
||||
+++ b/test/TEST-04-FULL-SYSTEMD/test.sh
|
||||
@@ -93,6 +93,7 @@ test_setup() {
|
||||
inst_multiple -o {,/usr}/lib/systemd/system/"dracut*"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh
|
||||
index f03d2952..918d2a71 100755
|
||||
--- a/test/TEST-10-RAID/test.sh
|
||||
+++ b/test/TEST-10-RAID/test.sh
|
||||
@@ -46,6 +46,7 @@ test_setup() {
|
||||
inst_multiple -o ${_terminfodir}/l/linux
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh
|
||||
index e44b21ff..12384c09 100755
|
||||
--- a/test/TEST-11-LVM/test.sh
|
||||
+++ b/test/TEST-11-LVM/test.sh
|
||||
@@ -50,6 +50,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
|
||||
index 8d56f658..beb81381 100755
|
||||
--- a/test/TEST-12-RAID-DEG/test.sh
|
||||
+++ b/test/TEST-12-RAID-DEG/test.sh
|
||||
@@ -80,6 +80,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
index 2d76c982..968eafe7 100755
|
||||
--- a/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
+++ b/test/TEST-13-ENC-RAID-LVM/test.sh
|
||||
@@ -78,6 +78,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh
|
||||
index ab4f8119..78b087f5 100755
|
||||
--- a/test/TEST-14-IMSM/test.sh
|
||||
+++ b/test/TEST-14-IMSM/test.sh
|
||||
@@ -75,6 +75,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
|
||||
index 75e97703..47edac81 100755
|
||||
--- a/test/TEST-15-BTRFSRAID/test.sh
|
||||
+++ b/test/TEST-15-BTRFSRAID/test.sh
|
||||
@@ -53,6 +53,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-16-DMSQUASH/test.sh b/test/TEST-16-DMSQUASH/test.sh
|
||||
index 73c4c7f1..2a68f305 100755
|
||||
--- a/test/TEST-16-DMSQUASH/test.sh
|
||||
+++ b/test/TEST-16-DMSQUASH/test.sh
|
||||
@@ -88,6 +88,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh
|
||||
index 6f6886ec..7dbcca51 100755
|
||||
--- a/test/TEST-17-LVM-THIN/test.sh
|
||||
+++ b/test/TEST-17-LVM-THIN/test.sh
|
||||
@@ -48,6 +48,7 @@ test_setup() {
|
||||
inst "$basedir/modules.d/35network-legacy/ifup.sh" "/sbin/ifup"
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh
|
||||
index dc9fa0b0..0be60a80 100755
|
||||
--- a/test/TEST-20-NFS/test.sh
|
||||
+++ b/test/TEST-20-NFS/test.sh
|
||||
@@ -320,6 +320,7 @@ test_setup() {
|
||||
done
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
|
||||
index e1d10265..5f0063f8 100755
|
||||
--- a/test/TEST-30-ISCSI/test.sh
|
||||
+++ b/test/TEST-30-ISCSI/test.sh
|
||||
@@ -162,6 +162,7 @@ test_setup() {
|
||||
inst_simple /etc/os-release
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-35-ISCSI-MULTI/test.sh b/test/TEST-35-ISCSI-MULTI/test.sh
|
||||
index 09b939ab..628131e0 100755
|
||||
--- a/test/TEST-35-ISCSI-MULTI/test.sh
|
||||
+++ b/test/TEST-35-ISCSI-MULTI/test.sh
|
||||
@@ -174,6 +174,7 @@ test_setup() {
|
||||
inst_simple /etc/os-release
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
|
||||
index df1bcb2f..178dff40 100755
|
||||
--- a/test/TEST-40-NBD/test.sh
|
||||
+++ b/test/TEST-40-NBD/test.sh
|
||||
@@ -219,6 +219,7 @@ make_encrypted_root() {
|
||||
inst_multiple -o ${_terminfodir}/l/linux
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
@@ -299,6 +300,7 @@ make_client_root() {
|
||||
inst_multiple -o ${_terminfodir}/l/linux
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
|
||||
index e96cef7c..81b1f685 100755
|
||||
--- a/test/TEST-50-MULTINIC/test.sh
|
||||
+++ b/test/TEST-50-MULTINIC/test.sh
|
||||
@@ -270,6 +270,7 @@ test_setup() {
|
||||
done
|
||||
|
||||
inst_simple "${basedir}/modules.d/99base/dracut-lib.sh" "/lib/dracut-lib.sh"
|
||||
+ inst_simple "${basedir}/modules.d/99base/dracut-dev-lib.sh" "/lib/dracut-dev-lib.sh"
|
||||
inst_binary "${basedir}/dracut-util" "/usr/bin/dracut-util"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getarg"
|
||||
ln -s dracut-util "${initdir}/usr/bin/dracut-getargs"
|
||||
diff --git a/test/TEST-98-GETARG/test.sh b/test/TEST-98-GETARG/test.sh
|
||||
index 9a00470b..012396ba 100755
|
||||
--- a/test/TEST-98-GETARG/test.sh
|
||||
+++ b/test/TEST-98-GETARG/test.sh
|
||||
@@ -15,6 +15,7 @@ test_setup() {
|
||||
ln -sfnr "$basedir"/dracut-util "$TESTDIR"/dracut-getarg
|
||||
ln -sfnr "$basedir"/dracut-util "$TESTDIR"/dracut-getargs
|
||||
ln -sfnr "$basedir"/modules.d/99base/dracut-lib.sh "$TESTDIR"/dracut-lib.sh
|
||||
+ ln -sfnr "$basedir"/modules.d/99base/dracut-dev-lib.sh "$TESTDIR"/dracut-dev-lib.sh
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -85,6 +86,7 @@ test_run() {
|
||||
|
||||
export PATH=".:$PATH"
|
||||
|
||||
+ . dracut-dev-lib.sh
|
||||
. dracut-lib.sh
|
||||
|
||||
debug_off() {
|
||||
|
38
0004.patch
Normal file
38
0004.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 7275c6f6a0f6808cd939ea5bdf1244c7bd13ba44 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Mon, 17 May 2021 14:22:10 +0200
|
||||
Subject: [PATCH] feat(dracut.sh): detect running in a container
|
||||
|
||||
Don't try to `mknod` by setting DRACUT_NO_MKNOD.
|
||||
Don't try to `cp` extended attributrs by setting DRACUT_NO_XATTR.
|
||||
---
|
||||
dracut.sh | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index bfb7a1ac..24e1c2e7 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -1171,6 +1171,13 @@ if [[ -f $dracutbasedir/dracut-version.sh ]]; then
|
||||
. "$dracutbasedir"/dracut-version.sh
|
||||
fi
|
||||
|
||||
+if systemd-detect-virt -c &> /dev/null; then
|
||||
+ export DRACUT_NO_MKNOD=1 DRACUT_NO_XATTR=1
|
||||
+ if [[ $hostonly ]]; then
|
||||
+ printf "%s\n" "dracut: WARNING: running in hostonly mode in a container!!"
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if [[ -f $dracutbasedir/dracut-init.sh ]]; then
|
||||
# shellcheck source=./dracut-init.sh
|
||||
. "$dracutbasedir"/dracut-init.sh
|
||||
@@ -1888,7 +1895,7 @@ if [[ $kernel_only != yes ]]; then
|
||||
# shellcheck disable=SC2174
|
||||
mkdir -m 0755 -p "${initdir}/lib/dracut/hooks/$_d"
|
||||
done
|
||||
- if [[ $EUID == "0" ]]; then
|
||||
+ if [[ $EUID == "0" ]] && ! [[ $DRACUT_NO_MKNOD ]]; then
|
||||
[[ -c ${initdir}/dev/null ]] || mknod "${initdir}"/dev/null c 1 3
|
||||
[[ -c ${initdir}/dev/kmsg ]] || mknod "${initdir}"/dev/kmsg c 1 11
|
||||
[[ -c ${initdir}/dev/console ]] || mknod "${initdir}"/dev/console c 5 1
|
68
dracut.spec
68
dracut.spec
@ -5,10 +5,10 @@
|
||||
# strip the automatically generated dep here and instead co-own the
|
||||
# directory.
|
||||
%global __requires_exclude pkg-config
|
||||
%define dist_free_release 5
|
||||
%define dist_free_release 5.git20210517
|
||||
|
||||
Name: dracut
|
||||
Version: 053
|
||||
Version: 054
|
||||
Release: %{dist_free_release}%{?dist}
|
||||
|
||||
Summary: Initramfs generator using udev
|
||||
@ -21,38 +21,21 @@ Group: System/Base
|
||||
|
||||
# The entire source code is GPLv2+
|
||||
# except install/* which is LGPLv2+
|
||||
License: GPLv2+ and LGPLv2+
|
||||
# except util/* which is GPLv2
|
||||
License: GPLv2+ and LGPLv2+ and GPLv2
|
||||
|
||||
URL: https://dracut.wiki.kernel.org/
|
||||
|
||||
# Source can be generated by
|
||||
# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%%{version};sf=tgz
|
||||
Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
|
||||
Patch1: 0001.patch
|
||||
Patch2: 0002.patch
|
||||
Patch3: 0003.patch
|
||||
Patch4: 0004.patch
|
||||
|
||||
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
|
||||
|
||||
# https://github.com/dracutdevs/dracut/commit/ba4bcf5f4f11ad624c647ddf4f566997186135e7
|
||||
# Fixes boot failure with some encrypted LVM configurations, see:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1946074
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1945596
|
||||
Patch0: 0001-fix-network-manager-no-default-deps-for-nm-run.servi.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1936781#c6
|
||||
# Should fix loss of critical system files with kdump enabled
|
||||
Patch1: 0001-Partially-revert-41cfdfc-to-fix-RHBZ-1936781-per-ryn.patch
|
||||
# Fix logger error when building initramfs
|
||||
# https://github.com/dracutdevs/dracut/pull/1351
|
||||
Patch2: 0001-fix-dracut-logger.sh-double-dash-trigger-unknown-log.patch
|
||||
# Fix issue where teaming would get brought down by systemd
|
||||
# https://github.com/dracutdevs/dracut/pull/1349
|
||||
Patch3: 0001-fix-network-manager-nm-run.service-don-t-kill-forked.patch
|
||||
# Fix issue where NM was getting brought up unconditionally
|
||||
# https://github.com/dracutdevs/dracut/pull/1347
|
||||
Patch4: 0001-fix-network-manager-only-run-NetworkManager-if-rd.ne.patch
|
||||
Patch5: 0002-fix-network-manager-use-run-NetworkManager-initrd-ne.patch
|
||||
# add watchdog drivers for generic initrd
|
||||
# https://github.com/dracutdevs/dracut/pull/1377
|
||||
Patch6: 0001-fix-90kernel-modules-add-watchdog-drivers-for-generi.patch
|
||||
|
||||
BuildRequires: bash
|
||||
BuildRequires: git-core
|
||||
BuildRequires: pkgconfig(libkmod) >= 23
|
||||
@ -78,11 +61,6 @@ BuildRequires: docbook-xsl-stylesheets libxslt
|
||||
BuildRequires: asciidoc
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} > 9999
|
||||
Obsoletes: mkinitrd < 2.6.1
|
||||
Provides: mkinitrd = 2.6.1
|
||||
%endif
|
||||
|
||||
Obsoletes: dracut-fips <= 047
|
||||
Provides: dracut-fips = %{version}-%{release}
|
||||
Obsoletes: dracut-fips-aesni <= 047
|
||||
@ -287,9 +265,7 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse*
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} <= 9999
|
||||
rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
|
||||
rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd
|
||||
rm -f -- $RPM_BUILD_ROOT%{_mandir}/man8/mkinitrd.8*
|
||||
rm -f -- $RPM_BUILD_ROOT%{_mandir}/man1/lsinitrd.1*
|
||||
%endif
|
||||
|
||||
@ -298,7 +274,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
|
||||
%files
|
||||
%if %{with doc}
|
||||
%doc README.md HACKING.md AUTHORS NEWS.md dracut.html dracut.png dracut.svg
|
||||
%doc README.md docs/HACKING.md AUTHORS NEWS.md dracut.html docs/dracut.png docs/dracut.svg
|
||||
%endif
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license COPYING lgpl-2.1.txt
|
||||
@ -306,7 +282,6 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{_datadir}/bash-completion/completions/dracut
|
||||
%{_datadir}/bash-completion/completions/lsinitrd
|
||||
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999
|
||||
%{_bindir}/mkinitrd
|
||||
%{_bindir}/lsinitrd
|
||||
%endif
|
||||
%dir %{dracutlibdir}
|
||||
@ -318,6 +293,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{dracutlibdir}/dracut-logger.sh
|
||||
%{dracutlibdir}/dracut-initramfs-restore
|
||||
%{dracutlibdir}/dracut-install
|
||||
%{dracutlibdir}/dracut-util
|
||||
%{dracutlibdir}/skipcpio
|
||||
%config(noreplace) %{_sysconfdir}/dracut.conf
|
||||
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel}
|
||||
@ -332,12 +308,8 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{_mandir}/man8/dracut.8*
|
||||
%{_mandir}/man8/*service.8*
|
||||
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999
|
||||
%{_mandir}/man8/mkinitrd.8*
|
||||
%{_mandir}/man1/lsinitrd.1*
|
||||
%endif
|
||||
%if 0%{?suse_version}
|
||||
%{_mandir}/man8/mkinitrd-suse.8*
|
||||
%endif
|
||||
%{_mandir}/man7/dracut.kernel.7*
|
||||
%{_mandir}/man7/dracut.cmdline.7*
|
||||
%{_mandir}/man7/dracut.modules.7*
|
||||
@ -349,19 +321,32 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%endif
|
||||
%{dracutlibdir}/modules.d/00bash
|
||||
%{dracutlibdir}/modules.d/00systemd
|
||||
%{dracutlibdir}/modules.d/00systemd-network-management
|
||||
%ifnarch s390 s390x
|
||||
%{dracutlibdir}/modules.d/00warpclock
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
|
||||
%{dracutlibdir}/modules.d/01fips
|
||||
%endif
|
||||
%{dracutlibdir}/modules.d/01systemd-ac-power
|
||||
%{dracutlibdir}/modules.d/01systemd-ask-password
|
||||
%{dracutlibdir}/modules.d/01systemd-coredump
|
||||
%{dracutlibdir}/modules.d/01systemd-hostnamed
|
||||
%{dracutlibdir}/modules.d/01systemd-initrd
|
||||
%{dracutlibdir}/modules.d/01systemd-journald
|
||||
%{dracutlibdir}/modules.d/01systemd-ldconfig
|
||||
%{dracutlibdir}/modules.d/01systemd-modules-load
|
||||
%{dracutlibdir}/modules.d/01systemd-repart
|
||||
%{dracutlibdir}/modules.d/01systemd-resolved
|
||||
%{dracutlibdir}/modules.d/01systemd-rfkill
|
||||
%{dracutlibdir}/modules.d/01systemd-sysext
|
||||
%{dracutlibdir}/modules.d/01systemd-sysctl
|
||||
%{dracutlibdir}/modules.d/01systemd-sysusers
|
||||
%{dracutlibdir}/modules.d/01systemd-timedated
|
||||
%{dracutlibdir}/modules.d/01systemd-timesyncd
|
||||
%{dracutlibdir}/modules.d/01systemd-tmpfiles
|
||||
%{dracutlibdir}/modules.d/01systemd-udevd
|
||||
%{dracutlibdir}/modules.d/01systemd-veritysetup
|
||||
%{dracutlibdir}/modules.d/03modsign
|
||||
%{dracutlibdir}/modules.d/03rescue
|
||||
%{dracutlibdir}/modules.d/04watchdog
|
||||
@ -376,6 +361,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{dracutlibdir}/modules.d/45url-lib
|
||||
%{dracutlibdir}/modules.d/50drm
|
||||
%{dracutlibdir}/modules.d/50plymouth
|
||||
%{dracutlibdir}/modules.d/62bluetooth
|
||||
%{dracutlibdir}/modules.d/80lvmmerge
|
||||
%{dracutlibdir}/modules.d/90btrfs
|
||||
%{dracutlibdir}/modules.d/90crypt
|
||||
@ -391,6 +377,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{dracutlibdir}/modules.d/90qemu
|
||||
%{dracutlibdir}/modules.d/91crypt-gpg
|
||||
%{dracutlibdir}/modules.d/91crypt-loop
|
||||
%{dracutlibdir}/modules.d/91tpm2-tss
|
||||
%{dracutlibdir}/modules.d/95debug
|
||||
%{dracutlibdir}/modules.d/95fstab-sys
|
||||
%{dracutlibdir}/modules.d/95lunmask
|
||||
@ -451,7 +438,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{_prefix}/lib/kernel/install.d/50-dracut.install
|
||||
|
||||
%files network
|
||||
%{dracutlibdir}/modules.d/02systemd-networkd
|
||||
%{dracutlibdir}/modules.d/01systemd-networkd
|
||||
%{dracutlibdir}/modules.d/35network-manager
|
||||
%{dracutlibdir}/modules.d/35network-legacy
|
||||
%{dracutlibdir}/modules.d/35network-wicked
|
||||
@ -501,6 +488,9 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
|
||||
|
||||
%changelog
|
||||
* Mon May 17 2021 Harald Hoyer <harald@redhat.com> - 054-4.git20210517
|
||||
- version 054
|
||||
|
||||
* Thu Apr 22 2021 Peter Robinson <pbrobinson@fedoraproject.org> - 053-5
|
||||
- Backport: fix(90kernel-modules): add watchdog drivers for generic initrd (rhbz 1592148)
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (dracut-053.tar.xz) = 4736f84442bda208a38d3285ffeb8b845f06e52e3bf60d2aaea121240cf695e1369208c2d2cee1137a6c1d3f8f7794385675006beaf5cd86ade259d5f42d039a
|
||||
SHA512 (dracut-054.tar.xz) = 7cff87b9cc6c7323044610c4ddda9685a8eba4ebd320fa39071707d6c324ed69da722ecb0257be9bbf2bb8bc11fed6a3dc7c34c5d8229e00b6f261835a33503b
|
||||
|
Loading…
Reference in New Issue
Block a user