!10 quality enhancement synchronization github patch
Merge pull request !10 from Hugel/lts
This commit is contained in:
commit
222d93f352
27
Fix-test-in-lsinitrd.patch
Normal file
27
Fix-test-in-lsinitrd.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 32dfd41688a0a2aee59a62dd661c808a935d91a4 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fvogt@suse.de>
|
||||
Date: Mon, 4 May 2020 10:09:07 +0200
|
||||
Subject: [PATCH] Fix test in lsinitrd
|
||||
|
||||
If $uefi is empty, this evaluated to true previously,
|
||||
resulting in "initrd in UEFI: : 13M".
|
||||
---
|
||||
lsinitrd.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lsinitrd.sh b/lsinitrd.sh
|
||||
index b5c73f6..ea0c7f6 100755
|
||||
--- a/lsinitrd.sh
|
||||
+++ b/lsinitrd.sh
|
||||
@@ -206,7 +206,7 @@ if [ "$bin" = "MZ" ]; then
|
||||
fi
|
||||
|
||||
if (( ${#filenames[@]} <= 0 )) && [[ -z "$unpack" ]] && [[ -z "$unpackearly" ]]; then
|
||||
- if [ -n $uefi ]; then
|
||||
+ if [ -n "$uefi" ]; then
|
||||
echo -n "initrd in UEFI: $uefi: "
|
||||
du -h $image | while read a b || [ -n "$a" ]; do echo $a;done
|
||||
if [ -f "$TMPDIR/osrel.txt" ]; then
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
From cb9e6881dde7ec34e11f6f38727602d6d841a04f Mon Sep 17 00:00:00 2001
|
||||
From: Derek Hageman <hageman@inthat.cloud>
|
||||
Date: Thu, 30 Apr 2020 18:40:13 -0600
|
||||
Subject: [PATCH] 90crypt/module-setup.sh: fix force on multiple lines
|
||||
|
||||
The first line in crypttab with a "force" option causes all subsequent
|
||||
lines to be included as if they also had it set because the variable
|
||||
used to track it is not reset between loop iterations. So fix that by
|
||||
just setting it to empty before the check for the force option.
|
||||
---
|
||||
modules.d/90crypt/module-setup.sh | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
|
||||
index 3bce241..e3d6338 100755
|
||||
--- a/modules.d/90crypt/module-setup.sh
|
||||
+++ b/modules.d/90crypt/module-setup.sh
|
||||
@@ -113,6 +113,7 @@ install() {
|
||||
set -- ${luksoptions}
|
||||
IFS="${OLD_IFS}"
|
||||
|
||||
+ forceentry=""
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
force)
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
From 7a04712ad0efa9afa3759656ea1b26db40a8a29e Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Molkentin <dmolkentin@suse.com>
|
||||
Date: Mon, 21 Jan 2019 14:40:06 +0100
|
||||
Subject: [PATCH] 95zfcp_rules/parse-zfcp.sh: remove rule existence check
|
||||
|
||||
Reference: bsc#1008352
|
||||
|
||||
Original-Patch-By: Michal Suchanek <msuchanek@suse.com>
|
||||
---
|
||||
modules.d/95zfcp_rules/parse-zfcp.sh | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh
|
||||
index 7defb04..2b62012 100755
|
||||
--- a/modules.d/95zfcp_rules/parse-zfcp.sh
|
||||
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
|
||||
@@ -22,8 +22,6 @@ create_udev_rule() {
|
||||
return 0;
|
||||
fi
|
||||
|
||||
- [ -e ${_rule} ] && return 0
|
||||
-
|
||||
if [ ! -f "$_rule" ] ; then
|
||||
cat > $_rule <<EOF
|
||||
ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
35
dracut-dasd-only-install-etc-dasd.conf-if-present.patch
Normal file
35
dracut-dasd-only-install-etc-dasd.conf-if-present.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From defb1611c771d9f05780aebb101baefde2f66874 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Mitterle <smitterl@redhat.com>
|
||||
Date: Thu, 19 Mar 2020 12:12:50 +0100
|
||||
Subject: [PATCH] dasd: only install /etc/dasd.conf if present
|
||||
|
||||
`dasd.conf` needn't be present on system even if modules have been loaded.
|
||||
|
||||
Check if file exists to avoid error message during kernel update
|
||||
```bash
|
||||
dracut-install: ERROR: installing '/etc/dasd.conf'
|
||||
dracut: FAILED: /usr/lib/dracut/dracut-install -D /var/tmp/dracut.YvVRx5/initramfs -H /etc/dasd.conf
|
||||
```
|
||||
---
|
||||
modules.d/95dasd/module-setup.sh | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
|
||||
index 2c49cd2..c71c8a0 100755
|
||||
--- a/modules.d/95dasd/module-setup.sh
|
||||
+++ b/modules.d/95dasd/module-setup.sh
|
||||
@@ -18,8 +18,9 @@ depends() {
|
||||
install() {
|
||||
inst_hook cmdline 30 "$moddir/parse-dasd.sh"
|
||||
inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg
|
||||
- if [[ $hostonly ]]; then
|
||||
- inst -H /etc/dasd.conf
|
||||
+ conf=/etc/dasd.conf
|
||||
+ if [[ $hostonly && -f $conf ]] ; then
|
||||
+ inst -H $conf
|
||||
fi
|
||||
inst_rules 56-dasd.rules
|
||||
inst_rules 59-dasd.rules
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -0,0 +1,75 @@
|
||||
From 0386e4627779cb51f4292b3c642d90586d5e71b4 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Wed, 29 Jan 2020 23:53:29 +0100
|
||||
Subject: [PATCH] dracut.sh: don't call fsfreeze on subvol of root file system
|
||||
|
||||
dracut.sh already doesn't call fsfreeze if the output file is on
|
||||
the root file system. For btrfs, however, this is not sufficient.
|
||||
Because fsfreeze is a superblock operation, and all btrfs subvolumes
|
||||
share the same superblock, fsfreeze may freeze the entire system
|
||||
if the subvolume on which the output file is written and / are
|
||||
subvolumes of the same file system. Avoid this by comparing file
|
||||
system UUIDs for btrfs.
|
||||
|
||||
Fixes: de576db3c225 ("call fsfreeze(8) on /boot to flush initramfs data & metadata to media")
|
||||
---
|
||||
dracut.sh | 36 +++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 35 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index af346f3..c14f6c0 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -2075,6 +2075,40 @@ fi
|
||||
|
||||
command -v restorecon &>/dev/null && restorecon -- "$outfile"
|
||||
|
||||
+btrfs_uuid() {
|
||||
+ btrfs filesystem show "$1" | sed -n '1s/^.*uuid: //p'
|
||||
+}
|
||||
+
|
||||
+freeze_ok_for_btrfs() {
|
||||
+ local mnt uuid1 uuid2
|
||||
+ # If the output file is on btrfs, we need to make sure that it's
|
||||
+ # not on a subvolume of the same file system as the root FS.
|
||||
+ # Otherwise, fsfreeze() might freeze the entire system.
|
||||
+ # This is most conveniently checked by comparing the FS uuid.
|
||||
+
|
||||
+ [[ "$(stat -f -c %T -- "/")" == "btrfs" ]] || return 0
|
||||
+ mnt=$(stat -c %m -- "$1")
|
||||
+ uuid1=$(btrfs_uuid "$mnt")
|
||||
+ uuid2=$(btrfs_uuid "/")
|
||||
+ [[ "$uuid1" && "$uuid2" && "$uuid1" != "$uuid2" ]]
|
||||
+}
|
||||
+
|
||||
+freeze_ok_for_fstype() {
|
||||
+ local outfile=$1
|
||||
+ local fstype
|
||||
+
|
||||
+ [[ "$(stat -c %m -- "$outfile")" == "/" ]] && return 1
|
||||
+ fstype=$(stat -f -c %T -- "$outfile")
|
||||
+ case $fstype in
|
||||
+ msdos)
|
||||
+ return 1;;
|
||||
+ btrfs)
|
||||
+ freeze_ok_for_btrfs "$outfile";;
|
||||
+ *)
|
||||
+ return 0;;
|
||||
+ esac
|
||||
+}
|
||||
+
|
||||
# We sync/fsfreeze only if we're operating on a live booted system.
|
||||
# It's possible for e.g. `kernel` to be installed as an RPM BuildRequires or equivalent,
|
||||
# and there's no reason to sync, and *definitely* no reason to fsfreeze.
|
||||
@@ -2087,7 +2121,7 @@ if test -d $dracutsysrootdir/run/systemd/system; then
|
||||
fi
|
||||
|
||||
# use fsfreeze only if we're not writing to /
|
||||
- if [[ "$(stat -c %m -- "$outfile")" != "/" && "$(stat -f -c %T -- "$outfile")" != "msdos" ]]; then
|
||||
+ if [[ "$(stat -c %m -- "$outfile")" != "/" ]] && freeze_ok_for_fstype "$outfile"; then
|
||||
if ! $(fsfreeze -f $(dirname "$outfile") 2>/dev/null && fsfreeze -u $(dirname "$outfile") 2>/dev/null); then
|
||||
dinfo "dracut: warning: could not fsfreeze $(dirname "$outfile")"
|
||||
fi
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
111
dracut-lib.sh-quote-variables-in-parameter-expansion.patch
Normal file
111
dracut-lib.sh-quote-variables-in-parameter-expansion.patch
Normal file
@ -0,0 +1,111 @@
|
||||
From 8e1a4dc5f8a777fc718db490414ffdc9dc755f66 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Witschel <diabonas@archlinux.org>
|
||||
Date: Sat, 18 Apr 2020 14:55:41 +0200
|
||||
Subject: [PATCH] dracut-lib.sh: quote variables in parameter expansion
|
||||
patterns
|
||||
|
||||
According to POSIX.1-2017, 2.6.2 Parameter Expansion:
|
||||
|
||||
${parameter%[word]} [...] The word shall be expanded to produce a
|
||||
pattern.
|
||||
|
||||
This means if word contains variables that itself contain special
|
||||
characters like asterisks or backslashes, these are treated as pattern
|
||||
characters unless the variable is quoted. Try e.g. the following example
|
||||
in bash, dash or (busybox) ash:
|
||||
|
||||
i='a\c'; j='\'; echo "${i%$j*}"
|
||||
|
||||
This prints "a\c" because "$j*" is expanded to "\*", escaping the
|
||||
asterisk. In contrast,
|
||||
|
||||
i='a\c'; j='\'; echo "${i%"$j"*}"
|
||||
|
||||
produces the expected result "a" because the backslash is not specially
|
||||
treated any more after quoting.
|
||||
|
||||
The quotes that this commit adds have been previously removed in commit
|
||||
f9c96cf56fed390841eac05c43826e62014c9188, citing issues with busybox
|
||||
hush without further specifying the actual error. I tested a recent
|
||||
busybox build (upstream commit 9aa751b08ab03d6396f86c3df77937a19687981b)
|
||||
and couldn't find any problems. Note that the above example always
|
||||
produces "a\c" in hush regardless of quoting $j, making hush unsuitable
|
||||
for use with dracut, but using quotes in parameter expansions generally
|
||||
works.
|
||||
|
||||
The unquoted variables break the "rd.luks.uuid/name" kernel command line
|
||||
options in dracut 050 because
|
||||
|
||||
str_replace "$luksname" '\' '\\'
|
||||
|
||||
in modules.d/90crypt/parse-crypt.sh is not able to escape the
|
||||
backslashes any more, see GH-723, GH-727: backslashes in the
|
||||
systemd-cryptsetup@.service unit name stay unescaped for use in udev
|
||||
(cf. commit 0f6d93eb9d63695a64002ec8b0421fbc9fc8a7a3), leading to
|
||||
failures in starting the unit.
|
||||
|
||||
This partially reverts commit f9c96cf56fed390841eac05c43826e62014c9188.
|
||||
---
|
||||
modules.d/99base/dracut-lib.sh | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||
index c53cd13..c57523d 100755
|
||||
--- a/modules.d/99base/dracut-lib.sh
|
||||
+++ b/modules.d/99base/dracut-lib.sh
|
||||
@@ -24,7 +24,7 @@ debug_on() {
|
||||
|
||||
# returns OK if $1 contains literal string $2 (and isn't empty)
|
||||
strstr() {
|
||||
- [ "${1##*$2*}" != "$1" ]
|
||||
+ [ "${1##*"$2"*}" != "$1" ]
|
||||
}
|
||||
|
||||
# returns OK if $1 matches (completely) glob pattern $2
|
||||
@@ -43,18 +43,18 @@ strglobin() {
|
||||
|
||||
# returns OK if $1 contains literal string $2 at the beginning, and isn't empty
|
||||
str_starts() {
|
||||
- [ "${1#$2*}" != "$1" ]
|
||||
+ [ "${1#"$2"*}" != "$1" ]
|
||||
}
|
||||
|
||||
# returns OK if $1 contains literal string $2 at the end, and isn't empty
|
||||
str_ends() {
|
||||
- [ "${1%*$2}" != "$1" ]
|
||||
+ [ "${1%*"$2"}" != "$1" ]
|
||||
}
|
||||
|
||||
trim() {
|
||||
local var="$*"
|
||||
- var="${var#${var%%[![:space:]]*}}" # remove leading whitespace characters
|
||||
- var="${var%${var##*[![:space:]]}}" # remove trailing whitespace characters
|
||||
+ var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
||||
+ var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
||||
printf "%s" "$var"
|
||||
}
|
||||
|
||||
@@ -108,9 +108,9 @@ str_replace() {
|
||||
local out=''
|
||||
|
||||
while strstr "${in}" "$s"; do
|
||||
- chop="${in%%$s*}"
|
||||
+ chop="${in%%"$s"*}"
|
||||
out="${out}${chop}$r"
|
||||
- in="${in#*$s}"
|
||||
+ in="${in#*"$s"}"
|
||||
done
|
||||
echo "${out}${in}"
|
||||
}
|
||||
@@ -396,7 +396,7 @@ splitsep() {
|
||||
while [ -n "$str" -a "$#" -gt 1 ]; do
|
||||
tmp="${str%%$sep*}"
|
||||
eval "$1='${tmp}'"
|
||||
- str="${str#$tmp}"
|
||||
+ str="${str#"$tmp"}"
|
||||
str="${str#$sep}"
|
||||
shift
|
||||
done
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
32
dracut-network-fix-glob-matching-ipv6-addresses.patch
Normal file
32
dracut-network-fix-glob-matching-ipv6-addresses.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 7069132ec7e94a3274aa1b3b3b6e339066118a4d Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 10 Mar 2020 15:18:37 +0100
|
||||
Subject: [PATCH] network: fix glob matching ipv6 addresses
|
||||
|
||||
In this case we want to cover three cases
|
||||
1) ip_address:ip_address
|
||||
2) number:macaddress
|
||||
3) :macaddress
|
||||
|
||||
We consider something an IPv6 address if it starts with number and
|
||||
contains ":", but IPv6 addresses are in hexa.
|
||||
---
|
||||
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 16730e5..7f185fd 100755
|
||||
--- a/modules.d/40network/net-lib.sh
|
||||
+++ b/modules.d/40network/net-lib.sh
|
||||
@@ -510,7 +510,7 @@ ip_to_var() {
|
||||
[ -n "$6" ] && dev=$6
|
||||
[ -n "$7" ] && autoconf=$7
|
||||
case "$8" in
|
||||
- [0-9]*:*|[0-9]*.[0-9]*.[0-9]*.[0-9]*)
|
||||
+ [0-9a-fA-F]*:*|[0-9]*.[0-9]*.[0-9]*.[0-9]*)
|
||||
dns1="$8"
|
||||
[ -n "$9" ] && dns2="$9"
|
||||
;;
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
15
dracut.spec
15
dracut.spec
@ -9,7 +9,7 @@
|
||||
|
||||
Name: dracut
|
||||
Version: 050
|
||||
Release: 2
|
||||
Release: 3
|
||||
|
||||
Summary: Initramfs generator using udev
|
||||
|
||||
@ -29,7 +29,15 @@ Patch0001: dracut-network-fixed-net-rules-issue-hence-systemd-r.patch
|
||||
Patch0002: skip-the-broken-sd-in-initqueue.patch
|
||||
Patch0003: use-sleep-replace-check-sys-block.patch
|
||||
Patch0004: 0001-Fix-pre-trigger-stage-by-replacing-exit-with-return.patch
|
||||
Patch0005: 0002-95fcoe-default-rd.nofcoe-to-false.patch
|
||||
Patch0005: 0002-95fcoe-default-rd.nofcoe-to-false.patch
|
||||
Patch0006: dracut-95zfcp_rules-parse-zfcp.sh-remove-rule-existence-che.patch
|
||||
Patch0007: dracut-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch
|
||||
Patch0008: dracut-network-fix-glob-matching-ipv6-addresses.patch
|
||||
Patch0009: dracut-dasd-only-install-etc-dasd.conf-if-present.patch
|
||||
Patch0010: dracut-lib.sh-quote-variables-in-parameter-expansion.patch
|
||||
Patch0011: dracut-90crypt-module-setup.sh-fix-force-on-multiple-lines.patch
|
||||
Patch0012: Fix-test-in-lsinitrd.patch
|
||||
|
||||
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
|
||||
Source2: openEuler.conf.example
|
||||
|
||||
@ -479,6 +487,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jun 29 2020 gengqihu<gengqihu1@huawei.com> - 050-3
|
||||
- quality enhancement synchronization github patch
|
||||
|
||||
* Fri May 15 2020 openEuler Buildteam <buildteam@openeuler.org> - 050-2
|
||||
- Fix pre trigger stage by replacing exit with return 0 and 95fcoe default rd.nofcoe to false
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user