The package rpms/dracut.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/dracut.git/commit/?id=9d5d7534b92....
Change:
+%ifnarch s390 s390x
Thanks.
Full change:
============
commit 9d5d7534b929f0be180606df919d1349b575b352
Author: Harald Hoyer <harald(a)redhat.com>
Date: Fri Sep 21 13:45:55 2018 +0200
dracut - 048-99.git20180921
- git snapshot
diff --git a/0013.patch b/0013.patch
index 129d24c..05d76aa 100644
--- a/0013.patch
+++ b/0013.patch
@@ -58,3 +58,4 @@ index 754ed3c9..9b9d497a 100644
%{dracutlibdir}/dracut.conf.d/02-rescue.conf
%if 0%{?fedora} || 0%{?rhel}
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
+
diff --git a/0014.patch b/0014.patch
new file mode 100644
index 0000000..2f8ea48
--- /dev/null
+++ b/0014.patch
@@ -0,0 +1,32 @@
+From 33782aebbffa005415e1a03deeae837d8cf5665e Mon Sep 17 00:00:00 2001
+From: Yu Watanabe <watanabe.yu+github(a)gmail.com>
+Date: Mon, 30 Jul 2018 02:26:01 +0900
+Subject: [PATCH] spec: warpclock is not available on s390 or s390x
+
+---
+ dracut.spec | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/dracut.spec b/dracut.spec
+index 9b9d497a..ce69fa1f 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -224,6 +224,7 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
+
+ %ifnarch s390 s390x
+ # remove architecture specific modules
++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl
+@@ -316,7 +317,9 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
+ %endif
+ %{dracutlibdir}/modules.d/00bash
+ %{dracutlibdir}/modules.d/00systemd
++%ifnarch s390 s390x
+ %{dracutlibdir}/modules.d/00warpclock
++%endif
+ %{dracutlibdir}/modules.d/01systemd-initrd
+ %{dracutlibdir}/modules.d/03modsign
+ %{dracutlibdir}/modules.d/03rescue
+
diff --git a/0015.patch b/0015.patch
new file mode 100644
index 0000000..25b6599
--- /dev/null
+++ b/0015.patch
@@ -0,0 +1,45 @@
+From be98291cafa1080ed18a976c6452ae2be1c7c747 Mon Sep 17 00:00:00 2001
+From: Yu Watanabe <watanabe.yu+github(a)gmail.com>
+Date: Mon, 30 Jul 2018 02:26:48 +0900
+Subject: [PATCH] spec: sort modules
+
+Also drops remaining %defattr.
+---
+ dracut.spec | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index ce69fa1f..d24c6f36 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -320,6 +320,9 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
+ %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-initrd
+ %{dracutlibdir}/modules.d/03modsign
+ %{dracutlibdir}/modules.d/03rescue
+@@ -403,11 +406,6 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
+ %{_prefix}/lib/kernel/install.d/50-dracut.install
+ %endif
+
+-%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
+-%defattr(-,root,root,0755)
+-%{dracutlibdir}/modules.d/01fips
+-%endif
+-
+ %files network
+ %{dracutlibdir}/modules.d/02systemd-networkd
+ %{dracutlibdir}/modules.d/40network
+@@ -436,7 +434,6 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
+ %{dracutlibdir}/modules.d/90livenet
+
+ %files tools
+-
+ %if %{with doc}
+ %doc %{_mandir}/man8/dracut-catimages.8*
+ %endif
+
diff --git a/0016.patch b/0016.patch
new file mode 100644
index 0000000..7b6e41d
--- /dev/null
+++ b/0016.patch
@@ -0,0 +1,34 @@
+From 99df3d22be14690260371311086a439c83fdc6b4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 2 Aug 2018 16:32:41 +0200
+Subject: [PATCH] mdraid/parse-md.sh: also accept rd.md.uuid with ":"
+
+convert rd.md.uuid=32ef2172:f056:6fa7:66a8:2f7fc8b1798
+to udev rules in the correct UUID format 32ef2172-f056-6fa7-66a8-2f7fcf8b1798
+---
+ modules.d/90mdraid/parse-md.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
+index c422b24e..428f9515 100755
+--- a/modules.d/90mdraid/parse-md.sh
++++ b/modules.d/90mdraid/parse-md.sh
+@@ -14,6 +14,9 @@ else
+ if [ "${line%%UUID CHECK}" != "$line" ]; then
+ printf 'IMPORT{program}="/sbin/mdadm --examine --export
$tempnode"\n'
+ for uuid in $MD_UUID; do
++ uuid=$(str_replace "$uuid" "-"
"")
++ uuid=$(str_replace "$uuid" ":"
"")
++ uuid="$(expr substr $uuid 1 8)-$(expr substr $uuid 9
4)-$(expr substr $uuid 13 4)-$(expr substr $uuid 17 4)-$(expr substr $uuid 21 12)"
+ printf 'ENV{MD_UUID}=="%s",
GOTO="md_uuid_ok"\n' $uuid
+ printf 'ENV{ID_FS_UUID}=="%s",
GOTO="md_uuid_ok"\n' $uuid
+ done;
+@@ -29,6 +32,7 @@ else
+ if strstr "$uuid" "-"; then
+ # convert ID_FS_UUID to MD_UUID format
+ uuid=$(str_replace "$uuid" "-" "")
++ uuid=$(str_replace "$uuid" ":" "")
+ uuid="$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr
substr $uuid 17 8):$(expr substr $uuid 25 8)"
+ fi
+ wait_for_dev "/dev/disk/by-id/md-uuid-${uuid}"
+
diff --git a/0017.patch b/0017.patch
new file mode 100644
index 0000000..1e9e238
--- /dev/null
+++ b/0017.patch
@@ -0,0 +1,43 @@
+From a0c915b1e4585ccf286dd38a5cd7d8b89e0346c5 Mon Sep 17 00:00:00 2001
+From: Nicolas Chauvet <kwizart(a)gmail.com>
+Date: Fri, 3 Aug 2018 23:39:51 +0200
+Subject: [PATCH] Add gpio and pinctrl drivers for arm*/aarch64
+
+This is needed since few gpio/pinctrl can be built as modules and are
+useful on early boot.
+
+One example is jetson-tx1 where sata and external mmc can work only
+after loading pinctrl-max77620 and gpio-max77620 modules.
+
+Having theses kind of drivers bundled into the initramfs will also
+avoid some deferred probes.
+
+V2: add pinctrl for all arches
+
+Signed-off-by: Nicolas Chauvet <kwizart(a)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 89b33ce6..f01470e7 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -25,7 +25,7 @@ installkernel() {
+ ohci-hcd ohci-pci \
+ uhci-hcd \
+ xhci-hcd xhci-pci xhci-plat-hcd \
+- pinctrl-cherryview \
++ "=drivers/pinctrl" \
+ ${NULL}
+
+ hostonly=$(optional_hostonly) instmods \
+@@ -50,6 +50,7 @@ installkernel() {
+ "=drivers/clk" \
+ "=drivers/dma" \
+ "=drivers/extcon" \
++ "=drivers/gpio" \
+ "=drivers/hwspinlock" \
+ "=drivers/i2c/busses" \
+ "=drivers/mfd" \
+
diff --git a/0018.patch b/0018.patch
new file mode 100644
index 0000000..2627700
--- /dev/null
+++ b/0018.patch
@@ -0,0 +1,23 @@
+From a762dedb60aef8f43a625e1e3c10c97664f1d74a Mon Sep 17 00:00:00 2001
+From: Lukas Nykryn <lnykryn(a)redhat.com>
+Date: Thu, 9 Aug 2018 12:14:20 +0200
+Subject: [PATCH] dracut-functions: fix the word splitting
+
+---
+ dracut-functions.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 7c408f83..1431dd18 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -683,7 +683,7 @@ get_loaded_kernel_modules ()
+ local modules=( )
+ while read _module _size _used _used_by; do
+ modules+=( "$_module" )
+- done <<< $(lsmod | sed -n '1!p')
++ done <<< "$(lsmod | sed -n '1!p')"
+ printf '%s\n' "${modules[@]}" | sort
+ }
+
+
diff --git a/0019.patch b/0019.patch
new file mode 100644
index 0000000..2b299e8
--- /dev/null
+++ b/0019.patch
@@ -0,0 +1,79 @@
+From 746135dd1ebc8dc7e26132bfa14ac159db7b2b95 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Mon, 13 Aug 2018 10:01:36 +0200
+Subject: [PATCH] mdraid: better handling of various UUID formats
+
+---
+ modules.d/90mdraid/mdraid_start.sh | 4 ++++
+ modules.d/90mdraid/parse-md.sh | 19 ++++++++-----------
+ 2 files changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
+index 2f5daff1..77e843d7 100755
+--- a/modules.d/90mdraid/mdraid_start.sh
++++ b/modules.d/90mdraid/mdraid_start.sh
+@@ -39,6 +39,9 @@ _md_force_run() {
+ _offroot=$(strstr "$(mdadm --help-options 2>&1)" offroot &&
echo --offroot)
+
+ if [ -n "$_MD_UUID" ]; then
++ _MD_UUID=$(str_replace "$_MD_UUID" "-" "")
++ _MD_UUID=$(str_replace "$_MD_UUID" ":" "")
++
+ for _md in /dev/md[0-9_]*; do
+ [ -b "$_md" ] || continue
+ _UUID=$(
+@@ -50,6 +53,7 @@ _md_force_run() {
+ )
+
+ [ -z "$_UUID" ] && continue
++ _UUID=$(str_replace "$_UUID" ":" "")
+
+ # check if we should handle this device
+ strstr " $_MD_UUID " " $_UUID " || continue
+diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
+index 428f9515..4d9baa52 100755
+--- a/modules.d/90mdraid/parse-md.sh
++++ b/modules.d/90mdraid/parse-md.sh
+@@ -1,6 +1,9 @@
+ #!/bin/sh
+
+ MD_UUID=$(getargs rd.md.uuid -d rd_MD_UUID=)
++# normalize the uuid
++MD_UUID=$(str_replace "$MD_UUID" "-" "")
++MD_UUID=$(str_replace "$MD_UUID" ":" "")
+
+ if ( ! [ -n "$MD_UUID" ] && ! getargbool 0 rd.auto ) || ! getargbool 1
rd.md -d -n rd_NO_MD; then
+ info "rd.md=0: removing MD RAID activation"
+@@ -12,13 +15,12 @@ else
+ [ -e "$f" ] || continue
+ while read line || [ -n "$line" ]; do
+ if [ "${line%%UUID CHECK}" != "$line" ]; then
++ for uuid in $MD_UUID; do
++ printf 'ENV{ID_FS_UUID}=="%s",
GOTO="md_uuid_ok"\n' "$(expr substr $uuid 1 8)-$(expr substr $uuid 9
4)-$(expr substr $uuid 13 4)-$(expr substr $uuid 17 4)-$(expr substr $uuid 21 12)"
++ done;
+ printf 'IMPORT{program}="/sbin/mdadm --examine --export
$tempnode"\n'
+ for uuid in $MD_UUID; do
+- uuid=$(str_replace "$uuid" "-"
"")
+- uuid=$(str_replace "$uuid" ":"
"")
+- uuid="$(expr substr $uuid 1 8)-$(expr substr $uuid 9
4)-$(expr substr $uuid 13 4)-$(expr substr $uuid 17 4)-$(expr substr $uuid 21 12)"
+- printf 'ENV{MD_UUID}=="%s",
GOTO="md_uuid_ok"\n' $uuid
+- printf 'ENV{ID_FS_UUID}=="%s",
GOTO="md_uuid_ok"\n' $uuid
++ printf 'ENV{MD_UUID}=="%s",
GOTO="md_uuid_ok"\n' "$(expr substr $uuid 1 8):$(expr substr $uuid 9
8):$(expr substr $uuid 17 8):$(expr substr $uuid 25 8)"
+ done;
+ printf 'GOTO="md_end"\n'
+ printf 'LABEL="md_uuid_ok"\n'
+@@ -29,12 +31,7 @@ else
+ mv "${f}.new" "$f"
+ done
+ for uuid in $MD_UUID; do
+- if strstr "$uuid" "-"; then
+- # convert ID_FS_UUID to MD_UUID format
+- uuid=$(str_replace "$uuid" "-" "")
+- uuid=$(str_replace "$uuid" ":" "")
+- uuid="$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr
substr $uuid 17 8):$(expr substr $uuid 25 8)"
+- fi
++ uuid="$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr substr
$uuid 17 8):$(expr substr $uuid 25 8)"
+ wait_for_dev "/dev/disk/by-id/md-uuid-${uuid}"
+ done
+ fi
+
diff --git a/0020.patch b/0020.patch
new file mode 100644
index 0000000..25ea3d5
--- /dev/null
+++ b/0020.patch
@@ -0,0 +1,70 @@
+From 6f0500ed4afa29ae8edc997933d598bc5862b4ce Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Mon, 13 Aug 2018 10:56:53 +0200
+Subject: [PATCH] iscsi: remove $() where it does not fit
+
+also simplify iscsiadm command to one call
+---
+ modules.d/95iscsi/iscsiroot.sh | 33 ++++++++++++++++++---------------
+ 1 file changed, 18 insertions(+), 15 deletions(-)
+
+diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
+index 5ac0ad9a..76c8b3fe 100755
+--- a/modules.d/95iscsi/iscsiroot.sh
++++ b/modules.d/95iscsi/iscsiroot.sh
+@@ -109,7 +109,7 @@ handle_netroot()
+ arg=$(getarg rd.iscsi.in.password -d iscsi_in_password=)
+ [ -n "$arg" ] && iscsi_in_password=$arg
+ for p in $(getargs rd.iscsi.param -d iscsi_param); do
+- iscsi_param="$iscsi_param $p"
++ iscsi_param="$iscsi_param $p"
+ done
+
+ parse_iscsi_root "$1" || return 1
+@@ -208,28 +208,31 @@ handle_netroot()
+ echo "iscsi_lun=$iscsi_lun . /bin/mount-lun.sh " >
$hookdir/mount/01-$$-iscsi.sh
+ fi
+
+- ### ToDo: Upstream calls systemd-run - Shall we, do we have to port this?
+-
+ targets=$(iscsiadm -m discovery -t st -p
$iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} | sed 's/^.*iqn/iqn/')
+ [ -z "$targets" ] && echo "Target discovery to
$iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} failed with status $?"
&& exit 1
+
+ for target in $iscsi_target_name; do
+ case "$targets" in
+ *$target*)
++ EXTRA=""
+ if [ -n "$iscsi_iface_name" ]; then
+- $(iscsiadm -m iface -I $iscsi_iface_name --op=new)
+- [ -n "$iscsi_initiator" ] && $(iscsiadm -m iface -I
$iscsi_iface_name --op=update --name=iface.initiatorname --value=$iscsi_initiator)
+- [ -n "$iscsi_netdev_name" ] && $(iscsiadm -m iface -I
$iscsi_iface_name --op=update --name=iface.net_ifacename --value=$iscsi_netdev_name)
+- COMMAND="iscsiadm -m node -T $target -p
$iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} -I $iscsi_iface_name
--op=update"
+- else
+- COMMAND="iscsiadm -m node -T $target -p
$iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} --op=update"
++ iscsiadm -m iface -I $iscsi_iface_name --op=new
++ EXTRA=" ${iscsi_netdev_name:+--name=iface.net_ifacename
--value=$iscsi_netdev_name} "
++ EXTRA="$EXTRA ${iscsi_initiator:+--name=iface.initiatorname
--value=$iscsi_initiator} "
+ fi
+- $($COMMAND --name=node.startup --value=onboot)
+- [ -n "$iscsi_username" ] && $($COMMAND
--name=node.session.auth.username --value=$iscsi_username)
+- [ -n "$iscsi_password" ] && $($COMMAND
--name=node.session.auth.password --value=$iscsi_password)
+- [ -n "$iscsi_in_username" ] && $($COMMAND
--name=node.session.auth.username_in --value=$iscsi_in_username)
+- [ -n "$iscsi_in_password" ] && $($COMMAND
--name=node.session.auth.password_in --value=$iscsi_in_password)
+- [ -n "$iscsi_param" ] && for param in $iscsi_param; do
$($COMMAND --name=${param%=*} --value=${param#*=}); done
++ [ -n "$iscsi_param" ] && for param in $iscsi_param; do
EXTRA="$EXTRA --name=${param%=*} --value=${param#*=}"; done
++
++ iscsiadm -m node -T $target \
++ ${iscsi_iface_name:+-I $iscsi_iface_name} \
++ -p $iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} \
++ --op=update \
++ --name=node.startup --value=onboot \
++ ${iscsi_username:+ --name=node.session.auth.username
--value=$iscsi_username} \
++ ${iscsi_password:+ --name=node.session.auth.password
--value=$iscsi_password} \
++ ${iscsi_in_username:+--name=node.session.auth.username_in
--value=$iscsi_in_username} \
++ ${iscsi_in_password:+--name=node.session.auth.password_in
--value=$iscsi_in_password} \
++ $EXTRA \
++ $NULL
+ ;;
+ *)
+ ;;
+
diff --git a/0021.patch b/0021.patch
new file mode 100644
index 0000000..e387044
--- /dev/null
+++ b/0021.patch
@@ -0,0 +1,32 @@
+From 0a80cda0ea1186bb3b384158aeda491443ae93ff Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Mon, 13 Aug 2018 11:30:03 +0200
+Subject: [PATCH] dracut.spec: remove warpclock from z-series, not the other
+ way round
+
+---
+ dracut.spec | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index d24c6f36..09c74478 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -224,7 +224,6 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
+
+ %ifnarch s390 s390x
+ # remove architecture specific modules
+-rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl
+@@ -236,6 +235,8 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95qeth_rules
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp_rules
+ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95znet
++%else
++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock
+ %endif
+
+ mkdir -p $RPM_BUILD_ROOT/boot/dracut
+
diff --git a/0022.patch b/0022.patch
new file mode 100644
index 0000000..7d855ba
--- /dev/null
+++ b/0022.patch
@@ -0,0 +1,24 @@
+From 26aea0299a7ec702972cbf8b5556731b762dcde9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Mon, 13 Aug 2018 11:37:44 +0200
+Subject: [PATCH] multipath-shutdown: fix shell syntax
+
+seems like a misplaced $()
+---
+ modules.d/90multipath/multipath-shutdown.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90multipath/multipath-shutdown.sh
b/modules.d/90multipath/multipath-shutdown.sh
+index 47e9990c..f160f45e 100755
+--- a/modules.d/90multipath/multipath-shutdown.sh
++++ b/modules.d/90multipath/multipath-shutdown.sh
+@@ -1,7 +1,7 @@
+ #!/bin/bash
+
+ for i in $(multipath -l -v1); do
+- if ! $(dmsetup table $i | sed -n '/.*queue_if_no_path.*/q1') ; then
++ if ! dmsetup table $i | sed -n '/.*queue_if_no_path.*/q1' ; then
+ dmsetup message $i 0 fail_if_no_path
+ fi
+ done
+
diff --git a/0023.patch b/0023.patch
new file mode 100644
index 0000000..c776b02
--- /dev/null
+++ b/0023.patch
@@ -0,0 +1,150 @@
+From 6058b06b86ce1a505a640c78896eae32768077c1 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Mon, 13 Aug 2018 16:27:59 +0200
+Subject: [PATCH] test/{TEST-50-MULTINIC,TEST-70-BONDBRIDGETEAMVLAN}: use
+ qemu-3.0 syntax
+
+use qemu-3.0 syntax for network devices
+---
+ test/TEST-50-MULTINIC/test.sh | 20 +++++-----
+ test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh | 4 ++
+ test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 53 ++++++++++++++------------
+ 3 files changed, 43 insertions(+), 34 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 7c108aa0..de40790f 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -51,15 +51,17 @@ client_test() {
+ fi
+
+ $testdir/run-qemu -drive
format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m 512M -smp 2
-nographic \
+- -net socket,vlan=0,connect=127.0.0.1:12350 \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+- -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
+- -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
+- -watchdog i6300esb -watchdog-action poweroff \
+- -no-reboot \
+- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro
console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console
loglevel=7" \
++ -net socket,connect=127.0.0.1:12350 \
++ -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
++ -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
++ -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
++ -netdev hubport,id=n1,hubid=1 \
++ -netdev hubport,id=n2,hubid=2 \
++ --device e1000,netdev=n1,mac=52:54:00:12:34:98 \
++ -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
++ -watchdog i6300esb -watchdog-action poweroff \
++ -no-reboot \
++ -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro
console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console
loglevel=7" \
+ -initrd "$TESTDIR"/initramfs.testing
+
+ { read OK; read IFACES; } < "$TESTDIR"/client.img
+diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
+index 562feae6..503ed9ed 100755
+--- a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
++++ b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
+@@ -67,6 +67,10 @@ ip addr add 192.168.55.1/24 dev ens4.2
+ ip addr add 192.168.56.1/24 dev ens4.3
+ ip addr add 192.168.57.1/24 dev ens4.4
+ linkup ens4
++ip link set dev ens4.1 up
++ip link set dev ens4.2 up
++ip link set dev ens4.3 up
++ip link set dev ens4.4 up
+ ip link set dev eth2 name ens5
+ ip addr add 192.168.51.1/24 dev ens5
+ linkup ens5
+diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
+index 277bbd01..eadf09f1 100755
+--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
++++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
+@@ -18,14 +18,14 @@ run_server() {
+ -hda "$TESTDIR"/server.ext3 \
+ -m 512M -smp 2 \
+ -display none \
+- -net socket,vlan=0,listen=127.0.0.1:12370 \
+- -net socket,vlan=1,listen=127.0.0.1:12371 \
+- -net socket,vlan=2,listen=127.0.0.1:12372 \
+- -net socket,vlan=3,listen=127.0.0.1:12373 \
+- -net nic,vlan=0,macaddr=52:54:01:12:34:56,model=e1000 \
+- -net nic,vlan=1,macaddr=52:54:01:12:34:57,model=e1000 \
+- -net nic,vlan=2,macaddr=52:54:01:12:34:58,model=e1000 \
+- -net nic,vlan=3,macaddr=52:54:01:12:34:59,model=e1000 \
++ -netdev socket,id=n0,listen=127.0.0.1:12370 \
++ -netdev socket,id=n1,listen=127.0.0.1:12371 \
++ -netdev socket,id=n2,listen=127.0.0.1:12372 \
++ -netdev socket,id=n3,listen=127.0.0.1:12373 \
++ -device e1000,netdev=n0,mac=52:54:01:12:34:56 \
++ -device e1000,netdev=n1,mac=52:54:01:12:34:57 \
++ -device e1000,netdev=n2,mac=52:54:01:12:34:58 \
++ -device e1000,netdev=n3,mac=52:54:01:12:34:59 \
+ ${SERIAL:+-serial "$SERIAL"} \
+ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+ -watchdog i6300esb -watchdog-action poweroff \
+@@ -58,22 +58,25 @@ client_test() {
+ echo "Unable to make client sda image" 1>&2
+ return 1
+ fi
++ if [[ $do_vlan13 ]]; then
++ nic1=" -netdev socket,connect=127.0.0.1:12371,id=n1"
++ nic3=" -netdev socket,connect=127.0.0.1:12373,id=n3"
++ else
++ nic1=" -netdev hubport,id=n1,hubid=2"
++ nic3=" -netdev hubport,id=n3,hubid=3"
++ fi
+
+ $testdir/run-qemu -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
+- -net socket,vlan=0,connect=127.0.0.1:12370 \
+- ${do_vlan13:+-net socket,vlan=1,connect=127.0.0.1:12371} \
+- -net socket,vlan=2,connect=127.0.0.1:12372 \
+- ${do_vlan13:+-net socket,vlan=3,connect=127.0.0.1:12373} \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:01,model=e1000 \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:02,model=e1000 \
+- -net nic,vlan=1,macaddr=52:54:00:12:34:03,model=e1000 \
+- -net nic,vlan=2,macaddr=52:54:00:12:34:04,model=e1000 \
+- -net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \
++ -netdev socket,connect=127.0.0.1:12370,id=s1 -netdev
hubport,hubid=1,id=h1,netdev=s1 \
++ -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \
++ -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \
++ $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
++ -netdev socket,connect=127.0.0.1:12372,id=n2 -device
e1000,mac=52:54:00:12:34:04,netdev=n2 \
++ $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw
console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
+ -initrd "$TESTDIR"/initramfs.testing
+-
+ {
+ read OK
+ if [[ "$OK" != "OK" ]]; then
+@@ -113,19 +116,19 @@ test_client() {
+ client_test "Multiple VLAN" \
+ "yes" \
+ "
+-vlan=vlan0001:ens4
+-vlan=vlan2:ens4
+-vlan=ens4.3:ens4
+-vlan=ens4.0004:ens4
++vlan=vlan0001:ens5
++vlan=vlan2:ens5
++vlan=ens5.3:ens5
++vlan=ens5.0004:ens5
+ ip=ens3:dhcp
+ ip=192.168.54.101::192.168.54.1:24:test:vlan0001:none
+ ip=192.168.55.102::192.168.55.1:24:test:vlan2:none
+-ip=192.168.56.103::192.168.56.1:24:test:ens4.3:none
+-ip=192.168.57.104::192.168.57.1:24:test:ens4.0004:none
++ip=192.168.56.103::192.168.56.1:24:test:ens5.3:none
++ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none
+ rd.neednet=1
+ root=nfs:192.168.50.1:/nfs/client bootdev=ens3
+ " \
+- 'ens3 ens4.0004 ens4.3 vlan0001 vlan2
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd
NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes
BOOTPROTO=dhcp TYPE=Ethernet
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4.0004 # Generated by dracut
initrd NAME="ens4.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1"
TYPE=Vlan DEVICE="ens4.0004" VLAN=yes PHYSDEV="ens4"
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4.3 # Generated by dracut
initrd NAME="ens4.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1"
TYPE=Vlan DEVICE="ens4.3" VLAN=yes PHYSDEV="ens4"
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut
initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1"
TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens4"
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut
initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1"
TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens4" EOF ' \
++ 'ens3 ens5.0004 ens5.3 vlan0001 vlan2
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd
NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes
BOOTPROTO=dhcp TYPE=Ethernet
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.0004 # Generated by dracut
initrd NAME="ens5.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1"
TYPE=Vlan DEVICE="ens5.0004" VLAN=yes PHYSDEV="ens5"
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.3 # Generated by dracut
initrd NAME="ens5.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1"
TYPE=Vlan DEVICE="ens5.3" VLAN=yes PHYSDEV="ens5"
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut
initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1"
TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens5"
/run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut
initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none
IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1"
TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens5" EOF ' \
+ || return 1
+
+ client_test "Multiple Bonds" \
+
diff --git a/0024.patch b/0024.patch
new file mode 100644
index 0000000..5660d8b
--- /dev/null
+++ b/0024.patch
@@ -0,0 +1,48 @@
+From ab94a204e0cb22bcaa2b2863dee9ffb9f22e91c5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 11:03:11 +0200
+Subject: [PATCH] load modules earlier for iscsi via dhcp root-path
+
+---
+ modules.d/95iscsi/parse-iscsiroot.sh | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
+index f884e684..7a64d888 100755
+--- a/modules.d/95iscsi/parse-iscsiroot.sh
++++ b/modules.d/95iscsi/parse-iscsiroot.sh
+@@ -90,19 +90,13 @@ if [ -n "$iscsi_firmware" ]; then
+ initqueue --unique --onetime --settled /sbin/iscsiroot online "iscsi:"
"'$NEWROOT'"
+ fi
+
+-if [ -z "$netroot" ] || ! [ "${netroot%%:*}" = "iscsi" ];
then
+- return 1
+-fi
+-
+-initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "$netroot"
"$NEWROOT"
+-
+-initqueue --onetime modprobe --all -b -q qla4xxx cxgb3i cxgb4i bnx2i be2iscsi qedi
+-
+ # ISCSI actually supported?
+ if ! [ -e /sys/module/iscsi_tcp ]; then
+ modprobe -b -q iscsi_tcp || die "iscsiroot requested but kernel/initrd does not
support iscsi"
+ fi
+
++modprobe --all -b -q qla4xxx cxgb3i cxgb4i bnx2i be2iscsi
++
+ if [ -n "$netroot" ] && [ "$root" != "/dev/root" ]
&& [ "$root" != "dhcp" ]; then
+ if ! getargbool 1 rd.neednet >/dev/null || ! getarg "ip="; then
+ initqueue --unique --onetime --settled /sbin/iscsiroot dummy
"'$netroot'" "'$NEWROOT'"
+@@ -141,6 +135,11 @@ if [ -z $iscsi_initiator ] && [ -f
/sys/firmware/ibft/initiator/initiator-name ]
+ fi
+ fi
+
++if [ -z "$netroot" ] || ! [ "${netroot%%:*}" = "iscsi" ];
then
++ return 1
++fi
++
++initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "$netroot"
"$NEWROOT"
+
+ for nroot in $(getargs netroot); do
+ [ "${nroot%%:*}" = "iscsi" ] || continue
+
diff --git a/0025.patch b/0025.patch
new file mode 100644
index 0000000..f2cbdcf
--- /dev/null
+++ b/0025.patch
@@ -0,0 +1,32 @@
+From ffbd37d7844b96611506eb4631a3e4f3b5e74c86 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 11:03:48 +0200
+Subject: [PATCH] TEST-31-ISCSI-MULTI: use different port than TEST-30
+
+---
+ test/TEST-31-ISCSI-MULTI/test.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
+index 2f2b6ed5..c2f86ac8 100755
+--- a/test/TEST-31-ISCSI-MULTI/test.sh
++++ b/test/TEST-31-ISCSI-MULTI/test.sh
+@@ -24,7 +24,7 @@ run_server() {
+ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+ -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
+ -net nic,macaddr=52:54:00:12:34:57,model=e1000 \
+- -net socket,listen=127.0.0.1:12330 \
++ -net socket,listen=127.0.0.1:12331 \
+ -no-reboot \
+ -append "panic=1 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81
selinux=0 $SERVER_DEBUG" \
+ -initrd $TESTDIR/initramfs.server \
+@@ -49,7 +49,7 @@ run_client() {
+ -m 512M -smp 2 -nographic \
+ -net nic,macaddr=52:54:00:12:34:00,model=e1000 \
+ -net nic,macaddr=52:54:00:12:34:01,model=e1000 \
+- -net socket,connect=127.0.0.1:12330 \
++ -net socket,connect=127.0.0.1:12331 \
+ -no-reboot \
+ -append "panic=1 rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0
rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
+ -initrd $TESTDIR/initramfs.testing
+
diff --git a/0026.patch b/0026.patch
new file mode 100644
index 0000000..d30bef7
--- /dev/null
+++ b/0026.patch
@@ -0,0 +1,231 @@
+From 82fe4ea0a5a745c920aa396775b9ebb52b4d2927 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 11:04:17 +0200
+Subject: [PATCH] enable parallel test suite
+
+$ time sudo make -j SKIP=14 V=2 check
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-13-ENC-RAID-LVM'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-40-NBD'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-04-FULL-SYSTEMD'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-12-RAID-DEG'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-15-BTRFSRAID'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-16-DMSQUASH'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-17-LVM-THIN'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-11-LVM'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-31-ISCSI-MULTI'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-20-NFS'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-99-RPM'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-02-SYSTEMD'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-30-ISCSI'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-01-BASIC'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-03-USR-MOUNT'
+make[1]: Entering directory
'/home/harald/git/dracut/test/TEST-70-BONDBRIDGETEAMVLAN'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-50-MULTINIC'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-10-RAID'
+make[1]: Entering directory '/home/harald/git/dracut/test/TEST-18-LVM-ENC-LV'
+TEST: root filesystem on an encrypted LVM PV on a degraded RAID-5 [STARTED]
+TEST: root filesystem on NBD [STARTED]
+TEST: root filesystem on NBD [SKIPPED]
+TEST: Full systemd serialization/deserialization test with /usr mount [STARTED]
+TEST: root filesystem on multiple device btrfs [STARTED]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-40-NBD'
+TEST: root filesystem on a LiveCD dmsquash filesystem [STARTED]
+TEST: root filesystem on a LiveCD dmsquash filesystem [SKIPPED]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-16-DMSQUASH'
+TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [STARTED]
+TEST: root filesystem on LVM PV [STARTED]
+TEST: rpm integrity after dracut and kernel install [STARTED]
+TEST: root filesystem on NFS [STARTED]
+TEST: root filesystem over iSCSI [STARTED]
+TEST: root filesystem on LVM PV with thin pool [STARTED]
+TEST: root filesystem over iSCSI [STARTED]
+TEST: root filesystem on a ext3 filesystem [STARTED]
+TEST: root filesystem on a ext3 filesystem [STARTED]
+TEST: root filesystem on a btrfs filesystem with /usr subvolume [STARTED]
+TEST: root filesystem on NFS with bridging/bonding/vlan [STARTED]
+TEST: root filesystem on NFS with multiple nics [STARTED]
+TEST: root filesystem on an encrypted LVM PV on a RAID-5 [STARTED]
+TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [STARTED]
+TEST: root filesystem on LVM PV [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-11-LVM'
+TEST: root filesystem on multiple device btrfs [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-15-BTRFSRAID'
+TEST: root filesystem on LVM PV with thin pool [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-17-LVM-THIN'
+TEST: root filesystem on a ext3 filesystem [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-02-SYSTEMD'
+TEST: root filesystem on a btrfs filesystem with /usr subvolume [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-03-USR-MOUNT'
+TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-18-LVM-ENC-LV'
+TEST: Full systemd serialization/deserialization test with /usr mount [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-04-FULL-SYSTEMD'
+TEST: root filesystem on an encrypted LVM PV on a RAID-5 [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-10-RAID'
+TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-13-ENC-RAID-LVM'
+TEST: root filesystem over iSCSI [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-30-ISCSI'
+TEST: root filesystem on a ext3 filesystem [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-01-BASIC'
+TEST: root filesystem over iSCSI [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-31-ISCSI-MULTI'
+TEST: rpm integrity after dracut and kernel install [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-99-RPM'
+TEST: root filesystem on NFS [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-20-NFS'
+TEST: root filesystem on NFS with bridging/bonding/vlan [OK]
+make[1]: Leaving directory
'/home/harald/git/dracut/test/TEST-70-BONDBRIDGETEAMVLAN'
+TEST: root filesystem on an encrypted LVM PV on a degraded RAID-5 [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-12-RAID-DEG'
+TEST: root filesystem on NFS with multiple nics [OK]
+make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-50-MULTINIC'
+
+real 9m3,969s
+user 22m50,323s
+sys 5m24,411s
+---
+ test/Makefile | 21 +++++++++--------
+ test/test-functions | 68 ++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 47 insertions(+), 42 deletions(-)
+
+diff --git a/test/Makefile b/test/Makefile
+index eaa944fb..0b33660b 100644
+--- a/test/Makefile
++++ b/test/Makefile
+@@ -1,15 +1,16 @@
+-.PHONY: all check clean
++.PHONY: all check clean $(wildcard TEST-??-*)
+
+-check:
++$(wildcard TEST-??-*):
+ @[ "$$EUID" == "0" ] || { echo "'check' must be run as
root! Please use 'sudo'."; exit 1; }
+- @{ ret=0; \
+- for i in TEST-[0-9]*; do \
+- [ -d $$i ] || continue ; \
+- [ -f $$i/Makefile ] || continue ; \
+- if [ -n "$$TESTS" ]; then t=$${i##TEST-}; t=$${t%%-*}; [
"$${TESTS#*$$t*}" != "$$TESTS" ] || continue; fi; \
+- if [ -n "$$SKIP" ]; then t=$${i##TEST-}; t=$${t%%-*}; [
"$${SKIP#*$$t*}" != "$$SKIP" ] && continue; fi; \
+- $(MAKE) -C $$i all ; ret=$$((ret + $$?)); \
+- done; exit $$ret; }
++ @{ \
++ [ -d $@ ] || exit 0; \
++ [ -f $@/Makefile ] || exit 0; \
++ if [ -n "$$TESTS" ]; then t=$${$@##TEST-}; t=$${t%%-*}; [
"$${TESTS#*$$t*}" != "$$TESTS" ] || exit 0; fi; \
++ if [ -n "$$SKIP" ]; then t=$${$@##TEST-}; t=$${t%%-*}; [
"$${SKIP#*$$t*}" != "$$SKIP" ] && exit 0; fi; \
++ $(MAKE) -C $@ all ; \
++ }
++
++check: $(wildcard TEST-??-*)
+
+ clean:
+ @for i in TEST-[0-9]*; do \
+diff --git a/test/test-functions b/test/test-functions
+index 2b8a4d26..57611ff5 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -4,14 +4,14 @@ export PATH
+
+ [[ -e .testdir ]] && . .testdir
+ if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then
+- TESTDIR=$(mktemp -d -p "/var/tmp" -t dracut-test.XXXXXX)
++ TESTDIR=$(mktemp -d -p "/var/tmp" -t dracut-test.XXXXXX)
+ fi
+ echo "TESTDIR=\"$TESTDIR\"" > .testdir
+ export TESTDIR
+
+ command -v test_check &>/dev/null || test_check() {
+- :
+-}
++ :
++ }
+
+ # terminal sequence to set color to a 'success' color (currently: green)
+ function SETCOLOR_SUCCESS() { echo -en '\033[0;32m'; }
+@@ -22,6 +22,11 @@ function SETCOLOR_WARNING() { echo -en '\033[0;33m'; }
+ # terminal sequence to reset to the default color.
+ function SETCOLOR_NORMAL() { echo -en '\033[0;39m'; }
+
++COLOR_SUCCESS='\033[0;32m'
++COLOR_FAILURE='\033[0;31m'
++COLOR_WARNING='\033[0;33m'
++COLOR_NORMAL='\033[0;39m'
++
+ check_root() {
+ if (( $EUID != 0 )); then
+ SETCOLOR_FAILURE; echo "Tests must be run as root! Please use
'sudo'."; SETCOLOR_NORMAL
+@@ -49,45 +54,44 @@ while (($# > 0)); do
+ exit $?;;
+ --all)
+ check_root
+- echo -n "TEST: $TEST_DESCRIPTION ";
+ if ! test_check 2&>test.log ; then
+- SETCOLOR_WARNING
+- echo "[SKIPPED]"
+- SETCOLOR_NORMAL
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING
"[SKIPPED]" $COLOR_NORMAL
+ exit 0;
++ else
++ echo "TEST: $TEST_DESCRIPTION [STARTED]";
+ fi
+ if [ "$V" != "1" ]; then
+- (
+- test_setup && test_run
+- ret=$?
+- test_cleanup
+- rm -fr -- "$TESTDIR"
+- rm -f -- .testdir
+- exit $ret
+- ) </dev/null >test.log 2>&1
++ (
++ test_setup && test_run
++ ret=$?
++ test_cleanup
++ rm -fr -- "$TESTDIR"
++ rm -f -- .testdir
++ exit $ret
++ ) </dev/null >test.log 2>&1
+ else
+- set -o pipefail
+- (
+- test_setup && test_run
+- ret=$?
+- test_cleanup
+- rm -fr -- "$TESTDIR"
+- rm -f -- .testdir
+- exit $ret
+- ) </dev/null 2>&1 | tee test.log
++ set -o pipefail
++ (
++ test_setup && test_run
++ ret=$?
++ test_cleanup
++ rm -fr -- "$TESTDIR"
++ rm -f -- .testdir
++ exit $ret
++ ) </dev/null 2>&1 | tee test.log
+ fi
+ ret=$?
+ set +o pipefail
+ if [ $ret -eq 0 ]; then
+- rm -- test.log
+- SETCOLOR_SUCCESS
+- echo "[OK]"
+- SETCOLOR_NORMAL
++ rm -- test.log
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]"
$COLOR_NORMAL
+ else
+- SETCOLOR_FAILURE
+- echo "[FAILED]"
+- SETCOLOR_NORMAL
+- echo "see $(pwd)/test.log"
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
++ if [ "$V" == "2" ]; then
++ cat $(pwd)/test.log
++ else
++ echo "see $(pwd)/test.log"
++ fi
+ fi
+ exit $ret;;
+ *) break ;;
+
diff --git a/0027.patch b/0027.patch
new file mode 100644
index 0000000..1156414
--- /dev/null
+++ b/0027.patch
@@ -0,0 +1,23 @@
+From 393da0c370deaea03b7f72a35782fde506526a49 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 11:35:26 +0200
+Subject: [PATCH] TEST-50-MULTINIC: s/--device/-device
+
+---
+ test/TEST-50-MULTINIC/test.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index de40790f..2640c318 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -57,7 +57,7 @@ client_test() {
+ -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+ -netdev hubport,id=n1,hubid=1 \
+ -netdev hubport,id=n2,hubid=2 \
+- --device e1000,netdev=n1,mac=52:54:00:12:34:98 \
++ -device e1000,netdev=n1,mac=52:54:00:12:34:98 \
+ -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+
diff --git a/0028.patch b/0028.patch
new file mode 100644
index 0000000..738236d
--- /dev/null
+++ b/0028.patch
@@ -0,0 +1,34 @@
+From 827a5b1a80c63f62fbe70945d46a8eb9453fc9fe Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 11:37:57 +0200
+Subject: [PATCH] test: also output server.log on failure
+
+---
+ test/test-functions | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/test/test-functions b/test/test-functions
+index 57611ff5..f27be912 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -75,6 +75,9 @@ while (($# > 0)); do
+ test_setup && test_run
+ ret=$?
+ test_cleanup
++ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]];
then
++ mv [[ -f "$TESTDIR"/server.log ]] ./
++ fi
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir
+ exit $ret
+@@ -88,7 +91,8 @@ while (($# > 0)); do
+ else
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ if [ "$V" == "2" ]; then
+- cat $(pwd)/test.log
++ cat $(pwd)/server.log $(pwd)/test.log
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ else
+ echo "see $(pwd)/test.log"
+ fi
+
diff --git a/0029.patch b/0029.patch
new file mode 100644
index 0000000..ce571e1
--- /dev/null
+++ b/0029.patch
@@ -0,0 +1,23 @@
+From 94cc856cb8e4a325cc26a3bcc2d9e92da6a2be69 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 13:57:15 +0200
+Subject: [PATCH] TEST-70-BONDBRIDGETEAMVLAN: load vlan kernel modules
+
+---
+ test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
+index 503ed9ed..b9f01c9b 100755
+--- a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
++++ b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
+@@ -49,7 +49,7 @@ linkup() {
+ && wait_for_if_up $1 2>/dev/null
+ }
+
+-modprobe -b -q 8021q
++modprobe --all -b -q 8021q ipvlan macvlan
+ >/dev/watchdog
+ ip addr add 127.0.0.1/8 dev lo
+ linkup lo
+
diff --git a/0030.patch b/0030.patch
new file mode 100644
index 0000000..5a1f421
--- /dev/null
+++ b/0030.patch
@@ -0,0 +1,338 @@
+From ca8f1c1ba3e5f1ebfb2e5e70ea4d4b7a791b0bc2 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 13:58:21 +0200
+Subject: [PATCH] test: fixed KVERSION and qemu backwards compatiblity
+
+---
+ test/TEST-50-MULTINIC/test.sh | 137 ++++++++++++++++++--------------
+ test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 52 ++++++++----
+ 2 files changed, 115 insertions(+), 74 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 2640c318..02443c40 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -12,19 +12,36 @@ run_server() {
+ echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"
+
+ fsck -a "$TESTDIR"/server.ext3 || return 1
+- $testdir/run-qemu \
+- -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
+- -m 512M -smp 2 \
+- -display none \
+- -net socket,listen=127.0.0.1:12350 \
+- -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
+- ${SERIAL:+-serial "$SERIAL"} \
+- ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+- -watchdog i6300esb -watchdog-action poweroff \
+- -no-reboot \
+- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw
console=ttyS0,115200n81 selinux=0" \
+- -initrd "$TESTDIR"/initramfs.server \
+- -pidfile "$TESTDIR"/server.pid -daemonize || return 1
++
++ if $testdir/run-qemu --help | grep -qF -m1 'netdev
hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
++ $testdir/run-qemu \
++ -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3
\
++ -m 512M -smp 2 \
++ -display none \
++ -net socket,listen=127.0.0.1:12350 \
++ -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
++ ${SERIAL:+-serial "$SERIAL"} \
++ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
++ -watchdog i6300esb -watchdog-action poweroff \
++ -no-reboot \
++ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw
console=ttyS0,115200n81 selinux=0" \
++ -initrd "$TESTDIR"/initramfs.server \
++ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
++ else
++ $testdir/run-qemu \
++ -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m
512M -smp 2 -nographic \
++ -net socket,vlan=0,connect=127.0.0.1:12350 \
++ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
++ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
++ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
++ -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
++ -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
++ -watchdog i6300esb -watchdog-action poweroff \
++ -no-reboot \
++ -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro
console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console
loglevel=7" \
++ -initrd "$TESTDIR"/initramfs.testing
++ fi
++
+ sudo chmod 644 -- "$TESTDIR"/server.pid || return 1
+
+ # Cleanup the terminal if we have one
+@@ -51,18 +68,18 @@ client_test() {
+ fi
+
+ $testdir/run-qemu -drive
format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m 512M -smp 2
-nographic \
+- -net socket,connect=127.0.0.1:12350 \
+- -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+- -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+- -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+- -netdev hubport,id=n1,hubid=1 \
+- -netdev hubport,id=n2,hubid=2 \
+- -device e1000,netdev=n1,mac=52:54:00:12:34:98 \
+- -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
+- -watchdog i6300esb -watchdog-action poweroff \
+- -no-reboot \
+- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro
console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console
loglevel=7" \
+- -initrd "$TESTDIR"/initramfs.testing
++ -net socket,connect=127.0.0.1:12350 \
++ -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
++ -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
++ -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
++ -netdev hubport,id=n1,hubid=1 \
++ -netdev hubport,id=n2,hubid=2 \
++ -device e1000,netdev=n1,mac=52:54:00:12:34:98 \
++ -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
++ -watchdog i6300esb -watchdog-action poweroff \
++ -no-reboot \
++ -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro
console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console
loglevel=7" \
++ -initrd "$TESTDIR"/initramfs.testing
+
+ { read OK; read IFACES; } < "$TESTDIR"/client.img
+
+@@ -110,58 +127,58 @@ test_client() {
+
+ # PXE Style BOOTIF=
+ client_test "MULTINIC root=nfs BOOTIF=" \
+- 00 01 02 \
+- "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00" \
+- "ens3" || return 1
++ 00 01 02 \
++ "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00"
\
++ "ens3" || return 1
+
+ client_test "MULTINIC root=nfs BOOTIF= ip=ens4:dhcp" \
+- 00 01 02 \
+- "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00
ip=ens4:dhcp" \
+- "ens3 ens4" || return 1
++ 00 01 02 \
++ "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00
ip=ens4:dhcp" \
++ "ens3 ens4" || return 1
+
+ # PXE Style BOOTIF= with dhcp root-path
+ client_test "MULTINIC root=dhcp BOOTIF=" \
+- 00 01 02 \
+- "root=dhcp BOOTIF=52-54-00-12-34-02" \
+- "ens5" || return 1
++ 00 01 02 \
++ "root=dhcp BOOTIF=52-54-00-12-34-02" \
++ "ens5" || return 1
+
+ # Multinic case, where only one nic works
+ client_test "MULTINIC root=nfs ip=dhcp" \
+- FF 00 FE \
+- "root=nfs:192.168.50.1:/nfs/client ip=dhcp" \
+- "ens4" || return 1
++ FF 00 FE \
++ "root=nfs:192.168.50.1:/nfs/client ip=dhcp" \
++ "ens4" || return 1
+
+ # Require two interfaces
+ client_test "MULTINIC root=nfs ip=ens4:dhcp ip=ens5:dhcp bootdev=ens4" \
+- 00 01 02 \
+- "root=nfs:192.168.50.1:/nfs/client ip=ens4:dhcp ip=ens5:dhcp
bootdev=ens4" \
+- "ens4 ens5" || return 1
++ 00 01 02 \
++ "root=nfs:192.168.50.1:/nfs/client ip=ens4:dhcp ip=ens5:dhcp
bootdev=ens4" \
++ "ens4 ens5" || return 1
+
+ # Require three interfaces with dhcp root-path
+ client_test "MULTINIC root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp
bootdev=ens5" \
+- 00 01 02 \
+- "root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp bootdev=ens5" \
+- "ens3 ens4 ens5" || return 1
++ 00 01 02 \
++ "root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp
bootdev=ens5" \
++ "ens3 ens4 ens5" || return 1
+
+ client_test "MULTINIC bonding" \
+- 00 01 02 \
+- "root=nfs:192.168.50.1:/nfs/client ip=bond0:dhcp
bond=bond0:ens3,ens4,ens5:mode=balance-rr" \
+- "bond0" || return 1
++ 00 01 02 \
++ "root=nfs:192.168.50.1:/nfs/client ip=bond0:dhcp
bond=bond0:ens3,ens4,ens5:mode=balance-rr" \
++ "bond0" || return 1
+
+ client_test "MULTINIC bridging" \
+- 00 01 02 \
+- "root=nfs:192.168.50.1:/nfs/client ip=bridge0:dhcp
bridge=bridge0:ens3,ens6,ens7" \
+- "bridge0" || return 1
++ 00 01 02 \
++ "root=nfs:192.168.50.1:/nfs/client ip=bridge0:dhcp
bridge=bridge0:ens3,ens6,ens7" \
++ "bridge0" || return 1
+ return 0
+ }
+
+ test_setup() {
+- # Make server root
++ # Make server root
+ dd if=/dev/null of="$TESTDIR"/server.ext3 bs=1M seek=120
+ mke2fs -j -F -- "$TESTDIR"/server.ext3
+ mkdir -- "$TESTDIR"/mnt
+ sudo mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt
+-
++ kernel=$KVERSION
+ (
+ export initdir="$TESTDIR"/mnt
+ . "$basedir"/dracut-init.sh
+@@ -185,9 +202,9 @@ test_setup() {
+ done
+
+ inst_multiple sh ls shutdown poweroff stty cat ps ln ip \
+- dmesg mkdir cp ping exportfs \
+- modprobe rpc.nfsd rpc.mountd showmount tcpdump \
+- /etc/services sleep mount chmod
++ dmesg mkdir cp ping exportfs \
++ modprobe rpc.nfsd rpc.mountd showmount tcpdump \
++ /etc/services sleep mount chmod
+ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
+ [ -f "${_terminfodir}"/l/linux ] && break
+ done
+@@ -212,7 +229,7 @@ test_setup() {
+ inst_libdir_file 'libnfsidmap*.so*'
+
+ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e
's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
+- | tr -s '[:space:]' '\n' | sort -u | tr -s
'[:space:]' '|')
++ | tr -s '[:space:]' '\n' | sort -u | tr -s
'[:space:]' '|')
+ _nsslibs=${_nsslibs#|}
+ _nsslibs=${_nsslibs%|}
+
+@@ -241,7 +258,7 @@ test_setup() {
+ done
+ )
+ inst_multiple sh shutdown poweroff stty cat ps ln ip \
+- mount dmesg mkdir cp ping grep ls
++ mount dmesg mkdir cp ping grep ls
+ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
+ [[ -f ${_terminfodir}/l/linux ]] && break
+ done
+@@ -258,7 +275,7 @@ test_setup() {
+ inst_libdir_file 'libnfsidmap*.so*'
+
+ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e
's/\[NOTFOUND=return\]//' -- /etc/nsswitch.conf \
+- | tr -s '[:space:]' '\n' | sort -u | tr -s
'[:space:]' '|')
++ | tr -s '[:space:]' '\n' | sort -u | tr -s
'[:space:]' '|')
+ _nsslibs=${_nsslibs#|}
+ _nsslibs=${_nsslibs%|}
+
+@@ -282,14 +299,16 @@ test_setup() {
+ )
+
+ # Make server's dracut image
+- $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
++ $basedir/dracut.sh \
++ -l -i "$TESTDIR"/overlay / \
+ -m "dash udev-rules base rootfs-block fs-lib debug kernel-modules
watchdog" \
+ -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4
nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
+ --no-hostonly-cmdline -N \
+ -f "$TESTDIR"/initramfs.server "$KVERSION" || return 1
+
+ # Make client's dracut image
+- $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
++ $basedir/dracut.sh \
++ -l -i "$TESTDIR"/overlay / \
+ -o "plymouth" \
+ -a "debug" \
+ -d "af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3
nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
+diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
+index eadf09f1..8c11a7d3 100755
+--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
++++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
+@@ -14,6 +14,7 @@ run_server() {
+ echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"
+
+ fsck -a "$TESTDIR"/server.ext3 || return 1
++
+ $testdir/run-qemu \
+ -hda "$TESTDIR"/server.ext3 \
+ -m 512M -smp 2 \
+@@ -66,17 +67,38 @@ client_test() {
+ nic3=" -netdev hubport,id=n3,hubid=3"
+ fi
+
+- $testdir/run-qemu -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
+- -netdev socket,connect=127.0.0.1:12370,id=s1 -netdev
hubport,hubid=1,id=h1,netdev=s1 \
+- -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \
+- -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \
+- $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
+- -netdev socket,connect=127.0.0.1:12372,id=n2 -device
e1000,mac=52:54:00:12:34:04,netdev=n2 \
+- $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
+- -watchdog i6300esb -watchdog-action poweroff \
+- -no-reboot \
+- -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw
console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
+- -initrd "$TESTDIR"/initramfs.testing
++ if $testdir/run-qemu --help | grep -qF -m1 'netdev
hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
++ $testdir/run-qemu \
++ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
++ -netdev socket,connect=127.0.0.1:12370,id=s1 \
++ -netdev hubport,hubid=1,id=h1,netdev=s1 \
++ -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2
\
++ -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3
\
++ $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
++ -netdev socket,connect=127.0.0.1:12372,id=n2 -device
e1000,mac=52:54:00:12:34:04,netdev=n2 \
++ $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
++ -watchdog i6300esb -watchdog-action poweroff \
++ -no-reboot \
++ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw
console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
++ -initrd "$TESTDIR"/initramfs.testing
++ else
++ $testdir/run-qemu \
++ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
++ -net socket,vlan=0,connect=127.0.0.1:12370 \
++ ${do_vlan13:+-net socket,vlan=1,connect=127.0.0.1:12371} \
++ -net socket,vlan=2,connect=127.0.0.1:12372 \
++ ${do_vlan13:+-net socket,vlan=3,connect=127.0.0.1:12373} \
++ -net nic,vlan=0,macaddr=52:54:00:12:34:01,model=e1000 \
++ -net nic,vlan=0,macaddr=52:54:00:12:34:02,model=e1000 \
++ -net nic,vlan=1,macaddr=52:54:00:12:34:03,model=e1000 \
++ -net nic,vlan=2,macaddr=52:54:00:12:34:04,model=e1000 \
++ -net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \
++ -watchdog i6300esb -watchdog-action poweroff \
++ -no-reboot \
++ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw
console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
++ -initrd "$TESTDIR"/initramfs.testing
++ fi
++
+ {
+ read OK
+ if [[ "$OK" != "OK" ]]; then
+@@ -167,7 +189,7 @@ test_setup() {
+ mke2fs -j -F -- "$TESTDIR"/server.ext3
+ mkdir -- "$TESTDIR"/mnt
+ mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt
+-
++ kernel=$KVERSION
+ (
+ export initdir="$TESTDIR"/mnt
+ . "$basedir"/dracut-init.sh
+@@ -203,7 +225,7 @@ test_setup() {
+ [ -f /etc/netconfig ] && inst_multiple /etc/netconfig
+ type -P dhcpd >/dev/null && inst_multiple dhcpd
+ [ -x /usr/sbin/dhcpd3 ] && inst /usr/sbin/dhcpd3 /usr/sbin/dhcpd
+- instmods nfsd sunrpc ipv6 lockd af_packet 8021q
++ instmods nfsd sunrpc ipv6 lockd af_packet 8021q ipvlan macvlan
+ inst_simple /etc/os-release
+ inst ./server-init.sh /sbin/init
+ inst ./hosts /etc/hosts
+@@ -286,7 +308,7 @@ test_setup() {
+ $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
+ --no-early-microcode \
+ -m "udev-rules base rootfs-block fs-lib debug kernel-modules watchdog"
\
+- -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4
nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
++ -d "ipvlan macvlan af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2
nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
+ --no-hostonly-cmdline -N \
+ -f "$TESTDIR"/initramfs.server "$KVERSION" || return 1
+
+@@ -295,7 +317,7 @@ test_setup() {
+ --no-early-microcode \
+ -o "plymouth" \
+ -a "debug" \
+- -d "af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3
nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
++ -d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000
nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
+ --no-hostonly-cmdline -N \
+ -f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1
+ }
+
diff --git a/0031.patch b/0031.patch
new file mode 100644
index 0000000..4967ae3
--- /dev/null
+++ b/0031.patch
@@ -0,0 +1,23 @@
+From bb75d16521a9d76ccedbf06f3a6239efbbca77d7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 14:07:12 +0200
+Subject: [PATCH] kernel-network-modules: add vlan kernel modules
+
+---
+ modules.d/90kernel-network-modules/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90kernel-network-modules/module-setup.sh
b/modules.d/90kernel-network-modules/module-setup.sh
+index 16ed3a74..600ef112 100755
+--- a/modules.d/90kernel-network-modules/module-setup.sh
++++ b/modules.d/90kernel-network-modules/module-setup.sh
+@@ -28,7 +28,7 @@ installkernel() {
+ =drivers/net/phy \
+ =drivers/net/team \
+ =drivers/net/ethernet \
+- ecb arc4 bridge stp llc ipv6 bonding 8021q af_packet virtio_net xennet
++ ecb arc4 bridge stp llc ipv6 bonding 8021q ipvlan macvlan af_packet virtio_net
xennet
+ hostonly="" instmods iscsi_ibft crc32c iscsi_boot_sysfs
+ }
+
+
diff --git a/0032.patch b/0032.patch
new file mode 100644
index 0000000..af3d99e
--- /dev/null
+++ b/0032.patch
@@ -0,0 +1,37 @@
+From f9c8b3112aee5216a6bb5a42fb46146f6f228854 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 14:12:54 +0200
+Subject: [PATCH] TEST-50-MULTINIC/test.sh: fixed server startup
+
+---
+ test/TEST-50-MULTINIC/test.sh | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 02443c40..d7cec437 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -29,7 +29,9 @@ run_server() {
+ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
+ else
+ $testdir/run-qemu \
+- -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m
512M -smp 2 -nographic \
++ -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3
\
++ -m 512M -smp 2 \
++ -display none \
+ -net socket,vlan=0,connect=127.0.0.1:12350 \
+ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+@@ -38,8 +40,9 @@ run_server() {
+ -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro
console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console
loglevel=7" \
+- -initrd "$TESTDIR"/initramfs.testing
++ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw
console=ttyS0,115200n81 selinux=0" \
++ -initrd "$TESTDIR"/initramfs.server \
++ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
+ fi
+
+ sudo chmod 644 -- "$TESTDIR"/server.pid || return 1
+
diff --git a/0033.patch b/0033.patch
new file mode 100644
index 0000000..e102129
--- /dev/null
+++ b/0033.patch
@@ -0,0 +1,21 @@
+From 604c09b1dacd4a364ee88d0e405a4e6692bdc1c2 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 15:28:56 +0200
+Subject: [PATCH] TEST-31-ISCSI-MULTI/test.sh: fixed test description
+
+---
+ test/TEST-31-ISCSI-MULTI/test.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
+index c2f86ac8..1ed3fb7b 100755
+--- a/test/TEST-31-ISCSI-MULTI/test.sh
++++ b/test/TEST-31-ISCSI-MULTI/test.sh
+@@ -1,5 +1,5 @@
+ #!/bin/bash
+-TEST_DESCRIPTION="root filesystem over iSCSI"
++TEST_DESCRIPTION="root filesystem over multiple iSCSI"
+
+ KVERSION=${KVERSION-$(uname -r)}
+
+
diff --git a/0034.patch b/0034.patch
new file mode 100644
index 0000000..b78aca3
--- /dev/null
+++ b/0034.patch
@@ -0,0 +1,86 @@
+From a2dbecfcd65ac243363c9544442f7bf526ec6091 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 15:42:21 +0200
+Subject: [PATCH] test: add TEST_RUN_ID
+
+---
+ test/test-functions | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/test/test-functions b/test/test-functions
+index f27be912..bde5f742 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -2,11 +2,11 @@
+ PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ export PATH
+
+-[[ -e .testdir ]] && . .testdir
++[[ -e .testdir${TEST_RUN_ID:+-$TEST_RUN_ID} ]] && .
.testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then
+ TESTDIR=$(mktemp -d -p "/var/tmp" -t dracut-test.XXXXXX)
+ fi
+-echo "TESTDIR=\"$TESTDIR\"" > .testdir
++echo "TESTDIR=\"$TESTDIR\"" >
.testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ export TESTDIR
+
+ command -v test_check &>/dev/null || test_check() {
+@@ -50,11 +50,11 @@ while (($# > 0)); do
+ echo "TEST CLEANUP: $TEST_DESCRIPTION"
+ test_cleanup
+ rm -fr -- "$TESTDIR"
+- rm -f -- .testdir
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $?;;
+ --all)
+ check_root
+- if ! test_check 2&>test.log ; then
++ if ! test_check 2&>test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING
"[SKIPPED]" $COLOR_NORMAL
+ exit 0;
+ else
+@@ -66,9 +66,9 @@ while (($# > 0)); do
+ ret=$?
+ test_cleanup
+ rm -fr -- "$TESTDIR"
+- rm -f -- .testdir
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+- ) </dev/null >test.log 2>&1
++ ) </dev/null >test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
+ else
+ set -o pipefail
+ (
+@@ -76,25 +76,25 @@ while (($# > 0)); do
+ ret=$?
+ test_cleanup
+ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]];
then
+- mv [[ -f "$TESTDIR"/server.log ]] ./
++ mv [[ -f "$TESTDIR"/server.log ]]
./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ fi
+ rm -fr -- "$TESTDIR"
+- rm -f -- .testdir
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+- ) </dev/null 2>&1 | tee test.log
++ ) </dev/null 2>&1 | tee test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ fi
+ ret=$?
+ set +o pipefail
+ if [ $ret -eq 0 ]; then
+- rm -- test.log
++ rm -- test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]"
$COLOR_NORMAL
+ else
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ if [ "$V" == "2" ]; then
+- cat $(pwd)/server.log $(pwd)/test.log
++ cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
$(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ else
+- echo "see $(pwd)/test.log"
++ echo "see $(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
+ fi
+ fi
+ exit $ret;;
+
diff --git a/0035.patch b/0035.patch
new file mode 100644
index 0000000..9741f85
--- /dev/null
+++ b/0035.patch
@@ -0,0 +1,26 @@
+From 0f294d90b246e15d00dd56627a8085e5bfc5bf85 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 15:54:42 +0200
+Subject: [PATCH] TEST-31-ISCSI-MULTI: increase verbose level
+
+---
+ test/TEST-31-ISCSI-MULTI/test.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
+index 1ed3fb7b..5c38249c 100755
+--- a/test/TEST-31-ISCSI-MULTI/test.sh
++++ b/test/TEST-31-ISCSI-MULTI/test.sh
+@@ -3,9 +3,9 @@ TEST_DESCRIPTION="root filesystem over multiple iSCSI"
+
+ KVERSION=${KVERSION-$(uname -r)}
+
+-DEBUGFAIL="loglevel=1"
++#DEBUGFAIL="loglevel=1"
+ #DEBUGFAIL="rd.shell rd.break rd.debug loglevel=7 "
+-#DEBUGFAIL="rd.debug loglevel=7 "
++DEBUGFAIL="rd.debug loglevel=7 "
+ #SERVER_DEBUG="rd.debug loglevel=7"
+ #SERIAL="tcp:127.0.0.1:9999"
+
+
diff --git a/0036.patch b/0036.patch
new file mode 100644
index 0000000..77f3c49
--- /dev/null
+++ b/0036.patch
@@ -0,0 +1,93 @@
+From 3c1a083e5c5e56bf2e26aa806f023d4f053fc7b7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 16:01:39 +0200
+Subject: [PATCH] add travis build job
+
+---
+ .travis.yml | 15 +++++++++++++++
+ fedora-test.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 70 insertions(+)
+
+diff --git a/.travis.yml b/.travis.yml
+new file mode 100644
+index 00000000..16f9a511
+--- /dev/null
++++ b/.travis.yml
+@@ -0,0 +1,15 @@
++sudo: required
++
++services:
++ - docker
++
++env:
++ matrix:
++ - IMAGE=latest
++ - IMAGE=rawhide
++
++before_script:
++- docker pull fedora:$IMAGE
++
++script:
++- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$
+diff --git a/fedora-test.sh b/fedora-test.sh
+new file mode 100755
+index 00000000..ee506caf
+--- /dev/null
++++ b/fedora-test.sh
+@@ -0,0 +1,55 @@
++#!/bin/bash
++
++set -ex
++
++cd ${0%/*}
++
++RUN_ID="$1"
++
++dnf -y update --best --allowerasing
++
++dnf -y install --best --allowerasing \
++ dash \
++ asciidoc \
++ mdadm \
++ lvm2 \
++ dmraid \
++ cryptsetup \
++ nfs-utils \
++ nbd \
++ dhcp-server \
++ scsi-target-utils \
++ iscsi-initiator-utils \
++ strace \
++ btrfs-progs \
++ kmod-devel \
++ gcc \
++ bzip2 \
++ xz \
++ tar \
++ wget \
++ rpm-build \
++ make \
++ git \
++ bash-completion \
++ sudo \
++ kernel \
++ dhcp-client \
++ /usr/bin/qemu-kvm \
++ e2fsprogs \
++ $NULL
++
++./configure
++
++NCPU=$(getconf _NPROCESSORS_ONLN)
++
++make -j$NCPU all syncheck rpm
++
++cd test
++
++time sudo make -j$((NCPU/2+1)) \
++ KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn
| head -1) \
++ TEST_RUN_ID=$RUN_ID \
++ -k V=2 \
++ SKIP="14 16" \
++ check
+
diff --git a/0037.patch b/0037.patch
new file mode 100644
index 0000000..6a4263b
--- /dev/null
+++ b/0037.patch
@@ -0,0 +1,44 @@
+From b7774da97ca743ada8a94d5eab4484cb96504ca0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 16:18:53 +0200
+Subject: [PATCH] might even run without kvm
+
+---
+ .travis.yml | 5 +----
+ test/run-qemu | 1 +
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 16f9a511..a71d9be2 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -1,15 +1,12 @@
++language: generic
+ sudo: required
+-
+ services:
+ - docker
+-
+ env:
+ matrix:
+ - IMAGE=latest
+ - IMAGE=rawhide
+-
+ before_script:
+ - docker pull fedora:$IMAGE
+-
+ script:
+ - docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$
+diff --git a/test/run-qemu b/test/run-qemu
+index a4e15548..c28de2db 100755
+--- a/test/run-qemu
++++ b/test/run-qemu
+@@ -8,6 +8,7 @@ $(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu
&& ARGS="-kernel-kqemu "
+ [[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm &&
ARGS=""
+ [[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm
&& ARGS=""
+ [[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] &&
BIN=/usr/libexec/qemu-kvm && ARGS=""
++[[ -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname
-i) && ARGS=""
+ [[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] &&
BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm"
+
+ [[ $BIN ]] || {
+
diff --git a/0038.patch b/0038.patch
new file mode 100644
index 0000000..2b03b1f
--- /dev/null
+++ b/0038.patch
@@ -0,0 +1,23 @@
+From fba4d2843382540839d90abbaa2cae0d5bf1c2dd Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 16:30:42 +0200
+Subject: [PATCH] TEST-50-MULTINIC: fixed server.log
+
+---
+ test/TEST-50-MULTINIC/test.sh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index d7cec437..0a4d29c2 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -38,6 +38,8 @@ run_server() {
+ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+ -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
+ -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
++ ${SERIAL:+-serial "$SERIAL"} \
++ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw
console=ttyS0,115200n81 selinux=0" \
+
diff --git a/0039.patch b/0039.patch
new file mode 100644
index 0000000..33b0ab2
--- /dev/null
+++ b/0039.patch
@@ -0,0 +1,51 @@
+From cafe6675c2e54cbdc576785bc98e5f7fda76ba7c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 16:31:00 +0200
+Subject: [PATCH] test/run-qemu: move -cpu host to kvm args
+
+---
+ fedora-test.sh | 1 +
+ test/run-qemu | 12 ++++++------
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/fedora-test.sh b/fedora-test.sh
+index ee506caf..146c7f2f 100755
+--- a/fedora-test.sh
++++ b/fedora-test.sh
+@@ -36,6 +36,7 @@ dnf -y install --best --allowerasing \
+ kernel \
+ dhcp-client \
+ /usr/bin/qemu-kvm \
++ /usr/bin/qemu-system-$(uname -i) \
+ e2fsprogs \
+ $NULL
+
+diff --git a/test/run-qemu b/test/run-qemu
+index c28de2db..4eb497ff 100755
+--- a/test/run-qemu
++++ b/test/run-qemu
+@@ -4,12 +4,12 @@
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+ [[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=""
+-$(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu &&
ARGS="-kernel-kqemu "
+-[[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm &&
ARGS=""
+-[[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm
&& ARGS=""
+-[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] &&
BIN=/usr/libexec/qemu-kvm && ARGS=""
++$(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu &&
ARGS="-kernel-kqemu -cpu host"
++[[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm &&
ARGS="-cpu host"
++[[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm
&& ARGS="-cpu host"
++[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] &&
BIN=/usr/libexec/qemu-kvm && ARGS="-cpu host"
+ [[ -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname
-i) && ARGS=""
+-[[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] &&
BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm"
++[[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] &&
BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm -cpu host"
+
+ [[ $BIN ]] || {
+ echo "Could not find a working KVM or QEMU to test with!" >&2
+@@ -31,4 +31,4 @@ if ! [ -f "$VMLINUZ" ]; then
+ fi
+ fi
+
+-exec sudo $BIN $ARGS -kernel $VMLINUZ -cpu host "$@"
++exec sudo $BIN $ARGS -kernel $VMLINUZ "$@"
+
diff --git a/0040.patch b/0040.patch
new file mode 100644
index 0000000..d65f542
--- /dev/null
+++ b/0040.patch
@@ -0,0 +1,67 @@
+From 9288d21b9fd992cc7a32fbf79ad4f80b070e2277 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 16:37:01 +0200
+Subject: [PATCH] TEST-50-MULTINIC: removed bogus qemu compat server call
+
+---
+ test/TEST-50-MULTINIC/test.sh | 46 ++++++++++++-------------------------------
+ 1 file changed, 13 insertions(+), 33 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 0a4d29c2..495a66f2 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -13,39 +13,19 @@ run_server() {
+
+ fsck -a "$TESTDIR"/server.ext3 || return 1
+
+- if $testdir/run-qemu --help | grep -qF -m1 'netdev
hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
+- $testdir/run-qemu \
+- -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3
\
+- -m 512M -smp 2 \
+- -display none \
+- -net socket,listen=127.0.0.1:12350 \
+- -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
+- ${SERIAL:+-serial "$SERIAL"} \
+- ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+- -watchdog i6300esb -watchdog-action poweroff \
+- -no-reboot \
+- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw
console=ttyS0,115200n81 selinux=0" \
+- -initrd "$TESTDIR"/initramfs.server \
+- -pidfile "$TESTDIR"/server.pid -daemonize || return 1
+- else
+- $testdir/run-qemu \
+- -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3
\
+- -m 512M -smp 2 \
+- -display none \
+- -net socket,vlan=0,connect=127.0.0.1:12350 \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+- -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
+- -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
+- ${SERIAL:+-serial "$SERIAL"} \
+- ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+- -watchdog i6300esb -watchdog-action poweroff \
+- -no-reboot \
+- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw
console=ttyS0,115200n81 selinux=0" \
+- -initrd "$TESTDIR"/initramfs.server \
+- -pidfile "$TESTDIR"/server.pid -daemonize || return 1
+- fi
++ $testdir/run-qemu \
++ -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
++ -m 512M -smp 2 \
++ -display none \
++ -net socket,listen=127.0.0.1:12350 \
++ -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
++ ${SERIAL:+-serial "$SERIAL"} \
++ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
++ -watchdog i6300esb -watchdog-action poweroff \
++ -no-reboot \
++ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw
console=ttyS0,115200n81 selinux=0" \
++ -initrd "$TESTDIR"/initramfs.server \
++ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
+
+ sudo chmod 644 -- "$TESTDIR"/server.pid || return 1
+
+
diff --git a/0041.patch b/0041.patch
new file mode 100644
index 0000000..ca75cee
--- /dev/null
+++ b/0041.patch
@@ -0,0 +1,23 @@
+From d15c15c8f54d3aa97f7906e4f926584ac646fc5e Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 16:54:27 +0200
+Subject: [PATCH] test/test-functions: be verbose for any $V not empty
+
+---
+ test/test-functions | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/test-functions b/test/test-functions
+index bde5f742..d6b28d20 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -60,7 +60,7 @@ while (($# > 0)); do
+ else
+ echo "TEST: $TEST_DESCRIPTION [STARTED]";
+ fi
+- if [ "$V" != "1" ]; then
++ if ! [[ "$V" ]]; then
+ (
+ test_setup && test_run
+ ret=$?
+
diff --git a/0042.patch b/0042.patch
new file mode 100644
index 0000000..6410dbe
--- /dev/null
+++ b/0042.patch
@@ -0,0 +1,25 @@
+From 1363167d655f8d08ea8fd71e56c8c85ff94ccc04 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 16:58:52 +0200
+Subject: [PATCH] Update README.md
+
+---
+ README.md | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/README.md b/README.md
+index e229641b..36ae7e1b 100644
+--- a/README.md
++++ b/README.md
+@@ -2,6 +2,10 @@
+
+ dracut is an initramfs infrastructure.
+
++## Travis
++
++[![Build
Status](https://travis-ci.org/dracutdevs/dracut.svg?branch=master)](https...
++
+ ## CentOS CI
+
+ [![Build
Status](https://ci.centos.org/job/dracut-push-master/badge/icon)](https:/...
+
diff --git a/0043.patch b/0043.patch
new file mode 100644
index 0000000..302e140
--- /dev/null
+++ b/0043.patch
@@ -0,0 +1,23 @@
+From 75b8b144a1cf5c7e15e0454f847615cadf6518e9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 17:02:14 +0200
+Subject: [PATCH] fedora-test.sh: don't parallelize travis tests
+
+---
+ fedora-test.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fedora-test.sh b/fedora-test.sh
+index 146c7f2f..9528f08c 100755
+--- a/fedora-test.sh
++++ b/fedora-test.sh
+@@ -48,7 +48,7 @@ make -j$NCPU all syncheck rpm
+
+ cd test
+
+-time sudo make -j$((NCPU/2+1)) \
++time sudo make \
+ KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn
| head -1) \
+ TEST_RUN_ID=$RUN_ID \
+ -k V=2 \
+
diff --git a/0044.patch b/0044.patch
new file mode 100644
index 0000000..5e1c34c
--- /dev/null
+++ b/0044.patch
@@ -0,0 +1,26 @@
+From da5a44cfb727561e3a2b8e6e24003cd410537cfc Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Tue, 14 Aug 2018 17:06:58 +0200
+Subject: [PATCH] .travis.yml: add gitter notifications
+
+---
+ .travis.yml | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/.travis.yml b/.travis.yml
+index a71d9be2..96dcd951 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -10,3 +10,11 @@ before_script:
+ - docker pull fedora:$IMAGE
+ script:
+ - docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$
++notifications:
++ webhooks:
++ urls:
++ -
https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e
++ on_success: change # options: [always|never|change] default: always
++ on_failure: always # options: [always|never|change] default: always
++ on_start: never # options: [always|never|change] default: always
++
+
diff --git a/0045.patch b/0045.patch
new file mode 100644
index 0000000..dd8a201
--- /dev/null
+++ b/0045.patch
@@ -0,0 +1,94 @@
+From 65d16d19141d0378f6cbab33b435a231ffdd37c4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 08:50:11 +0200
+Subject: [PATCH] travis: extend matrix
+
+---
+ .travis.yml | 45 ++++++++++++++++++++++++++++++++++++++++++---
+ fedora-test.sh | 4 +++-
+ 2 files changed, 45 insertions(+), 4 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 96dcd951..fbaafdac 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -4,12 +4,51 @@ services:
+ - docker
+ env:
+ matrix:
+- - IMAGE=latest
+- - IMAGE=rawhide
++ - IMAGE=latest TESTS=01
++ - IMAGE=latest TESTS=02
++ - IMAGE=latest TESTS=03
++ - IMAGE=latest TESTS=04
++ - IMAGE=latest TESTS=10
++ - IMAGE=latest TESTS=11
++ - IMAGE=latest TESTS=12
++ - IMAGE=latest TESTS=13
++ - IMAGE=latest TESTS=14
++ - IMAGE=latest TESTS=15
++ - IMAGE=latest TESTS=16
++ - IMAGE=latest TESTS=17
++ - IMAGE=latest TESTS=18
++ - IMAGE=latest TESTS=20
++ - IMAGE=latest TESTS=30
++ - IMAGE=latest TESTS=31
++ - IMAGE=latest TESTS=40
++ - IMAGE=latest TESTS=50
++ - IMAGE=latest TESTS=70
++ - IMAGE=latest TESTS=99
++ - IMAGE=rawhide TESTS=01
++ - IMAGE=rawhide TESTS=02
++ - IMAGE=rawhide TESTS=03
++ - IMAGE=rawhide TESTS=04
++ - IMAGE=rawhide TESTS=10
++ - IMAGE=rawhide TESTS=11
++ - IMAGE=rawhide TESTS=12
++ - IMAGE=rawhide TESTS=13
++ - IMAGE=rawhide TESTS=14
++ - IMAGE=rawhide TESTS=15
++ - IMAGE=rawhide TESTS=16
++ - IMAGE=rawhide TESTS=17
++ - IMAGE=rawhide TESTS=18
++ - IMAGE=rawhide TESTS=20
++ - IMAGE=rawhide TESTS=30
++ - IMAGE=rawhide TESTS=31
++ - IMAGE=rawhide TESTS=40
++ - IMAGE=rawhide TESTS=50
++ - IMAGE=rawhide TESTS=70
++ - IMAGE=rawhide TESTS=99
++
+ before_script:
+ - docker pull fedora:$IMAGE
+ script:
+-- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$
++- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$ $TESTS
+ notifications:
+ webhooks:
+ urls:
+diff --git a/fedora-test.sh b/fedora-test.sh
+index 9528f08c..df7147c6 100755
+--- a/fedora-test.sh
++++ b/fedora-test.sh
+@@ -2,9 +2,10 @@
+
+ set -ex
+
+-cd ${0%/*}
++[[ -d ${0%/*} ]] && cd ${0%/*}
+
+ RUN_ID="$1"
++TESTS=$2
+
+ dnf -y update --best --allowerasing
+
+@@ -51,6 +52,7 @@ cd test
+ time sudo make \
+ KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn
| head -1) \
+ TEST_RUN_ID=$RUN_ID \
++ ${TESTS:+TESTS="$TESTS"} \
+ -k V=2 \
+ SKIP="14 16" \
+ check
+
diff --git a/0046.patch b/0046.patch
new file mode 100644
index 0000000..8618614
--- /dev/null
+++ b/0046.patch
@@ -0,0 +1,94 @@
+From 1ebbe2eb7b177f169e48df6318d9169e9ae1afe9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 09:10:29 +0200
+Subject: [PATCH] travis: combine jobs
+
+---
+ .travis.yml | 64 +++++++++++++++++++++----------------------------------------
+ 1 file changed, 22 insertions(+), 42 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index fbaafdac..f2cd8b26 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -1,49 +1,29 @@
+ language: generic
+ sudo: required
+ services:
+- - docker
++- docker
+ env:
+ matrix:
+- - IMAGE=latest TESTS=01
+- - IMAGE=latest TESTS=02
+- - IMAGE=latest TESTS=03
+- - IMAGE=latest TESTS=04
+- - IMAGE=latest TESTS=10
+- - IMAGE=latest TESTS=11
+- - IMAGE=latest TESTS=12
+- - IMAGE=latest TESTS=13
+- - IMAGE=latest TESTS=14
+- - IMAGE=latest TESTS=15
+- - IMAGE=latest TESTS=16
+- - IMAGE=latest TESTS=17
+- - IMAGE=latest TESTS=18
+- - IMAGE=latest TESTS=20
+- - IMAGE=latest TESTS=30
+- - IMAGE=latest TESTS=31
+- - IMAGE=latest TESTS=40
+- - IMAGE=latest TESTS=50
+- - IMAGE=latest TESTS=70
+- - IMAGE=latest TESTS=99
+- - IMAGE=rawhide TESTS=01
+- - IMAGE=rawhide TESTS=02
+- - IMAGE=rawhide TESTS=03
+- - IMAGE=rawhide TESTS=04
+- - IMAGE=rawhide TESTS=10
+- - IMAGE=rawhide TESTS=11
+- - IMAGE=rawhide TESTS=12
+- - IMAGE=rawhide TESTS=13
+- - IMAGE=rawhide TESTS=14
+- - IMAGE=rawhide TESTS=15
+- - IMAGE=rawhide TESTS=16
+- - IMAGE=rawhide TESTS=17
+- - IMAGE=rawhide TESTS=18
+- - IMAGE=rawhide TESTS=20
+- - IMAGE=rawhide TESTS=30
+- - IMAGE=rawhide TESTS=31
+- - IMAGE=rawhide TESTS=40
+- - IMAGE=rawhide TESTS=50
+- - IMAGE=rawhide TESTS=70
+- - IMAGE=rawhide TESTS=99
++ - IMAGE=latest TESTS=01
++ - IMAGE=latest TESTS="02 03 04"
++ - IMAGE=latest TESTS="10 11 12 13 15 17 18"
++ - IMAGE=latest TESTS=20
++ - IMAGE=latest TESTS=30
++ - IMAGE=latest TESTS=31
++ - IMAGE=latest TESTS=40
++ - IMAGE=latest TESTS=50
++ - IMAGE=latest TESTS=70
++ - IMAGE=latest TESTS=99
++ - IMAGE=rawhide TESTS=01
++ - IMAGE=rawhide TESTS="02 03 04"
++ - IMAGE=rawhide TESTS="10 11 12 13 15 17 18"
++ - IMAGE=rawhide TESTS=20
++ - IMAGE=rawhide TESTS=30
++ - IMAGE=rawhide TESTS=31
++ - IMAGE=rawhide TESTS=40
++ - IMAGE=rawhide TESTS=50
++ - IMAGE=rawhide TESTS=70
++ - IMAGE=rawhide TESTS=99
+
+ before_script:
+ - docker pull fedora:$IMAGE
+@@ -52,7 +32,7 @@ script:
+ notifications:
+ webhooks:
+ urls:
+- -
https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e
++ -
https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e
+ on_success: change # options: [always|never|change] default: always
+ on_failure: always # options: [always|never|change] default: always
+ on_start: never # options: [always|never|change] default: always
+
diff --git a/0047.patch b/0047.patch
new file mode 100644
index 0000000..7e63148
--- /dev/null
+++ b/0047.patch
@@ -0,0 +1,24 @@
+From 311198868044b79e8e4f37872514f580b51e4ceb Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 09:19:52 +0200
+Subject: [PATCH] dracut.sh: remove bogus dir removal for --rebuild
+
+---
+ dracut.sh | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 6614d27d..8ee8c168 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -474,9 +474,6 @@ if [[ $append_args_l == "yes" ]]; then
+ eval set -- "$TEMP"
+ rearrange_params "$@"
+ fi
+-
+- # clean the temporarily used scratch-pad directory
+- rm -rf $scratch_dir
+ fi
+
+ unset PARMS_TO_STORE
+
diff --git a/0048.patch b/0048.patch
new file mode 100644
index 0000000..bf00e5d
--- /dev/null
+++ b/0048.patch
@@ -0,0 +1,49 @@
+From 01f9d0d9bf47f80823094de6b184ee67023406c7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 09:26:35 +0200
+Subject: [PATCH] travis: combine more tests
+
+---
+ .travis.yml | 14 +++++---------
+ 1 file changed, 5 insertions(+), 9 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index f2cd8b26..a99418e3 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -5,21 +5,17 @@ services:
+ env:
+ matrix:
+ - IMAGE=latest TESTS=01
+- - IMAGE=latest TESTS="02 03 04"
+- - IMAGE=latest TESTS="10 11 12 13 15 17 18"
++ - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=latest TESTS=20
+- - IMAGE=latest TESTS=30
+- - IMAGE=latest TESTS=31
++ - IMAGE=latest TESTS="30 31"
+ - IMAGE=latest TESTS=40
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+ - IMAGE=rawhide TESTS=01
+- - IMAGE=rawhide TESTS="02 03 04"
+- - IMAGE=rawhide TESTS="10 11 12 13 15 17 18"
++ - IMAGE=rawhide TESTS="02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=rawhide TESTS=20
+- - IMAGE=rawhide TESTS=30
+- - IMAGE=rawhide TESTS=31
++ - IMAGE=rawhide TESTS="30 31"
+ - IMAGE=rawhide TESTS=40
+ - IMAGE=rawhide TESTS=50
+ - IMAGE=rawhide TESTS=70
+@@ -28,7 +24,7 @@ env:
+ before_script:
+ - docker pull fedora:$IMAGE
+ script:
+-- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$ $TESTS
++- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$ "$TESTS"
+ notifications:
+ webhooks:
+ urls:
+
diff --git a/0049.patch b/0049.patch
new file mode 100644
index 0000000..f471892
--- /dev/null
+++ b/0049.patch
@@ -0,0 +1,52 @@
+From 3c8d3a65656707148d5f9e5de1c0191339a72053 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 09:35:33 +0200
+Subject: [PATCH] travis: don't run TEST-40-NBD
+
+---
+ .travis.yml | 16 +++++++---------
+ fedora-test.sh | 1 -
+ 2 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index a99418e3..d6d3947c 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -4,19 +4,17 @@ services:
+ - docker
+ env:
+ matrix:
+- - IMAGE=latest TESTS=01
+- - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
+- - IMAGE=latest TESTS=20
+- - IMAGE=latest TESTS="30 31"
+- - IMAGE=latest TESTS=40
+- - IMAGE=latest TESTS=50
+- - IMAGE=latest TESTS=70
+- - IMAGE=latest TESTS=99
++ - IMAGE=latest TESTS=01
++ - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
++ - IMAGE=latest TESTS=20
++ - IMAGE=latest TESTS="30 31"
++ - IMAGE=latest TESTS=50
++ - IMAGE=latest TESTS=70
++ - IMAGE=latest TESTS=99
+ - IMAGE=rawhide TESTS=01
+ - IMAGE=rawhide TESTS="02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=rawhide TESTS=20
+ - IMAGE=rawhide TESTS="30 31"
+- - IMAGE=rawhide TESTS=40
+ - IMAGE=rawhide TESTS=50
+ - IMAGE=rawhide TESTS=70
+ - IMAGE=rawhide TESTS=99
+diff --git a/fedora-test.sh b/fedora-test.sh
+index df7147c6..5e7d34d6 100755
+--- a/fedora-test.sh
++++ b/fedora-test.sh
+@@ -54,5 +54,4 @@ time sudo make \
+ TEST_RUN_ID=$RUN_ID \
+ ${TESTS:+TESTS="$TESTS"} \
+ -k V=2 \
+- SKIP="14 16" \
+ check
+
diff --git a/0050.patch b/0050.patch
new file mode 100644
index 0000000..a5606f0
--- /dev/null
+++ b/0050.patch
@@ -0,0 +1,32 @@
+From 79afb279c273d46b65fafc2c686ed99c5433fe94 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 09:48:02 +0200
+Subject: [PATCH] travis: fedora-test.sh send dnf output to dev/null
+
+---
+ fedora-test.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/fedora-test.sh b/fedora-test.sh
+index 5e7d34d6..e7d0f633 100755
+--- a/fedora-test.sh
++++ b/fedora-test.sh
+@@ -7,7 +7,7 @@ set -ex
+ RUN_ID="$1"
+ TESTS=$2
+
+-dnf -y update --best --allowerasing
++dnf -y update --best --allowerasing &>/dev/null
+
+ dnf -y install --best --allowerasing \
+ dash \
+@@ -39,7 +39,7 @@ dnf -y install --best --allowerasing \
+ /usr/bin/qemu-kvm \
+ /usr/bin/qemu-system-$(uname -i) \
+ e2fsprogs \
+- $NULL
++ $NULL &>/dev/null
+
+ ./configure
+
+
diff --git a/0051.patch b/0051.patch
new file mode 100644
index 0000000..b6f5692
--- /dev/null
+++ b/0051.patch
@@ -0,0 +1,46 @@
+From c31a80c9edf8603cbdc5d2fe4465571a2ffcdff0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 09:50:52 +0200
+Subject: [PATCH] TEST-01: remove memdebug
+
+---
+ .travis.yml | 6 ++----
+ test/TEST-01-BASIC/test.sh | 2 +-
+ 2 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index d6d3947c..1f50b6d9 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -4,15 +4,13 @@ services:
+ - docker
+ env:
+ matrix:
+- - IMAGE=latest TESTS=01
+- - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
++ - IMAGE=latest TESTS="01 02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS="30 31"
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+- - IMAGE=rawhide TESTS=01
+- - IMAGE=rawhide TESTS="02 03 04 10 11 12 13 15 17 18"
++ - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=rawhide TESTS=20
+ - IMAGE=rawhide TESTS="30 31"
+ - IMAGE=rawhide TESTS=50
+diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh
+index 137249f4..455afef6 100755
+--- a/test/TEST-01-BASIC/test.sh
++++ b/test/TEST-01-BASIC/test.sh
+@@ -15,7 +15,7 @@ test_run() {
+ -net none \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+- -append "panic=1 root=LABEL=dracut rw systemd.log_level=debug
systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0
$DEBUGFAIL rd.memdebug=4" \
++ -append "panic=1 root=LABEL=dracut rw systemd.log_level=debug
systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0
$DEBUGFAIL" \
+ -initrd $TESTDIR/initramfs.testing || return 1
+ grep -F -m 1 -q dracut-root-block-success $TESTDIR/result || return 1
+ }
+
diff --git a/0052.patch b/0052.patch
new file mode 100644
index 0000000..9264dce
--- /dev/null
+++ b/0052.patch
@@ -0,0 +1,149 @@
+From 51d0a545557d535f814e402fff20274f9e125d85 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 10:16:52 +0200
+Subject: [PATCH] travis: use own logtee.c to reduce log output
+
+---
+ .travis.yml | 12 ++++++------
+ Makefile | 3 +++
+ fedora-test.sh | 2 +-
+ logtee.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-functions | 15 ++++++++++++++-
+ 5 files changed, 70 insertions(+), 8 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 1f50b6d9..5298a816 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -10,12 +10,12 @@ env:
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+- - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
+- - IMAGE=rawhide TESTS=20
+- - IMAGE=rawhide TESTS="30 31"
+- - IMAGE=rawhide TESTS=50
+- - IMAGE=rawhide TESTS=70
+- - IMAGE=rawhide TESTS=99
++# - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
++# - IMAGE=rawhide TESTS=20
++# - IMAGE=rawhide TESTS="30 31"
++# - IMAGE=rawhide TESTS=50
++# - IMAGE=rawhide TESTS=70
++# - IMAGE=rawhide TESTS=99
+
+ before_script:
+ - docker pull fedora:$IMAGE
+diff --git a/Makefile b/Makefile
+index 414fb330..cd02dab0 100644
+--- a/Makefile
++++ b/Makefile
+@@ -63,6 +63,9 @@ install/strv.o: install/strv.c install/strv.h install/util.h
install/macro.h ins
+ install/dracut-install: $(DRACUT_INSTALL_OBJECTS)
+ $(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(KMOD_LIBS)
+
++logtee: logtee.c
++ $(CC) $(LDFLAGS) -o $@ $<
++
+ dracut-install: install/dracut-install
+ ln -fs $< $@
+
+diff --git a/fedora-test.sh b/fedora-test.sh
+index e7d0f633..af38bc33 100755
+--- a/fedora-test.sh
++++ b/fedora-test.sh
+@@ -45,7 +45,7 @@ dnf -y install --best --allowerasing \
+
+ NCPU=$(getconf _NPROCESSORS_ONLN)
+
+-make -j$NCPU all syncheck rpm
++make -j$NCPU all syncheck rpm logtee
+
+ cd test
+
+diff --git a/logtee.c b/logtee.c
+new file mode 100644
+index 00000000..2f1937d4
+--- /dev/null
++++ b/logtee.c
+@@ -0,0 +1,46 @@
++#define _GNU_SOURCE
++#include <fcntl.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <errno.h>
++#include <limits.h>
++
++int
++main(int argc, char *argv[])
++{
++ int fd;
++ int len, slen;
++
++ if (argc != 2) {
++ fprintf(stderr, "Usage: %s <file>\n", argv[0]);
++ exit(EXIT_FAILURE);
++ }
++
++ fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);
++ if (fd == -1) {
++ perror("open");
++ exit(EXIT_FAILURE);
++ }
++
++ fprintf(stderr, "Logging to %s: ", argv[1]);
++
++ do {
++ len = splice(STDIN_FILENO, NULL, fd, NULL,
++ 65536, SPLICE_F_MOVE);
++
++ if (len < 0) {
++ if (errno == EAGAIN)
++ continue;
++ perror("tee");
++ exit(EXIT_FAILURE);
++ } else
++ if (len == 0)
++ break;
++ fprintf(stderr, ".", len);
++ } while (1);
++ close(fd);
++ fprintf(stderr, "\n");
++ exit(EXIT_SUCCESS);
++}
++
+diff --git a/test/test-functions b/test/test-functions
+index d6b28d20..02ceafec 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -60,7 +60,7 @@ while (($# > 0)); do
+ else
+ echo "TEST: $TEST_DESCRIPTION [STARTED]";
+ fi
+- if ! [[ "$V" ]]; then
++ if [[ "$V" == "1" ]]; then
+ (
+ test_setup && test_run
+ ret=$?
+@@ -69,6 +69,19 @@ while (($# > 0)); do
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+ ) </dev/null >test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
++ elif [[ "$V" == "2" ]]; then
++ set -o pipefail
++ (
++ test_setup && test_run
++ ret=$?
++ test_cleanup
++ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]];
then
++ mv [[ -f "$TESTDIR"/server.log ]]
./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ fi
++ rm -fr -- "$TESTDIR"
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
++ exit $ret
++ ) </dev/null 2>&1 | $basedir/logtee
test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ else
+ set -o pipefail
+ (
+
diff --git a/0053.patch b/0053.patch
new file mode 100644
index 0000000..006c0e5
--- /dev/null
+++ b/0053.patch
@@ -0,0 +1,24 @@
+From 110063c5850ea1cb95dd2af171adff1a03305e60 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 10:29:16 +0200
+Subject: [PATCH] travis: git check
+
+---
+ .travis.yml | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/.travis.yml b/.travis.yml
+index 5298a816..72cfe8f9 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -19,6 +19,9 @@ env:
+
+ before_script:
+ - docker pull fedora:$IMAGE
++- git describe --abbrev=0 --tags || :
++- git describe --tags || :
++
+ script:
+ - docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$ "$TESTS"
+ notifications:
+
diff --git a/0054.patch b/0054.patch
new file mode 100644
index 0000000..31318d1
--- /dev/null
+++ b/0054.patch
@@ -0,0 +1,39 @@
+From 6f90be2971439e84c4efb61d1fc888b165b3f3ca Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 10:33:06 +0200
+Subject: [PATCH] travis: fixup
+
+---
+ .travis.yml | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 72cfe8f9..cd05ceae 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -10,20 +10,15 @@ env:
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+-# - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
+-# - IMAGE=rawhide TESTS=20
+-# - IMAGE=rawhide TESTS="30 31"
+-# - IMAGE=rawhide TESTS=50
+-# - IMAGE=rawhide TESTS=70
+-# - IMAGE=rawhide TESTS=99
+
+ before_script:
+-- docker pull fedora:$IMAGE
+-- git describe --abbrev=0 --tags || :
+-- git describe --tags || :
++ - docker pull fedora:$IMAGE
++ - git describe --abbrev=0 --tags || :
++ - git describe --tags || :
+
+ script:
+ - docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$ "$TESTS"
++
+ notifications:
+ webhooks:
+ urls:
+
diff --git a/0055.patch b/0055.patch
new file mode 100644
index 0000000..0dd70c6
--- /dev/null
+++ b/0055.patch
@@ -0,0 +1,26 @@
+From 2b77ba0b75dad8f87c141fc517f2999b2e45ae0c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 10:36:17 +0200
+Subject: [PATCH] travis: fight with yaml
+
+---
+ .travis.yml | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index cd05ceae..38b29ca4 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -13,8 +13,9 @@ env:
+
+ before_script:
+ - docker pull fedora:$IMAGE
+- - git describe --abbrev=0 --tags || :
+- - git describe --tags || :
++ - |
++ git describe --abbrev=0 --tags || :
++ git describe --tags || :
+
+ script:
+ - docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh
$IMAGE-$$ "$TESTS"
+
diff --git a/0056.patch b/0056.patch
new file mode 100644
index 0000000..680bd88
--- /dev/null
+++ b/0056.patch
@@ -0,0 +1,22 @@
+From 9f02b291ac9c315b94d42c4c029645fb1298dac4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 10:39:49 +0200
+Subject: [PATCH] travis: git pull --tags
+
+---
+ .travis.yml | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/.travis.yml b/.travis.yml
+index 38b29ca4..01be428f 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -13,6 +13,7 @@ env:
+
+ before_script:
+ - docker pull fedora:$IMAGE
++ - git pull --tags
+ - |
+ git describe --abbrev=0 --tags || :
+ git describe --tags || :
+
diff --git a/0057.patch b/0057.patch
new file mode 100644
index 0000000..413d889
--- /dev/null
+++ b/0057.patch
@@ -0,0 +1,38 @@
+From 0ae584824519995219857ca7f447e73f31a6da9a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 10:46:57 +0200
+Subject: [PATCH] travis: git pull more depth
+
+---
+ .travis.yml | 2 +-
+ Makefile | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 01be428f..2df45f4d 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -13,7 +13,7 @@ env:
+
+ before_script:
+ - docker pull fedora:$IMAGE
+- - git pull --tags
++ - git pull --depth=100
+ - |
+ git describe --abbrev=0 --tags || :
+ git describe --tags || :
+diff --git a/Makefile b/Makefile
+index cd02dab0..80623437 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ -include dracut-version.sh
+
+-VERSION ?= $(shell [ -d .git ] && git describe --abbrev=0 --tags 2>/dev/null
|| echo $(DRACUT_VERSION))
+-GITVERSION ?= $(shell [ -d .git ] && { v=$$(git describe --tags 2>/dev/null);
[ -n "$$v" ] && [ $${v\#*-} != $$v ] && echo -$${v\#*-}; } )
++VERSION ?= $(shell [ -d .git ] && git describe --abbrev=0 --tags --always
2>/dev/null || echo $(DRACUT_VERSION))
++GITVERSION ?= $(shell [ -d .git ] && { v=$$(git describe --tags --always
2>/dev/null); [ -n "$$v" ] && [ $${v\#*-} != $$v ] && echo
-$${v\#*-}; } )
+
+ -include Makefile.inc
+
+
diff --git a/0058.patch b/0058.patch
new file mode 100644
index 0000000..017b251
--- /dev/null
+++ b/0058.patch
@@ -0,0 +1,66 @@
+From 67f43d2124cb827f45f4a1f3a2c1aae7cb08378e Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 11:13:55 +0200
+Subject: [PATCH] test: fixed test.log name
+
+---
+ test/test-functions | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/test/test-functions b/test/test-functions
+index 02ceafec..0c9d88c8 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -54,7 +54,7 @@ while (($# > 0)); do
+ exit $?;;
+ --all)
+ check_root
+- if ! test_check 2&>test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
++ if ! test_check 2&>test${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING
"[SKIPPED]" $COLOR_NORMAL
+ exit 0;
+ else
+@@ -68,7 +68,7 @@ while (($# > 0)); do
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+- ) </dev/null >test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
++ ) </dev/null >test${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
+ elif [[ "$V" == "2" ]]; then
+ set -o pipefail
+ (
+@@ -81,7 +81,7 @@ while (($# > 0)); do
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+- ) </dev/null 2>&1 | $basedir/logtee
test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ ) </dev/null 2>&1 | $basedir/logtee
test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ else
+ set -o pipefail
+ (
+@@ -94,20 +94,20 @@ while (($# > 0)); do
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+- ) </dev/null 2>&1 | tee test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ ) </dev/null 2>&1 | tee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ fi
+ ret=$?
+ set +o pipefail
+ if [ $ret -eq 0 ]; then
+- rm -- test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ rm -- test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]"
$COLOR_NORMAL
+ else
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ if [ "$V" == "2" ]; then
+- cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
$(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
$(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ else
+- echo "see $(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
++ echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
+ fi
+ fi
+ exit $ret;;
+
diff --git a/0059.patch b/0059.patch
new file mode 100644
index 0000000..1f96b3f
--- /dev/null
+++ b/0059.patch
@@ -0,0 +1,55 @@
+From f59664a01fa9b525e211fbcb837bf8b54cac9acb Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 11:14:11 +0200
+Subject: [PATCH] logtee: reduce output
+
+---
+ logtee.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/logtee.c b/logtee.c
+index 2f1937d4..2690e72d 100644
+--- a/logtee.c
++++ b/logtee.c
+@@ -6,6 +6,8 @@
+ #include <errno.h>
+ #include <limits.h>
+
++#define BUFLEN 4096
++
+ int
+ main(int argc, char *argv[])
+ {
+@@ -25,9 +27,11 @@ main(int argc, char *argv[])
+
+ fprintf(stderr, "Logging to %s: ", argv[1]);
+
++ slen = 0;
++
+ do {
+ len = splice(STDIN_FILENO, NULL, fd, NULL,
+- 65536, SPLICE_F_MOVE);
++ BUFLEN, SPLICE_F_MOVE);
+
+ if (len < 0) {
+ if (errno == EAGAIN)
+@@ -37,10 +41,14 @@ main(int argc, char *argv[])
+ } else
+ if (len == 0)
+ break;
+- fprintf(stderr, ".", len);
++ slen += len;
++ if ((slen/BUFLEN) > 0) {
++ fprintf(stderr, ".");
++ }
++ slen = slen % BUFLEN;
++
+ } while (1);
+ close(fd);
+ fprintf(stderr, "\n");
+ exit(EXIT_SUCCESS);
+-}
+-
++}
+\ No newline at end of file
+
diff --git a/0060.patch b/0060.patch
new file mode 100644
index 0000000..e616f92
--- /dev/null
+++ b/0060.patch
@@ -0,0 +1,30 @@
+From c128b969bb860dee863fcd3beed1f4097f6fb44a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 11:15:16 +0200
+Subject: [PATCH] travis: combine more tests
+
+---
+ .travis.yml | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 2df45f4d..dfb4a616 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -4,12 +4,12 @@ services:
+ - docker
+ env:
+ matrix:
+- - IMAGE=latest TESTS="01 02 03 04 10 11 12 13 15 17 18"
++ - IMAGE=latest TESTS="01 02 03 04 10 11"
++ - IMAGE=latest TESTS="12 13 15 17 18"
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS="30 31"
+ - IMAGE=latest TESTS=50
+- - IMAGE=latest TESTS=70
+- - IMAGE=latest TESTS=99
++ - IMAGE=latest TESTS="70 99"
+
+ before_script:
+ - docker pull fedora:$IMAGE
+
diff --git a/0061.patch b/0061.patch
new file mode 100644
index 0000000..e322ac1
--- /dev/null
+++ b/0061.patch
@@ -0,0 +1,23 @@
+From f8cad00948c10107f84b9fcba812589a256f8f80 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 11:47:21 +0200
+Subject: [PATCH] test: for V=2 tail only the last MB of logs
+
+---
+ test/test-functions | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/test-functions b/test/test-functions
+index 0c9d88c8..6d7f418b 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -104,7 +104,7 @@ while (($# > 0)); do
+ else
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ if [ "$V" == "2" ]; then
+- cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
$(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ tail -c 1048576 $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
$(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ else
+ echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
+
diff --git a/0062.patch b/0062.patch
new file mode 100644
index 0000000..7fbef0d
--- /dev/null
+++ b/0062.patch
@@ -0,0 +1,65 @@
+From 9c034dc326b4acd8e66af15f76f151311a5408bb Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 11:57:30 +0200
+Subject: [PATCH] travis: no rpm check for all matrix tests
+
+---
+ .travis.yml | 10 +++++-----
+ fedora-test.sh | 24 ++++++++++++++----------
+ 2 files changed, 19 insertions(+), 15 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index dfb4a616..075cbc6a 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -4,12 +4,12 @@ services:
+ - docker
+ env:
+ matrix:
+- - IMAGE=latest TESTS="01 02 03 04 10 11"
+- - IMAGE=latest TESTS="12 13 15 17 18"
++ - IMAGE=latest
++ - IMAGE=latest TESTS="01 02 03 04 10 11 12"
++ - IMAGE=latest TESTS="13 15 17 18"
+ - IMAGE=latest TESTS=20
+- - IMAGE=latest TESTS="30 31"
+- - IMAGE=latest TESTS=50
+- - IMAGE=latest TESTS="70 99"
++ - IMAGE=latest TESTS="30 31 99"
++ - IMAGE=latest TESTS="50 70"
+
+ before_script:
+ - docker pull fedora:$IMAGE
+diff --git a/fedora-test.sh b/fedora-test.sh
+index af38bc33..87023a84 100755
+--- a/fedora-test.sh
++++ b/fedora-test.sh
+@@ -45,13 +45,17 @@ dnf -y install --best --allowerasing \
+
+ NCPU=$(getconf _NPROCESSORS_ONLN)
+
+-make -j$NCPU all syncheck rpm logtee
+-
+-cd test
+-
+-time sudo make \
+- KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn
| head -1) \
+- TEST_RUN_ID=$RUN_ID \
+- ${TESTS:+TESTS="$TESTS"} \
+- -k V=2 \
+- check
++if ! [[ $TESTS ]]; then
++ make -j$NCPU all syncheck rpm logtee
++else
++ make -j$NCPU all logtee
++
++ cd test
++
++ time sudo make \
++ KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort
-rn | head -1) \
++ TEST_RUN_ID=$RUN_ID \
++ ${TESTS:+TESTS="$TESTS"} \
++ -k V=2 \
++ check
++fi
+
diff --git a/0063.patch b/0063.patch
new file mode 100644
index 0000000..f291125
--- /dev/null
+++ b/0063.patch
@@ -0,0 +1,45 @@
+From 5a8f1aef556056de88d55bb398443fe2b57eae52 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 11:59:09 +0200
+Subject: [PATCH] TEST-15-BTRFSRAID: sync in test-init
+
+strange failure
+---
+ test/TEST-15-BTRFSRAID/test-init.sh | 1 +
+ test/TEST-15-BTRFSRAID/test.sh | 3 ++-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/test/TEST-15-BTRFSRAID/test-init.sh b/test/TEST-15-BTRFSRAID/test-init.sh
+index 8f7cdf3a..ab9021df 100755
+--- a/test/TEST-15-BTRFSRAID/test-init.sh
++++ b/test/TEST-15-BTRFSRAID/test-init.sh
+@@ -2,6 +2,7 @@
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ exec >/dev/console 2>&1
+ echo "dracut-root-block-success" >/dev/sda1
++sync
+ export TERM=linux
+ export PS1='initramfs-test:\w\$ '
+ [ -f /etc/fstab ] || ln -s /proc/mounts /etc/fstab
+diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
+index b8969863..3936ade2 100755
+--- a/test/TEST-15-BTRFSRAID/test.sh
++++ b/test/TEST-15-BTRFSRAID/test.sh
+@@ -15,6 +15,7 @@ test_run() {
+ -append "panic=1 root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81
selinux=0 rd.shell=0 $DEBUGFAIL" \
+ -initrd $TESTDIR/initramfs.testing
+ dd if=$DISKIMAGE bs=512 count=4 skip=2048 | grep -F -m 1 -q
dracut-root-block-success $DISKIMAGE || return 1
++ return 0
+ }
+
+ test_setup() {
+@@ -38,7 +39,7 @@ test_setup() {
+ mkdir -p -- var/lib/nfs/rpc_pipefs
+ )
+ inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip \
+- mount dmesg dhclient mkdir cp ping dhclient
++ mount dmesg dhclient mkdir cp ping dhclient sync
+ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
+ [ -f ${_terminfodir}/l/linux ] && break
+ done
+
diff --git a/0064.patch b/0064.patch
new file mode 100644
index 0000000..41044cc
--- /dev/null
+++ b/0064.patch
@@ -0,0 +1,23 @@
+From 2699d8ff7eb41ffafba46194f29bab9670b9e874 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 12:03:40 +0200
+Subject: [PATCH] TEST-99-RPM: removed --releasever
+
+---
+ test/TEST-99-RPM/test.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh
+index b76a061b..984b9385 100755
+--- a/test/TEST-99-RPM/test.sh
++++ b/test/TEST-99-RPM/test.sh
+@@ -35,7 +35,7 @@ test_run() {
+ dnf_or_yum_cmd=yum
+ command -v dnf >/dev/null && { dnf_or_yum="dnf";
dnf_or_yum_cmd="dnf --allowerasing"; }
+ for (( i=0; i < 5 ; i++)); do
+- $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/ --releasever
29 --disablerepo='*' \
++ $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/
--disablerepo='*' \
+ --enablerepo=fedora --enablerepo=updates \
+ install -y \
+ $dnf_or_yum \
+
diff --git a/0065.patch b/0065.patch
new file mode 100644
index 0000000..d2c4ac3
--- /dev/null
+++ b/0065.patch
@@ -0,0 +1,50 @@
+From 7c62555bcffd7565883738df5e8c2150e887694f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 13:05:42 +0200
+Subject: [PATCH] TEST-15-BTRFSRAID: use seperate disk image for boot result
+
+---
+ test/TEST-15-BTRFSRAID/test-init.sh | 2 +-
+ test/TEST-15-BTRFSRAID/test.sh | 10 ++++++----
+ 2 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/test/TEST-15-BTRFSRAID/test-init.sh b/test/TEST-15-BTRFSRAID/test-init.sh
+index ab9021df..ed66a2b3 100755
+--- a/test/TEST-15-BTRFSRAID/test-init.sh
++++ b/test/TEST-15-BTRFSRAID/test-init.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ exec >/dev/console 2>&1
+-echo "dracut-root-block-success" >/dev/sda1
++echo "dracut-root-block-success" >/dev/sda
+ sync
+ export TERM=linux
+ export PS1='initramfs-test:\w\$ '
+diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
+index 3936ade2..092ed254 100755
+--- a/test/TEST-15-BTRFSRAID/test.sh
++++ b/test/TEST-15-BTRFSRAID/test.sh
+@@ -7,15 +7,17 @@ KVERSION=${KVERSION-$(uname -r)}
+ #DEBUGFAIL="rd.shell"
+ test_run() {
+ DISKIMAGE=$TESTDIR/TEST-15-BTRFSRAID-root.img
++ MARKER_DISKIMAGE=$TESTDIR/TEST-15-BTRFSRAID-marker.img
++ dd if=/dev/zero of=$MARKER_DISKIMAGE bs=512 count=10
+ $testdir/run-qemu \
+- -drive format=raw,index=0,media=disk,file=$DISKIMAGE \
+- -m 512M -smp 2 -nographic \
++ -drive format=raw,index=0,media=disk,file=$MARKER_DISKIMAGE \
++ -drive format=raw,index=1,media=disk,file=$DISKIMAGE \
++ -m 512M -smp 2 -nographic \
+ -net none \
+ -no-reboot \
+ -append "panic=1 root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81
selinux=0 rd.shell=0 $DEBUGFAIL" \
+ -initrd $TESTDIR/initramfs.testing
+- dd if=$DISKIMAGE bs=512 count=4 skip=2048 | grep -F -m 1 -q
dracut-root-block-success $DISKIMAGE || return 1
+- return 0
++ grep -F -m 1 -q dracut-root-block-success $MARKER_DISKIMAGE || return 1
+ }
+
+ test_setup() {
+
diff --git a/0066.patch b/0066.patch
new file mode 100644
index 0000000..fb3bb99
--- /dev/null
+++ b/0066.patch
@@ -0,0 +1,29 @@
+From 286685cb720f4150f363487c3702ea12d838f7df Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 13:20:40 +0200
+Subject: [PATCH] TEST-99-RPM: use releasever of the host system
+
+---
+ test/TEST-99-RPM/test.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh
+index 984b9385..b4aca176 100755
+--- a/test/TEST-99-RPM/test.sh
++++ b/test/TEST-99-RPM/test.sh
+@@ -30,12 +30,12 @@ test_run() {
+ "$TESTDIR"/dracut-[0-9]*.$(arch).rpm \
+ "$TESTDIR"/dracut-network-[0-9]*.$(arch).rpm \
+ "$rootdir/$TESTDIR/"
+-
++ . /etc/os-release
+ dnf_or_yum=yum
+ dnf_or_yum_cmd=yum
+ command -v dnf >/dev/null && { dnf_or_yum="dnf";
dnf_or_yum_cmd="dnf --allowerasing"; }
+ for (( i=0; i < 5 ; i++)); do
+- $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/
--disablerepo='*' \
++ $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/ --releasever
"$VERSION_ID" --disablerepo='*' \
+ --enablerepo=fedora --enablerepo=updates \
+ install -y \
+ $dnf_or_yum \
+
diff --git a/0067.patch b/0067.patch
new file mode 100644
index 0000000..e260427
--- /dev/null
+++ b/0067.patch
@@ -0,0 +1,31 @@
+From f059ce76826645569575ee9631b23806764095fe Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 13:56:19 +0200
+Subject: [PATCH] travis: reshuffle tests
+
+---
+ .travis.yml | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 075cbc6a..8e20054a 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -5,11 +5,11 @@ services:
+ env:
+ matrix:
+ - IMAGE=latest
+- - IMAGE=latest TESTS="01 02 03 04 10 11 12"
+- - IMAGE=latest TESTS="13 15 17 18"
+- - IMAGE=latest TESTS=20
+- - IMAGE=latest TESTS="30 31 99"
+- - IMAGE=latest TESTS="50 70"
++ - IMAGE=latest TESTS="13 15 17 18 30 31"
++ - IMAGE=latest TESTS="10 20"
++ - IMAGE=latest TESTS="01 02 03 04 70"
++ - IMAGE=latest TESTS="11 12 99"
++ - IMAGE=latest TESTS="50"
+
+ before_script:
+ - docker pull fedora:$IMAGE
+
diff --git a/0068.patch b/0068.patch
new file mode 100644
index 0000000..4b87a32
--- /dev/null
+++ b/0068.patch
@@ -0,0 +1,34 @@
+From 06e12e4ba8d827eedd0882d9918f94758d52a579 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 14:25:23 +0200
+Subject: [PATCH] travis: rebalance tests
+
+---
+ .travis.yml | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 8e20054a..91ecafed 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -7,12 +7,16 @@ env:
+ - IMAGE=latest
+ - IMAGE=latest TESTS="13 15 17 18 30 31"
+ - IMAGE=latest TESTS="10 20"
+- - IMAGE=latest TESTS="01 02 03 04 70"
+- - IMAGE=latest TESTS="11 12 99"
+- - IMAGE=latest TESTS="50"
++ - IMAGE=latest TESTS="01 02 03 04 11 70"
++ - IMAGE=latest TESTS="12"
++ - IMAGE=latest TESTS="50 99"
+
+ before_script:
+ - docker pull fedora:$IMAGE
++ - |
++ sudo modprobe kvm-intel nested=y || :
++ sudo modprobe kvm-amd nested=y || :
++ dmesg | tail || :
+ - git pull --depth=100
+ - |
+ git describe --abbrev=0 --tags || :
+
diff --git a/0069.patch b/0069.patch
new file mode 100644
index 0000000..9cabe22
--- /dev/null
+++ b/0069.patch
@@ -0,0 +1,30 @@
+From bd03d374b704324b595e2af1901e590ff7c5a92b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 14:28:54 +0200
+Subject: [PATCH] travis: modprobe amd nested=1
+
+GREAT!
+
+$ modinfo kvm-intel kvm-amd| fgrep nested
+parm: nested:bool
+parm: nested:int
+---
+ .travis.yml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 91ecafed..0932805f 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -14,8 +14,8 @@ env:
+ before_script:
+ - docker pull fedora:$IMAGE
+ - |
+- sudo modprobe kvm-intel nested=y || :
+- sudo modprobe kvm-amd nested=y || :
++ sudo modprobe kvm-intel nested=1 || :
++ sudo modprobe kvm-amd nested=1 || :
+ dmesg | tail || :
+ - git pull --depth=100
+ - |
+
diff --git a/0070.patch b/0070.patch
new file mode 100644
index 0000000..9d5aa11
--- /dev/null
+++ b/0070.patch
@@ -0,0 +1,44 @@
+From a17440713acdc943983c61cf12c56aa0a7e3a58d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 14:48:21 +0200
+Subject: [PATCH] travis: reshuffle tests
+
+long running tests first
+---
+ .travis.yml | 22 +++++++++++++++++-----
+ 1 file changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 0932805f..f1aab2a9 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -5,11 +5,23 @@ services:
+ env:
+ matrix:
+ - IMAGE=latest
+- - IMAGE=latest TESTS="13 15 17 18 30 31"
+- - IMAGE=latest TESTS="10 20"
+- - IMAGE=latest TESTS="01 02 03 04 11 70"
+- - IMAGE=latest TESTS="12"
+- - IMAGE=latest TESTS="50 99"
++ - IMAGE=latest TESTS=01
++ - IMAGE=latest TESTS=12
++ - IMAGE=latest TESTS=20
++ - IMAGE=latest TESTS=50
++ - IMAGE=latest TESTS=31
++ - IMAGE=latest TESTS=30
++ - IMAGE=latest TESTS=70
++ - IMAGE=latest TESTS=99
++ - IMAGE=latest TESTS=02
++ - IMAGE=latest TESTS=03
++ - IMAGE=latest TESTS=04
++ - IMAGE=latest TESTS=10
++ - IMAGE=latest TESTS=11
++ - IMAGE=latest TESTS=13
++ - IMAGE=latest TESTS=15
++ - IMAGE=latest TESTS=17
++ - IMAGE=latest TESTS=18
+
+ before_script:
+ - docker pull fedora:$IMAGE
+
diff --git a/0071.patch b/0071.patch
new file mode 100644
index 0000000..34ebb94
--- /dev/null
+++ b/0071.patch
@@ -0,0 +1,41 @@
+From f19063ac71b9a82d19f3be7f252bf90d98be454f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Thu, 16 Aug 2018 15:28:04 +0200
+Subject: [PATCH] travis: one last job reshuffle
+
+---
+ .travis.yml | 15 +++------------
+ 1 file changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index f1aab2a9..83e9b4d1 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -5,23 +5,14 @@ services:
+ env:
+ matrix:
+ - IMAGE=latest
+- - IMAGE=latest TESTS=01
++ - IMAGE=latest TESTS="01 02 03 04"
+ - IMAGE=latest TESTS=12
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS=50
+- - IMAGE=latest TESTS=31
+- - IMAGE=latest TESTS=30
++ - IMAGE=latest TESTS="30 31"
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+- - IMAGE=latest TESTS=02
+- - IMAGE=latest TESTS=03
+- - IMAGE=latest TESTS=04
+- - IMAGE=latest TESTS=10
+- - IMAGE=latest TESTS=11
+- - IMAGE=latest TESTS=13
+- - IMAGE=latest TESTS=15
+- - IMAGE=latest TESTS=17
+- - IMAGE=latest TESTS=18
++ - IMAGE=latest TESTS="10 11 13 15 17"
+
+ before_script:
+ - docker pull fedora:$IMAGE
+
diff --git a/0072.patch b/0072.patch
new file mode 100644
index 0000000..36d2b42
--- /dev/null
+++ b/0072.patch
@@ -0,0 +1,142 @@
+From 09132c732a36cc892310b26c829ac00c007d84ec Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Fri, 17 Aug 2018 15:38:03 +0200
+Subject: [PATCH] test/test-functions: fixed V=1 logic
+
+---
+ test/test-functions | 96 ++++++++++++++++++++++++++---------------------------
+ 1 file changed, 48 insertions(+), 48 deletions(-)
+
+diff --git a/test/test-functions b/test/test-functions
+index 6d7f418b..a6254ec7 100644
+--- a/test/test-functions
++++ b/test/test-functions
+@@ -38,79 +38,79 @@ while (($# > 0)); do
+ case $1 in
+ --run)
+ check_root
+- echo "TEST RUN: $TEST_DESCRIPTION"
+- test_check && test_run
+- exit $?;;
++ echo "TEST RUN: $TEST_DESCRIPTION"
++ test_check && test_run
++ exit $?;;
+ --setup)
+ check_root
+- echo "TEST SETUP: $TEST_DESCRIPTION"
+- test_check && test_setup
+- exit $?;;
++ echo "TEST SETUP: $TEST_DESCRIPTION"
++ test_check && test_setup
++ exit $?;;
+ --clean)
+- echo "TEST CLEANUP: $TEST_DESCRIPTION"
+- test_cleanup
+- rm -fr -- "$TESTDIR"
+- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+- exit $?;;
++ echo "TEST CLEANUP: $TEST_DESCRIPTION"
++ test_cleanup
++ rm -fr -- "$TESTDIR"
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
++ exit $?;;
+ --all)
+ check_root
+ if ! test_check 2&>test${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
+- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING
"[SKIPPED]" $COLOR_NORMAL
+- exit 0;
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING
"[SKIPPED]" $COLOR_NORMAL
++ exit 0;
+ else
+- echo "TEST: $TEST_DESCRIPTION [STARTED]";
++ echo "TEST: $TEST_DESCRIPTION [STARTED]";
+ fi
+ if [[ "$V" == "1" ]]; then
+- (
+- test_setup && test_run
+- ret=$?
+- test_cleanup
+- rm -fr -- "$TESTDIR"
+- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+- exit $ret
+- ) </dev/null >test${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
+- elif [[ "$V" == "2" ]]; then
+ set -o pipefail
+ (
+- test_setup && test_run
+- ret=$?
+- test_cleanup
++ test_setup && test_run
++ ret=$?
++ test_cleanup
+ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]];
then
+ mv [[ -f "$TESTDIR"/server.log ]]
./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ fi
+- rm -fr -- "$TESTDIR"
+- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+- exit $ret
+- ) </dev/null 2>&1 | $basedir/logtee
test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+- else
++ rm -fr -- "$TESTDIR"
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
++ exit $ret
++ ) </dev/null 2>&1 | tee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ elif [[ "$V" == "2" ]]; then
+ set -o pipefail
+ (
+- test_setup && test_run
+- ret=$?
+- test_cleanup
++ test_setup && test_run
++ ret=$?
++ test_cleanup
+ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]];
then
+ mv [[ -f "$TESTDIR"/server.log ]]
./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ fi
+- rm -fr -- "$TESTDIR"
+- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+- exit $ret
+- ) </dev/null 2>&1 | tee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ rm -fr -- "$TESTDIR"
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
++ exit $ret
++ ) </dev/null 2>&1 | $basedir/logtee
test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ else
++ (
++ test_setup && test_run
++ ret=$?
++ test_cleanup
++ rm -fr -- "$TESTDIR"
++ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
++ exit $ret
++ ) </dev/null >test${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
+ fi
+- ret=$?
++ ret=$?
+ set +o pipefail
+- if [ $ret -eq 0 ]; then
++ if [ $ret -eq 0 ]; then
+ rm -- test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]"
$COLOR_NORMAL
+- else
+- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS
"[OK]" $COLOR_NORMAL
++ else
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ if [ "$V" == "2" ]; then
+- tail -c 1048576 $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
$(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
++ tail -c 1048576 $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
$(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
++ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE
"[FAILED]" $COLOR_NORMAL
+ else
+- echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
++ echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
+ fi
+- fi
+- exit $ret;;
++ fi
++ exit $ret;;
+ *) break ;;
+ esac
+ shift
+
diff --git a/0073.patch b/0073.patch
new file mode 100644
index 0000000..19fd209
--- /dev/null
+++ b/0073.patch
@@ -0,0 +1,44 @@
+From ee18dd2b88d6767902d442baa92c95f7be69c265 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Fri, 17 Aug 2018 12:50:29 +0200
+Subject: [PATCH] ifcfg/write-ifcfg.sh: aggregate resolv.conf
+
+The old code used /tmp/net.$netif.resolv.conf with $netif being randomly
+chosen.
+
+As it is not known which nameserver have which priority, just sort them
+and deduplicate.
+---
+ modules.d/45ifcfg/module-setup.sh | 1 +
+ modules.d/45ifcfg/write-ifcfg.sh | 5 ++++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/45ifcfg/module-setup.sh b/modules.d/45ifcfg/module-setup.sh
+index 6791985a..c89def3e 100755
+--- a/modules.d/45ifcfg/module-setup.sh
++++ b/modules.d/45ifcfg/module-setup.sh
+@@ -14,6 +14,7 @@ depends() {
+
+ # called by dracut
+ install() {
++ inst_binary sort
+ inst_hook pre-pivot 85 "$moddir/write-ifcfg.sh"
+ }
+
+diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
+index 25c81be3..3bf847a5 100755
+--- a/modules.d/45ifcfg/write-ifcfg.sh
++++ b/modules.d/45ifcfg/write-ifcfg.sh
+@@ -286,7 +286,10 @@ echo "files /etc/sysconfig/network-scripts" >>
/run/initramfs/rwtab
+ echo "files /var/lib/dhclient" >> /run/initramfs/rwtab
+ {
+ cp /tmp/net.* /run/initramfs/
+- cp /tmp/net.$netif.resolv.conf /run/initramfs/state/etc/resolv.conf
++ for i in /tmp/net.*.resolv.conf; do
++ [ -f "$i" ] && cat "$i"
++ done | sort -u > /run/initramfs/state/etc/resolv.conf
++ [ -s /run/initramfs/state/etc/resolv.conf ] || rm -f
/run/initramfs/state/etc/resolv.conf
+ copytree /tmp/ifcfg /run/initramfs/state/etc/sysconfig/network-scripts
+ cp /tmp/ifcfg-leases/* /run/initramfs/state/var/lib/dhclient
+ } > /dev/null 2>&1
+
diff --git a/0074.patch b/0074.patch
new file mode 100644
index 0000000..33d82c1
--- /dev/null
+++ b/0074.patch
@@ -0,0 +1,42 @@
+From e0e6d96d696349c69cffd72a9c4eaf3be3dd22d5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Mon, 20 Aug 2018 10:04:52 +0200
+Subject: [PATCH] travis: re-enable test 14
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1615271
+---
+ .travis.yml | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 83e9b4d1..f913db57 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -5,14 +5,23 @@ services:
+ env:
+ matrix:
+ - IMAGE=latest
+- - IMAGE=latest TESTS="01 02 03 04"
++ - IMAGE=latest TESTS=01
+ - IMAGE=latest TESTS=12
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS=50
+- - IMAGE=latest TESTS="30 31"
++ - IMAGE=latest TESTS=30
++ - IMAGE=latest TESTS=31
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+- - IMAGE=latest TESTS="10 11 13 15 17"
++ - IMAGE=latest TESTS=02
++ - IMAGE=latest TESTS=03
++ - IMAGE=latest TESTS=04
++ - IMAGE=latest TESTS=10
++ - IMAGE=latest TESTS=11
++ - IMAGE=latest TESTS=13
++ - IMAGE=latest TESTS=14
++ - IMAGE=latest TESTS=15
++ - IMAGE=latest TESTS=17
+
+ before_script:
+ - docker pull fedora:$IMAGE
+
diff --git a/0075.patch b/0075.patch
new file mode 100644
index 0000000..beefa3c
--- /dev/null
+++ b/0075.patch
@@ -0,0 +1,129 @@
+From e791d753bed41315cfbd8611e65cc8cd64ea2d15 Mon Sep 17 00:00:00 2001
+From: Frederick Grose <fgrose(a)sugarlabs.org>
+Date: Wed, 1 Aug 2018 18:40:20 -0400
+Subject: [PATCH] livenet: Enable OverlayFS overlay in sysroot.mount generator.
+
+Adjust sysroot.mount configuration for rd.live.overlay.overlayfs option.
+Use link at /dev/root as a consistent flag for wait_for_dev.
+Adjust documentation.
+---
+ dracut.cmdline.7.asc | 9 +++++----
+ modules.d/90dmsquash-live/dmsquash-live-root.sh | 5 +++--
+ modules.d/90dmsquash-live/parse-dmsquash-live.sh | 2 +-
+ modules.d/90livenet/livenet-generator.sh | 18 ++++++++++++++----
+ 4 files changed, 23 insertions(+), 11 deletions(-)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index 9252d253..df633e5d 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -930,7 +930,8 @@ NOTE: There must be enough free RAM available to hold the complete
image.
+ This method is very suitable for diskless boots.
+
+ **root=**live:__<url>__::
+-Boots a live image retrieved from __<url>__. Valid handlers: __http, https, ftp,
torrent, tftp__.
++Boots a live image retrieved from __<url>__. Requires dracut 'livenet'
module.
++Valid handlers: __http, https, ftp, torrent, tftp__.
+ +
+ [listing]
+ .Example
+@@ -955,7 +956,7 @@ By default, this is __squashfs.img__.
+ Copy the complete image to RAM and use this for booting. This is useful
+ when the image resides on, i.e., a DVD which needs to be ejected later on.
+
+-**rd.live.overlay=**__<devspec>__:__(<pathspec>|auto)__|__none__::
++**rd.live.overlay={**__<devspec>__[:__{<pathspec>|auto}__]|__none__}::
+ Allow the usage of a permanent overlay.
+ - _<devspec>_ specifies the path to a device with a mountable filesystem.
+ - _<pathspec>_ is the path to a file within that filesystem, which shall be
+@@ -1005,10 +1006,10 @@ extended attributes and provides a valid d_type in readdir
responses, such as
+ with ext4 and xfs. On non-vfat-formatted devices, a persistent OverlayFS
+ overlay can extend the available root filesystem storage up to the capacity of
+ the LiveOS device.
+-
+++
+ If a persistent overlay is detected at the standard LiveOS path, the overlay &
+ overlay type detected (whether OverlayFS or Device-mapper) will be used.
+-
+++
+ The **rd.live.overlay.readonly** option, which allows a persistent overlayfs to
+ be mounted read only through a higher level transient overlay directory, has
+ been implemented through the multiple lower layers feature of OverlayFS.
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh
b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+index 8f3b2bf9..ac603408 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+@@ -376,19 +376,20 @@ if [ -n "$overlayfs" ]; then
+ mount -r $FSIMG /run/rootfsbase
+ fi
+ if [ -z "$DRACUT_SYSTEMD" ]; then
+- #FIXME What to link to /dev/root? Is it even needed?
+ printf 'mount -t overlay LiveOS_rootfs -o%s,%s %s\n'
"$ROOTFLAGS" \
+ 'lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork'
\
+ "$NEWROOT" > $hookdir/mount/01-$$-live.sh
+ fi
++ _dev=/run/rootfsbase
+ else
+- ln -s /dev/mapper/live-rw /dev/root
++ _dev=/dev/mapper/live-rw
+ if [ -z "$DRACUT_SYSTEMD" ]; then
+ [ -n "$ROOTFLAGS" ] && ROOTFLAGS="-o $ROOTFLAGS"
+ printf 'mount %s /dev/mapper/live-rw %s\n' "$ROOTFLAGS"
"$NEWROOT" > $hookdir/mount/01-$$-live.sh
+ fi
+ ln -s $BASE_LOOPDEV /run/rootfsbase
+ fi
++ln -s $_dev /dev/root
+
+ need_shutdown
+
+diff --git a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
+index a9b78ab5..0eedf1f6 100755
+--- a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
++++ b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
+@@ -57,6 +57,6 @@ info "root was $liveroot, is now $root"
+ # make sure that init doesn't complain
+ [ -z "$root" ] && root="live"
+
+-wait_for_dev -n /run/rootfsbase
++wait_for_dev -n /dev/root
+
+ return 0
+diff --git a/modules.d/90livenet/livenet-generator.sh
b/modules.d/90livenet/livenet-generator.sh
+index a349cd0b..e2b5b6eb 100755
+--- a/modules.d/90livenet/livenet-generator.sh
++++ b/modules.d/90livenet/livenet-generator.sh
+@@ -43,19 +43,29 @@ GENERATOR_DIR="$2"
+
+ [ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR"
+
++getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
++[ -e /xor_overlayfs ] && xor_overlayfs="yes"
+ ROOTFLAGS="$(getarg rootflags)"
+ {
+ echo "[Unit]"
+ echo "Before=initrd-root-fs.target"
+ echo "[Mount]"
+ echo "Where=/sysroot"
+- echo "What=/dev/mapper/live-rw"
+- [ -n "$ROOTFLAGS" ] && echo "Options=${ROOTFLAGS}"
++ if [ "$overlayfs$xor_overlayfs" = "yes" ]; then
++ echo "What=LiveOS_rootfs"
++ echo
"Options=${ROOTFLAGS},lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork"
++ echo "Type=overlay"
++ _dev=LiveOS_rootfs
++ else
++ echo "What=/dev/mapper/live-rw"
++ [ -n "$ROOTFLAGS" ] && echo "Options=${ROOTFLAGS}"
++ _dev=$'dev-mapper-live\\x2drw'
++ fi
+ } > "$GENERATOR_DIR"/sysroot.mount
+
+-mkdir -p "$GENERATOR_DIR/dev-mapper-live\x2drw.device.d"
++mkdir -p "$GENERATOR_DIR/$_dev.device.d"
+ {
+ echo "[Unit]"
+ echo "JobTimeoutSec=3000"
+ echo "JobRunningTimeoutSec=3000"
+-} > "$GENERATOR_DIR/dev-mapper-live\x2drw.device.d/timeout.conf"
++} > "$GENERATOR_DIR/$_dev.device.d/timeout.conf"
+
diff --git a/0076.patch b/0076.patch
new file mode 100644
index 0000000..933102e
--- /dev/null
+++ b/0076.patch
@@ -0,0 +1,361 @@
+From 789668deb3e6f8584ffab964d2204ddcb75f0a06 Mon Sep 17 00:00:00 2001
+From: Frederick Grose <fgrose(a)sugarlabs.org>
+Date: Mon, 20 Aug 2018 09:47:50 -0400
+Subject: [PATCH] dmsquash-live: Support a flattened squashfs.img
+
+A simplified root filesystem structure may be provided for OverlayFS
+overlays by squashing the root filesystem directly instead of squashing
+an embedded image file at /LiveOS/rootfs.img. Detect and configure
+such a squashed root filesystem for live booting.
+
+For OverlayFS boots, avoid the read-only Device-mapper linear device
+ at /dev/mapper/live-base.
+Create a consistent device link at /dev/live-base for the read-only
+ base loop device for all overlayed live root filesystems.
+Consistently provide a link at /dev/root for wait_for_dev.
+
+Update documentation.
+---
+ dracut.cmdline.7.asc | 126 +++++++++++++++---------
+ modules.d/90dmsquash-live/dmsquash-live-root.sh | 51 ++++++----
+ 2 files changed, 110 insertions(+), 67 deletions(-)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index df633e5d..882035af 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -838,23 +838,24 @@ Booting live images
+ Dracut offers multiple options for live booted images:
+
+ =====================
+-SquashFS with read-only filesystem image::: The system will boot with a read
+-only filesystem from the SquashFS and apply a writable device-mapper snapshot
+-over the read only filesystem. Using this method ensures a relatively fast
+-boot and lower RAM usage. Users **must be careful** to avoid writing too many
+-blocks to the snapshot volume. Once the blocks of the snapshot overlay are
+-exhausted, the root filesystem becomes read only and may cause application
+-failures. The overlay file is marked 'Overflow', and a difficult recovery is
+-required to repair and enlarge the overlay offline. Non-persistent overlays
+-are sparse files in RAM that only consume content space as required blocks are
+-allocated. They default to an apparent size of 32 GiB in RAM. The size can be
+-adjusted with the **rd.live.overlay.size=** kernel command line option.
++SquashFS with read-only filesystem image::: The system will boot with a
++read-only filesystem from the SquashFS and apply a writable Device-mapper
++snapshot or an OverlayFS overlay mount for the read-only base filesystem. This
++method ensures a relatively fast boot and lower RAM usage. Users **must be
++careful** to avoid writing too many blocks to a snapshot volume. Once the
++blocks of the snapshot overlay are exhausted, the root filesystem becomes
++read-only and may cause application failures. The snapshot overlay file is
++marked 'Overflow', and a difficult recovery is required to repair and enlarge
++the overlay offline. Non-persistent overlays are sparse files in RAM that only
++consume content space as required blocks are allocated. They default to an
++apparent size of 32 GiB in RAM. The size can be adjusted with the
++**rd.live.overlay.size=** kernel command line option.
+ +
+-The filesystem structure is expected to be:
++The filesystem structure is traditionally expected to be:
+ +
+ [listing]
+ --
+-squashfs.img | Squashfs from LiveCD .iso downloaded via network
++squashfs.img | SquashFS from LiveCD .iso
+ !(mount)
+ /LiveOS
+ |- rootfs.img | Filesystem image to mount read-only
+@@ -865,21 +866,35 @@ squashfs.img | Squashfs from LiveCD .iso downloaded via
network
+ ... |
+ --
+ +
+-Dracut uses this method of live booting by default. No additional command line
+-options are required other than **root=live:<URL>** to specify the location
+-of your squashed filesystem.
++For OverlayFS mount overlays, the filesystem structure may also be a direct
++compression of the root filesystem:
+++
++[listing]
++--
++squashfs.img | SquashFS from LiveCD .iso
++ !(mount)
++ /bin | Live filesystem
++ /boot |
++ /dev |
++ ... |
++--
+++
++Dracut uses one of the overlay methods of live booting by default. No
++additional command line options are required other than **root=live:<URL>** to
++specify the location of your squashed filesystem.
+ +
+ - The compressed SquashFS image can be copied during boot to RAM at
+ `/run/initramfs/squashed.img` by using the **rd.live.ram=1** option.
+-- A device with a persistent overlay can be booted read only by using the
++- A device with a persistent overlay can be booted read-only by using the
+ **rd.live.overlay.readonly** option on the kernel command line. This will
+-cause a temporary, writable overlay to be stacked over a read-only snapshot
+-of the root filesystem.
++either cause a temporary, writable overlay to be stacked over a read-only
++snapshot of the root filesystem or the OverlayFS mount will use an additional
++lower layer with the root filesystem.
+ +
+ Uncompressed live filesystem image:::
+ When the live system was installed with the '--skipcompress' option of the
+ __livecd-iso-to-disk__ installation script for Live USB devices, the root
+-filesystem image, `rootfs.img`, is expanded on installation and no SquashFS
++filesystem image, __rootfs.img__, is expanded on installation and no SquashFS
+ is involved during boot.
+ +
+ - If **rd.live.ram=1** is used in this situation, the full, uncompressed
+@@ -887,12 +902,12 @@ root filesystem is copied during boot to
`/run/initramfs/rootfs.img` in the
+ `/run` tmpfs.
+ +
+ - If **rd.live.overlay=none** is provided as a kernel command line option,
+-a writable, linear device-mapper target is created on boot with no overlay.
++a writable, linear Device-mapper target is created on boot with no overlay.
+
+-writable filesystem image:::
++Writable filesystem image:::
+ The system will retrieve a compressed filesystem image, extract it to
+ `/run/initramfs/fsimg/rootfs.img`, connect it to a loop device, create a
+-writable, linear device-mapper target at `/dev/mapper/live-rw`, and mount that
++writable, linear Device-mapper target at `/dev/mapper/live-rw`, and mount that
+ as a writable volume at `/`. More RAM is required during boot but the live
+ filesystem is easier to manage if it becomes full. Users can make a filesystem
+ image of any size and that size will be maintained when the system boots. There
+@@ -902,7 +917,7 @@ The filesystem structure is expected to be:
+ +
+ [listing]
+ --
+-rootfs.tgz | Compressed tarball containing fileystem image
++rootfs.tgz | Compressed tarball containing filesystem image
+ !(unpack)
+ /rootfs.img | Filesystem image at /run/initramfs/fsimg/
+ !(mount)
+@@ -930,11 +945,11 @@ NOTE: There must be enough free RAM available to hold the complete
image.
+ This method is very suitable for diskless boots.
+
+ **root=**live:__<url>__::
+-Boots a live image retrieved from __<url>__. Requires dracut 'livenet'
module.
+-Valid handlers: __http, https, ftp, torrent, tftp__.
++Boots a live image retrieved from __<url>__. Requires the dracut
'livenet'
++module. Valid handlers: __http, https, ftp, torrent, tftp__.
+ +
+ [listing]
+-.Example
++.Examples
+ --
+
root=live:http://example.com/liveboot.img
+
root=live:ftp://ftp.example.com/liveboot.img
+@@ -946,7 +961,7 @@ Enables debug output from the live boot process.
+
+ **rd.live.dir=**__<path>__::
+ Specifies the directory within the boot device where the squashfs.img or
+-rootfs.img can be found. By default, this is __LiveOS__.
++rootfs.img can be found. By default, this is `/LiveOS`.
+
+ **rd.live.squashimg=**__<filename of SquashFS image>__::
+ Specifies the filename for a SquashFS image of the root filesystem.
+@@ -954,35 +969,52 @@ By default, this is __squashfs.img__.
+
+ **rd.live.ram=**1::
+ Copy the complete image to RAM and use this for booting. This is useful
+-when the image resides on, i.e., a DVD which needs to be ejected later on.
++when the image resides on, e.g., a DVD which needs to be ejected later on.
+
+ **rd.live.overlay={**__<devspec>__[:__{<pathspec>|auto}__]|__none__}::
+-Allow the usage of a permanent overlay.
+-- _<devspec>_ specifies the path to a device with a mountable filesystem.
+-- _<pathspec>_ is the path to a file within that filesystem, which shall be
++Manage the usage of a permanent overlay.
+++
++--
++* _<devspec>_ specifies the path to a device with a mountable filesystem.
++* _<pathspec>_ is the path to a file within that filesystem, which shall be
+ used to persist the changes made to the device specified by the
+ **root=live:__<url>__** option.
+-- _none_ specifies no overlay when an uncompressed live root filesystem is
+-available.
+-If a persistent overlay is detected at the standard LiveOS path, the overlay &
+-overlay type detected (whether Device-mapper or OverlayFS) will be used.
+++
++The default _pathspec_, when _auto_ or no _:<pathspec>_ is given, is
++`/<+++<b>rd.live.dir</b>+++>/overlay-<label>-<uuid>`,
where _<label>_ is the
++device LABEL, and _<uuid>_ is the device UUID.
++* _none_ (the word itself) specifies that no overlay will be used, such as when
++an uncompressed, writable live root filesystem is available.
+++
++If a persistent overlay __is detected__ at the standard LiveOS path, the
++overlay & overlay type detected, whether Device-mapper or OverlayFS, will be
++used.
++--
+ +
+ [listing]
+-.Example
++.Examples
+ --
+ rd.live.overlay=/dev/sdb1:persistent-overlay.img
++rd.live.overlay=UUID=99440c1f-8daa-41bf-b965-b7240a8996f4
+ --
+
+ **rd.live.overlay.size=**__<size_MiB>__::
+-Specifies a non-persistent overlay size in MiB. The default is _32768_.
++Specifies a non-persistent Device-mapper overlay size in MiB. The default is
++_32768_.
+
+ **rd.live.overlay.readonly=**1::
+-Specifies a non-persistent, writable snapshot overlay to be stacked over a
+-read-only snapshot of the root filesystem, `/dev/mapper/live-ro`, or a read-
+-only loop device of a writable `rootfs.img`.
++This is used to boot with a normally read-write persistent overlay in a
++read-only mode. With this option, either an additional, non-persistent,
++writable snapshot overlay will be stacked over a read-only snapshot,
++`/dev/mapper/livero`, of the base filesystem with the persistent overlay, or a
++read-only loop device, in the case of a writable __rootfs.img__, or an OverlayFS
++mount will use the persistent overlay directory linked at `/run/overlayfsr` as
++an additional lower layer along with the base root filesystem and apply a
++transient, writable upper directory overlay, in order to complete the booted
++root filesystem.
+
+ **rd.live.overlay.reset=**1::
+-Specifies that a persistent overlay should be reset on boot. All root
++Specifies that a persistent overlay should be reset on boot. All previous root
+ filesystem changes are vacated by this action.
+
+ **rd.live.overlay.thin=**1::
+@@ -993,25 +1025,25 @@ that memory is given back to the kernel when the filesystem does
not claim it
+ anymore.
+
+ **rd.live.overlay.overlayfs=**1::
+-Enables the use of the **OverlayFS** kernel module, if available, to provide a
++Enables the use of the *OverlayFS* kernel module, if available, to provide a
+ copy-on-write union directory for the root filesystem. OverlayFS overlays are
+ directories of the files that have changed on the read-only base (lower)
+ filesystem. The root filesystem is provided through a special overlay type
+ mount that merges the lower and upper directories. If an OverlayFS upper
+ directory is not present on the boot device, a tmpfs directory will be created
+-at /run/overlayfs to provide temporary storage. Persistent storage can be
++at `/run/overlayfs` to provide temporary storage. Persistent storage can be
+ provided on vfat or msdos formatted devices by supplying the OverlayFS upper
+ directory within an embedded filesystem that supports the creation of trusted.*
+ extended attributes and provides a valid d_type in readdir responses, such as
+ with ext4 and xfs. On non-vfat-formatted devices, a persistent OverlayFS
+ overlay can extend the available root filesystem storage up to the capacity of
+-the LiveOS device.
++the LiveOS disk device.
+ +
+ If a persistent overlay is detected at the standard LiveOS path, the overlay &
+-overlay type detected (whether OverlayFS or Device-mapper) will be used.
++overlay type detected, whether OverlayFS or Device-mapper, will be used.
+ +
+ The **rd.live.overlay.readonly** option, which allows a persistent overlayfs to
+-be mounted read only through a higher level transient overlay directory, has
++be mounted read-only through a higher level transient overlay directory, has
+ been implemented through the multiple lower layers feature of OverlayFS.
+
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh
b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+index ac603408..0c5e010e 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+@@ -250,13 +250,11 @@ do_live_overlay() {
+ echo 0 $sz snapshot $base $over PO 8 | dmsetup create live-rw
+ fi
+
+- # Create a device that always points to a ro base image
+- if [ -n "$overlayfs" ]; then
+- BASE_LOOPDUP=$(losetup -f --show -r $BASE_LOOPDEV)
+- echo 0 $sz linear $BASE_LOOPDUP 0 | dmsetup create --readonly live-base
+- else
++ # Create a device for the ro base of overlayed file systems.
++ if [ -z "$overlayfs" ]; then
+ echo 0 $sz linear $BASE_LOOPDEV 0 | dmsetup create --readonly live-base
+ fi
++ ln -s $BASE_LOOPDEV /dev/live-base
+ }
+
+ # we might have a genMinInstDelta delta file for anaconda to take advantage of
+@@ -291,10 +289,21 @@ if [ -e "$SQUASHED" ]; then
+ mkdir -m 0755 -p /run/initramfs/squashfs
+ mount -n -t squashfs -o ro $SQUASHED_LOOPDEV /run/initramfs/squashfs
+
+- if [ -f /run/initramfs/squashfs/LiveOS/rootfs.img ]; then
+- FSIMG="/run/initramfs/squashfs/LiveOS/rootfs.img"
+- elif [ -f /run/initramfs/squashfs/LiveOS/ext3fs.img ]; then
+- FSIMG="/run/initramfs/squashfs/LiveOS/ext3fs.img"
++ if [ -d /run/initramfs/squashfs/LiveOS ]; then
++ if [ -f /run/initramfs/squashfs/LiveOS/rootfs.img ]; then
++ FSIMG="/run/initramfs/squashfs/LiveOS/rootfs.img"
++ elif [ -f /run/initramfs/squashfs/LiveOS/ext3fs.img ]; then
++ FSIMG="/run/initramfs/squashfs/LiveOS/ext3fs.img"
++ fi
++ elif [ -d /run/initramfs/squashfs/proc ]; then
++ FSIMG=$SQUASHED
++ if [ -z "$overlayfs" ]; then
++ overlayfs="yes"
++ [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit="yes"
++ fi
++ else
++ die "Failed to find a root filesystem in $SQUASHED."
++ exit 1
+ fi
+ else
+ # we might have an embedded fs image to use as rootfs (uncompressed live)
+@@ -312,8 +321,8 @@ else
+ fi
+ fi
+
+-if [ -n "$FSIMG" ] ; then
+- if [ -n "$writable_fsimg" ] ; then
++if [ -n "$FSIMG" ]; then
++ if [ -n "$writable_fsimg" ]; then
+ # mount the provided filesystem read/write
+ echo "Unpacking live filesystem (may take some time)" > /dev/kmsg
+ mkdir -m 0755 /run/initramfs/fsimg/
+@@ -336,9 +345,13 @@ if [ -n "$FSIMG" ] ; then
+ setup=yes
+ fi
+ fi
+- BASE_LOOPDEV=$(losetup -f --show $opt $FSIMG)
+- sz=$(blockdev --getsz $BASE_LOOPDEV)
+- if [ "$setup" == rw ]; then
++ if [ "$FSIMG" = "$SQUASHED" ]; then
++ BASE_LOOPDEV=$SQUASHED_LOOPDEV
++ else
++ BASE_LOOPDEV=$(losetup -f --show $opt $FSIMG)
++ sz=$(blockdev --getsz $BASE_LOOPDEV)
++ fi
++ if [ "$setup" = rw ]; then
+ echo 0 $sz linear $BASE_LOOPDEV 0 | dmsetup create live-rw
+ else
+ # Add a DM snapshot or OverlayFS for writes.
+@@ -346,8 +359,6 @@ if [ -n "$FSIMG" ] ; then
+ fi
+ fi
+
+-[ -e "$SQUASHED" ] && [ -z "$overlayfs" ] && umount
-l /run/initramfs/squashfs
+-
+ if [ -b "$OSMIN_LOOPDEV" ]; then
+ # set up the devicemapper snapshot device, which will merge
+ # the normal live fs image, and the delta, into a minimzied fs image
+@@ -380,17 +391,17 @@ if [ -n "$overlayfs" ]; then
+ 'lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork'
\
+ "$NEWROOT" > $hookdir/mount/01-$$-live.sh
+ fi
+- _dev=/run/rootfsbase
+ else
+- _dev=/dev/mapper/live-rw
+ if [ -z "$DRACUT_SYSTEMD" ]; then
+ [ -n "$ROOTFLAGS" ] && ROOTFLAGS="-o $ROOTFLAGS"
+ printf 'mount %s /dev/mapper/live-rw %s\n' "$ROOTFLAGS"
"$NEWROOT" > $hookdir/mount/01-$$-live.sh
+ fi
+- ln -s $BASE_LOOPDEV /run/rootfsbase
+ fi
+-ln -s $_dev /dev/root
++[ -e "$SQUASHED" ] && umount -l /run/initramfs/squashfs
++
++ln -s null /dev/root
+
+ need_shutdown
+
+ exit 0
++
+
diff --git a/0077.patch b/0077.patch
new file mode 100644
index 0000000..dd46af6
--- /dev/null
+++ b/0077.patch
@@ -0,0 +1,193 @@
+From eb18a1fe29a3ffcd646fe6d25ae2d7d998b63e71 Mon Sep 17 00:00:00 2001
+From: Frederick Grose <fgrose(a)sugarlabs.org>
+Date: Mon, 20 Aug 2018 19:52:53 -0400
+Subject: [PATCH] dmsquash-live, livenet: Simplify OverlayFS read-only overlay
+ setup.
+
+Use multiple lower layer directories in a single OverlayFS mount with
+ a transient overlay directory.
+Tolerate a command line with rd.live.overlay.readonly and NO persistent
+ overlay by reconfiguring the OverlayFS mount options.
+Use more compatible shell syntax for testing symlinks, and use printf
+ instead of echo -e.
+---
+ modules.d/90dmsquash-live/dmsquash-generator.sh | 9 ++++++-
+ modules.d/90dmsquash-live/dmsquash-live-root.sh | 34 ++++++++++++++-----------
+ modules.d/90livenet/livenet-generator.sh | 9 ++++++-
+ 3 files changed, 35 insertions(+), 17 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-generator.sh
b/modules.d/90dmsquash-live/dmsquash-generator.sh
+index fe190012..1129ddff 100755
+--- a/modules.d/90dmsquash-live/dmsquash-generator.sh
++++ b/modules.d/90dmsquash-live/dmsquash-generator.sh
+@@ -54,8 +54,10 @@ GENERATOR_DIR="$2"
+ [ -z "$GENERATOR_DIR" ] && exit 1
+ [ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR"
+
++getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay &&
readonly_overlay="--readonly" || readonly_overlay=""
+ getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
+ [ -e /xor_overlayfs ] && xor_overlayfs="yes"
++[ -e /xor_readonly ] && xor_readonly="--readonly"
+ ROOTFLAGS="$(getarg rootflags)"
+ {
+ echo "[Unit]"
+@@ -64,7 +66,12 @@ ROOTFLAGS="$(getarg rootflags)"
+ echo "Where=/sysroot"
+ if [ "$overlayfs$xor_overlayfs" = "yes" ]; then
+ echo "What=LiveOS_rootfs"
+- echo
"Options=${ROOTFLAGS},lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork"
++ if [ "$readonly_overlay$xor_readonly" = "--readonly" ];
then
++ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
++ else
++ ovlfs=lowerdir=/run/rootfsbase
++ fi
++ echo
"Options=${ROOTFLAGS},${ovlfs},upperdir=/run/overlayfs,workdir=/run/ovlwork"
+ echo "Type=overlay"
+ _dev=LiveOS_rootfs
+ else
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh
b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+index 0c5e010e..0f3d8f89 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+@@ -137,7 +137,7 @@ do_live_overlay() {
+ fi
+ if [ -n "$overlayfs" ]; then
+ unset -v overlayfs
+- [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit="yes"
++ [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
+ fi
+ setup="yes"
+ else
+@@ -148,7 +148,7 @@ do_live_overlay() {
+ ln -s /run/initramfs/overlayfs/ovlwork /run/ovlwork$opt
+ if [ -z "$overlayfs" ]; then
+ overlayfs="yes"
+- [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit="yes"
++ [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
+ fi
+ setup="yes"
+ fi
+@@ -159,7 +159,7 @@ do_live_overlay() {
+ ln -s /run/initramfs/overlayfs$pathspec/../ovlwork /run/ovlwork$opt
+ if [ -z "$overlayfs" ]; then
+ overlayfs="yes"
+- [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit="yes"
++ [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
+ fi
+ setup="yes"
+ fi
+@@ -168,8 +168,7 @@ do_live_overlay() {
+ modprobe overlay
+ if [ $? != 0 ]; then
+ m='OverlayFS is not available; using temporary Device-mapper
overlay.'
+- unset -v overlayfs setup
+- [ -n "$reloadsysrootmountunit" ] && unset -v
reloadsysrootmountunit
++ unset -v overlayfs setup reloadsysrootmountunit
+ fi
+ fi
+
+@@ -181,7 +180,7 @@ do_live_overlay() {
+ m=' Unable to find a persistent overlay; using a temporary
one.'
+ m="$m"$'\n All root filesystem changes will be lost on
shutdown.'
+ m="$m"$'\n Press [Enter] to continue.'
+- echo -e "\n\n\n\n${m}\n\n\n" > /dev/kmsg
++ printf "\n\n\n\n${m}\n\n\n" > /dev/kmsg
+ if [ -n "$DRACUT_SYSTEMD" ]; then
+ if type plymouth >/dev/null 2>&1 && plymouth --ping ;
then
+ if getargbool 0 rhgb || getargbool 0 splash ; then
+@@ -203,6 +202,11 @@ do_live_overlay() {
+ if [ -n "$overlayfs" ]; then
+ mkdir -m 0755 /run/overlayfs
+ mkdir -m 0755 /run/ovlwork
++ if [ -n "$readonly_overlay" ] && ! [ -h /run/overlayfs-r
]; then
++ info "No persistent overlay found."
++ unset -v readonly_overlay
++ [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit="${reloadsysrootmountunit}:>/xor_readonly;"
++ fi
+ else
+ dd if=/dev/null of=/overlay bs=1024 count=1 seek=$((overlay_size*1024))
2> /dev/null
+ if [ -n "$setup" -a -n "$readonly_overlay" ]; then
+@@ -256,6 +260,7 @@ do_live_overlay() {
+ fi
+ ln -s $BASE_LOOPDEV /dev/live-base
+ }
++# end do_live_overlay()
+
+ # we might have a genMinInstDelta delta file for anaconda to take advantage of
+ if [ -e /run/initramfs/live/${live_dir}/osmin.img ]; then
+@@ -299,7 +304,7 @@ if [ -e "$SQUASHED" ]; then
+ FSIMG=$SQUASHED
+ if [ -z "$overlayfs" ]; then
+ overlayfs="yes"
+- [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit="yes"
++ [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
+ fi
+ else
+ die "Failed to find a root filesystem in $SQUASHED."
+@@ -366,7 +371,7 @@ if [ -b "$OSMIN_LOOPDEV" ]; then
+ fi
+
+ if [ -n "$reloadsysrootmountunit" ]; then
+- > /xor_overlayfs
++ eval "$reloadsysrootmountunit"
+ systemctl daemon-reload
+ fi
+
+@@ -374,21 +379,20 @@ ROOTFLAGS="$(getarg rootflags)"
+
+ if [ -n "$overlayfs" ]; then
+ mkdir -m 0755 /run/rootfsbase
+- if [ -n "$reset_overlay" ] && [ -L /run/overlayfs ]; then
++ if [ -n "$reset_overlay" ] && [ -h /run/overlayfs ]; then
+ ovlfs=$(readlink /run/overlayfs)
+ info "Resetting the OverlayFS overlay directory."
+ rm -r -- ${ovlfs}/* ${ovlfs}/.* >/dev/null 2>&1
+ fi
+- if [ -n "$readonly_overlay" ]; then
+- mkdir -m 0755 /run/rootfsbase-r
+- mount -r $FSIMG /run/rootfsbase-r
+- mount -t overlay LiveOS_rootfs-r
-oro,lowerdir=/run/overlayfs-r:/run/rootfsbase-r /run/rootfsbase
++ if [ -n "$readonly_overlay" ] && [ -h /run/overlayfs-r ]; then
++ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
+ else
+- mount -r $FSIMG /run/rootfsbase
++ ovlfs=lowerdir=/run/rootfsbase
+ fi
++ mount -r $FSIMG /run/rootfsbase
+ if [ -z "$DRACUT_SYSTEMD" ]; then
+ printf 'mount -t overlay LiveOS_rootfs -o%s,%s %s\n'
"$ROOTFLAGS" \
+- 'lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork'
\
++ "$ovlfs",upperdir=/run/overlayfs,workdir=/run/ovlwork \
+ "$NEWROOT" > $hookdir/mount/01-$$-live.sh
+ fi
+ else
+diff --git a/modules.d/90livenet/livenet-generator.sh
b/modules.d/90livenet/livenet-generator.sh
+index e2b5b6eb..f0d12851 100755
+--- a/modules.d/90livenet/livenet-generator.sh
++++ b/modules.d/90livenet/livenet-generator.sh
+@@ -43,8 +43,10 @@ GENERATOR_DIR="$2"
+
+ [ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR"
+
++getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay &&
readonly_overlay="--readonly" || readonly_overlay=""
+ getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
+ [ -e /xor_overlayfs ] && xor_overlayfs="yes"
++[ -e /xor_readonly ] && xor_readonly="--readonly"
+ ROOTFLAGS="$(getarg rootflags)"
+ {
+ echo "[Unit]"
+@@ -53,7 +55,12 @@ ROOTFLAGS="$(getarg rootflags)"
+ echo "Where=/sysroot"
+ if [ "$overlayfs$xor_overlayfs" = "yes" ]; then
+ echo "What=LiveOS_rootfs"
+- echo
"Options=${ROOTFLAGS},lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork"
++ if [ "$readonly_overlay$xor_readonly" = "--readonly" ];
then
++ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
++ else
++ ovlfs=lowerdir=/run/rootfsbase
++ fi
++ echo
"Options=${ROOTFLAGS},${ovlfs},upperdir=/run/overlayfs,workdir=/run/ovlwork"
+ echo "Type=overlay"
+ _dev=LiveOS_rootfs
+ else
+
diff --git a/0078.patch b/0078.patch
new file mode 100644
index 0000000..5fd699f
--- /dev/null
+++ b/0078.patch
@@ -0,0 +1,29 @@
+From 9f3c31cd8d68b5272f803063247362a644720227 Mon Sep 17 00:00:00 2001
+From: Kairui Song <kasong(a)redhat.com>
+Date: Mon, 20 Aug 2018 18:43:19 +0800
+Subject: [PATCH] 99base: enable initqueue if extra devices are added
+
+When extra devices are added, initqueue should be enabled to make sure
+those devices are present, so following services and routines could
+use those devices.
+
+See PR #442 for more detail.
+---
+ modules.d/99base/module-setup.sh | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
+index a1569b12..731c6dcc 100755
+--- a/modules.d/99base/module-setup.sh
++++ b/modules.d/99base/module-setup.sh
+@@ -94,6 +94,9 @@ install() {
+
+ ## save host_devs which we need bring up
+ if [[ $hostonly_cmdline == "yes" ]]; then
++ if [[ -n $add_device ]]; then
++ dracut_need_initqueue
++ fi
+ if [[ -f "$initdir/lib/dracut/need-initqueue" ]] || !
dracut_module_included "systemd"; then
+ (
+ if dracut_module_included "systemd"; then
+
diff --git a/0079.patch b/0079.patch
new file mode 100644
index 0000000..80384b5
--- /dev/null
+++ b/0079.patch
@@ -0,0 +1,24 @@
+From 09ba1b289f2cba613c1950b03f0f549ebb7eb83f Mon Sep 17 00:00:00 2001
+From: Kairui Song <kasong(a)redhat.com>
+Date: Mon, 20 Aug 2018 18:40:05 +0800
+Subject: [PATCH] kernel-modules: add nfit
+
+To support pmem devices, nfit module is required
+---
+ modules.d/90kernel-modules/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90kernel-modules/module-setup.sh
b/modules.d/90kernel-modules/module-setup.sh
+index f01470e7..3dfceff0 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -41,7 +41,7 @@ installkernel() {
+ yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
+ atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
+ virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
+- "=drivers/pcmcia" =ide nvme vmd
++ "=drivers/pcmcia" =ide nvme vmd nfit
+
+ if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]];
then
+ # arm/aarch64 specific modules
+
diff --git a/0080.patch b/0080.patch
new file mode 100644
index 0000000..0ede47d
--- /dev/null
+++ b/0080.patch
@@ -0,0 +1,35 @@
+From ae9bc0d72ffea2c960c95d7b705b1b76ae53d692 Mon Sep 17 00:00:00 2001
+From: Tony Asleson <tasleson(a)redhat.com>
+Date: Thu, 23 Aug 2018 15:08:59 -0500
+Subject: [PATCH] stratis: Add additional binaries
+
+Include all binaries that could be called by the daemon.
+
+Signed-off-by: Tony Asleson <tasleson(a)redhat.com>
+---
+ modules.d/90stratis/module-setup.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90stratis/module-setup.sh b/modules.d/90stratis/module-setup.sh
+index 2787b63b..29f0765b 100755
+--- a/modules.d/90stratis/module-setup.sh
++++ b/modules.d/90stratis/module-setup.sh
+@@ -2,7 +2,7 @@
+
+ # called by dracut
+ check() {
+- require_binaries stratisd-init thin_check thin_repair || return 1
++ require_binaries stratisd-init thin_check thin_repair mkfs.xfs xfs_admin xfs_growfs
|| return 1
+ return 255
+ }
+
+@@ -20,7 +20,7 @@ installkernel() {
+ # called by dracut
+ install() {
+
+- inst_multiple stratisd-init thin_check thin_repair
++ inst_multiple stratisd-init thin_check thin_repair mkfs.xfs xfs_admin xfs_growfs
+
+ if dracut_module_included "systemd"; then
+ inst_simple "${moddir}/stratisd-init.service"
"${systemdsystemunitdir}/stratisd-init.service"
+
diff --git a/0081.patch b/0081.patch
new file mode 100644
index 0000000..d64429d
--- /dev/null
+++ b/0081.patch
@@ -0,0 +1,106 @@
+From d09218823c787d23b3fdc3e450bb27b20f71f089 Mon Sep 17 00:00:00 2001
+From: Tobias Klauser <tklauser(a)distanz.ch>
+Date: Wed, 29 Aug 2018 11:53:14 +0200
+Subject: [PATCH] Fix misspellings in man pages and usage
+
+Also remove some trailing whitespaces from the same files.
+
+Signed-off-by: Tobias Klauser <tklauser(a)distanz.ch>
+---
+ dracut.cmdline.7.asc | 2 +-
+ dracut.modules.7.asc | 6 +++---
+ dracut.usage.asc | 4 ++--
+ mkinitrd-suse.8.asc | 6 +++---
+ 4 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index 882035af..3cee5a00 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -601,7 +601,7 @@ NFS
+ mount nfs share from <server-ip>:/<root-dir>, if no server-ip is given,
use
+ dhcp next_server. If server-ip is an IPv6 address it has to be put in
+ brackets, e.g. [2001:DB8::1]. NFS options can be appended with the prefix
+- ":" or "," and are seperated by ",".
++ ":" or "," and are separated by ",".
+
+ **root=**nfs:\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__],
**root=**nfs4:\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__],
**root=**__{dhcp|dhcp6}__::
+ root=dhcp alone directs initrd to look at the DHCP root-path where NFS
+diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc
+index 69ac6c44..c34d005d 100644
+--- a/dracut.modules.7.asc
++++ b/dracut.modules.7.asc
+@@ -212,7 +212,7 @@ check() should return with:
+
+ 0:: Include the dracut module in the initramfs.
+
+-1:: Do not include the dracut module. The requirements are not fullfilled
++1:: Do not include the dracut module. The requirements are not fulfilled
+ (missing tools, etc.)
+
+ 255:: Only include the dracut module, if another module requires it or if
+@@ -255,8 +255,8 @@ not lead to an error.
+ ==== inst <src> [<dst>]
+
+ installs _one_ file <src> either to the same place in the initramfs or to an
+-optional <dst>. inst with more than two arguments is treated the same as
+-inst_multiple, all arguments are treated as files to install and none as
++optional <dst>. inst with more than two arguments is treated the same as
++inst_multiple, all arguments are treated as files to install and none as
+ install destinations.
+
+ ==== inst_hook <hookdir> <prio> <src>
+diff --git a/dracut.usage.asc b/dracut.usage.asc
+index 2b25588f..2b598ee6 100644
+--- a/dracut.usage.asc
++++ b/dracut.usage.asc
+@@ -243,7 +243,7 @@ If your root partition is on a network drive, you have to have the
network
+ dracut modules installed to create a network aware initramfs image.
+
+ If you specify ip=dhcp on the kernel command line, then dracut asks a dhcp
+-server about the ip adress for the machine. The dhcp server can also serve an
++server about the ip address for the machine. The dhcp server can also serve an
+ additional root-path, which will set the root device for dracut. With this
+ mechanism, you have static configuration on your client machine and a
+ centralized boot configuration on your TFTP/DHCP server. If you can't pass a
+@@ -252,7 +252,7 @@ method described in <<Injecting>>.
+
+ ==== Reducing the Image Size
+
+-To reduce the size of the initramfs, you should create it with by ommitting all
++To reduce the size of the initramfs, you should create it with by omitting all
+ dracut modules, which you know, you don't need to boot the machine.
+
+ You can also specify the exact dracut and kernel modules to produce a very tiny
+diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
+index 91ec4695..e39ac52b 100644
+--- a/mkinitrd-suse.8.asc
++++ b/mkinitrd-suse.8.asc
+@@ -18,7 +18,7 @@ DESCRIPTION
+ version <kernel-version> by calling *dracut*.
+
+ [IMPORTANT]
+-This version of mkinitrd is provided for compability with older
++This version of mkinitrd is provided for compatibility with older
+ versions of mkinitrd. If a more fine grained control over the
+ resulting image is needed, *dracut* should be called directly.
+
+@@ -30,7 +30,7 @@ OPTIONS
+ **-k**_<kernel_list>_::
+ List of kernel images for which initrd files are created (relative
+ to _boot_dir_), Image name should begin with the following string,
+- defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x and _vmlinuz_
++ defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x and _vmlinuz_
+ for everything else.
+
+ **-i**_<initrd_list>_::
+@@ -51,7 +51,7 @@ OPTIONS
+
+ **-d**_<root_device>_::
+ Root device, defaults to the device from which the root_dir is
+- mounted; overwrites the rootdev enviroment variable if set
++ mounted; overwrites the rootdev environment variable if set
+
+ **-s**_<size>_::
+ Add splash animation and bootscreen to initrd.
+
diff --git a/0082.patch b/0082.patch
new file mode 100644
index 0000000..149f2e5
--- /dev/null
+++ b/0082.patch
@@ -0,0 +1,46 @@
+From e9a84e0a215fb5a79e563f665bc406c0ea177d32 Mon Sep 17 00:00:00 2001
+From: Daniel Molkentin <dmolkentin(a)suse.com>
+Date: Wed, 5 Sep 2018 12:06:06 +0200
+Subject: [PATCH] 98dracut-systemd: Start systemd-vconsole-setup before
+ dracut-cmdline-ask
+
+This is what happened before this patch (edited for brevity):
+
+ dracut-cmdline-ask.service in modules.d/98dracut-systemd, which invokes
+ dracut-cmdline-ask.sh. This script and systemd-vconsole-setup are
+ started in parallel for the same console (tty1).
+
+ Then dracut-cmdline-ask quits immediately without doing anything (unless
+ rd.cmdline=ask is given). As this is a bash script and it gets tty as
+ stdin as specified in its *.service, this triggers the hangup of tty1 at
+ its exit.
+
+ Meanwhile systemd-vconsole-setup continues and tries some ioctls after
+ that, but they fail because of the hung up tty1.
+
+The usual culprit for starting systemd-vconsole-setup early on is
+plymouth-start.service, even if plymouth.enable=0 is set.
+
+A popular (and annoying) symptom of this as reported by users was
+the inability use their configured keyboard layout in plymouth when
+unlocking their crypted block devices.
+
+Reference: boo#1055834
+---
+ modules.d/98dracut-systemd/dracut-cmdline-ask.service | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules.d/98dracut-systemd/dracut-cmdline-ask.service
b/modules.d/98dracut-systemd/dracut-cmdline-ask.service
+index ce7deda5..b96c2aaf 100644
+--- a/modules.d/98dracut-systemd/dracut-cmdline-ask.service
++++ b/modules.d/98dracut-systemd/dracut-cmdline-ask.service
+@@ -7,6 +7,8 @@ Description=dracut ask for additional cmdline parameters
+ DefaultDependencies=no
+ Before=dracut-cmdline.service
+ After=systemd-journald.socket
++After=systemd-vconsole-setup.service
++Requires=systemd-vconsole-setup.service
+ Wants=systemd-journald.socket
+ ConditionPathExists=/usr/lib/initrd-release
+ ConditionKernelCommandLine=|rd.cmdline=ask
+
diff --git a/0083.patch b/0083.patch
new file mode 100644
index 0000000..100fbb5
--- /dev/null
+++ b/0083.patch
@@ -0,0 +1,88 @@
+From a7d8fc280c172ab023ce6170c33c323fb7c87adf Mon Sep 17 00:00:00 2001
+From: Frederick Grose <fgrose(a)sugarlabs.org>
+Date: Mon, 3 Sep 2018 17:01:53 -0400
+Subject: [PATCH] dmsquash-live: Avoid grep and sed in this module.
+
+strstr and variable string manipulations suffice.
+---
+ modules.d/90dmsquash-live/dmsquash-generator.sh | 4 ++--
+ modules.d/90dmsquash-live/dmsquash-live-root.sh | 6 +++---
+ modules.d/90dmsquash-live/module-setup.sh | 2 +-
+ modules.d/90dmsquash-live/parse-dmsquash-live.sh | 4 ++--
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-generator.sh
b/modules.d/90dmsquash-live/dmsquash-generator.sh
+index 1129ddff..f57b1fc5 100755
+--- a/modules.d/90dmsquash-live/dmsquash-generator.sh
++++ b/modules.d/90dmsquash-live/dmsquash-generator.sh
+@@ -18,12 +18,12 @@ fi
+ case "$liveroot" in
+ live:LABEL=*|LABEL=*) \
+ root="${root#live:}"
+- root="$(echo $root | sed 's,/,\\x2f,g')"
++ root="${root//\//\\x2f}"
+ root="live:/dev/disk/by-label/${root#LABEL=}"
+ rootok=1 ;;
+ live:CDLABEL=*|CDLABEL=*) \
+ root="${root#live:}"
+- root="$(echo $root | sed 's,/,\\x2f,g')"
++ root="${root//\//\\x2f}"
+ root="live:/dev/disk/by-label/${root#CDLABEL=}"
+ rootok=1 ;;
+ live:UUID=*|UUID=*) \
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh
b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+index 0f3d8f89..330ba3e9 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+@@ -109,15 +109,15 @@ do_live_overlay() {
+
+ if [ -z "$overlay" ]; then
+ pathspec="/${live_dir}/overlay-$l-$u"
+- elif ( echo $overlay | grep -q ":" ); then
++ elif strstr $overlay ":"; then
+ # pathspec specified, extract
+- pathspec=$( echo $overlay | sed -e 's/^.*://' )
++ pathspec=${overlay##*:}
+ fi
+
+ if [ -z "$pathspec" -o "$pathspec" = "auto" ]; then
+ pathspec="/${live_dir}/overlay-$l-$u"
+ fi
+- devspec=$( echo $overlay | sed -e 's/:.*$//' )
++ devspec=${overlay%%:*}
+
+ # need to know where to look for the overlay
+ if [ -z "$setup" -a -n "$devspec" -a -n "$pathspec" -a
-n "$overlay" ]; then
+diff --git a/modules.d/90dmsquash-live/module-setup.sh
b/modules.d/90dmsquash-live/module-setup.sh
+index 48418a06..f251258f 100755
+--- a/modules.d/90dmsquash-live/module-setup.sh
++++ b/modules.d/90dmsquash-live/module-setup.sh
+@@ -22,7 +22,7 @@ installkernel() {
+
+ # called by dracut
+ install() {
+- inst_multiple umount dmsetup blkid dd losetup grep blockdev find
++ inst_multiple umount dmsetup blkid dd losetup blockdev find
+ inst_multiple -o checkisomd5
+ inst_hook cmdline 30 "$moddir/parse-dmsquash-live.sh"
+ inst_hook cmdline 31 "$moddir/parse-iso-scan.sh"
+diff --git a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
+index 0eedf1f6..4d46a360 100755
+--- a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
++++ b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
+@@ -20,12 +20,12 @@ modprobe -q loop
+ case "$liveroot" in
+ live:LABEL=*|LABEL=*) \
+ root="${root#live:}"
+- root="$(echo $root | sed 's,/,\\x2f,g')"
++ root="${root//\//\\x2f}"
+ root="live:/dev/disk/by-label/${root#LABEL=}"
+ rootok=1 ;;
+ live:CDLABEL=*|CDLABEL=*) \
+ root="${root#live:}"
+- root="$(echo $root | sed 's,/,\\x2f,g')"
++ root="${root//\//\\x2f}"
+ root="live:/dev/disk/by-label/${root#CDLABEL=}"
+ rootok=1 ;;
+ live:UUID=*|UUID=*) \
+
diff --git a/0084.patch b/0084.patch
new file mode 100644
index 0000000..ef1ee87
--- /dev/null
+++ b/0084.patch
@@ -0,0 +1,72 @@
+From 44d1688164040f088fd66fb8a2d458e1f61836ce Mon Sep 17 00:00:00 2001
+From: Frederick Grose <fgrose(a)sugarlabs.org>
+Date: Mon, 3 Sep 2018 19:02:23 -0400
+Subject: [PATCH] dmsquash-live-root: Manage absent overlayfs module better.
+
+die when required; systemctl reload otherwise.
+---
+ modules.d/90dmsquash-live/dmsquash-live-root.sh | 26 +++++++++++++++----------
+ 1 file changed, 16 insertions(+), 10 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh
b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+index 330ba3e9..6324fe83 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+@@ -146,10 +146,10 @@ do_live_overlay() {
+ [ -d /run/initramfs/overlayfs/ovlwork ]; then
+ ln -s /run/initramfs/overlayfs/overlayfs /run/overlayfs$opt
+ ln -s /run/initramfs/overlayfs/ovlwork /run/ovlwork$opt
+- if [ -z "$overlayfs" ]; then
+- overlayfs="yes"
+- [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
++ if [ -z "$overlayfs" ] && [ -n
"$DRACUT_SYSTEMD" ]; then
++ reloadsysrootmountunit=":>/xor_overlayfs;"
+ fi
++ overlayfs="required"
+ setup="yes"
+ fi
+ fi
+@@ -157,18 +157,24 @@ do_live_overlay() {
+ [ -d /run/initramfs/overlayfs$pathspec/../ovlwork ]; then
+ ln -s /run/initramfs/overlayfs$pathspec /run/overlayfs$opt
+ ln -s /run/initramfs/overlayfs$pathspec/../ovlwork /run/ovlwork$opt
+- if [ -z "$overlayfs" ]; then
+- overlayfs="yes"
+- [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
++ if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD"
]; then
++ reloadsysrootmountunit=":>/xor_overlayfs;"
+ fi
++ overlayfs="required"
+ setup="yes"
+ fi
+ fi
+ if [ -n "$overlayfs" ]; then
+ modprobe overlay
+ if [ $? != 0 ]; then
++ if [ "$overlayfs" = required ]; then
++ die "OverlayFS is required but not available."
++ exit 1
++ fi
++ [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
+ m='OverlayFS is not available; using temporary Device-mapper
overlay.'
+- unset -v overlayfs setup reloadsysrootmountunit
++ info $m
++ unset -v overlayfs setup
+ fi
+ fi
+
+@@ -302,10 +308,10 @@ if [ -e "$SQUASHED" ]; then
+ fi
+ elif [ -d /run/initramfs/squashfs/proc ]; then
+ FSIMG=$SQUASHED
+- if [ -z "$overlayfs" ]; then
+- overlayfs="yes"
+- [ -n "$DRACUT_SYSTEMD" ] &&
reloadsysrootmountunit=":>/xor_overlayfs;"
++ if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD" ];
then
++ reloadsysrootmountunit=":>/xor_overlayfs;"
+ fi
++ overlayfs="required"
+ else
+ die "Failed to find a root filesystem in $SQUASHED."
+ exit 1
+
diff --git a/0085.patch b/0085.patch
new file mode 100644
index 0000000..0a44482
--- /dev/null
+++ b/0085.patch
@@ -0,0 +1,24 @@
+From 8dd7bb48fcd9d19dd2d7cec2577cd2c6b414fd8b Mon Sep 17 00:00:00 2001
+From: Frederick Grose <fgrose(a)sugarlabs.org>
+Date: Mon, 3 Sep 2018 19:41:58 -0400
+Subject: [PATCH] dmsquash-live/apply-live-updates: Test proper file link.
+
+Update flag link to /dev/root as required by commit
+789668deb3e6f8584ffab964d2204ddcb75f0a06.
+---
+ modules.d/90dmsquash-live/apply-live-updates.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90dmsquash-live/apply-live-updates.sh
b/modules.d/90dmsquash-live/apply-live-updates.sh
+index bcca761b..3df2d4ad 100755
+--- a/modules.d/90dmsquash-live/apply-live-updates.sh
++++ b/modules.d/90dmsquash-live/apply-live-updates.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+-if [ -L /run/rootfsbase ] && [ -d /run/initramfs/live/updates -o -d /updates ];
then
++if [ -h /dev/root ] && [ -d /run/initramfs/live/updates -o -d /updates ]; then
+ info "Applying updates to live image..."
+ mount -o bind /run $NEWROOT/run
+ # avoid overwriting symlinks (e.g. /lib -> /usr/lib) with directories
+
diff --git a/0086.patch b/0086.patch
new file mode 100644
index 0000000..970ae94
--- /dev/null
+++ b/0086.patch
@@ -0,0 +1,67 @@
+From b3480d31b01e66e21a70b7dab55eac95449126c7 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander(a)tsoy.me>
+Date: Sat, 8 Sep 2018 17:02:03 +0300
+Subject: [PATCH] Prevent environment leaking into initrd-release
+
+On my system the following initrd-release is generated:
+...
+VERSION="4 dracut-048 dracut-048"
+...
+
+VERSION is not defined in /etc/os-release, so the variable is
+concatenated with its previous value:
+
+* "4" comes from the kernel build system since dracut is called from the
+ kernel install hook ("4" is a major kernel version);
+* first "dracut-048" comes from the "systemd-initrd" module;
+* second "dracut-048" comes from the "base" module.
+---
+ modules.d/01systemd-initrd/module-setup.sh | 9 ++++-----
+ modules.d/99base/module-setup.sh | 9 ++++-----
+ 2 files changed, 8 insertions(+), 10 deletions(-)
+
+diff --git a/modules.d/01systemd-initrd/module-setup.sh
b/modules.d/01systemd-initrd/module-setup.sh
+index c1ccd2af..cb8a8fa6 100755
+--- a/modules.d/01systemd-initrd/module-setup.sh
++++ b/modules.d/01systemd-initrd/module-setup.sh
+@@ -38,13 +38,12 @@ install() {
+
+ ln_r "${systemdsystemunitdir}/initrd.target"
"${systemdsystemunitdir}/default.target"
+
++ local VERSION=""
++ local PRETTY_NAME=""
+ if [ -e /etc/os-release ]; then
+ . /etc/os-release
+- VERSION+=" "
+- PRETTY_NAME+=" "
+- else
+- VERSION=""
+- PRETTY_NAME=""
++ [[ -n ${VERSION} ]] && VERSION+=" "
++ [[ -n ${PRETTY_NAME} ]] && PRETTY_NAME+=" "
+ fi
+ NAME=dracut
+ ID=dracut
+diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
+index 731c6dcc..21523fc9 100755
+--- a/modules.d/99base/module-setup.sh
++++ b/modules.d/99base/module-setup.sh
+@@ -63,13 +63,12 @@ install() {
+ echo ro >> "${initdir}/etc/cmdline.d/base.conf"
+ fi
+
++ local VERSION=""
++ local PRETTY_NAME=""
+ if [ -e /etc/os-release ]; then
+ . /etc/os-release
+- VERSION+=" "
+- PRETTY_NAME+=" "
+- else
+- VERSION=""
+- PRETTY_NAME=""
++ [[ -n ${VERSION} ]] && VERSION+=" "
++ [[ -n ${PRETTY_NAME} ]] && PRETTY_NAME+=" "
+ fi
+ NAME=dracut
+ ID=dracut
+
diff --git a/0087.patch b/0087.patch
new file mode 100644
index 0000000..23b3ca2
--- /dev/null
+++ b/0087.patch
@@ -0,0 +1,32 @@
+From 838f22259a50e5f92429ecdd24b897c1128edc98 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander(a)tsoy.me>
+Date: Sun, 9 Sep 2018 02:47:09 +0300
+Subject: [PATCH] install: avoid non-portable __WORDSIZE
+
+Lets not unnecessarily rely on __WORDSIZE, which is not clearly specified
+by any spec. Use explicit size comparisons if we're not interested in the
+WORDSIZE, anyway.
+
+Patch ported from systemd.
+(commit 8507eb20b64010b26f23822cbf442bb0bf96511c)
+
+Original-patch-by: Emil Renner Berthing <systemd(a)esmil.dk>
+Bug:
https://bugs.gentoo.org/602122
+---
+ install/util.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/install/util.h b/install/util.h
+index 2ad3254d..c13b1a27 100644
+--- a/install/util.h
++++ b/install/util.h
+@@ -167,7 +167,7 @@ int safe_atoi(const char *s, int *ret_i);
+ int safe_atollu(const char *s, unsigned long long *ret_u);
+ int safe_atolli(const char *s, long long int *ret_i);
+
+-#if __WORDSIZE == 32
++#if LONG_MAX == INT_MAX
+ static inline int safe_atolu(const char *s, unsigned long *ret_u) {
+ assert_cc(sizeof(unsigned long) == sizeof(unsigned));
+ return safe_atou(s, (unsigned*) ret_u);
+
diff --git a/0088.patch b/0088.patch
new file mode 100644
index 0000000..58d0f89
--- /dev/null
+++ b/0088.patch
@@ -0,0 +1,24 @@
+From f4334e9bdf5ff85d5f9d9eb12f51a6b78e94101e Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander(a)tsoy.me>
+Date: Sun, 9 Sep 2018 13:57:33 +0300
+Subject: [PATCH] base/dracut-lib.sh: use "command -v" in pidof()
+
+"type -P" doesn't work in dash
+---
+ modules.d/99base/dracut-lib.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index b78272a3..f71e757c 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -1060,7 +1060,7 @@ if ! command -v pidof >/dev/null 2>/dev/null; then
+ debug_on
+ return 1
+ fi
+- _exe=$(type -P "$1")
++ _exe=$(command -v "$1")
+ for i in /proc/*/exe; do
+ [ -e "$i" ] || continue
+ if [ -n "$_exe" ]; then
+
diff --git a/0089.patch b/0089.patch
new file mode 100644
index 0000000..3de1342
--- /dev/null
+++ b/0089.patch
@@ -0,0 +1,349 @@
+From 095e1f37c41e8995c95635a47dbe2bf61d8ee2bc Mon Sep 17 00:00:00 2001
+From: Kairui Song <kasong(a)redhat.com>
+Date: Tue, 11 Sep 2018 19:32:24 +0800
+Subject: [PATCH] Add support for building a squashed initramfs
+
+With all files stored in ramfs, and most of them are not compressed,
+the initramfs will take up a lot of memory. Besides, if the file number
+is large, each file will waste some memory due to page fragmetation.
+This is due to ramfs' design, at least one page will be allocated for
+one file however small the file is. On machine with large page size,
+this will become worse and waste too many memory.
+
+One approach to reducing the memory usage is to reduce the number of
+files that got directly loaded into the root ramfs, and compress files
+by put most files will into a read-only squash image and keep a minimum
+set of executable and libraries outside as the loader for the squash
+image. After the squash image is mounted, the real 'init' will be
+executed and then everything behaves as usual.
+
+This patch will introduce a '99squash' module which will never be
+included by default. User can force add it, and if it is included,
+dracut will perform some extra steps before creating the final image:
+
+For now, "/etc" and "/usr" will be moved into the squashfs image.
+"/init" will be renamed to "/init.stock" and replaced by
"/init.squash".
+Files and folders need to be accessible before mounting the image will
+be still avaliable at their original place. And due to squashfs is
+readonly, an overlayfs layer will be created on top of squashfs mount
+point, as many dracut module require readwrite access to "/etc" and
+"/usr", "init.squash" will ultimately call "/init.stock".
+
+An extra systemd service will be installed. This service will umount all
+squashfs related mount points right before switch-root to release
+resources properly. This service will not actually do anything if
+switch-root is not used.
+
+This is very helpful when mem resource is very limited, like Kdump.
+According to my tests, this squash module can help save about 35MB of
+memory with 64K page size, or about 15MB with 4K page size on an
+ordinary kdump capture routine. This module could also help reduce
+memory usage for normal boot up process.
+
+Won't change any behavior if squash module is not enabled.
+
+Signed-off-by: Kairui Song <kasong(a)redhat.com>
+---
+ dracut.sh | 114 ++++++++++++++++++++++++++++
+ modules.d/99squash/clear-squash.sh | 9 +++
+ modules.d/99squash/init.sh | 7 ++
+ modules.d/99squash/module-setup.sh | 29 +++++++
+ modules.d/99squash/setup-squash.sh | 61 +++++++++++++++
+ modules.d/99squash/shutdown.sh | 7 ++
+ modules.d/99squash/squash-mnt-clear.service | 19 +++++
+ 7 files changed, 246 insertions(+)
+
+diff --git a/dracut.sh b/dracut.sh
+index 8ee8c168..e683a9bc 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1747,6 +1747,120 @@ fi
+
+ dinfo "*** Creating image file '$outfile' ***"
+
++if dracut_module_included "squash"; then
++ if ! check_kernel_config CONFIG_SQUASHFS; then
++ dfatal "CONFIG_SQUASHFS have to be enabled for dracut squash module to
work"
++ exit 1
++ fi
++ if ! check_kernel_config CONFIG_OVERLAY_FS; then
++ dfatal "CONFIG_OVERLAY_FS have to be enabled for dracut squash module to
work"
++ exit 1
++ fi
++ if ! check_kernel_config CONFIG_DEVTMPFS; then
++ dfatal "CONFIG_DEVTMPFS have to be enabled for dracut squash module to
work"
++ exit 1
++ fi
++
++ readonly squash_dir="${DRACUT_TMPDIR}/squashfs"
++ readonly squash_img=$initdir/squash/root.img
++
++ # Currently only move "usr" "etc" to squashdir
++ readonly squash_candidate=( "usr" "etc" )
++
++ mkdir -m 0755 -p $squash_dir
++ for folder in "${squash_candidate[@]}"; do
++ mv $initdir/$folder $squash_dir/$folder
++ done
++
++ # Reinstall required files, because we have moved some important folders to
$squash_dir
++ inst_multiple "echo" "sh" "mount" "modprobe"
"mkdir" \
++ "systemctl" "udevadm" "$systemdutildir/systemd"
++ hostonly="" instmods "loop" "squashfs"
"overlay"
++
++ for folder in "${squash_candidate[@]}"; do
++ # Remove duplicated files in squashfs image, save some more space
++ [[ ! -d $initdir/$folder/ ]] && continue
++ for file in $(find $initdir/$folder/ -not -type d);
++ do
++ if [[ -e $squash_dir${file#$initdir} ]]; then
++ mv $squash_dir${file#$initdir} $file
++ fi
++ done
++ done
++
++ # Move some files out side of the squash image, including:
++ # - Files required to boot and mount the squashfs image
++ # - Files need to be accessable without mounting the squash image
++ required_in_root() {
++ local file=$1
++ local _sqsh_file=$squash_dir/$file
++ local _init_file=$initdir/$file
++
++ if [[ -e $_init_file ]]; then
++ return
++ fi
++
++ if [[ ! -e $_sqsh_file ]] && [[ ! -L $_sqsh_file ]]; then
++ derror "$file is required to boot a squashed initramfs but it's not
installed!"
++ return
++ fi
++
++ if [[ ! -d $(dirname $_init_file) ]]; then
++ required_in_root $(dirname $file)
++ fi
++
++ if [[ -d $_sqsh_file ]]; then
++ if [[ -L $_sqsh_file ]]; then
++ cp --preserve=all -P $_sqsh_file $_init_file
++ else
++ mkdir $_init_file
++ fi
++ else
++ if [[ -L $_sqsh_file ]]; then
++ cp --preserve=all -P $_sqsh_file $_init_file
++ _sqsh_file=$(realpath $_sqsh_file 2>/dev/null)
++ if [[ -e $_sqsh_file ]] && [[ "$_sqsh_file" ==
"$squash_dir"* ]]; then
++ # Relative symlink
++ required_in_root ${_sqsh_file#$squash_dir/}
++ return
++ fi
++ if [[ -e $squash_dir$_sqsh_file ]]; then
++ # Absolute symlink
++ required_in_root ${_sqsh_file#/}
++ return
++ fi
++ required_in_root ${module_spec#$squash_dir/}
++ else
++ mv $_sqsh_file $_init_file
++ fi
++ fi
++ }
++
++ required_in_root etc/initrd-release
++
++ for module_spec in $squash_dir/usr/lib/modules/*/modules.*;
++ do
++ required_in_root ${module_spec#$squash_dir/}
++ done
++
++ for dracut_spec in $squash_dir/usr/lib/dracut/*;
++ do
++ required_in_root ${dracut_spec#$squash_dir/}
++ done
++
++ mv $initdir/init $initdir/init.stock
++ mv $initdir/shutdown $initdir/shutdown.stock
++ ln -s squash/init.sh $initdir/init
++ ln -s squash/shutdown.sh $initdir/shutdown
++
++ mksquashfs $squash_dir $squash_img -comp xz -b 64K -Xdict-size 100% &>
/dev/null
++
++ if [[ $? != 0 ]]; then
++ dfatal "dracut: Failed making squash image"
++ exit 1
++ fi
++fi
++
+ if [[ $uefi = yes ]]; then
+ readonly uefi_outdir="$DRACUT_TMPDIR/uefi"
+ mkdir "$uefi_outdir"
+diff --git a/modules.d/99squash/clear-squash.sh b/modules.d/99squash/clear-squash.sh
+new file mode 100755
+index 00000000..34cb4cf5
+--- /dev/null
++++ b/modules.d/99squash/clear-squash.sh
+@@ -0,0 +1,9 @@
++#!/bin/sh
++SQUASH_MNT_REC=/squash/mounts
++SQUASH_MNTS=( )
++
++while read mnt; do
++ SQUASH_MNTS+=( "$mnt" )
++done <<< "$(cat $SQUASH_MNT_REC)"
++
++umount --lazy -- ${SQUASH_MNTS[@]}
+diff --git a/modules.d/99squash/init.sh b/modules.d/99squash/init.sh
+new file mode 100755
+index 00000000..bca49db5
+--- /dev/null
++++ b/modules.d/99squash/init.sh
+@@ -0,0 +1,7 @@
++#!/bin/sh
++/squash/setup-squash.sh
++
++exec /init.stock
++
++echo "Something went wrong when trying to start original init executable!"
++exit 1
+diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
+new file mode 100644
+index 00000000..935fd721
+--- /dev/null
++++ b/modules.d/99squash/module-setup.sh
+@@ -0,0 +1,29 @@
++#!/bin/bash
++
++check() {
++ return 255
++}
++
++depends() {
++ echo "bash systemd systemd-initrd"
++ return 0
++}
++
++installkernel() {
++ hostonly="" instmods squashfs loop overlay
++}
++
++install() {
++ if ! type -P mksquashfs >/dev/null || ! type -P unsquashfs >/dev/null ; then
++ derror "squash module requires squashfs-tools to be installed."
++ return 1
++ fi
++
++ inst_multiple kmod modprobe mount mkdir ln echo
++ inst $moddir/setup-squash.sh /squash/setup-squash.sh
++ inst $moddir/clear-squash.sh /squash/clear-squash.sh
++ inst $moddir/init.sh /squash/init.sh
++
++ inst "$moddir/squash-mnt-clear.service"
"$systemdsystemunitdir/squash-mnt-clear.service"
++ ln_r "$systemdsystemunitdir/squash-mnt-clear.service"
"$systemdsystemunitdir/initrd.target.wants/squash-mnt-clear.service"
++}
+diff --git a/modules.d/99squash/setup-squash.sh b/modules.d/99squash/setup-squash.sh
+new file mode 100755
+index 00000000..d2740e7c
+--- /dev/null
++++ b/modules.d/99squash/setup-squash.sh
+@@ -0,0 +1,61 @@
++#!/bin/sh
++PATH=/bin:/sbin
++
++SQUASH_IMG=/squash/root.img
++SQUASH_MNT=/squash/root
++SQUASH_MNT_REC=/squash/mounts
++SQUASHED_MNT="usr etc"
++
++echo $SQUASH_MNT > $SQUASH_MNT_REC
++
++# Following mount points are neccessary for mounting a squash image
++
++[ ! -d /proc/self ] && \
++ mount -t proc -o nosuid,noexec,nodev proc /proc
++
++[ ! -d /sys/kernel ] && \
++ mount -t sysfs -o nosuid,noexec,nodev sysfs /sys
++
++[ ! -e /dev/loop-control ] && \
++ mount -t devtmpfs -o mode=0755,noexec,nosuid,strictatime devtmpfs /dev
++
++# Need a loop device backend, overlayfs, and squashfs module
++modprobe loop
++if [ $? != 0 ]; then
++ echo "Unable to setup loop module"
++fi
++
++modprobe squashfs
++if [ $? != 0 ]; then
++ echo "Unable to setup squashfs module"
++fi
++
++modprobe overlay
++if [ $? != 0 ]; then
++ echo "Unable to setup overlay module"
++fi
++
++[ ! -d "$SQUASH_MNT" ] && \
++ mkdir -m 0755 -p $SQUASH_MNT
++
++# Mount the squashfs image
++mount -t squashfs -o ro,loop $SQUASH_IMG $SQUASH_MNT
++
++if [ $? != 0 ]; then
++ echo "Unable to mount squashed initramfs image"
++fi
++
++for file in $SQUASHED_MNT; do
++ lowerdir=$SQUASH_MNT/$file
++ workdir=/squash/overlay-work/$file
++ upperdir=/$file
++ mntdir=/$file
++
++ mkdir -m 0755 -p $workdir
++ mkdir -m 0755 -p $mntdir
++
++ mount -t overlay overlay -o\
++ lowerdir=$lowerdir,upperdir=$upperdir,workdir=$workdir $mntdir
++
++ echo $mntdir >> $SQUASH_MNT_REC
++done
+diff --git a/modules.d/99squash/shutdown.sh b/modules.d/99squash/shutdown.sh
+new file mode 100755
+index 00000000..535779f4
+--- /dev/null
++++ b/modules.d/99squash/shutdown.sh
+@@ -0,0 +1,7 @@
++#!/bin/sh
++/squash/setup-squash.sh
++
++exec /shutdown.stock
++
++echo "Something went wrong when trying to start original shutdown
executable!"
++exit 1
+diff --git a/modules.d/99squash/squash-mnt-clear.service
b/modules.d/99squash/squash-mnt-clear.service
+new file mode 100644
+index 00000000..8dd17812
+--- /dev/null
++++ b/modules.d/99squash/squash-mnt-clear.service
+@@ -0,0 +1,19 @@
++# This file is part of dracut.
++#
++
++[Unit]
++Description=Cleanup squashfs mounts when switch root
++DefaultDependencies=no
++After=initrd.target
++After=dracut-initqueue.service dracut-pre-pivot.service
++Before=initrd-cleanup.service
++ConditionPathExists=/squash/root
++Conflicts=initrd-switch-root.target
++
++[Service]
++Type=oneshot
++RemainAfterExit=yes
++StandardInput=null
++StandardOutput=syslog+console
++StandardError=syslog+console
++ExecStop=/squash/clear-squash.sh
+
diff --git a/0090.patch b/0090.patch
new file mode 100644
index 0000000..82b559a
--- /dev/null
+++ b/0090.patch
@@ -0,0 +1,43 @@
+From 24f3463bff8600d562975c9a7c44365066a50ca4 Mon Sep 17 00:00:00 2001
+From: Kairui Song <kasong(a)redhat.com>
+Date: Thu, 20 Sep 2018 17:23:19 +0800
+Subject: [PATCH] dracut.spec: Add dracut-squash package
+
+As 99squash module requires extra dependency and it introduces new
+files, add a new sub package for this module.
+---
+ dracut.spec | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/dracut.spec b/dracut.spec
+index 09c74478..d9cfdf1c 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -178,6 +178,16 @@ Requires: %{name} = %{version}-%{release}
+ %description tools
+ This package contains tools to assemble the local initrd and host configuration.
+
++%package squash
++Summary: dracut module to build an initramfs with most files in a squashfs image
++Requires: %{name} = %{version}-%{release}
++Requires: squash-tools
++
++%description squash
++This package provides a dracut module to build an initramfs, but store most files
++in a squashfs image, result in a smaller initramfs size and reduce runtime memory
++usage.
++
+ %prep
+ %autosetup -n %{name}-%{version} -S git_am
+ cp %{SOURCE1} .
+@@ -439,6 +449,9 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
+ %doc %{_mandir}/man8/dracut-catimages.8*
+ %endif
+
++%files squash
++%{dracutlibdir}/modules.d/99squash
++
+ %{_bindir}/dracut-catimages
+ %dir /boot/dracut
+ %dir /var/lib/dracut
+
diff --git a/0091.patch b/0091.patch
new file mode 100644
index 0000000..bc86778
--- /dev/null
+++ b/0091.patch
@@ -0,0 +1,30 @@
+From 0454dc247a146fabd66232c26536514dca1f6044 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak(a)v3.sk>
+Date: Tue, 18 Sep 2018 11:17:54 +0200
+Subject: [PATCH] network: configure NetworkManager to use dhclient
+
+If the network module obtained a lease using dhclient, NetworkManager
+must be configured to use it too, otherwise it would obtain a different
+lease (and could potentially break a connection to the network volume).
+---
+ modules.d/40network/ifup.sh | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
+index 54981386..ea2a67ff 100755
+--- a/modules.d/40network/ifup.sh
++++ b/modules.d/40network/ifup.sh
+@@ -41,6 +41,12 @@ do_dhcp() {
+ return 1
+ fi
+
++ if [ ! -e /run/NetworkManager/conf.d/10-dracut-dhclient.conf ]; then
++ mkdir -p /run/NetworkManager/conf.d
++ echo '[main]' > /run/NetworkManager/conf.d/10-dracut-dhclient.conf
++ echo 'dhcp=dhclient'
>>/run/NetworkManager/conf.d/10-dracut-dhclient.conf
++ fi
++
+ while [ $_COUNT -lt $_DHCPRETRY ]; do
+ info "Starting dhcp for interface $netif"
+ dhclient "$@" \
+
diff --git a/0092.patch b/0092.patch
new file mode 100644
index 0000000..ed20a76
--- /dev/null
+++ b/0092.patch
@@ -0,0 +1,37 @@
+From 9e82732dd412a49cbdf9c4b998f04ac0a39e393f Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak(a)v3.sk>
+Date: Thu, 30 Aug 2018 16:21:17 +0200
+Subject: [PATCH] iscsi: do not replace the configuration in the host system
+
+ ln: failed to create symbolic link
'/usr/lib/systemd/system/sockets.target.wants/iscsid.socket': Permission denied
+ ln: failed to create symbolic link
'/usr/lib/systemd/system/sockets.target.wants/iscsiuio.socket': Permission denied
+
+No way. Just ensure the links are there in the initramfs image. In fact,
+that is already the case for iscsiuio.socket. Add iscsid.socket too.
+---
+ modules.d/95iscsi/module-setup.sh | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
+index d8405fce..04beae4c 100755
+--- a/modules.d/95iscsi/module-setup.sh
++++ b/modules.d/95iscsi/module-setup.sh
+@@ -208,9 +208,6 @@ install() {
+ inst_libdir_file 'libgcc_s.so*'
+ inst_multiple umount hostname iscsi-iname iscsiadm iscsid
+
+- ln -sf $systemdsystemunitdir/iscsid.socket
$systemdsystemunitdir/sockets.target.wants/iscsid.socket
+- ln -sf $systemdsystemunitdir/iscsiuio.socket
$systemdsystemunitdir/sockets.target.wants/iscsiuio.socket
+-
+ inst_multiple -o \
+ $systemdsystemunitdir/iscsid.socket \
+ $systemdsystemunitdir/iscsid.service \
+@@ -243,6 +240,7 @@ install() {
+
+ mkdir -p "${initdir}/$systemdsystemunitdir/sockets.target.wants"
+ for i in \
++ iscsid.socket \
+ iscsiuio.socket \
+ ; do
+ ln_r "$systemdsystemunitdir/${i}"
"$systemdsystemunitdir/sockets.target.wants/${i}"
+
diff --git a/0093.patch b/0093.patch
new file mode 100644
index 0000000..45f9dce
--- /dev/null
+++ b/0093.patch
@@ -0,0 +1,29 @@
+From 5e615f4eb488e469395e7e30059a22d8225d9a0a Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak(a)v3.sk>
+Date: Thu, 30 Aug 2018 18:38:34 +0200
+Subject: [PATCH] iscsi: do not install all of /etc/iscsi unless hostonly
+
+/etc/iscsi/initiatorname.iscsi would leak the host initiator name (that
+is host configuration) to the initramfs. Perhaps other files too.
+---
+ modules.d/95iscsi/module-setup.sh | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
+index 04beae4c..5c2073bb 100755
+--- a/modules.d/95iscsi/module-setup.sh
++++ b/modules.d/95iscsi/module-setup.sh
+@@ -216,7 +216,11 @@ install() {
+ $systemdsystemunitdir/sockets.target.wants/iscsid.socket \
+ $systemdsystemunitdir/sockets.target.wants/iscsiuio.socket
+
+- [[ -d /etc/iscsi ]] && inst_dir $(/usr/bin/find /etc/iscsi)
++ if [[ $hostonly ]]; then
++ inst_dir $(/usr/bin/find /etc/iscsi)
++ else
++ inst_simple /etc/iscsi/iscsid.conf
++ fi
+
+ # Detect iBFT and perform mandatory steps
+ if [[ $hostonly_cmdline == "yes" ]] ; then
+
diff --git a/0094.patch b/0094.patch
new file mode 100644
index 0000000..5f8dc65
--- /dev/null
+++ b/0094.patch
@@ -0,0 +1,27 @@
+From 0aa2e5f7280a0f88d5f8d69dd9467e7b81d6a231 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak(a)v3.sk>
+Date: Thu, 30 Aug 2018 18:41:37 +0200
+Subject: [PATCH] iscsi: start iscsid even w/o systemd
+
+---
+ modules.d/95iscsi/iscsiroot.sh | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
+index 76c8b3fe..4efc1d12 100755
+--- a/modules.d/95iscsi/iscsiroot.sh
++++ b/modules.d/95iscsi/iscsiroot.sh
+@@ -194,6 +194,12 @@ handle_netroot()
+ sleep 1
+ fi
+ fi
++
++ if [ -z "$DRACUT_SYSTEMD" ]; then
++ iscsid
++ sleep 2
++ fi
++
+ # FIXME $iscsi_protocol??
+
+ if [ "$root" = "dhcp" ] || [ "$netroot" =
"dhcp" ]; then
+
diff --git a/0095.patch b/0095.patch
new file mode 100644
index 0000000..9ed7f9b
--- /dev/null
+++ b/0095.patch
@@ -0,0 +1,23 @@
+From 1c4a51c39c8ed9908ae8118eff78d3476eaddf61 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak(a)v3.sk>
+Date: Fri, 31 Aug 2018 16:51:38 +0200
+Subject: [PATCH] network: fix an error message
+
+---
+ modules.d/40network/netroot.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh
+index c80a59fe..207364cd 100755
+--- a/modules.d/40network/netroot.sh
++++ b/modules.d/40network/netroot.sh
+@@ -46,7 +46,7 @@ if [ -z "$2" ]; then
+ # we die. Otherwise we just warn
+ if [ -z "$new_root_path" ] ; then
+ [ -n "$BOOTDEV" ] && die "No dhcp root-path received
for '$BOOTDEV'"
+- warn "No dhcp root-path received for '$BOOTDEV' trying other
interfaces if available"
++ warn "No dhcp root-path received for '$netif' trying other
interfaces if available"
+ exit 1
+ fi
+
+
diff --git a/0096.patch b/0096.patch
new file mode 100644
index 0000000..f67d657
--- /dev/null
+++ b/0096.patch
@@ -0,0 +1,287 @@
+From 734739187bfab24f063904ea18f0bdf03b4a136c Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak(a)v3.sk>
+Date: Thu, 30 Aug 2018 16:44:22 +0200
+Subject: [PATCH] network-legacy: split off from network module
+
+---
+ dracut.spec | 1 +
+ .../dhclient-script.sh | 0
+ .../{40network => 35network-legacy}/dhclient.conf | 0
+ .../{40network => 35network-legacy}/dhcp-root.sh | 0
+ modules.d/{40network => 35network-legacy}/ifup.sh | 0
+ .../kill-dhclient.sh | 0
+ modules.d/35network-legacy/module-setup.sh | 93 ++++++++++++++++++++++
+ .../net-genrules.sh | 0
+ .../{40network => 35network-legacy}/parse-bond.sh | 0
+ .../parse-bridge.sh | 0
+ .../{40network => 35network-legacy}/parse-ibft.sh | 0
+ .../parse-ifname.sh | 0
+ .../parse-ip-opts.sh | 0
+ .../{40network => 35network-legacy}/parse-team.sh | 0
+ .../{40network => 35network-legacy}/parse-vlan.sh | 0
+ modules.d/40network/module-setup.sh | 76 +-----------------
+ 16 files changed, 95 insertions(+), 75 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index d9cfdf1c..f6486d50 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -419,6 +419,7 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
+
+ %files network
+ %{dracutlibdir}/modules.d/02systemd-networkd
++%{dracutlibdir}/modules.d/35network-legacy
+ %{dracutlibdir}/modules.d/40network
+ %{dracutlibdir}/modules.d/45ifcfg
+ %{dracutlibdir}/modules.d/90kernel-network-modules
+diff --git a/modules.d/40network/dhclient-script.sh
b/modules.d/35network-legacy/dhclient-script.sh
+similarity index 100%
+rename from modules.d/40network/dhclient-script.sh
+rename to modules.d/35network-legacy/dhclient-script.sh
+diff --git a/modules.d/40network/dhclient.conf
b/modules.d/35network-legacy/dhclient.conf
+similarity index 100%
+rename from modules.d/40network/dhclient.conf
+rename to modules.d/35network-legacy/dhclient.conf
+diff --git a/modules.d/40network/dhcp-root.sh b/modules.d/35network-legacy/dhcp-root.sh
+similarity index 100%
+rename from modules.d/40network/dhcp-root.sh
+rename to modules.d/35network-legacy/dhcp-root.sh
+diff --git a/modules.d/40network/ifup.sh b/modules.d/35network-legacy/ifup.sh
+similarity index 100%
+rename from modules.d/40network/ifup.sh
+rename to modules.d/35network-legacy/ifup.sh
+diff --git a/modules.d/40network/kill-dhclient.sh
b/modules.d/35network-legacy/kill-dhclient.sh
+similarity index 100%
+rename from modules.d/40network/kill-dhclient.sh
+rename to modules.d/35network-legacy/kill-dhclient.sh
+diff --git a/modules.d/35network-legacy/module-setup.sh
b/modules.d/35network-legacy/module-setup.sh
+new file mode 100755
+index 00000000..71abda36
+--- /dev/null
++++ b/modules.d/35network-legacy/module-setup.sh
+@@ -0,0 +1,93 @@
++#!/bin/bash
++
++# called by dracut
++check() {
++ local _program
++
++ require_binaries ip dhclient sed awk grep || return 1
++ require_any_binary arping arping2 || return 1
++
++ return 255
++}
++
++# called by dracut
++depends() {
++ return 0
++}
++
++# called by dracut
++installkernel() {
++ return 0
++}
++
++# called by dracut
++install() {
++ local _arch _i _dir
++ inst_multiple ip dhclient sed awk grep
++
++ inst_multiple -o arping arping2
++ strstr "$(arping 2>&1)" "ARPing 2" && mv
"$initdir/bin/arping" "$initdir/bin/arping2"
++
++ inst_multiple -o ping ping6
++ inst_multiple -o teamd teamdctl teamnl
++ inst_simple /etc/libnl/classid
++ inst_script "$moddir/ifup.sh" "/sbin/ifup"
++ inst_script "$moddir/dhclient-script.sh"
"/sbin/dhclient-script"
++ inst_simple -H "/etc/dhclient.conf"
++ cat "$moddir/dhclient.conf" >>
"${initdir}/etc/dhclient.conf"
++ inst_hook pre-udev 60 "$moddir/net-genrules.sh"
++ inst_hook cmdline 91 "$moddir/dhcp-root.sh"
++ inst_hook cmdline 92 "$moddir/parse-ibft.sh"
++ inst_hook cmdline 95 "$moddir/parse-vlan.sh"
++ inst_hook cmdline 96 "$moddir/parse-bond.sh"
++ inst_hook cmdline 96 "$moddir/parse-team.sh"
++ inst_hook cmdline 97 "$moddir/parse-bridge.sh"
++ inst_hook cmdline 98 "$moddir/parse-ip-opts.sh"
++ inst_hook cmdline 99 "$moddir/parse-ifname.sh"
++ inst_hook cleanup 10 "$moddir/kill-dhclient.sh"
++
++ # install all config files for teaming
++ unset TEAM_MASTER
++ unset TEAM_CONFIG
++ unset TEAM_PORT_CONFIG
++ unset HWADDR
++ unset SUBCHANNELS
++ for i in /etc/sysconfig/network-scripts/ifcfg-*; do
++ [ -e "$i" ] || continue
++ case "$i" in
++ *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave)
++ continue
++ ;;
++ esac
++ (
++ . "$i"
++ if ! [ "${ONBOOT}" = "no" -o "${ONBOOT}" =
"NO" ] \
++ && [ -n
"${TEAM_MASTER}${TEAM_CONFIG}${TEAM_PORT_CONFIG}" ]; then
++ if [ -n "$TEAM_CONFIG" ] && [ -n "$DEVICE"
]; then
++ mkdir -p $initdir/etc/teamd
++ printf -- "%s" "$TEAM_CONFIG" >
"$initdir/etc/teamd/${DEVICE}.conf"
++ elif [ -n "$TEAM_PORT_CONFIG" ]; then
++ inst_simple "$i"
++
++ HWADDR="$(echo $HWADDR | sed 'y/ABCDEF/abcdef/')"
++ if [ -n "$HWADDR" ]; then
++ ln_r "$i"
"/etc/sysconfig/network-scripts/mac-${HWADDR}.conf"
++ fi
++
++ SUBCHANNELS="$(echo $SUBCHANNELS | sed
'y/ABCDEF/abcdef/')"
++ if [ -n "$SUBCHANNELS" ]; then
++ ln_r "$i"
"/etc/sysconfig/network-scripts/ccw-${SUBCHANNELS}.conf"
++ fi
++ fi
++ fi
++ )
++ done
++
++ _arch=$(uname -m)
++
++ inst_libdir_file
{"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
++
{"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*"
++
++ dracut_need_initqueue
++}
++
+diff --git a/modules.d/40network/net-genrules.sh
b/modules.d/35network-legacy/net-genrules.sh
+similarity index 100%
+rename from modules.d/40network/net-genrules.sh
+rename to modules.d/35network-legacy/net-genrules.sh
+diff --git a/modules.d/40network/parse-bond.sh
b/modules.d/35network-legacy/parse-bond.sh
+similarity index 100%
+rename from modules.d/40network/parse-bond.sh
+rename to modules.d/35network-legacy/parse-bond.sh
+diff --git a/modules.d/40network/parse-bridge.sh
b/modules.d/35network-legacy/parse-bridge.sh
+similarity index 100%
+rename from modules.d/40network/parse-bridge.sh
+rename to modules.d/35network-legacy/parse-bridge.sh
+diff --git a/modules.d/40network/parse-ibft.sh
b/modules.d/35network-legacy/parse-ibft.sh
+similarity index 100%
+rename from modules.d/40network/parse-ibft.sh
+rename to modules.d/35network-legacy/parse-ibft.sh
+diff --git a/modules.d/40network/parse-ifname.sh
b/modules.d/35network-legacy/parse-ifname.sh
+similarity index 100%
+rename from modules.d/40network/parse-ifname.sh
+rename to modules.d/35network-legacy/parse-ifname.sh
+diff --git a/modules.d/40network/parse-ip-opts.sh
b/modules.d/35network-legacy/parse-ip-opts.sh
+similarity index 100%
+rename from modules.d/40network/parse-ip-opts.sh
+rename to modules.d/35network-legacy/parse-ip-opts.sh
+diff --git a/modules.d/40network/parse-team.sh
b/modules.d/35network-legacy/parse-team.sh
+similarity index 100%
+rename from modules.d/40network/parse-team.sh
+rename to modules.d/35network-legacy/parse-team.sh
+diff --git a/modules.d/40network/parse-vlan.sh
b/modules.d/35network-legacy/parse-vlan.sh
+similarity index 100%
+rename from modules.d/40network/parse-vlan.sh
+rename to modules.d/35network-legacy/parse-vlan.sh
+diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
+index a1010911..fbd43925 100755
+--- a/modules.d/40network/module-setup.sh
++++ b/modules.d/40network/module-setup.sh
+@@ -1,18 +1,8 @@
+ #!/bin/bash
+
+-# called by dracut
+-check() {
+- local _program
+-
+- require_binaries ip dhclient sed awk grep || return 1
+- require_any_binary arping arping2 || return 1
+-
+- return 255
+-}
+-
+ # called by dracut
+ depends() {
+- echo "kernel-network-modules"
++ echo "network-legacy"
+ return 0
+ }
+
+@@ -24,74 +14,10 @@ installkernel() {
+ # called by dracut
+ install() {
+ local _arch _i _dir
+- inst_multiple ip dhclient sed awk grep
+-
+- inst_multiple -o arping arping2
+- strstr "$(arping 2>&1)" "ARPing 2" && mv
"$initdir/bin/arping" "$initdir/bin/arping2"
+
+- inst_multiple -o ping ping6
+- inst_multiple -o teamd teamdctl teamnl
+- inst_simple /etc/libnl/classid
+- inst_script "$moddir/ifup.sh" "/sbin/ifup"
+ inst_script "$moddir/netroot.sh" "/sbin/netroot"
+- inst_script "$moddir/dhclient-script.sh"
"/sbin/dhclient-script"
+ inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh"
+- inst_simple -H "/etc/dhclient.conf"
+- cat "$moddir/dhclient.conf" >>
"${initdir}/etc/dhclient.conf"
+ inst_hook pre-udev 50 "$moddir/ifname-genrules.sh"
+- inst_hook pre-udev 60 "$moddir/net-genrules.sh"
+- inst_hook cmdline 91 "$moddir/dhcp-root.sh"
+- inst_hook cmdline 92 "$moddir/parse-ibft.sh"
+- inst_hook cmdline 95 "$moddir/parse-vlan.sh"
+- inst_hook cmdline 96 "$moddir/parse-bond.sh"
+- inst_hook cmdline 96 "$moddir/parse-team.sh"
+- inst_hook cmdline 97 "$moddir/parse-bridge.sh"
+- inst_hook cmdline 98 "$moddir/parse-ip-opts.sh"
+- inst_hook cmdline 99 "$moddir/parse-ifname.sh"
+- inst_hook cleanup 10 "$moddir/kill-dhclient.sh"
+-
+- # install all config files for teaming
+- unset TEAM_MASTER
+- unset TEAM_CONFIG
+- unset TEAM_PORT_CONFIG
+- unset HWADDR
+- unset SUBCHANNELS
+- for i in /etc/sysconfig/network-scripts/ifcfg-*; do
+- [ -e "$i" ] || continue
+- case "$i" in
+- *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave)
+- continue
+- ;;
+- esac
+- (
+- . "$i"
+- if ! [ "${ONBOOT}" = "no" -o "${ONBOOT}" =
"NO" ] \
+- && [ -n
"${TEAM_MASTER}${TEAM_CONFIG}${TEAM_PORT_CONFIG}" ]; then
+- if [ -n "$TEAM_CONFIG" ] && [ -n "$DEVICE"
]; then
+- mkdir -p $initdir/etc/teamd
+- printf -- "%s" "$TEAM_CONFIG" >
"$initdir/etc/teamd/${DEVICE}.conf"
+- elif [ -n "$TEAM_PORT_CONFIG" ]; then
+- inst_simple "$i"
+-
+- HWADDR="$(echo $HWADDR | sed 'y/ABCDEF/abcdef/')"
+- if [ -n "$HWADDR" ]; then
+- ln_r "$i"
"/etc/sysconfig/network-scripts/mac-${HWADDR}.conf"
+- fi
+-
+- SUBCHANNELS="$(echo $SUBCHANNELS | sed
'y/ABCDEF/abcdef/')"
+- if [ -n "$SUBCHANNELS" ]; then
+- ln_r "$i"
"/etc/sysconfig/network-scripts/ccw-${SUBCHANNELS}.conf"
+- fi
+- fi
+- fi
+- )
+- done
+-
+- _arch=$(uname -m)
+-
+- inst_libdir_file
{"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
+-
{"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*"
+
+ dracut_need_initqueue
+ }
+-
+
diff --git a/0097.patch b/0097.patch
new file mode 100644
index 0000000..95b0689
--- /dev/null
+++ b/0097.patch
@@ -0,0 +1,133 @@
+From 08bdadbf315cced437385228b2434a02a19090e4 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak(a)v3.sk>
+Date: Thu, 30 Aug 2018 16:44:22 +0200
+Subject: [PATCH] network-manager: add module
+
+---
+ dracut.spec | 1 +
+ modules.d/35network-manager/module-setup.sh | 52 +++++++++++++++++++++++++++++
+ modules.d/35network-manager/nm-config.sh | 3 ++
+ modules.d/35network-manager/nm-run.sh | 16 +++++++++
+ modules.d/40network/module-setup.sh | 7 +++-
+ 5 files changed, 78 insertions(+), 1 deletion(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index f6486d50..b6099824 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -419,6 +419,7 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
+
+ %files network
+ %{dracutlibdir}/modules.d/02systemd-networkd
++%{dracutlibdir}/modules.d/35network-manager
+ %{dracutlibdir}/modules.d/35network-legacy
+ %{dracutlibdir}/modules.d/40network
+ %{dracutlibdir}/modules.d/45ifcfg
+diff --git a/modules.d/35network-manager/module-setup.sh
b/modules.d/35network-manager/module-setup.sh
+new file mode 100755
+index 00000000..62aba3c6
+--- /dev/null
++++ b/modules.d/35network-manager/module-setup.sh
+@@ -0,0 +1,52 @@
++#!/bin/bash
++
++# called by dracut
++check() {
++ local _program
++
++ require_binaries sed grep || return 1
++
++ # do not add this module by default
++ return 255
++}
++
++# called by dracut
++depends() {
++ return 0
++}
++
++# called by dracut
++installkernel() {
++ return 0
++}
++
++# called by dracut
++install() {
++ local _nm_version
++
++ _nm_version=$(NetworkManager --version)
++
++ inst_multiple sed grep
++
++ inst NetworkManager
++ inst /usr/libexec/nm-initrd-generator
++ inst_multiple -o teamd dhclient
++ inst_hook cmdline 99 "$moddir/nm-config.sh"
++ inst_hook initqueue/settled 99 "$moddir/nm-run.sh"
++ inst_rules 85-nm-unmanaged.rules
++ inst_libdir_file
"NetworkManager/$_nm_version/libnm-device-plugin-team.so"
++
++ if [[ -x "$initdir/usr/sbin/dhclient" ]]; then
++ inst /usr/libexec/nm-dhcp-helper
++ elif ! [[ -e "$initdir/etc/machine-id" ]]; then
++ # The internal DHCP client silently fails if we
++ # have no machine-id
++ systemd-machine-id-setup --root="$initdir"
++ fi
++
++ # We don't install the ifcfg files from the host automatically.
++ # But if the user chooses to include them, we pull in the machinery to read them.
++ if ! [[ -d "$initdir/etc/sysconfig/network-scripts" ]]; then
++ inst_libdir_file
"NetworkManager/$_nm_version/libnm-settings-plugin-ifcfg-rh.so"
++ fi
++}
+diff --git a/modules.d/35network-manager/nm-config.sh
b/modules.d/35network-manager/nm-config.sh
+new file mode 100755
+index 00000000..1339ebe7
+--- /dev/null
++++ b/modules.d/35network-manager/nm-config.sh
+@@ -0,0 +1,3 @@
++#!/bin/sh
++
++/usr/libexec/nm-initrd-generator -- $(getcmdline)
+diff --git a/modules.d/35network-manager/nm-run.sh
b/modules.d/35network-manager/nm-run.sh
+new file mode 100755
+index 00000000..f6defa99
+--- /dev/null
++++ b/modules.d/35network-manager/nm-run.sh
+@@ -0,0 +1,16 @@
++#!/bin/sh
++
++if getargbool 0 rd.debug -d -y rdinitdebug -d -y rdnetdebug; then
++ /usr/sbin/NetworkManager --configure-and-quit=initrd --debug --log-level=trace
++else
++ /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
++fi
++
++for _i in /sys/class/net/*/
++do
++ state=/run/NetworkManager/devices/$(cat $_i/ifindex)
++ grep -q managed=true $state 2>/dev/null || continue
++ ifname=$(basename $_i)
++ sed -n 's/root-path/new_root_path/p' <$state
>/tmp/dhclient.$ifname.dhcpopts
++ /sbin/netroot $ifname
++done
+diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
+index fbd43925..57c0a45e 100755
+--- a/modules.d/40network/module-setup.sh
++++ b/modules.d/40network/module-setup.sh
+@@ -2,7 +2,12 @@
+
+ # called by dracut
+ depends() {
+- echo "network-legacy"
++ echo -n "kernel-network-modules "
++ if ! dracut_module_included "network-legacy" && [ -x
"/usr/libexec/nm-initrd-generator" ] ; then
++ echo "network-manager"
++ else
++ echo "network-legacy"
++ fi
+ return 0
+ }
+
+
diff --git a/0098.patch b/0098.patch
new file mode 100644
index 0000000..bbf8f16
--- /dev/null
+++ b/0098.patch
@@ -0,0 +1,22 @@
+From 4be697e5c19f18a17ec18368ded0787d6f32baf5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald(a)redhat.com>
+Date: Fri, 21 Sep 2018 12:41:00 +0200
+Subject: [PATCH] dracut.spec: fixed invalid spec line
+
+---
+ dracut.spec | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index b6099824..c6fbdc77 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -49,7 +49,7 @@ BuildRequires: docbook-style-xsl docbook-dtds libxslt
+ %endif
+
+ %if 0%{?suse_version}
+--BuildRequires: docbook-xsl-stylesheets libxslt
++BuildRequires: docbook-xsl-stylesheets libxslt
+ %endif
+
+ BuildRequires: asciidoc
diff --git a/dracut.spec b/dracut.spec
index 53ca5c7..4690c65 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -5,7 +5,7 @@
# strip the automatically generated dep here and instead co-own the
# directory.
%global __requires_exclude pkg-config
-%define dist_free_release 14.git20180726
+%define dist_free_release 99.git20180921
Name: dracut
Version: 048
@@ -41,6 +41,91 @@ Patch10: 0010.patch
Patch11: 0011.patch
Patch12: 0012.patch
Patch13: 0013.patch
+Patch14: 0014.patch
+Patch15: 0015.patch
+Patch16: 0016.patch
+Patch17: 0017.patch
+Patch18: 0018.patch
+Patch19: 0019.patch
+Patch20: 0020.patch
+Patch21: 0021.patch
+Patch22: 0022.patch
+Patch23: 0023.patch
+Patch24: 0024.patch
+Patch25: 0025.patch
+Patch26: 0026.patch
+Patch27: 0027.patch
+Patch28: 0028.patch
+Patch29: 0029.patch
+Patch30: 0030.patch
+Patch31: 0031.patch
+Patch32: 0032.patch
+Patch33: 0033.patch
+Patch34: 0034.patch
+Patch35: 0035.patch
+Patch36: 0036.patch
+Patch37: 0037.patch
+Patch38: 0038.patch
+Patch39: 0039.patch
+Patch40: 0040.patch
+Patch41: 0041.patch
+Patch42: 0042.patch
+Patch43: 0043.patch
+Patch44: 0044.patch
+Patch45: 0045.patch
+Patch46: 0046.patch
+Patch47: 0047.patch
+Patch48: 0048.patch
+Patch49: 0049.patch
+Patch50: 0050.patch
+Patch51: 0051.patch
+Patch52: 0052.patch
+Patch53: 0053.patch
+Patch54: 0054.patch
+Patch55: 0055.patch
+Patch56: 0056.patch
+Patch57: 0057.patch
+Patch58: 0058.patch
+Patch59: 0059.patch
+Patch60: 0060.patch
+Patch61: 0061.patch
+Patch62: 0062.patch
+Patch63: 0063.patch
+Patch64: 0064.patch
+Patch65: 0065.patch
+Patch66: 0066.patch
+Patch67: 0067.patch
+Patch68: 0068.patch
+Patch69: 0069.patch
+Patch70: 0070.patch
+Patch71: 0071.patch
+Patch72: 0072.patch
+Patch73: 0073.patch
+Patch74: 0074.patch
+Patch75: 0075.patch
+Patch76: 0076.patch
+Patch77: 0077.patch
+Patch78: 0078.patch
+Patch79: 0079.patch
+Patch80: 0080.patch
+Patch81: 0081.patch
+Patch82: 0082.patch
+Patch83: 0083.patch
+Patch84: 0084.patch
+Patch85: 0085.patch
+Patch86: 0086.patch
+Patch87: 0087.patch
+Patch88: 0088.patch
+Patch89: 0089.patch
+Patch90: 0090.patch
+Patch91: 0091.patch
+Patch92: 0092.patch
+Patch93: 0093.patch
+Patch94: 0094.patch
+Patch95: 0095.patch
+Patch96: 0096.patch
+Patch97: 0097.patch
+Patch98: 0098.patch
Source1:
https://www.gnu.org/licenses/lgpl-2.1.txt
@@ -63,7 +148,7 @@ BuildRequires: docbook-style-xsl docbook-dtds libxslt
%endif
%if 0%{?suse_version}
--BuildRequires: docbook-xsl-stylesheets libxslt
+BuildRequires: docbook-xsl-stylesheets libxslt
%endif
BuildRequires: asciidoc
@@ -192,6 +277,16 @@ Requires: %{name} = %{version}-%{release}
%description tools
This package contains tools to assemble the local initrd and host configuration.
+%package squash
+Summary: dracut module to build an initramfs with most files in a squashfs image
+Requires: %{name} = %{version}-%{release}
+Requires: squash-tools
+
+%description squash
+This package provides a dracut module to build an initramfs, but store most files
+in a squashfs image, result in a smaller initramfs size and reduce runtime memory
+usage.
+
%prep
%autosetup -n %{name}-%{version} -S git_am
cp %{SOURCE1} .
@@ -249,6 +344,8 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95qeth_rules
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp_rules
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95znet
+%else
+rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock
%endif
mkdir -p $RPM_BUILD_ROOT/boot/dracut
@@ -330,7 +427,12 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
%endif
%{dracutlibdir}/modules.d/00bash
%{dracutlibdir}/modules.d/00systemd
+%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-initrd
%{dracutlibdir}/modules.d/03modsign
%{dracutlibdir}/modules.d/03rescue
@@ -414,13 +516,10 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
%{_prefix}/lib/kernel/install.d/50-dracut.install
%endif
-%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
-%defattr(-,root,root,0755)
-%{dracutlibdir}/modules.d/01fips
-%endif
-
%files network
%{dracutlibdir}/modules.d/02systemd-networkd
+%{dracutlibdir}/modules.d/35network-manager
+%{dracutlibdir}/modules.d/35network-legacy
%{dracutlibdir}/modules.d/40network
%{dracutlibdir}/modules.d/45ifcfg
%{dracutlibdir}/modules.d/90kernel-network-modules
@@ -447,11 +546,13 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
%{dracutlibdir}/modules.d/90livenet
%files tools
-
%if %{with doc}
%doc %{_mandir}/man8/dracut-catimages.8*
%endif
+%files squash
+%{dracutlibdir}/modules.d/99squash
+
%{_bindir}/dracut-catimages
%dir /boot/dracut
%dir /var/lib/dracut
@@ -469,6 +570,9 @@ install -m 0755 51-dracut-rescue-postinst.sh
$RPM_BUILD_ROOT%{_sysconfdir}/kerne
%endif
%changelog
+* Fri Sep 21 2018 Harald Hoyer <harald(a)redhat.com> - 048-99.git20180921
+- git snapshot
+
* Thu Jul 26 2018 Harald Hoyer <harald(a)redhat.com> - 048-14.git20180726
- bring back 51-dracut-rescue-postinst.sh
diff --git a/newdracut.sh b/newdracut.sh
index 382d7b2..c53481d 100644
--- a/newdracut.sh
+++ b/newdracut.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-if [[ -e "$HOME/git/dracut/$1" ]]; then
+if [[ -f "$HOME/git/dracut/$1" ]]; then
srcrpm="$HOME/git/dracut/$1"
else
srcrpm="$1"