dracut - 046-19

- git snapshot
This commit is contained in:
Harald Hoyer 2017-10-10 11:15:04 +02:00
parent 87cf605e9a
commit afa7aa19c7
14 changed files with 764 additions and 1 deletions

View File

@ -21,3 +21,4 @@ index 681a6b7a..06127ca4 100755
if [[ $allowlocal ]]; then
"$dracutbasedir/lsinitrd.sh" "${DRACUT_TMPDIR}/initramfs.img"| ddebug
else

23
0007.patch Normal file
View File

@ -0,0 +1,23 @@
From 1499719d2542eb937099c98c9b8618e0f3e8c3a2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@hoyer.xyz>
Date: Wed, 30 Aug 2017 11:39:06 +0200
Subject: [PATCH] Merge pull request #274 from danimo/system_allow_coredump
Enable core dumps with systemd from initrd
---
modules.d/00systemd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
index 5da22a93..23d39bbe 100755
--- a/modules.d/00systemd/module-setup.sh
+++ b/modules.d/00systemd/module-setup.sh
@@ -33,6 +33,7 @@ install() {
inst_multiple -o \
$systemdutildir/systemd \
+ $systemdutildir/systemd-coredump \
$systemdutildir/systemd-cgroups-agent \
$systemdutildir/systemd-shutdown \
$systemdutildir/systemd-reply-password \

25
0008.patch Normal file
View File

@ -0,0 +1,25 @@
From 424c065cd99cc9c35a92a68d34c161beff5f5497 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@hoyer.xyz>
Date: Wed, 30 Aug 2017 11:51:12 +0200
Subject: [PATCH] Merge pull request #276 from danimo/copy_multipath_confd
95multipath: Pickup files in /etc/multipath/conf.d
---
modules.d/90multipath/module-setup.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index e5683395..28857ebc 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -65,7 +65,8 @@ install() {
xdrgetprio \
/etc/xdrdevices.conf \
/etc/multipath.conf \
- /etc/multipath/*
+ /etc/multipath/* \
+ /etc/multipath/conf.d/*
inst $(command -v partx) /sbin/partx

67
0009.patch Normal file
View File

@ -0,0 +1,67 @@
From 28401778c4c95b3750e73675dd4a4867303402d5 Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta@redhat.com>
Date: Wed, 27 Sep 2017 13:27:42 +0200
Subject: [PATCH] systemd: fix setting of timeouts for device units
JobRunningTimeoutSec now affects how long can start jobs for device
units stay in the "running" state. Disabling default job timeout via
JobTimeoutSec=0 doesn't disable running state timeout. We need to set
running state timeout as well.
Note that doing this the other way around has effect on generic timeout,
i.e. disabling running state timeout disables generic timeout. But doing
it this way we would create implicit dependency on fairly new
systemd-234. However, by setting both options we don't create dependency
on specific systemd version.
---
modules.d/90dmsquash-live/dmsquash-generator.sh | 1 +
modules.d/90livenet/livenet-generator.sh | 1 +
modules.d/98dracut-systemd/rootfs-generator.sh | 1 +
modules.d/99base/dracut-lib.sh | 1 +
4 files changed, 4 insertions(+)
diff --git a/modules.d/90dmsquash-live/dmsquash-generator.sh b/modules.d/90dmsquash-live/dmsquash-generator.sh
index a5bfbdf2..d47cf14a 100755
--- a/modules.d/90dmsquash-live/dmsquash-generator.sh
+++ b/modules.d/90dmsquash-live/dmsquash-generator.sh
@@ -78,4 +78,5 @@ mkdir -p "$GENERATOR_DIR/$_dev.device.d"
{
echo "[Unit]"
echo "JobTimeoutSec=3000"
+ echo "JobRunningTimeoutSec=3000"
} > "$GENERATOR_DIR/$_dev.device.d/timeout.conf"
diff --git a/modules.d/90livenet/livenet-generator.sh b/modules.d/90livenet/livenet-generator.sh
index 969ef4f2..a349cd0b 100755
--- a/modules.d/90livenet/livenet-generator.sh
+++ b/modules.d/90livenet/livenet-generator.sh
@@ -57,4 +57,5 @@ mkdir -p "$GENERATOR_DIR/dev-mapper-live\x2drw.device.d"
{
echo "[Unit]"
echo "JobTimeoutSec=3000"
+ echo "JobRunningTimeoutSec=3000"
} > "$GENERATOR_DIR/dev-mapper-live\x2drw.device.d/timeout.conf"
diff --git a/modules.d/98dracut-systemd/rootfs-generator.sh b/modules.d/98dracut-systemd/rootfs-generator.sh
index eada3d15..4ae693bb 100755
--- a/modules.d/98dracut-systemd/rootfs-generator.sh
+++ b/modules.d/98dracut-systemd/rootfs-generator.sh
@@ -32,6 +32,7 @@ generator_wait_for_dev()
{
echo "[Unit]"
echo "JobTimeoutSec=$_timeout"
+ echo "JobRunningTimeoutSec=$_timeout"
} > "$GENERATOR_DIR"/${_name}.device.d/timeout.conf
fi
}
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 80385456..675abf22 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -938,6 +938,7 @@ set_systemd_timeout_for_dev()
{
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

24
0010.patch Normal file
View File

@ -0,0 +1,24 @@
From 32618b456e4ba4b02e595eae067ec77df526ab9b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@hoyer.xyz>
Date: Mon, 9 Oct 2017 09:38:37 +0200
Subject: [PATCH] Merge pull request #277 from imran1008/bond-master-mtu
Set MTU on bond master as opposed to a bond slave
---
modules.d/40network/ifup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 687b5707..0db3c021 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -257,7 +257,7 @@ if [ -z "$NO_BOND_MASTER" ]; then
done
# Set mtu on bond master
- [ -n "$bondmtu" ] && ip link set mtu $bondmtu dev $netif
+ [ -n "$bondmtu" ] && ip link set mtu $bondmtu dev $bondname
# add the bits to setup the needed post enslavement parameters
for arg in $bondoptions ; do

180
0011.patch Normal file
View File

@ -0,0 +1,180 @@
From 7c9e64272ef250a4b8804beaba24a3da7c157ca4 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@hoyer.xyz>
Date: Mon, 9 Oct 2017 11:39:10 +0200
Subject: [PATCH] Merge pull request #280 from tpgxyz/zstd
add support for Zstandard
---
dracut-bash-completion.sh | 2 +-
dracut-initramfs-restore.sh | 2 ++
dracut.8.asc | 8 ++++++++
dracut.conf.5.asc | 2 +-
dracut.sh | 10 +++++++++-
lsinitrd.sh | 3 +++
modules.d/99img-lib/img-lib.sh | 5 +++--
modules.d/99img-lib/module-setup.sh | 2 +-
8 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh
index 09330a67..9e5806cc 100644
--- a/dracut-bash-completion.sh
+++ b/dracut-bash-completion.sh
@@ -29,7 +29,7 @@ _dracut() {
--hardlink --nohardlink --noprefix --mdadmconf --nomdadmconf
--lvmconf --nolvmconf --debug --profile --verbose --quiet
--local --hostonly --no-hostonly --fstab --help --bzip2 --lzma
- --xz --no-compress --gzip --list-modules --show-modules --keep
+ --xz --zstd --no-compress --gzip --list-modules --show-modules --keep
--printsize --regenerate-all --noimageifnotneeded --early-microcode
--no-early-microcode --print-cmdline --prelink --noprelink --reproducible
--uefi
diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh
index 0c41a59c..94794804 100644
--- a/dracut-initramfs-restore.sh
+++ b/dracut-initramfs-restore.sh
@@ -31,6 +31,8 @@ elif $SKIP "$IMG" | xzcat | cpio -id --no-absolute-filenames --quiet >/dev/null;
rm -f -- .need_shutdown
elif $SKIP "$IMG" | lz4 -d -c | cpio -id --no-absolute-filenames --quiet >/dev/null; then
rm -f -- .need_shutdown
+elif $SKIP "$IMG" | zstd -d -c | cpio -id --no-absolute-filenames --quiet >/dev/null; then
+ rm -f -- .need_shutdown
else
# something failed, so we clean up
echo "Unpacking of $IMG to /run/initramfs failed" >&2
diff --git a/dracut.8.asc b/dracut.8.asc
index 23c53cc4..64c0207f 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -432,6 +432,14 @@ Make sure your kernel has lz4 decompression support compiled in, otherwise you
will not be able to boot.
====
+**--zstd**::
+ Compress the generated initramfs using Zstandard.
+[WARNING]
+====
+Make sure your kernel has zstd decompression support compiled in, otherwise you
+will not be able to boot.
+====
+
**--compress** _<compressor>_::
Compress the generated initramfs using the passed compression program. If
you pass it just the name of a compression program, it will call that
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index 907a2fd4..6e8f3eba 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -79,7 +79,7 @@ Configuration files must have the extension .conf; other extensions are ignored.
Specify additional files to include in the initramfs, separated by spaces,
if they exist.
-*compress=*"__{bzip2|lzma|xz|gzip|lzo|lz4|<compressor [args ...]>}__"::
+*compress=*"__{bzip2|lzma|xz|gzip|lzo|lz4|zstd|<compressor [args ...]>}__"::
Compress the generated initramfs using the passed compression program. If
you pass it just the name of a compression program, it will call that
program with known-working arguments. If you pass arguments, it will be called
diff --git a/dracut.sh b/dracut.sh
index 06127ca4..5ad0f464 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -197,6 +197,9 @@ Creates initial ramdisk images for preloading modules
--lz4 Compress the generated initramfs using lz4.
Make sure that your kernel has lz4 support compiled
in, otherwise you will not be able to boot.
+ --zstd Compress the generated initramfs using Zstandard.
+ Make sure that your kernel has zstd support compiled
+ in, otherwise you will not be able to boot.
--compress [COMPRESSION] Compress the generated initramfs with the
passed compression program. Make sure your kernel
knows how to decompress the generated initramfs,
@@ -358,6 +361,7 @@ rearrange_params()
--long xz \
--long lzo \
--long lz4 \
+ --long zstd \
--long no-compress \
--long gzip \
--long list-modules \
@@ -557,6 +561,7 @@ while :; do
--xz) compress_l="xz";;
--lzo) compress_l="lzo";;
--lz4) compress_l="lz4";;
+ --zstd) compress_l="zstd";;
--no-compress) _no_compress_l="cat";;
--gzip) compress_l="gzip";;
--list-modules) do_list="yes";;
@@ -797,7 +802,7 @@ fi
if ! [[ $compress ]]; then
# check all known compressors, if none specified
- for i in pigz gzip lz4 lzop lzma xz lbzip2 bzip2 cat; do
+ for i in pigz gzip lz4 lzop zstd lzma xz lbzip2 bzip2 cat; do
command -v "$i" &>/dev/null || continue
compress="$i"
break
@@ -837,6 +842,9 @@ case $compress in
lz4)
compress="lz4 -l -9"
;;
+ zstd)
+ compress="zstd -15 -q -T0"
+ ;;
esac
[[ $hostonly = yes ]] && hostonly="-h"
diff --git a/lsinitrd.sh b/lsinitrd.sh
index b19a66a0..f4088453 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -219,6 +219,9 @@ case $bin in
$'\x89'LZO$'\0'*)
CAT="lzop -d -c"
;;
+ $'0xFD2FB528'*)
+ CAT="zstd -d -c"
+ ;;
*)
if echo "test"|xz|xzcat --single-stream >/dev/null 2>&1; then
CAT="xzcat --single-stream --"
diff --git a/modules.d/99img-lib/img-lib.sh b/modules.d/99img-lib/img-lib.sh
index 48e56ce7..43785812 100755
--- a/modules.d/99img-lib/img-lib.sh
+++ b/modules.d/99img-lib/img-lib.sh
@@ -8,12 +8,13 @@
# works with stdin if $1 is not set.
det_archive() {
# NOTE: echo -e works in ash and bash, but not dash
- local bz="BZh" xz="$(echo -e '\xfd7zXZ')" gz="$(echo -e '\x1f\x8b')"
+ local bz="BZh" xz="$(echo -e '\xfd7zXZ')" gz="$(echo -e '\x1f\x8b')" zs="$(echo -e '0xFD2FB528')"
local headerblock="$(dd ${1:+if=$1} bs=262 count=1 2>/dev/null)"
case "$headerblock" in
$xz*) echo "xz" ;;
$gz*) echo "gzip" ;;
$bz*) echo "bzip2" ;;
+ $zs*) echo "zstd" ;;
07070*) echo "cpio" ;;
*ustar) echo "tar" ;;
esac
@@ -33,7 +34,7 @@ unpack_archive() {
local img="$1" outdir="$2" archiver="" decompr=""
local ft="$(det_archive $img)"
case "$ft" in
- xz|gzip|bzip2) decompr="$ft -dc" ;;
+ xz|gzip|bzip2|zstd) decompr="$ft -dc" ;;
cpio|tar) decompr="cat";;
*) return 1 ;;
esac
diff --git a/modules.d/99img-lib/module-setup.sh b/modules.d/99img-lib/module-setup.sh
index 69346b2f..fe1eca1a 100755
--- a/modules.d/99img-lib/module-setup.sh
+++ b/modules.d/99img-lib/module-setup.sh
@@ -16,7 +16,7 @@ depends() {
install() {
inst_multiple tar gzip dd bash
# TODO: make this conditional on a cmdline flag / config option
- inst_multiple -o cpio xz bzip2
+ inst_multiple -o cpio xz bzip2 zstd
inst_simple "$moddir/img-lib.sh" "/lib/img-lib.sh"
}

52
0012.patch Normal file
View File

@ -0,0 +1,52 @@
From bada26263c36a8be07aece7e9f4986ee31e4d97f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@hoyer.xyz>
Date: Mon, 9 Oct 2017 11:47:08 +0200
Subject: [PATCH] Merge pull request #287 from xlpang/master
fcoe: handle CNAs with DCB firmware support
---
modules.d/95fcoe/module-setup.sh | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh
index e14a0ebb..eabb21c7 100755
--- a/modules.d/95fcoe/module-setup.sh
+++ b/modules.d/95fcoe/module-setup.sh
@@ -51,16 +51,30 @@ cmdline() {
read mac < ${i}/address
s=$(dcbtool gc ${i##*/} dcb | sed -n 's/^DCB State:\t*\(.*\)/\1/p')
if [ -z "$s" ] ; then
- p=$(get_vlan_parent ${i})
- if [ "$p" ] ; then
- s=$(dcbtool gc ${p} dcb | sed -n 's/^DCB State:\t*\(.*\)/\1/p')
- fi
+ p=$(get_vlan_parent ${i})
+ if [ "$p" ] ; then
+ s=$(dcbtool gc ${p} dcb | sed -n 's/^DCB State:\t*\(.*\)/\1/p')
+ fi
fi
if [ "$s" = "on" ] ; then
- dcb="dcb"
+ dcb="dcb"
else
- dcb="nodcb"
+ dcb="nodcb"
fi
+
+ # Some Combined Network Adapters(CNAs) implement DCB in firmware.
+ # Do not run software-based DCB or LLDP on CNAs that implement DCB.
+ # If the network interface provides hardware DCB/DCBX capabilities,
+ # DCB_REQUIRED in "/etc/fcoe/cfg-xxx" is expected to set to "no".
+ #
+ # Force "nodcb" if there's any DCB_REQUIRED="no"(child or vlan parent).
+ grep -q "^[[:blank:]]*DCB_REQUIRED=\"no\"" /etc/fcoe/cfg-${i##*/} &>/dev/null
+ [ $? -eq 0 ] && dcb="nodcb"
+ if [ "$p" ] ; then
+ grep -q "^[[:blank:]]*DCB_REQUIRED=\"no\"" /etc/fcoe/cfg-${p} &>/dev/null
+ [ $? -eq 0 ] && dcb="nodcb"
+ fi
+
echo "fcoe=${mac}:${dcb}"
done
}

172
0013.patch Normal file
View File

@ -0,0 +1,172 @@
From bf5c53a33f36d15a87297d4492624d137c3cd9fa Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@hoyer.xyz>
Date: Mon, 9 Oct 2017 12:51:29 +0200
Subject: [PATCH] Merge pull request #290 from privb0x23/luks-detached
Add basic LUKS detached header support
---
modules.d/90crypt/cryptroot-ask.sh | 20 ++++++++++++++++-
modules.d/90crypt/module-setup.sh | 46 ++++++++++++++++++++++++++++++--------
modules.d/90crypt/parse-crypt.sh | 33 ++++++++++++++++++++++++++-
3 files changed, 88 insertions(+), 11 deletions(-)
diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
index 5b513638..9f635eb3 100755
--- a/modules.d/90crypt/cryptroot-ask.sh
+++ b/modules.d/90crypt/cryptroot-ask.sh
@@ -29,13 +29,27 @@ if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -d -n rd_NO_CRYPTTAB; t
continue
fi
+ # PARTUUID used in crypttab
+ if [ "${dev%%=*}" = "PARTUUID" ]; then
+ if [ "luks-${dev##PARTUUID=}" = "$luksname" ]; then
+ luksname="$name"
+ break
+ fi
+
# UUID used in crypttab
- if [ "${dev%%=*}" = "UUID" ]; then
+ elif [ "${dev%%=*}" = "UUID" ]; then
if [ "luks-${dev##UUID=}" = "$luksname" ]; then
luksname="$name"
break
fi
+ # ID used in crypttab
+ elif [ "${dev%%=*}" = "ID" ]; then
+ if [ "luks-${dev##ID=}" = "$luksname" ]; then
+ luksname="$name"
+ break
+ fi
+
# path used in crypttab
else
cdev=$(readlink -f $dev)
@@ -88,6 +102,10 @@ while [ $# -gt 0 ]; do
;;
allow-discards)
allowdiscards="--allow-discards"
+ ;;
+ header=*)
+ cryptsetupopts="${cryptsetupopts} --${1}"
+ ;;
esac
shift
done
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
index 9c1be998..69aceaab 100755
--- a/modules.d/90crypt/module-setup.sh
+++ b/modules.d/90crypt/module-setup.sh
@@ -68,22 +68,50 @@ install() {
if [[ $hostonly ]] && [[ -f /etc/crypttab ]]; then
# filter /etc/crypttab for the devices we need
- while read _mapper _dev _rest || [ -n "$_mapper" ]; do
+ while read _mapper _dev _luksfile _luksoptions || [ -n "$_mapper" ]; do
[[ $_mapper = \#* ]] && continue
[[ $_dev ]] || continue
+ [[ $_dev == PARTUUID=* ]] && \
+ _dev="/dev/disk/by-partuuid/${_dev#PARTUUID=}"
+
[[ $_dev == UUID=* ]] && \
_dev="/dev/disk/by-uuid/${_dev#UUID=}"
- echo "$_dev $(blkid $_dev -s UUID -o value)" > /usr/lib/dracut/modules.d/90crypt/block_uuid.map
-
- for _hdev in "${!host_fs_types[@]}"; do
- [[ ${host_fs_types[$_hdev]} == "crypto_LUKS" ]] || continue
- if [[ $_hdev -ef $_dev ]] || [[ /dev/block/$_hdev -ef $_dev ]]; then
- echo "$_mapper $_dev $_rest"
- break
- fi
+ [[ $_dev == ID=* ]] && \
+ _dev="/dev/disk/by-id/${_dev#ID=}"
+
+ echo "$_dev $(blkid $_dev -s UUID -o value)" >> /usr/lib/dracut/modules.d/90crypt/block_uuid.map
+
+ # loop through the options to check for the force option
+ luksoptions=${_luksoptions}
+ OLD_IFS="${IFS}"
+ IFS=,
+ set -- ${luksoptions}
+ IFS="${OLD_IFS}"
+
+ while [ $# -gt 0 ]; do
+ case $1 in
+ force)
+ forceentry="yes"
+ break
+ ;;
+ esac
+ shift
done
+
+ # include the entry regardless
+ if [ "${forceentry}" = "yes" ]; then
+ echo "$_mapper $_dev $_luksfile $_luksoptions"
+ else
+ for _hdev in "${!host_fs_types[@]}"; do
+ [[ ${host_fs_types[$_hdev]} == "crypto_LUKS" ]] || continue
+ if [[ $_hdev -ef $_dev ]] || [[ /dev/block/$_hdev -ef $_dev ]]; then
+ echo "$_mapper $_dev $_luksfile $_luksoptions"
+ break
+ fi
+ done
+ fi
done < /etc/crypttab > $initdir/etc/crypttab
mark_hostonly /etc/crypttab
fi
diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
index 8a0db02b..f0a4fba9 100755
--- a/modules.d/90crypt/parse-crypt.sh
+++ b/modules.d/90crypt/parse-crypt.sh
@@ -35,6 +35,7 @@ else
echo 'ACTION!="add|change", GOTO="luks_end"'
} > /etc/udev/rules.d/70-luks.rules.new
+ SERIAL=$(getargs rd.luks.serial -d rd_LUKS_SERIAL)
LUKS=$(getargs rd.luks.uuid -d rd_LUKS_UUID)
tout=$(getarg rd.luks.key.tout)
@@ -44,7 +45,37 @@ else
done < /etc/crypttab
fi
- if [ -n "$LUKS" ]; then
+ if [ -n "$SERIAL" ]; then
+ for serialid in $SERIAL; do
+
+ serialid=${serialid##luks-}
+ if luksname=$(_cryptgetargsname "rd.luks.name=$serialid="); then
+ luksname="${luksname#$serialid=}"
+ else
+ luksname="luks-$serialid"
+ fi
+
+ if [ -z "$DRACUT_SYSTEMD" ]; then
+ {
+ printf -- 'ENV{ID_SERIAL_SHORT}=="*%s*", ' "$serialid"
+ printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
+ printf -- '--name cryptroot-ask-%%k %s ' "$(command -v cryptroot-ask)"
+ printf -- '$env{DEVNAME} %s %s"\n' "$luksname" "$tout"
+ } >> /etc/udev/rules.d/70-luks.rules.new
+ else
+ luksname=$(dev_unit_name "$luksname")
+ if ! crypttab_contains "$serialid"; then
+ {
+ printf -- 'ENV{ID_SERIAL_SHORT}=="*%s*", ' "$serialid"
+ printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
+ printf -- '--name systemd-cryptsetup-%%k %s start ' "$(command -v systemctl)"
+ printf -- 'systemd-cryptsetup@%s.service"\n' "$luksname"
+ } >> /etc/udev/rules.d/70-luks.rules.new
+ fi
+ fi
+ done
+
+ elif [ -n "$LUKS" ]; then
for luksid in $LUKS; do
luksid=${luksid##luks-}

37
0014.patch Normal file
View File

@ -0,0 +1,37 @@
From 0d947530b2b8928b5b2040c2e56cb966a5ea941f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 9 Oct 2017 12:50:25 +0200
Subject: [PATCH] TEST-70: sort interfaces for validation
---
test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh | 2 +-
test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh
index 2018393b..8c33ff0f 100755
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh
@@ -10,7 +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
+ 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
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
index 6b4e10df..277bbd01 100755
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
@@ -235,7 +235,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
+ 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

33
0015.patch Normal file
View File

@ -0,0 +1,33 @@
From 4e3833f6a28c52dc4c1d4e8dd24d419af10c4dc6 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@hoyer.xyz>
Date: Mon, 9 Oct 2017 12:59:29 +0200
Subject: [PATCH] Merge pull request #285 from rldleblanc/fix-typos
Fix a couple of typos.
---
modules.d/40network/parse-bond.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/40network/parse-bond.sh b/modules.d/40network/parse-bond.sh
index 48e548b9..c35c81d6 100755
--- a/modules.d/40network/parse-bond.sh
+++ b/modules.d/40network/parse-bond.sh
@@ -1,7 +1,7 @@
#!/bin/sh
#
# Format:
-# bond=<bondname>[:<bondslaves>:[:<options>[:<mtu>]]]
+# bond=<bondname>[:<bondslaves>[:<options>[:<mtu>]]]
#
# bondslaves is a comma-separated list of physical (ethernet) interfaces
# options is a comma-separated list on bonding options (modinfo bonding for details) in format compatible with initscripts
@@ -12,7 +12,7 @@
# if the mtu is specified, it will be set on the bond master
#
-# We translate list of slaves to space-separated here to mwke it easier to loop over them in ifup
+# We translate list of slaves to space-separated here to make it easier to loop over them in ifup
# Ditto for bonding options
parsebond() {
local v=${1}:

69
0017.patch Normal file
View File

@ -0,0 +1,69 @@
From 4c2d98c75b0dd3dad45430becb78c9d40bc6be1b Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Mon, 9 Oct 2017 14:39:12 +0200
Subject: [PATCH] emergency.service: use Type=idle
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Type=oneshot, as currently set in dracut's emergency service file,
causes an awkward situation if emergency mode is entered e.g. because
of a root device timeout, and the root device appears later because it
just has taken longer than the timeout. In that situation, my
expectation (backed by past positive experience) is that the user should
be able to simply exit the emergency shell and resume normal boot.
:/# systemctl status sysroot.mount
● sysroot.mount - /sysroot
Loaded: loaded (/proc/cmdline; bad; vendor preset: enabled)
Active: active (mounted) since Mon 2017-10-09 14:32:15 CEST; 16s ago
Where: /sysroot
What: /dev/mapper/3600601600a30200024fbbaf3f500e411-part5
Docs: man:fstab(5)
man:systemd-fstab-generator(8)
Process: 1873 ExecMount=/usr/bin/mount /dev/disk/by-uuid/63751805-6abc-46a3-a66f-427920dece4d /sysroot -o ro (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 512)
:/# systemctl list-jobs
JOB UNIT TYPE STATE
56 emergency.target start waiting
57 emergency.service start running
2 jobs listed.
:/# exit
logout
Failed to start default.target: Transaction is destructive.
(system keeps idling from this point on, user has no chance to
do anything).
This results from the combination of two effects:
1) initrd-root-fs.target sets "OnFailureJobMode=replace-irreversibly",
2) emergency.service's Type=oneshot causes the start jobs for both
emergency.service and emergency.target to persist while the user is in
the emergency shell.
When the shell is exited, systemd tries to isolate "initrd.target"
again, but this fails with "the transaction is destructive" error
because of the still pending jobs.
This patch fixes this by changing the Type of "emergency.service" from
"oneshot" to "idle".
---
modules.d/98dracut-systemd/emergency.service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/98dracut-systemd/emergency.service b/modules.d/98dracut-systemd/emergency.service
index 288aac39..100146a3 100644
--- a/modules.d/98dracut-systemd/emergency.service
+++ b/modules.d/98dracut-systemd/emergency.service
@@ -17,7 +17,7 @@ Environment=NEWROOT=/sysroot
WorkingDirectory=/
ExecStart=/bin/dracut-emergency
ExecStopPost=-/usr/bin/systemctl --fail --no-block default
-Type=oneshot
+Type=idle
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit

39
0018.patch Normal file
View File

@ -0,0 +1,39 @@
From 8c2aa6161a2435f2af7e7df3a36125e85af0f0ec Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 9 Oct 2017 17:40:04 +0200
Subject: [PATCH] git2spec.pl: handle empty merge commits
---
git2spec.pl | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/git2spec.pl b/git2spec.pl
index 0c5f3b9e..7853791e 100755
--- a/git2spec.pl
+++ b/git2spec.pl
@@ -5,6 +5,8 @@ sub create_patches {
my $pdir=shift;
my $n=1;
my @lines;
+ my $fname;
+ my $f=0;
mkdir $pdir, 0755;
@@ -12,9 +14,13 @@ sub create_patches {
while (<GIT>) {
if (/^From [a-z0-9]{40} .*$/) {
- my $fname = sprintf("%04d", $n++).".patch";
- push @lines, $fname;
+ $fname = sprintf("%04d", $n++).".patch";
open FH, ">".$pdir."/".$fname;
+ $f=1;
+ }
+ if (/^---$/ && $f == 1) {
+ push @lines, $fname;
+ $f=0;
}
print FH;
}

26
0019.patch Normal file
View File

@ -0,0 +1,26 @@
From 791d80168994f4784569c8ea47b7bff554102f5e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 10 Oct 2017 10:30:44 +0200
Subject: [PATCH] dracut.sh: if /boot/vmlinuz-$version exists use /boot/ as
output dir
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1475565
---
dracut.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 5ad0f464..995d983e 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -773,7 +773,9 @@ if ! [[ $outfile ]]; then
mkdir -p "$efidir/Linux"
outfile="$efidir/Linux/linux-$kernel${MACHINE_ID:+-${MACHINE_ID}}${BUILD_ID:+-${BUILD_ID}}.efi"
else
- if [[ $MACHINE_ID ]] && ( [[ -d /boot/${MACHINE_ID} ]] || [[ -L /boot/${MACHINE_ID} ]] ); then
+ if [[ -e "/boot/vmlinuz-$kernel" ]]; then
+ outfile="/boot/initramfs-$kernel.img"
+ elif [[ $MACHINE_ID ]] && ( [[ -d /boot/${MACHINE_ID} ]] || [[ -L /boot/${MACHINE_ID} ]] ); then
outfile="/boot/${MACHINE_ID}/$kernel/initrd"
else
outfile="/boot/initramfs-$kernel.img"

View File

@ -14,7 +14,7 @@
%define with_nbd 0
%endif
%define dist_free_release 7.git20170824
%define dist_free_release 19.git20171010
Name: dracut
Version: 046
@ -43,6 +43,18 @@ Patch3: 0003.patch
Patch4: 0004.patch
Patch5: 0005.patch
Patch6: 0006.patch
Patch7: 0007.patch
Patch8: 0008.patch
Patch9: 0009.patch
Patch10: 0010.patch
Patch11: 0011.patch
Patch12: 0012.patch
Patch13: 0013.patch
Patch14: 0014.patch
Patch15: 0015.patch
Patch16: 0017.patch
Patch17: 0018.patch
Patch18: 0019.patch
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
@ -522,6 +534,9 @@ rm -rf -- $RPM_BUILD_ROOT
%endif
%changelog
* Tue Oct 10 2017 Harald Hoyer <harald@redhat.com> - 046-19
- git snapshot
* Thu Aug 24 2017 Harald Hoyer <harald@redhat.com> - 046-7
- git snapshot