dracut-043-40.git20150710

- git snapshot
This commit is contained in:
Harald Hoyer 2015-07-10 11:31:14 +02:00
parent ffbbb579d5
commit 0840a3b62c
40 changed files with 2893 additions and 6 deletions

View File

@ -0,0 +1,33 @@
From 80dab03a7dc080b8d35fdd4c23e30e79e044c2a2 Mon Sep 17 00:00:00 2001
From: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
Date: Tue, 17 Feb 2015 13:03:01 +0000
Subject: [PATCH] Fix default udev & systemd dir detection, in usr-merge
configurations.
Test that /lib is not a symlink, before using split-usr paths.
---
dracut.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index d06d7d4..4f72b54 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1300,7 +1300,7 @@ done
[[ -d $udevdir ]] \
|| udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
if ! [[ -d "$udevdir" ]]; then
- [[ -d /lib/udev ]] && udevdir=/lib/udev
+ [[ ! -h /lib ]] && [[ -d /lib/udev ]] && udevdir=/lib/udev
[[ -d /usr/lib/udev ]] && udevdir=/usr/lib/udev
fi
@@ -1308,7 +1308,7 @@ fi
|| systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null)
if ! [[ -d "$systemdutildir" ]]; then
- [[ -d /lib/systemd ]] && systemdutildir=/lib/systemd
+ [[ ! -h /lib ]] && [[ -d /lib/systemd ]] && systemdutildir=/lib/systemd
[[ -d /usr/lib/systemd ]] && systemdutildir=/usr/lib/systemd
fi

View File

@ -0,0 +1,22 @@
From 231b3dd4327e011285636e73459c3d139baba661 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 15 Jun 2015 15:28:52 +0200
Subject: [PATCH] rootfs-generator: check for rootok, before doing any action
---
modules.d/98dracut-systemd/rootfs-generator.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/98dracut-systemd/rootfs-generator.sh b/modules.d/98dracut-systemd/rootfs-generator.sh
index 5910ce7..670613e 100755
--- a/modules.d/98dracut-systemd/rootfs-generator.sh
+++ b/modules.d/98dracut-systemd/rootfs-generator.sh
@@ -93,7 +93,7 @@ esac
GENERATOR_DIR="$1"
-if [ "${root%%:*}" = "block" ]; then
+if [ "$rootok" = "1" ]; then
generator_wait_for_dev "${root#block:}" "$RDRETRY"
strstr "$(cat /proc/cmdline)" 'root=' || generator_mount_rootfs "${root#block:}" "$(getarg rootfstype=)" "$(getarg rootflags=)"
fi

View File

@ -0,0 +1,19 @@
From aca93e3364b9b837eb98eeb62322cf19d9819147 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 16 Jun 2015 15:08:23 +0200
Subject: [PATCH] uefi-lib: remove bogus comment
---
modules.d/99uefi-lib/module-setup.sh | 1 -
1 file changed, 1 deletion(-)
diff --git a/modules.d/99uefi-lib/module-setup.sh b/modules.d/99uefi-lib/module-setup.sh
index 4a856ea..3dcff22 100755
--- a/modules.d/99uefi-lib/module-setup.sh
+++ b/modules.d/99uefi-lib/module-setup.sh
@@ -1,5 +1,4 @@
#!/bin/bash
-# module-setup for img-lib
# called by dracut
check() {

View File

@ -0,0 +1,69 @@
From ac13778f60f3a9568eaa2b480a77563337575d91 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 16 Jun 2015 15:17:39 +0200
Subject: [PATCH] dracut.spec: move dmsquash and livnet to subpackage
dmsquash and livenet need img-lib, which needs tar, which is normally
not needed.
---
dracut.spec | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index 6b37dc3..58510db 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -168,6 +168,16 @@ Requires: libcap
This package requires everything which is needed to build an
initramfs with dracut, which drops capabilities.
+%package live
+Summary: dracut modules to build a dracut initramfs with live image capabilities
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-network = %{version}-%{release}
+Requires: tar gzip coreutils bash device-mapper curl
+
+%description live
+This package requires everything which is needed to build an
+initramfs with dracut, with live image capabilities, like Live CDs.
+
%package config-generic
Summary: dracut configuration to turn off hostonly image generation
Requires: %{name} = %{version}-%{release}
@@ -345,7 +355,6 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/90crypt
%{dracutlibdir}/modules.d/90dm
%{dracutlibdir}/modules.d/90dmraid
-%{dracutlibdir}/modules.d/90dmsquash-live
%{dracutlibdir}/modules.d/90kernel-modules
%{dracutlibdir}/modules.d/90lvm
%{dracutlibdir}/modules.d/90mdraid
@@ -379,7 +388,6 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/98usrmount
%{dracutlibdir}/modules.d/99base
%{dracutlibdir}/modules.d/99fs-lib
-%{dracutlibdir}/modules.d/99img-lib
%{dracutlibdir}/modules.d/99shutdown
%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
%dir %{_sharedstatedir}/initramfs
@@ -413,7 +421,6 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/90kernel-network-modules
%{dracutlibdir}/modules.d/95fcoe
%{dracutlibdir}/modules.d/95iscsi
-%{dracutlibdir}/modules.d/90livenet
%{dracutlibdir}/modules.d/90qemu-net
%{dracutlibdir}/modules.d/95cifs
%{dracutlibdir}/modules.d/95nbd
@@ -440,6 +447,12 @@ rm -rf -- $RPM_BUILD_ROOT
%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/02caps
+%files live
+%defattr(-,root,root,0755)
+%{dracutlibdir}/modules.d/99img-lib
+%{dracutlibdir}/modules.d/90dmsquash-live
+%{dracutlibdir}/modules.d/90livenet
+
%files tools
%defattr(-,root,root,0755)

View File

@ -0,0 +1,24 @@
From 47ff68e78b3bbd01367948b5b9fe1cbaeb45f262 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 23 Jun 2015 15:21:37 +0200
Subject: [PATCH] dracut.spec: Recommends grubby
---
dracut.spec | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dracut.spec b/dracut.spec
index 58510db..7a1a9c2 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -113,6 +113,10 @@ Requires: util-linux-ng >= 2.21
Conflicts: mdadm < 3.2.6-14
+%if 0%{?fedora} > 22
+Recommends: grubby
+%endif
+
%description
dracut contains tools to create a bootable initramfs for 2.6 Linux kernels.
Unlike existing implementations, dracut does hard-code as little as possible

View File

@ -0,0 +1,48 @@
From c42064a684f3413dfce249c5bd6ebe0cb0a16908 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 23 Jun 2015 15:29:00 +0200
Subject: [PATCH] dracut.spec: turn requires in recommends
---
dracut.spec | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index 7a1a9c2..4775210 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -92,11 +92,21 @@ Requires: cpio
Requires: filesystem >= 2.1.0
Requires: findutils
Requires: grep
-Requires: hardlink
-Requires: gzip xz
Requires: kmod
Requires: sed
+
+%if 0%{?fedora} > 22
+Recommends: grubby
+Recommends: hardlink
+Recommends: gzip
+Recommends: xz
+Recommends: kpartx
+%else
+Requires: hardlink
+Requires: gzip
+Requires: xz
Requires: kpartx
+%endif
%if 0%{?fedora} || 0%{?rhel} > 6
Requires: util-linux >= 2.21
@@ -113,10 +123,6 @@ Requires: util-linux-ng >= 2.21
Conflicts: mdadm < 3.2.6-14
-%if 0%{?fedora} > 22
-Recommends: grubby
-%endif
-
%description
dracut contains tools to create a bootable initramfs for 2.6 Linux kernels.
Unlike existing implementations, dracut does hard-code as little as possible

View File

@ -0,0 +1,30 @@
From d4b93a092db1105a29a3f768d1d49ece8b90547a Mon Sep 17 00:00:00 2001
From: Fabian Deutsch <fabiand@fedoraproject.org>
Date: Thu, 25 Jun 2015 11:17:59 +0200
Subject: [PATCH] Revert "lvm: Don't activate LVs with activationskip set"
This reverts commit cfa365a32d47388c8476064b23d7d4684f1e591b.
The logic in commit cfa365a was added to prevent (odl) lvms from
activating snapshots which should not be activated.
Newer lvms however do this automatically (not enabling an LV if the
the 'k' attribute set), thus we can revert the previous commit.
---
modules.d/90lvm/lvm_scan.sh | 4 ----
1 file changed, 4 deletions(-)
diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
index ce46e14..7495644 100755
--- a/modules.d/90lvm/lvm_scan.sh
+++ b/modules.d/90lvm/lvm_scan.sh
@@ -106,10 +106,6 @@ if [ -n "$LVS" ] ; then
info "Scanning devices $lvmdevs for LVM logical volumes $LVS"
lvm lvscan --ignorelockingfailure 2>&1 | vinfo
for LV in $LVS; do
- if [ "x$(lvm lvs --noheadings --select "lv_attr =~ k" $LV | wc -l)" = "x0" ]; then
- info "Skipping activation of '$LV' because activationskip is set."
- continue
- fi
if [ -z "$sysinit" ]; then
lvm lvchange --yes -ay --ignorelockingfailure $nopoll --ignoremonitoring $LV 2>&1 | vinfo
else

View File

@ -0,0 +1,22 @@
From 90ff5ad67ecab66a8f699c9805729701981ee018 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <crrodriguez@opensuse.org>
Date: Wed, 1 Jul 2015 20:15:13 -0300
Subject: [PATCH] systemd: if kdbus is available, include the kernel module
---
modules.d/00systemd/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
index ed55fcc..e763d9f 100755
--- a/modules.d/00systemd/module-setup.sh
+++ b/modules.d/00systemd/module-setup.sh
@@ -19,7 +19,7 @@ depends() {
installkernel() {
hostonly='' instmods autofs4 ipv6
- instmods -s efivarfs
+ instmods -s efivarfs kdbus
}
# called by dracut

View File

@ -0,0 +1,50 @@
From cf627b20d039c527f4de167e38978d4984e4d727 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 1 Jul 2015 14:53:33 +0200
Subject: [PATCH] network/dhclient-script.sh: add RENEW/REBIND
---
modules.d/40network/dhclient-script.sh | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
index 500f518..320208b 100755
--- a/modules.d/40network/dhclient-script.sh
+++ b/modules.d/40network/dhclient-script.sh
@@ -135,6 +135,17 @@ case $reason in
>/tmp/net.$netif.up
;;
+ RENEW|REBIND)
+ unset lease_time
+ [ -n "$new_dhcp_lease_time" ] && lease_time=$new_dhcp_lease_time
+ [ -n "$new_max_life" ] && lease_time=$new_max_life
+ preferred_lft=$lease_time
+ [ -n "$new_preferred_life" ] && preferred_lft=$new_preferred_life
+ ip -4 addr change ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} \
+ ${lease_time:+valid_lft $lease_time} ${preferred_lft:+preferred_lft ${preferred_lft}} \
+ >/dev/null 2>&1
+ ;;
+
BOUND6)
echo "dhcp: BOND6 setting $netif"
setup_interface6
@@ -155,6 +166,18 @@ case $reason in
echo "[ -f /tmp/net.$netif.did-setup ]" > $hookdir/initqueue/finished/dhclient-$netif.sh
>/tmp/net.$netif.up
;;
+
+ RENEW6|REBIND6)
+ unset lease_time
+ [ -n "$new_dhcp_lease_time" ] && lease_time=$new_dhcp_lease_time
+ [ -n "$new_max_life" ] && lease_time=$new_max_life
+ preferred_lft=$lease_time
+ [ -n "$new_preferred_life" ] && preferred_lft=$new_preferred_life
+ ip -6 addr change ${new_ip6_address}/${new_ip6_prefixlen} dev ${interface} scope global \
+ ${lease_time:+valid_lft $lease_time} ${preferred_lft:+preferred_lft ${preferred_lft}} \
+ >/dev/null 2>&1
+ ;;
+
*) echo "dhcp: $reason";;
esac

View File

@ -0,0 +1,29 @@
From 0f89ec314b062a410199251db0356a55b4773173 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 1 Jul 2015 14:57:15 +0200
Subject: [PATCH] network/dhclient-script.sh: make IPv4 DHCP lease time
optionally
If bootp is used, no lease time is provided in the packet from the bootp
server.
---
modules.d/40network/dhclient-script.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
index 320208b..a8b5b89 100755
--- a/modules.d/40network/dhclient-script.sh
+++ b/modules.d/40network/dhclient-script.sh
@@ -39,9 +39,9 @@ setup_interface() {
fi
fi
- ip addr add $ip${mask:+/$mask} ${bcast:+broadcast $bcast} \
- valid_lft ${lease_time} preferred_lft ${lease_time} \
- dev $netif
+ ip addr add $ip${mask:+/$mask} ${bcast:+broadcast $bcast} dev $netif \
+ ${lease_time:+valid_lft $lease_time} \
+ ${preferred_lft:+preferred_lft ${preferred_lft}}
if [ -n "$gw" ] ; then
if [ "$mask" == "255.255.255.255" ] ; then

View File

@ -0,0 +1,44 @@
From 7cca5efdcea4f1431331cf7663fc6fb48a365cdf Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 2 Jul 2015 11:32:08 +0200
Subject: [PATCH] network: don't use "ifup -m"
"ifup -m" was thought to be used by humans in the emergency shell.
Using it programatically shows some other flaw in the execution logic.
Also, "ifup -m" was configuring the interface multiple times on "add"
and "change" uevent, because the "$netif.did-setup" test was not
executed.
---
modules.d/40network/ifup.sh | 3 ++-
modules.d/40network/net-genrules.sh | 1 -
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index de518b6..0138e01 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -77,9 +77,10 @@ fi
# disable manual ifup while netroot is set for simplifying our logic
# in netroot case we prefer netroot to bringup $netif automaticlly
[ -n "$2" -a "$2" = "-m" ] && [ -z "$netroot" ] && manualup="$2"
-[ -z "$netroot" ] && [ -z "$manualup" ] && exit 0
+
if [ -n "$manualup" ]; then
>/tmp/net.$netif.manualup
+ rm -f /tmp/net.${netif}.did-setup
else
[ -e /tmp/net.${netif}.did-setup ] && exit 0
[ -e /sys/class/net/$netif/address ] && \
diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
index 77e47b5..b1c156c 100755
--- a/modules.d/40network/net-genrules.sh
+++ b/modules.d/40network/net-genrules.sh
@@ -50,7 +50,6 @@ command -v fix_bootif >/dev/null || . /lib/net-lib.sh
fi
ifup='/sbin/ifup $env{INTERFACE}'
- [ -z "$netroot" ] && ifup="$ifup -m"
runcmd="RUN+=\"/sbin/initqueue --name ifup-\$env{INTERFACE} --unique --onetime $ifup\""

View File

@ -0,0 +1,34 @@
From 3639fe543c06c79e8c7a4872844c95d7d9b61299 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 29 Jun 2015 16:14:58 +0200
Subject: [PATCH] lower the log level for dfatal
---
dracut-logger.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dracut-logger.sh b/dracut-logger.sh
index 41e04f4..2a6019c 100755
--- a/dracut-logger.sh
+++ b/dracut-logger.sh
@@ -264,9 +264,9 @@ _lvl2syspri() {
# Conversion is done as follows:
#
# <tt>
-# FATAL(1) -> LOG_EMERG (0)
+# none -> LOG_EMERG (0)
# none -> LOG_ALERT (1)
-# none -> LOG_CRIT (2)
+# FATAL(1) -> LOG_CRIT (2)
# ERROR(2) -> LOG_ERR (3)
# WARN(3) -> LOG_WARNING (4)
# none -> LOG_NOTICE (5)
@@ -280,7 +280,7 @@ _dlvl2syslvl() {
local lvl
case "$1" in
- 1) lvl=0;;
+ 1) lvl=2;;
2) lvl=3;;
3) lvl=4;;
4) lvl=6;;

View File

@ -0,0 +1,36 @@
From 916559e073a49eedbc7b0c58b399d303fb8c2a05 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 2 Jul 2015 14:55:31 +0200
Subject: [PATCH] dracut.sh: add devices with x-initrd.mount in /etc/fstab to
host_devs
otherwise dracut might not even be able to mount those.
---
dracut.sh | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/dracut.sh b/dracut.sh
index 4f72b54..52383c0 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1231,6 +1231,20 @@ if [[ $hostonly ]]; then
done < /etc/fstab
done < /proc/swaps
fi
+
+ # collect all "x-initrd.mount" entries from /etc/fstab
+ if [[ -f /etc/fstab ]]; then
+ while read _d _m _t _o _r || [ -n "$_d" ]; do
+ [[ "$_d" == \#* ]] && continue
+ [[ $_d ]] || continue
+ [[ "$_o" != *x-initrd.mount* ]] && continue
+ _dev=$(expand_persistent_dev "$_d")
+ _dev="$(readlink -f "$_dev")"
+ [[ -b $_dev ]] && push_host_devs "$_dev"
+ done < /etc/fstab
+ fi
+
+
# record all host modaliases
declare -A host_modalias
find /sys/devices/ -name uevent -print > "$initdir/.modalias"

View File

@ -0,0 +1,32 @@
From 57fb6e67de0cc58b9d188439b0ceb0d0d5dbbd6f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 2 Jul 2015 15:02:31 +0200
Subject: [PATCH] dracut-lib.sh:info() output info to stderr
otherwise it might collide with stdout redirection
---
modules.d/99base/dracut-lib.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 08110cc..cd1f49f 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -63,7 +63,7 @@ if [ -z "$DRACUT_SYSTEMD" ]; then
check_quiet
echo "<30>dracut: $*" > /dev/kmsg
[ "$DRACUT_QUIET" != "yes" ] && \
- echo "dracut: $*"
+ echo "dracut: $*" >&2
}
else
@@ -73,7 +73,7 @@ else
}
info() {
- echo "$*"
+ echo "$*" >&2
}
fi

View File

@ -0,0 +1,48 @@
From ba665de454e7d6ef1da4ba95308fb9f65c7a9497 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 2 Jul 2015 15:21:35 +0200
Subject: [PATCH] nfs/nfs-lib.sh: add anaconda_nfsv6_to_var()
add "nfs:[[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]]/path" style parsing
https://bugzilla.redhat.com/show_bug.cgi?id=1190098
---
modules.d/95nfs/nfs-lib.sh | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/modules.d/95nfs/nfs-lib.sh b/modules.d/95nfs/nfs-lib.sh
index 77c03d9..58aa7e3 100755
--- a/modules.d/95nfs/nfs-lib.sh
+++ b/modules.d/95nfs/nfs-lib.sh
@@ -15,6 +15,7 @@ nfs_to_var() {
# FIXME: local netif=${2:-$netif}?
case "$1" in
nfs://*) rfc2224_nfs_to_var "$1" ;;
+ nfs:*[*) anaconda_nfsv6_to_var "$1" ;;
nfs:*:*:/*) anaconda_nfs_to_var "$1" ;;
*) nfsroot_to_var "$1" ;;
esac
@@ -84,6 +85,23 @@ anaconda_nfs_to_var() {
path="/${1##*:/}"
}
+# IPv6 nfs path will be treated separately
+anaconda_nfsv6_to_var() {
+ nfs="nfs"
+ path="$1:"
+ options="${path#*:/}"
+ path="/${options%%:*}"
+ server="${1#*nfs:}"
+ if str_starts $server '['; then
+ server="${server%:/*}"
+ options="${options#*:*}"
+ else
+ server="${server%:/*}"
+ options="${server%%:*}"
+ server="${server#*:}"
+ fi
+}
+
# nfsroot_from_dhcp NETIF
# fill in missing server/path from DHCP options.
nfsroot_from_dhcp() {

View File

@ -0,0 +1,645 @@
From 777f2db0373ccbc1a44fc2d960ecefbe50195055 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 2 Jul 2015 15:40:13 +0200
Subject: [PATCH] splitup dracut-init.sh from dracut-functions.sh
other tools want to source dracut-functions.sh without any mkdir side
effects.
---
Makefile | 1 +
dracut-functions.sh | 9 ++-------
dracut-init.sh | 34 ++++++++++++++++++++++++++++++++++
dracut.sh | 8 ++++----
test/TEST-01-BASIC/test.sh | 6 +++---
test/TEST-02-SYSTEMD/test.sh | 6 +++---
test/TEST-03-USR-MOUNT/test.sh | 6 +++---
test/TEST-04-FULL-SYSTEMD/test.sh | 6 +++---
test/TEST-10-RAID/test.sh | 6 +++---
test/TEST-11-LVM/test.sh | 6 +++---
test/TEST-12-RAID-DEG/test.sh | 6 +++---
test/TEST-13-ENC-RAID-LVM/test.sh | 6 +++---
test/TEST-14-IMSM/test.sh | 6 +++---
test/TEST-15-BTRFSRAID/test.sh | 6 +++---
test/TEST-16-DMSQUASH/test.sh | 4 ++--
test/TEST-17-LVM-THIN/test.sh | 6 +++---
test/TEST-20-NFS/test.sh | 6 +++---
test/TEST-30-ISCSI/test.sh | 8 ++++----
test/TEST-40-NBD/test.sh | 10 +++++-----
test/TEST-50-MULTINIC/test.sh | 6 +++---
20 files changed, 91 insertions(+), 61 deletions(-)
create mode 100644 dracut-init.sh
diff --git a/Makefile b/Makefile
index 0af5d0f..98a2fbf 100644
--- a/Makefile
+++ b/Makefile
@@ -118,6 +118,7 @@ install: all
install -m 0644 dracut.conf $(DESTDIR)$(sysconfdir)/dracut.conf
mkdir -p $(DESTDIR)$(sysconfdir)/dracut.conf.d
mkdir -p $(DESTDIR)$(pkglibdir)/dracut.conf.d
+ install -m 0755 dracut-init.sh $(DESTDIR)$(pkglibdir)/dracut-init.sh
install -m 0755 dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions.sh
install -m 0755 dracut-version.sh $(DESTDIR)$(pkglibdir)/dracut-version.sh
ln -fs dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 8f971c0..f415f0d 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -20,14 +20,9 @@
export LC_MESSAGES=C
if [[ $DRACUT_KERNEL_LAZY ]] && ! [[ $DRACUT_KERNEL_LAZY_HASHDIR ]]; then
- if ! [[ -d "$initdir/.kernelmodseen" ]]; then
- mkdir -p "$initdir/.kernelmodseen"
+ if [[ -d "$initdir/.kernelmodseen" ]]; then
+ DRACUT_KERNEL_LAZY_HASHDIR="$initdir/.kernelmodseen"
fi
- DRACUT_KERNEL_LAZY_HASHDIR="$initdir/.kernelmodseen"
-fi
-
-if [[ $initdir ]] && ! [[ -d $initdir ]]; then
- mkdir -p "$initdir"
fi
# Generic substring function. If $2 is in $1, return 0.
diff --git a/dracut-init.sh b/dracut-init.sh
new file mode 100644
index 0000000..469e42a
--- /dev/null
+++ b/dracut-init.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# functions used by dracut and other tools.
+#
+# Copyright 2005-2009 Red Hat, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+export LC_MESSAGES=C
+
+if [[ $DRACUT_KERNEL_LAZY ]] && ! [[ $DRACUT_KERNEL_LAZY_HASHDIR ]]; then
+ if ! [[ -d "$initdir/.kernelmodseen" ]]; then
+ mkdir -p "$initdir/.kernelmodseen"
+ fi
+ DRACUT_KERNEL_LAZY_HASHDIR="$initdir/.kernelmodseen"
+fi
+
+if [[ $initdir ]] && ! [[ -d $initdir ]]; then
+ mkdir -p "$initdir"
+fi
+
+[[ $dracutbasedir ]] || export dracutbasedir=${BASH_SOURCE%/*}
+. $dracutbasedir/dracut-functions.sh
diff --git a/dracut.sh b/dracut.sh
index 52383c0..8394cee 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -551,7 +551,7 @@ while :; do
-q|--quiet) ((verbosity_mod_l--));;
-l|--local)
allowlocal="yes"
- [[ -f "$(readlink -f "${0%/*}")/dracut-functions.sh" ]] \
+ [[ -f "$(readlink -f "${0%/*}")/dracut-init.sh" ]] \
&& dracutbasedir="$(readlink -f "${0%/*}")"
;;
-H|--hostonly|--host-only)
@@ -917,10 +917,10 @@ if [[ -f $dracutbasedir/dracut-version.sh ]]; then
. $dracutbasedir/dracut-version.sh
fi
-if [[ -f $dracutbasedir/dracut-functions.sh ]]; then
- . $dracutbasedir/dracut-functions.sh
+if [[ -f $dracutbasedir/dracut-init.sh ]]; then
+ . $dracutbasedir/dracut-init.sh
else
- printf "%s\n" "dracut: Cannot find $dracutbasedir/dracut-functions.sh." >&2
+ printf "%s\n" "dracut: Cannot find $dracutbasedir/dracut-init.sh." >&2
printf "%s\n" "dracut: Are you running from a git checkout?" >&2
printf "%s\n" "dracut: Try passing -l as an argument to $0" >&2
exit 1
diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh
index 4897cc9..83320e2 100755
--- a/test/TEST-01-BASIC/test.sh
+++ b/test/TEST-01-BASIC/test.sh
@@ -29,7 +29,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
mkdir -p $initdir
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -58,7 +58,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -87,7 +87,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh
index 3cc5d0a..16f5c26 100755
--- a/test/TEST-02-SYSTEMD/test.sh
+++ b/test/TEST-02-SYSTEMD/test.sh
@@ -25,7 +25,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
mkdir -p $initdir
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -55,7 +55,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.ext3 poweroff cp umount
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -84,7 +84,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh
index cccec31..61063fd 100755
--- a/test/TEST-03-USR-MOUNT/test.sh
+++ b/test/TEST-03-USR-MOUNT/test.sh
@@ -56,7 +56,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
mkdir -p $initdir
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -86,7 +86,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.btrfs btrfs poweroff cp umount sync
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -122,7 +122,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh
index 6e05f0d..1c12e4f 100755
--- a/test/TEST-04-FULL-SYSTEMD/test.sh
+++ b/test/TEST-04-FULL-SYSTEMD/test.sh
@@ -57,7 +57,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
mkdir -p $initdir
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
for d in usr/bin usr/sbin bin etc lib "$libdir" sbin tmp usr var var/log dev proc sys sysroot root run; do
if [ -L "/$d" ]; then
@@ -222,7 +222,7 @@ EOF
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.btrfs btrfs poweroff cp umount sync
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -254,7 +254,7 @@ EOF
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh
index e7a1131..523b61a 100755
--- a/test/TEST-10-RAID/test.sh
+++ b/test/TEST-10-RAID/test.sh
@@ -27,7 +27,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -56,7 +56,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mke2fs poweroff cp umount
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -84,7 +84,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst ./cryptroot-ask.sh /sbin/cryptroot-ask
diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh
index 0002455..34c7736 100755
--- a/test/TEST-11-LVM/test.sh
+++ b/test/TEST-11-LVM/test.sh
@@ -24,7 +24,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -54,7 +54,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mke2fs poweroff cp umount
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -77,7 +77,7 @@ test_setup() {
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
index 6c7b8b3..f4ec2d0 100755
--- a/test/TEST-12-RAID-DEG/test.sh
+++ b/test/TEST-12-RAID-DEG/test.sh
@@ -66,7 +66,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -94,7 +94,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mke2fs poweroff cp umount dd grep
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -127,7 +127,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh
index 14d8196..ea81697 100755
--- a/test/TEST-13-ENC-RAID-LVM/test.sh
+++ b/test/TEST-13-ENC-RAID-LVM/test.sh
@@ -62,7 +62,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -91,7 +91,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mke2fs poweroff cp umount grep
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -121,7 +121,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh
index 291f3c5..a05d091 100755
--- a/test/TEST-14-IMSM/test.sh
+++ b/test/TEST-14-IMSM/test.sh
@@ -54,7 +54,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -83,7 +83,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mke2fs poweroff cp umount grep
inst_hook initqueue 01 ./create-root.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
@@ -111,7 +111,7 @@ test_setup() {
echo $MD_UUID > $TESTDIR/mduuid
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
index 7f99d8b..5a9b6e1 100755
--- a/test/TEST-15-BTRFSRAID/test.sh
+++ b/test/TEST-15-BTRFSRAID/test.sh
@@ -26,7 +26,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -55,7 +55,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.btrfs poweroff cp umount
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -85,7 +85,7 @@ test_setup() {
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-16-DMSQUASH/test.sh b/test/TEST-16-DMSQUASH/test.sh
index 338f7f4..7e5a7de 100755
--- a/test/TEST-16-DMSQUASH/test.sh
+++ b/test/TEST-16-DMSQUASH/test.sh
@@ -30,7 +30,7 @@ test_setup() {
mkdir -p -- "$TESTDIR"/overlay
(
export initdir="$TESTDIR"/overlay
- . "$basedir"/dracut-functions.sh
+ . "$basedir"/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
@@ -49,7 +49,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir="$TESTDIR"/root-source
- . "$basedir"/dracut-functions.sh
+ . "$basedir"/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh
index 811a66c..859d4dc 100755
--- a/test/TEST-17-LVM-THIN/test.sh
+++ b/test/TEST-17-LVM-THIN/test.sh
@@ -24,7 +24,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -54,7 +54,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mke2fs poweroff cp umount
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -77,7 +77,7 @@ test_setup() {
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh
index 04616ef..61e4c1a 100755
--- a/test/TEST-20-NFS/test.sh
+++ b/test/TEST-20-NFS/test.sh
@@ -217,7 +217,7 @@ test_setup() {
(
export initdir=$TESTDIR/mnt
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
for _f in modules.builtin.bin modules.builtin; do
[[ $srcmods/$_f ]] && break
@@ -283,7 +283,7 @@ test_setup() {
# Make client root inside server root
(
export initdir=$TESTDIR/mnt/nfs/client
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sh shutdown poweroff stty cat ps ln ip \
mount dmesg mkdir cp ping grep setsid ls vi /etc/virc less cat
@@ -331,7 +331,7 @@ test_setup() {
# Make an overlay with needed tools for the test harness
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
mkdir $TESTDIR/overlay
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
index 2c082fe..59e9c5b 100755
--- a/test/TEST-30-ISCSI/test.sh
+++ b/test/TEST-30-ISCSI/test.sh
@@ -103,7 +103,7 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p -- dev sys proc etc var/run tmp
@@ -128,7 +128,7 @@ test_setup() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.ext3 poweroff cp umount setsid
inst_hook initqueue 01 ./create-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -164,7 +164,7 @@ test_setup() {
rm -- $TESTDIR/client.img
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
@@ -185,7 +185,7 @@ test_setup() {
kernel=$KVERSION
(
export initdir=$TESTDIR/mnt
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir";
mkdir -p dev sys proc etc var/run tmp var/lib/dhcpd /etc/iscsi
diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
index aa4b46b..39966ac 100755
--- a/test/TEST-40-NBD/test.sh
+++ b/test/TEST-40-NBD/test.sh
@@ -192,7 +192,7 @@ make_encrypted_root() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
mkdir -p "$initdir"
(
cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
@@ -217,7 +217,7 @@ make_encrypted_root() {
# second, install the files needed to make the root filesystem
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
(
cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
@@ -263,7 +263,7 @@ make_client_root() {
kernel=$KVERSION
(
export initdir=$TESTDIR/mnt
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
mkdir -p "$initdir"
(
cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
@@ -304,7 +304,7 @@ make_server_root() {
kernel=$KVERSION
(
export initdir=$TESTDIR/mnt
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
mkdir -p "$initdir"
(
cd "$initdir";
@@ -351,7 +351,7 @@ test_setup() {
# Make the test image
(
export initdir=$TESTDIR/overlay
- . $basedir/dracut-functions.sh
+ . $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index b292cc0..b878380 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -146,7 +146,7 @@ test_setup() {
(
export initdir="$TESTDIR"/mnt
- . "$basedir"/dracut-functions.sh
+ . "$basedir"/dracut-init.sh
(
cd "$initdir";
@@ -212,7 +212,7 @@ test_setup() {
# Make client root inside server root
(
export initdir="$TESTDIR"/mnt/nfs/client
- . "$basedir"/dracut-functions.sh
+ . "$basedir"/dracut-init.sh
(
cd "$initdir"
mkdir -p dev sys proc etc run
@@ -256,7 +256,7 @@ test_setup() {
# Make an overlay with needed tools for the test harness
(
export initdir="$TESTDIR"/overlay
- . "$basedir"/dracut-functions.sh
+ . "$basedir"/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules

View File

@ -0,0 +1,25 @@
From 8d09f493a634f0c6c44e99fb22618b75cbb41f0f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 2 Jul 2015 19:48:25 +0200
Subject: [PATCH] network/dhclient-script.sh: fixup lease time
---
modules.d/40network/dhclient-script.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
index a8b5b89..2550caf 100755
--- a/modules.d/40network/dhclient-script.sh
+++ b/modules.d/40network/dhclient-script.sh
@@ -21,7 +21,10 @@ setup_interface() {
search=$(printf -- "$new_domain_search")
namesrv=$new_domain_name_servers
hostname=$new_host_name
- lease_time=$new_dhcp_lease_time
+ [ -n "$new_dhcp_lease_time" ] && lease_time=$new_dhcp_lease_time
+ [ -n "$new_max_life" ] && lease_time=$new_max_life
+ preferred_lft=$lease_time
+ [ -n "$new_preferred_life" ] && preferred_lft=$new_preferred_life
[ -f /tmp/net.$netif.override ] && . /tmp/net.$netif.override

View File

@ -0,0 +1,90 @@
From 77403e0032c0ca8bcd4c3951e3ead3bd8c23f8e6 Mon Sep 17 00:00:00 2001
From: Dave Young <dyoung@redhat.com>
Date: Mon, 6 Jul 2015 15:31:26 +0800
Subject: [PATCH] 90multipath: add hostonly multipath.conf in case hostonly
mode
For large machine, suppose there's a lot of multipath devices, multipath layer
will use a lot of memory. For kdump kernel memory is very limited thus it causes
oom. To avoid oom, we only add necessary multipath devices in kdump kernel
multipath.conf.
This is done by use mpathconf --allow, a new option which is like whitelist.
Signed-off-by: Dave Young <dyoung@redhat.com>
---
modules.d/90multipath/module-setup.sh | 42 ++++++++++++++++++++++++++++-------
1 file changed, 34 insertions(+), 8 deletions(-)
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index 29643d4..321f13e 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -1,18 +1,28 @@
#!/bin/bash
+is_mpath() {
+ local _dev=$1
+ [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1
+ [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0
+ return 1
+}
+
+majmin_to_mpath_dev() {
+ local _dev
+ for i in `ls -1 /dev/mapper/mpath*`; do
+ dev=$(get_maj_min $i)
+ if [ "$dev" = "$1" ]; then
+ echo $i
+ return
+ fi
+ done
+}
# called by dracut
check() {
local _rootdev
# if there's no multipath binary, no go.
require_binaries multipath || return 1
- is_mpath() {
- local _dev=$1
- [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1
- [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0
- return 1
- }
-
[[ $hostonly ]] || [[ $mount_needs ]] && {
for_each_host_dev_and_slaves is_mpath || return 255
}
@@ -79,7 +89,18 @@ installkernel() {
# called by dracut
install() {
- local _f
+ local _f _allow
+ add_hostonly_mpath_conf() {
+ is_mpath $1 && {
+ local _dev
+
+ _dev=$(majmin_to_mpath_dev $1)
+ [ -z "$_dev" ] && return
+ strstr "$_allow" "$_dev" && return
+ _allow="$_allow --allow $_dev"
+ }
+ }
+
inst_multiple -o \
dmsetup \
kpartx \
@@ -93,6 +114,11 @@ install() {
/etc/multipath.conf \
/etc/multipath/*
+ [[ $hostonly ]] && {
+ for_each_host_dev_and_slaves_all add_hostonly_mpath_conf
+ [ -n "$_allow" ] && mpathconf $_allow --outfile ${initdir}/etc/multipath.conf
+ }
+
inst $(command -v partx) /sbin/partx
inst_libdir_file "libmultipath*" "multipath/*"

View File

@ -0,0 +1,24 @@
From 3d579309cde6c02a85ce7d3c396f61e7f064690b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 7 Jul 2015 13:25:56 +0200
Subject: [PATCH] dmsquash-live/dmsquash-live-root.sh: fixup checkisomd5 for
systemd
systemd does not like a leading "-" for unit template filenames anymore.
---
modules.d/90dmsquash-live/dmsquash-live-root.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index a0a9ab9..531617e 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -41,7 +41,7 @@ getarg rd.live.check -d check || check=""
if [ -n "$check" ]; then
type plymouth >/dev/null 2>&1 && plymouth --hide-splash
if [ -n "$DRACUT_SYSTEMD" ]; then
- p=$(str_replace "$livedev" "-" '\x2d')
+ p=$(dev_unit_name "$livedev")
systemctl start checkisomd5@${p}.service
else
checkisomd5 --verbose $livedev

View File

@ -0,0 +1,25 @@
From 6318baa45f2f09ecd821eddf401270d947664f1d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 7 Jul 2015 13:26:38 +0200
Subject: [PATCH] skipcpio/skipcpio.c: linux kernel only accepts "070701"
signature
don't bother with other signatures
---
skipcpio/skipcpio.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/skipcpio/skipcpio.c b/skipcpio/skipcpio.c
index 445d7f6..3069981 100644
--- a/skipcpio/skipcpio.c
+++ b/skipcpio/skipcpio.c
@@ -60,8 +60,7 @@ int main(int argc, char **argv)
fseek(f, 0, SEEK_SET);
/* check, if this is a cpio archive */
- if ((buf[0] == 0x71 && buf[1] == 0xc7)
- || (buf[0] == '0' && buf[1] == '7' && buf[2] == '0' && buf[3] == '7' && buf[4] == '0' && buf[5] == '1')) {
+ if (buf[0] == '0' && buf[1] == '7' && buf[2] == '0' && buf[3] == '7' && buf[4] == '0' && buf[5] == '1') {
long pos = 0;
/* Search for CPIO_END */

View File

@ -0,0 +1,30 @@
From b8efaa00171135db1e1f09a73a2e0d8098f03867 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 26 Jun 2015 16:55:52 +0200
Subject: [PATCH] Reset IFS variable
Setting and unsetting the IFS variable is tricky. To be on the
safe side we should always reset the IFS variable to its original
value after parsing.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
modules.d/95fcoe/parse-fcoe.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules.d/95fcoe/parse-fcoe.sh b/modules.d/95fcoe/parse-fcoe.sh
index b66fa3e..a214007 100755
--- a/modules.d/95fcoe/parse-fcoe.sh
+++ b/modules.d/95fcoe/parse-fcoe.sh
@@ -26,8 +26,10 @@ initqueue --onetime modprobe -b -q bnx2fc
udevadm settle --timeout=30
parse_fcoe_opts() {
+ local OLDIFS="$IFS"
local IFS=:
set $fcoe
+ IFS="$OLDIFS"
case $# in
2)

View File

@ -0,0 +1,66 @@
From 01e60ca4f63536025d66610679a7a757907e71c8 Mon Sep 17 00:00:00 2001
From: Thomas Renninger <trenn@suse.de>
Date: Fri, 26 Jun 2015 16:55:53 +0200
Subject: [PATCH] mkinitrd-suse.sh: Bail out with exit 1 if initrd cannot be
generated
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
mkinitrd-suse.sh | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
index af42cbe..c2b314f 100755
--- a/mkinitrd-suse.sh
+++ b/mkinitrd-suse.sh
@@ -280,7 +280,8 @@ done
[[ $targets && $kernels ]] || default_kernel_images
if [[ ! $targets || ! $kernels ]];then
- error "No kernel found in $boot_dir"
+ error "No kernel found in $boot_dir or bad modules dir in /lib/modules"
+ exit 1
fi
# We can have several targets/kernels, transform the list to an array
@@ -301,6 +302,8 @@ fi
[[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}"
shopt -s extglob
+failed=""
+
for ((i=0 ; $i<${#targets[@]} ; i++)); do
if [[ $img_vers ]];then
@@ -329,14 +332,18 @@ for ((i=0 ; $i<${#targets[@]} ; i++)); do
# expansion magics
if [ -n "${modules_all}" ];then
$dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" &>/dev/null
+ [ $? -ne 0 ] && failed="$failed $target"
else
$dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null
+ [ $? -ne 0 ] && failed="$failed $target"
fi
else
if [ -n "${modules_all}" ];then
$dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel"
+ [ $? -ne 0 ] && failed="$failed $target"
else
$dracut_cmd $dracut_args "$target" "$kernel"
+ [ $? -ne 0 ] && failed="$failed $target"
fi
fi
done
@@ -345,4 +352,12 @@ if [ "$skip_update_bootloader" ] ; then
echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually."
else
update-bootloader --refresh
+ [ $? -ne 0 ] && echo "Updating bootloader failed" && exit 1
+fi
+
+if [ "$failed" != "" ]; then
+ echo "Generating $failed targets failed"
+ exit 1
fi
+
+exit 0

View File

@ -0,0 +1,67 @@
From 162daf0c978ab67131f18856c816d3dbd5ed819f Mon Sep 17 00:00:00 2001
From: Thomas Renninger <trenn@suse.de>
Date: Fri, 26 Jun 2015 16:55:54 +0200
Subject: [PATCH] Use the uncompressed kernel file on arm and aarch to detect
kernel version
This is due to file cannot read out the kernel version on these.
Many thanks to Alexander Graf finding this in old SUSE mkinitrd code.
Converted by Thomas Renninger.
Signed-off-by: Thomas Renninger <trenn@suse.de>
https://bugzilla.suse.com/show_bug.cgi?id=908454
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
mkinitrd-suse.sh | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
index c2b314f..0f2b3c4 100755
--- a/mkinitrd-suse.sh
+++ b/mkinitrd-suse.sh
@@ -145,6 +145,33 @@ is_xen_kernel() {
return
}
+# kernel_image_gz_from_image() and kernel_version_from_image() are helpers
+# for arm* kernels which produce zImage files which cannot be read from
+# get_kernel_version -> get rid of this workaround if possible
+kernel_image_gz_from_image() {
+ local arch=$(uname -i)
+ local r=${1}.gz
+
+ # uImage kernels can't be extracted directly. Use the vmlinux.gz instead
+ r=${r//uImage/vmlinux}
+
+ # on ARM a zImage can't be extracted directly. Other platforms define it
+ # as a gzipped vmlinux file, but not ARM. So only on ARM, use vmlinux.gz.
+ if [[ $arch =~ arm ]] || [[ $arch =~ aarch ]]; then
+ r=${r//zImage/vmlinux}
+ fi
+
+ echo $r
+}
+
+kernel_version_from_image() {
+ local kernel_image="$1" kernel_image_gz=$(kernel_image_gz_from_image "$1")
+
+ if get_kernel_version "$kernel_image" 2>/dev/null; then
+ return
+ fi
+ get_kernel_version "$kernel_image_gz" 2>/dev/null
+}
# Taken over from SUSE mkinitrd
default_kernel_images() {
@@ -183,7 +210,8 @@ default_kernel_images() {
[ -L "$boot_dir/$kernel_image" ] && continue
[ "${kernel_image%%.gz}" != "$kernel_image" ] && continue
- kernel_version=$(/usr/bin/get_kernel_version \
+
+ kernel_version=$(kernel_version_from_image \
$boot_dir/$kernel_image 2> /dev/null)
initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|")
if [ "$kernel_image" != "$initrd_image" -a \

View File

@ -0,0 +1,48 @@
From 6c9484f61440b71301f43cfa912fb9f1113352b1 Mon Sep 17 00:00:00 2001
From: Andrei Borzenkov <arvidjaar@gmail.com>
Date: Fri, 26 Jun 2015 16:55:56 +0200
Subject: [PATCH] ensure pre-mount (and resume) run before root fsck
References:
https://bugzilla.suse.com/show_bug.cgi?id=906592
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
modules.d/98dracut-systemd/rootfs-generator.sh | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/modules.d/98dracut-systemd/rootfs-generator.sh b/modules.d/98dracut-systemd/rootfs-generator.sh
index 670613e..5e79d0b 100755
--- a/modules.d/98dracut-systemd/rootfs-generator.sh
+++ b/modules.d/98dracut-systemd/rootfs-generator.sh
@@ -65,6 +65,23 @@ generator_mount_rootfs()
fi
}
+generator_fsck_after_pre_mount()
+{
+ local _name
+
+ [ -z "$1" ] && return 0
+
+ _name=$(dev_unit_name "$1")
+ [ -d /run/systemd/generator/systemd-fsck@${_name}.service.d ] || mkdir -p /run/systemd/generator/systemd-fsck@${_name}.service.d
+ if ! [ -f /run/systemd/generator/systemd-fsck@${_name}.service.d/after-pre-mount.conf ]; then
+ {
+ echo "[Unit]"
+ echo "After=dracut-pre-mount.service"
+ } > /run/systemd/generator/systemd-fsck@${_name}.service.d/after-pre-mount.conf
+ fi
+
+}
+
root=$(getarg root=)
case "$root" in
block:LABEL=*|LABEL=*)
@@ -95,6 +112,7 @@ GENERATOR_DIR="$1"
if [ "$rootok" = "1" ]; then
generator_wait_for_dev "${root#block:}" "$RDRETRY"
+ generator_fsck_after_pre_mount "${root#block:}"
strstr "$(cat /proc/cmdline)" 'root=' || generator_mount_rootfs "${root#block:}" "$(getarg rootfstype=)" "$(getarg rootflags=)"
fi

View File

@ -0,0 +1,23 @@
From e860ef0e308364df3070d866950782544eb11950 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 7 Jul 2015 13:45:19 +0200
Subject: [PATCH] dracut-pre-mount.service should run before
systemd-fsck-root.service
---
modules.d/98dracut-systemd/dracut-pre-mount.service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/98dracut-systemd/dracut-pre-mount.service b/modules.d/98dracut-systemd/dracut-pre-mount.service
index 96ea995..1e4e29f 100644
--- a/modules.d/98dracut-systemd/dracut-pre-mount.service
+++ b/modules.d/98dracut-systemd/dracut-pre-mount.service
@@ -11,7 +11,7 @@
Description=dracut pre-mount hook
Documentation=man:dracut-pre-mount.service(8)
DefaultDependencies=no
-Before=initrd-root-fs.target sysroot.mount
+Before=initrd-root-fs.target sysroot.mount systemd-fsck-root.service
After=dracut-initqueue.service
After=cryptsetup.target
ConditionPathExists=/usr/lib/initrd-release

View File

@ -0,0 +1,47 @@
From 9ee2f1e2358c86dce0da1a65f2352e8e3cba5ea4 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 7 Jul 2015 14:29:22 +0200
Subject: [PATCH] TEST-04-FULL-SYSTEMD: fixup loadkeys keymap loading
---
test/TEST-04-FULL-SYSTEMD/test.sh | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh
index 1c12e4f..6ea9281 100755
--- a/test/TEST-04-FULL-SYSTEMD/test.sh
+++ b/test/TEST-04-FULL-SYSTEMD/test.sh
@@ -171,13 +171,18 @@ EOF
inst /usr/lib/systemd/system/dbus.socket
inst /usr/lib/systemd/system/dbus.service
+ (
+ echo "FONT=latarcyrheb-sun16"
+ echo "KEYMAP=us"
+ ) >$initrd/etc/vconsole.conf
+
# install basic keyboard maps and fonts
for i in \
/usr/lib/kbd/consolefonts/eurlatgr* \
/usr/lib/kbd/consolefonts/latarcyrheb-sun16* \
- /usr/lib/kbd/keymaps/include/* \
- /usr/lib/kbd/keymaps/i386/include/* \
- /usr/lib/kbd/keymaps/i386/qwerty/us.*; do
+ /usr/lib/kbd/keymaps/{legacy/,/}include/* \
+ /usr/lib/kbd/keymaps/{legacy/,/}i386/include/* \
+ /usr/lib/kbd/keymaps/{legacy/,/}i386/qwerty/us.*; do
[[ -f $i ]] || continue
inst $i
done
@@ -260,9 +265,9 @@ EOF
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
- -a "debug systemd" \
+ -a "debug systemd i18n" \
-I "/etc/machine-id /etc/hostname" \
- -o "dash network plymouth lvm mdraid resume crypt i18n caps dm terminfo usrmount kernel-network-modules" \
+ -o "dash network plymouth lvm mdraid resume crypt caps dm terminfo usrmount kernel-network-modules" \
-d "piix ide-gd_mod ata_piix btrfs sd_mod i6300esb ib700wdt" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.testing $KVERSION || return 1

View File

@ -0,0 +1,32 @@
From 3fa31c3a47be657a42640ba1669e0b77b8835534 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 7 Jul 2015 14:31:16 +0200
Subject: [PATCH] TEST-14-IMSM: remove "rd.auto"
otherwise rd.auto auto assembles the device
---
test/TEST-14-IMSM/test.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh
index a05d091..f4ea7ae 100755
--- a/test/TEST-14-IMSM/test.sh
+++ b/test/TEST-14-IMSM/test.sh
@@ -30,13 +30,13 @@ client_run() {
test_run() {
read MD_UUID < $TESTDIR/mduuid
client_run rd.auto rd.md.imsm=0 || return 1
- client_run rd.auto rd.md.uuid=$MD_UUID rd.dm=0 || return 1
+ client_run rd.md.uuid=$MD_UUID rd.dm=0 || return 1
# This test succeeds, because the mirror parts are found without
# assembling the mirror itsself, which is what we want
- client_run rd.auto rd.md.uuid=$MD_UUID rd.md=0 rd.md.imsm failme && return 1
- client_run rd.auto rd.md.uuid=$MD_UUID rd.md=0 failme && return 1
+ client_run rd.md.uuid=$MD_UUID rd.md=0 rd.md.imsm failme && return 1
+ client_run rd.md.uuid=$MD_UUID rd.md=0 failme && return 1
# the following test hangs on newer md
- client_run rd.auto rd.md.uuid=$MD_UUID rd.dm=0 rd.md.imsm rd.md.conf=0 || return 1
+ client_run rd.md.uuid=$MD_UUID rd.dm=0 rd.md.imsm rd.md.conf=0 || return 1
return 0
}

View File

@ -0,0 +1,22 @@
From 7ecb36aef43f7573e1ae0489731000c9c01bc481 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 7 Jul 2015 15:34:30 +0200
Subject: [PATCH] TEST-50-MULTINIC/test.sh: correctly call ldconfig
---
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 b878380..fdeb840 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -205,7 +205,7 @@ test_setup() {
inst /etc/group /etc/group
cp -a -- /etc/ld.so.conf* "$initdir"/etc
- sudo ldconfig -r -- "$initdir"
+ ldconfig -r "$initdir"
dracut_kernel_post
)

View File

@ -0,0 +1,22 @@
From 78362bc5fea4fe640e7a767ebfbef7e3f5f57eba Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 8 Jul 2015 08:49:02 +0200
Subject: [PATCH] network/dhclient-script.sh: remove bashism
---
modules.d/40network/dhclient-script.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
index 2550caf..c75ac89 100755
--- a/modules.d/40network/dhclient-script.sh
+++ b/modules.d/40network/dhclient-script.sh
@@ -47,7 +47,7 @@ setup_interface() {
${preferred_lft:+preferred_lft ${preferred_lft}}
if [ -n "$gw" ] ; then
- if [ "$mask" == "255.255.255.255" ] ; then
+ if [ "$mask" = "255.255.255.255" ] ; then
# point-to-point connection => set explicit route to gateway
echo ip route add $gw dev $netif > /tmp/net.$netif.gw
fi

View File

@ -0,0 +1,103 @@
From 1cadc26fd44a602ffbcfb59786b400990541dc86 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 13:18:13 +0200
Subject: [PATCH] Add all btrfs devices
We have to find them with "btrfs usage", which is cumbersome.
---
dracut-functions.sh | 13 +++++++++++++
dracut.sh | 22 ++++++++++++++++++++--
modules.d/99base/module-setup.sh | 4 +++-
3 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index f415f0d..639c5ae 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -31,6 +31,10 @@ strstr() { [[ $1 = *"$2"* ]]; }
strglobin() { [[ $1 = *$2* ]]; }
# Generic glob matching function. If glob pattern $2 matches all of $1, OK
strglob() { [[ $1 = $2 ]]; }
+# returns OK if $1 contains literal string $2 at the beginning, and isn't empty
+str_starts() { [ "${1#"$2"*}" != "$1" ]; }
+# returns OK if $1 contains literal string $2 at the end, and isn't empty
+str_ends() { [ "${1%*"$2"}" != "$1" ]; }
# helper function for check() in module-setup.sh
# to check for required installed binaries
@@ -1815,3 +1819,12 @@ lvm_internal_dev() {
[[ ${DM_LV_LAYER} ]] || [[ ! -L /dev/${DM_VG_NAME}/${DM_LV_NAME} ]]
}
+btrfs_devs() {
+ local _mp="$1"
+ btrfs device usage "$_mp" \
+ | while read _dev _rest; do
+ str_starts "$_dev" "/" || continue
+ _dev=${_dev%,}
+ printf -- "%s\n" "$_dev"
+ done
+}
diff --git a/dracut.sh b/dracut.sh
index 8394cee..bf1886f 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1146,6 +1146,11 @@ for line in "${fstab_lines[@]}"; do
;;
esac
[ -z "$dev" ] && dwarn "Bad fstab entry $@" && continue
+ if [[ "$3" == btrfs ]]; then
+ for i in $(btrfs_devs "$2"); do
+ push_host_devs "$i"
+ done
+ fi
push_host_devs "$dev"
host_fs_types["$dev"]="$3"
done
@@ -1194,8 +1199,14 @@ if [[ $hostonly ]]; then
_bdev=$(readlink -f "/dev/block/$_dev")
[[ -b $_bdev ]] && _dev=$_bdev
push_host_devs $_dev
- [[ "$mp" == "/" ]] && root_dev="$_dev"
+ [[ "$mp" == "/" ]] && push root_devs "$_dev"
push_host_devs "$_dev"
+ if [[ $(find_mp_fstype "$mp") == btrfs ]]; then
+ for i in $(btrfs_devs "$mp"); do
+ [[ "$mp" == "/" ]] && push root_devs "$i"
+ push_host_devs "$i"
+ done
+ fi
done
if [[ -f /proc/swaps ]] && [[ -f /etc/fstab ]]; then
@@ -1240,7 +1251,14 @@ if [[ $hostonly ]]; then
[[ "$_o" != *x-initrd.mount* ]] && continue
_dev=$(expand_persistent_dev "$_d")
_dev="$(readlink -f "$_dev")"
- [[ -b $_dev ]] && push_host_devs "$_dev"
+ [[ -b $_dev ]] || continue
+
+ push_host_devs "$_dev"
+ if [[ "$_t" == btrfs ]]; then
+ for i in $(find_btrfs_devs "$_m"); do
+ push_host_devs "$i"
+ done
+ fi
done < /etc/fstab
fi
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
index bbc68ba..3fbdc41 100755
--- a/modules.d/99base/module-setup.sh
+++ b/modules.d/99base/module-setup.sh
@@ -102,7 +102,9 @@ install() {
. "$moddir/dracut-lib.sh"
for _dev in ${host_devs[@]}; do
- [[ "$_dev" == "$root_dev" ]] && continue
+ for _dev2 in ${root_devs[@]}; do
+ [[ "$_dev" == "$_dev2" ]] && continue 2
+ done
# We only actually wait for real devs - swap is only needed
# for resume and udev rules generated when parsing resume=

View File

@ -0,0 +1,155 @@
From 5a66d51102bc3522d46c60d8bd8e5d6837420063 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 14:13:44 +0200
Subject: [PATCH] dracut.sh: remove push()
can be done with var+=(val)
---
dracut.sh | 77 +++++++++++++++++++++++----------------------------------------
1 file changed, 28 insertions(+), 49 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index bf1886f..f7609fa 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -209,30 +209,13 @@ For example:
EOF
}
-# function push()
-# push values to a stack
-# $1 = stack variable
-# $2.. values
-# example:
-# push stack 1 2 "3 4"
-push() {
- local _i
- local __stack=$1; shift
- for _i in "$@"; do
- eval ${__stack}'[${#'${__stack}'[@]}]="$_i"'
- done
-}
-
# Fills up host_devs stack variable and makes sure there are no duplicates
push_host_devs() {
local _dev
- for _dev in ${host_devs[@]}; do
- [ "$_dev" = "$1" ] && return
- done
- push host_devs "$1"
+ [[ " ${host_devs[@]} " == *" $1 "* ]] && return
+ host_devs+=( "$1" )
}
-
# function pop()
# pops the last value from a stack
# assigns value to second argument variable
@@ -486,28 +469,25 @@ while :; do
PARMS_TO_STORE+=" $1";
fi
case $1 in
- --kver) kernel="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- -a|--add) push add_dracutmodules_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --force-add) push force_add_dracutmodules_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --add-drivers) push add_drivers_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --force-drivers) push force_drivers_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --omit-drivers) push omit_drivers_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- -m|--modules) push dracutmodules_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- -o|--omit) push omit_dracutmodules_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- -d|--drivers) push drivers_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --filesystems) push filesystems_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- -I|--install) push install_items_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --install-optional)
- push install_optional_items_l \
- "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --fwdir) push fw_dir_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --libdirs) push libdirs_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --fscks) push fscks_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --add-fstab) push add_fstab_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --mount) push fstab_lines "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --add-device|--device)
- push add_device_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
- --kernel-cmdline) push kernel_cmdline_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;;
+ --kver) kernel="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
+ -a|--add) add_dracutmodules_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --force-add) force_add_dracutmodules_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --add-drivers) add_drivers_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --force-drivers) force_drivers_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --omit-drivers) omit_drivers_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ -m|--modules) dracutmodules_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ -o|--omit) omit_dracutmodules_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ -d|--drivers) drivers_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --filesystems) filesystems_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ -I|--install) install_items_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --install-optional) install_optional_items_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --fwdir) fw_dir_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --libdirs) libdirs_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --fscks) fscks_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --add-fstab) add_fstab_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --mount) fstab_lines+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --add-device|--device) add_device_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
+ --kernel-cmdline) kernel_cmdline_l+=("$2"); PARMS_TO_STORE+=" '$2'"; shift;;
--nofscks) nofscks_l="yes";;
--ro-mnt) ro_mnt_l="yes";;
-k|--kmoddir) drivers_dir_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
@@ -566,7 +546,7 @@ while :; do
persistent_policy_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--fstab) use_fstab_l="yes" ;;
-h|--help) long_usage; exit 1 ;;
- -i|--include) push include_src "$2"; PARMS_TO_STORE+=" '$2'";
+ -i|--include) include_src+=("$2"); PARMS_TO_STORE+=" '$2'";
shift;;
--bzip2) compress_l="bzip2";;
--lzma) compress_l="lzma";;
@@ -602,8 +582,8 @@ done
while (($# > 0)); do
if [ "${1%%=*}" == "++include" ]; then
- push include_src "$2"
- push include_target "$3"
+ include_src+=("$2")
+ include_target+=("$3")
PARMS_TO_STORE+=" --include '$2' '$3'"
shift 2
fi
@@ -746,7 +726,7 @@ fi
if (( ${#fstab_lines_l[@]} )); then
while pop fstab_lines_l val; do
- push fstab_lines $val
+ fstab_lines+=($val)
done
fi
@@ -1199,11 +1179,11 @@ if [[ $hostonly ]]; then
_bdev=$(readlink -f "/dev/block/$_dev")
[[ -b $_bdev ]] && _dev=$_bdev
push_host_devs $_dev
- [[ "$mp" == "/" ]] && push root_devs "$_dev"
+ [[ "$mp" == "/" ]] && root_devs+=("$_dev")
push_host_devs "$_dev"
if [[ $(find_mp_fstype "$mp") == btrfs ]]; then
for i in $(btrfs_devs "$mp"); do
- [[ "$mp" == "/" ]] && push root_devs "$i"
+ [[ "$mp" == "/" ]] && root_devs+=("$i")
push_host_devs "$i"
done
fi
@@ -1237,7 +1217,7 @@ if [[ $hostonly ]]; then
_dev="$(readlink -f "$dev")"
push_host_devs "$_dev"
- push swap_devs "$_dev"
+ swap_devs+=("$_dev")
break
done < /etc/fstab
done < /proc/swaps
@@ -1262,7 +1242,6 @@ if [[ $hostonly ]]; then
done < /etc/fstab
fi
-
# record all host modaliases
declare -A host_modalias
find /sys/devices/ -name uevent -print > "$initdir/.modalias"

View File

@ -0,0 +1,68 @@
From e833e26137b48063df59e777fe64e495ec538d0f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 14:31:26 +0200
Subject: [PATCH] dracut.conf: remove example parameters
---
dracut.conf | 54 +++---------------------------------------------------
1 file changed, 3 insertions(+), 51 deletions(-)
diff --git a/dracut.conf b/dracut.conf
index 8533f99..d6317a0 100644
--- a/dracut.conf
+++ b/dracut.conf
@@ -1,51 +1,3 @@
-# PUT YOUR CONFIG HERE OR IN separate files named *.conf
-# in /etc/dracut.conf.d
-# SEE man dracut.conf(5)
-
-# Sample dracut config file
-
-#logfile=/var/log/dracut.log
-#fileloglvl=6
-
-# Exact list of dracut modules to use. Modules not listed here are not going
-# to be included. If you only want to add some optional modules use
-# add_dracutmodules option instead.
-#dracutmodules+=""
-
-# dracut modules to omit
-#omit_dracutmodules+=""
-
-# dracut modules to add to the default
-#add_dracutmodules+=""
-
-# additional kernel modules to the default
-#add_drivers+=""
-
-# list of kernel filesystem modules to be included in the generic initramfs
-#filesystems+=""
-
-# build initrd only to boot current hardware
-#hostonly="yes"
-#
-
-# install local /etc/mdadm.conf
-#mdadmconf="no"
-
-# install local /etc/lvm/lvm.conf
-#lvmconf="no"
-
-# A list of fsck tools to install. If it's not specified, module's hardcoded
-# default is used, currently: "umount mount /sbin/fsck* xfs_db xfs_check
-# xfs_repair e2fsck jfs_fsck reiserfsck btrfsck". The installation is
-# opportunistic, so non-existing tools are just ignored.
-#fscks=""
-
-# inhibit installation of any fsck tools
-#nofscks="yes"
-
-# mount / and /usr read-only by default
-#ro_mnt="no"
-
-# set the directory for temporary files
-# default: /var/tmp
-#tmpdir=/tmp
+# PUT YOUR CONFIG IN separate files
+# in /etc/dracut.conf.d named "<name>.conf"
+# SEE man dracut.conf(5) for options

View File

@ -0,0 +1,224 @@
From 694725abf0d4956bb07b5f96b7887a75e0f430df Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 14:33:24 +0200
Subject: [PATCH] dracut.sh: remove pop()
---
dracut.sh | 119 ++++++++++++++------------------------------------------------
1 file changed, 27 insertions(+), 92 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index f7609fa..54358f3 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -212,35 +212,10 @@ EOF
# Fills up host_devs stack variable and makes sure there are no duplicates
push_host_devs() {
local _dev
- [[ " ${host_devs[@]} " == *" $1 "* ]] && return
- host_devs+=( "$1" )
-}
-
-# function pop()
-# pops the last value from a stack
-# assigns value to second argument variable
-# or echo to stdout, if no second argument
-# $1 = stack variable
-# $2 = optional variable to store the value
-# example:
-# pop stack val
-# val=$(pop stack)
-pop() {
- local __stack=$1; shift
- local __resultvar=$1
- local _value;
- # check for empty stack
- eval '[[ ${#'${__stack}'[@]} -eq 0 ]] && return 1'
-
- eval _value='${'${__stack}'[${#'${__stack}'[@]}-1]}'
-
- if [[ "$__resultvar" ]]; then
- eval $__resultvar="'$_value'"
- else
- printf "%s" "$_value"
- fi
- eval unset ${__stack}'[${#'${__stack}'[@]}-1]'
- return 0
+ for _dev in "$@"; do
+ [[ " ${host_devs[@]} " == *" $_dev "* ]] && return
+ host_devs+=( "$_dev" )
+ done
}
# Little helper function for reading args from the commandline.
@@ -701,81 +676,52 @@ unset NPATH
# these optins add to the stuff in the config file
if (( ${#add_dracutmodules_l[@]} )); then
- while pop add_dracutmodules_l val; do
- add_dracutmodules+=" $val "
- done
+ add_dracutmodules+=" ${add_dracutmodules_l[@]} "
fi
if (( ${#force_add_dracutmodules_l[@]} )); then
- while pop force_add_dracutmodules_l val; do
- force_add_dracutmodules+=" $val "
- done
+ force_add_dracutmodules+=" ${force_add_dracutmodules_l[@]} "
fi
if (( ${#fscks_l[@]} )); then
- while pop fscks_l val; do
- fscks+=" $val "
- done
+ fscks+=" ${fscks_l[@]} "
fi
if (( ${#add_fstab_l[@]} )); then
- while pop add_fstab_l val; do
- add_fstab+=" $val "
- done
+ add_fstab+=" ${add_fstab_l[@]} "
fi
if (( ${#fstab_lines_l[@]} )); then
- while pop fstab_lines_l val; do
- fstab_lines+=($val)
- done
+ fstab_lines+=( "${fstab_lines_l[@]}" )
fi
if (( ${#install_items_l[@]} )); then
- while pop install_items_l val; do
- install_items+=" $val "
- done
+ install_items+=" ${install_items_l[@]} "
fi
if (( ${#install_optional_items_l[@]} )); then
- while pop install_optional_items_l val; do
- install_optional_items+=" $val "
- done
+ install_optional_items+=" ${install_optional_items_l[@]} "
fi
# these options override the stuff in the config file
if (( ${#dracutmodules_l[@]} )); then
- dracutmodules=''
- while pop dracutmodules_l val; do
- dracutmodules+="$val "
- done
+ dracutmodules="${dracutmodules_l[@]}"
fi
if (( ${#omit_dracutmodules_l[@]} )); then
- omit_dracutmodules=''
- while pop omit_dracutmodules_l val; do
- omit_dracutmodules+="$val "
- done
+ omit_dracutmodules="${omit_dracutmodules_l[@]}"
fi
if (( ${#filesystems_l[@]} )); then
- filesystems=''
- while pop filesystems_l val; do
- filesystems+="$val "
- done
+ filesystems="${filesystems_l[@]}"
fi
if (( ${#fw_dir_l[@]} )); then
- fw_dir=''
- while pop fw_dir_l val; do
- fw_dir+="$val "
- done
+ fw_dir="${fw_dir_l[@]}"
fi
if (( ${#libdirs_l[@]} )); then
- libdirs=''
- while pop libdirs_l val; do
- libdirs+="$val "
- done
+ libdirs="${libdirs_l[@]}"
fi
[[ $stdloglvl_l ]] && stdloglvl=$stdloglvl_l
@@ -925,38 +871,27 @@ dracutfunctions=$dracutbasedir/dracut-functions.sh
export dracutfunctions
if (( ${#drivers_l[@]} )); then
- drivers=''
- while pop drivers_l val; do
- drivers+="$val "
- done
+ drivers="${drivers_l[@]}"
fi
drivers=${drivers/-/_}
if (( ${#add_drivers_l[@]} )); then
- while pop add_drivers_l val; do
- add_drivers+=" $val "
- done
+ add_drivers+=" ${add_drivers_l[@]} "
fi
add_drivers=${add_drivers/-/_}
if (( ${#force_drivers_l[@]} )); then
- while pop force_drivers_l val; do
- force_drivers+=" $val "
- done
+ force_drivers+=" ${force_drivers_l[@]} "
fi
force_drivers=${force_drivers/-/_}
if (( ${#omit_drivers_l[@]} )); then
- while pop omit_drivers_l val; do
- omit_drivers+=" $val "
- done
+ omit_drivers+=" ${omit_drivers_l[@]} "
fi
omit_drivers=${omit_drivers/-/_}
if (( ${#kernel_cmdline_l[@]} )); then
- while pop kernel_cmdline_l val; do
- kernel_cmdline+=" $val "
- done
+ kernel_cmdline+=" ${kernel_cmdline_l[@]} "
fi
omit_drivers_corrected=""
@@ -1147,10 +1082,8 @@ for dev in $add_device; do
done
if (( ${#add_device_l[@]} )); then
- while pop add_device_l val; do
- add_device+=" $val "
- push_host_devs "$val"
- done
+ add_device+=" ${add_device_l[@]} "
+ push_host_devs "${add_device_l[@]}"
fi
if [[ $hostonly ]]; then
@@ -1527,7 +1460,7 @@ if [[ $kernel_only != yes ]]; then
[[ $kernel_cmdline ]] && printf "%s\n" "$kernel_cmdline" >> "${initdir}/etc/cmdline.d/01-default.conf"
- while pop fstab_lines line; do
+ for line in "${fstab_lines[@]}"; do
line=($line)
[ -z "${line[3]}" ] && line[3]="defaults"
[ -z "${line[4]}" ] && line[4]="0"
@@ -1566,7 +1499,9 @@ if [[ $kernel_only != yes ]]; then
done
fi
-while pop include_src src && pop include_target target; do
+for ((i=0; i < ${#include_src[@]}; i++)); do
+ src="${include_src[$i]}"
+ target="${include_target[$i]}"
if [[ $src && $target ]]; then
if [[ -f $src ]]; then
inst $src $target

View File

@ -0,0 +1,182 @@
From 3721635b2c5df033fca1e19181d7598e075f5308 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 15:27:44 +0200
Subject: [PATCH] guard ${arrays[@]} with ""
---
dracut-functions.sh | 8 ++++----
dracut.sh | 6 +++---
lsinitrd.sh | 2 +-
modules.d/90btrfs/module-setup.sh | 2 +-
modules.d/90kernel-modules/module-setup.sh | 2 +-
modules.d/95cifs/module-setup.sh | 2 +-
modules.d/95nfs/module-setup.sh | 2 +-
modules.d/95virtfs/module-setup.sh | 2 +-
modules.d/99base/module-setup.sh | 6 +++---
9 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 639c5ae..3a0a5a2 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -596,7 +596,7 @@ for_each_host_dev_fs()
local _dev
local _ret=1
- [[ "${!host_fs_types[@]}" ]] || return 0
+ [[ "${#host_fs_types[@]}" ]] || return 0
for _dev in "${!host_fs_types[@]}"; do
$_func "$_dev" "${host_fs_types[$_dev]}" && _ret=0
@@ -657,7 +657,7 @@ for_each_host_dev_and_slaves_all()
[[ "${host_devs[@]}" ]] || return 0
- for _dev in ${host_devs[@]}; do
+ for _dev in "${host_devs[@]}"; do
[[ -b "$_dev" ]] || continue
if check_block_and_slaves_all $_func $(get_maj_min $_dev); then
_ret=0
@@ -673,7 +673,7 @@ for_each_host_dev_and_slaves()
[[ "${host_devs[@]}" ]] || return 0
- for _dev in ${host_devs[@]}; do
+ for _dev in "${host_devs[@]}"; do
[[ -b "$_dev" ]] || continue
check_block_and_slaves $_func $(get_maj_min $_dev) && return 0
done
@@ -1276,7 +1276,7 @@ check_mount() {
local _ret
local _moddep
- [ "${#host_fs_types[*]}" -le 0 ] && return 1
+ [ "${#host_fs_types[@]}" -le 0 ] && return 1
# If we are already scheduled to be loaded, no need to check again.
[[ " $mods_to_load " == *\ $_mod\ * ]] && return 0
diff --git a/dracut.sh b/dracut.sh
index 54358f3..fc84a41 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1220,7 +1220,7 @@ _get_fs_type() {
return 1
}
-for dev in ${host_devs[@]}; do
+for dev in "${host_devs[@]}"; do
_get_fs_type "$dev"
check_block_and_slaves_all _get_fs_type "$(get_maj_min "$dev")"
done
@@ -1455,8 +1455,8 @@ if [[ $no_kernel != yes ]]; then
fi
if [[ $kernel_only != yes ]]; then
- (( ${#install_items[@]} > 0 )) && inst_multiple ${install_items[@]}
- (( ${#install_optional_items[@]} > 0 )) && inst_multiple -o ${install_optional_items[@]}
+ (( ${#install_items[@]} > 0 )) && inst_multiple "${install_items[@]}"
+ (( ${#install_optional_items[@]} > 0 )) && inst_multiple -o "${install_optional_items[@]}"
[[ $kernel_cmdline ]] && printf "%s\n" "$kernel_cmdline" >> "${initdir}/etc/cmdline.d/01-default.conf"
diff --git a/lsinitrd.sh b/lsinitrd.sh
index 94674af..d2ddd76 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -117,7 +117,7 @@ dracutlibdirs() {
extract_files()
{
(( ${#filenames[@]} == 1 )) && nofileinfo=1
- for f in ${!filenames[@]}; do
+ for f in "${!filenames[@]}"; do
[[ $nofileinfo ]] || echo "initramfs:/$f"
[[ $nofileinfo ]] || echo "========================================================================"
$CAT $image | cpio --extract --verbose --quiet --to-stdout $f 2>/dev/null
diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh
index 0771132..9303dbe 100755
--- a/modules.d/90btrfs/module-setup.sh
+++ b/modules.d/90btrfs/module-setup.sh
@@ -8,7 +8,7 @@ check() {
require_binaries btrfs || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
- for fs in ${host_fs_types[@]}; do
+ for fs in "${host_fs_types[@]}"; do
[[ "$fs" == "btrfs" ]] && return 0
done
return 255
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 40803df..41bf37d 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -74,7 +74,7 @@ installkernel() {
instmods '=fs'
fi
else
- for i in $(host_fs_all); do
+ for i in "${host_fs_types[@]}"; do
hostonly='' instmods $i
done
fi
diff --git a/modules.d/95cifs/module-setup.sh b/modules.d/95cifs/module-setup.sh
index 0e69845..f711458 100755
--- a/modules.d/95cifs/module-setup.sh
+++ b/modules.d/95cifs/module-setup.sh
@@ -6,7 +6,7 @@ check() {
require_binaries mount.cifs || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
- for fs in ${host_fs_types[@]}; do
+ for fs in "${host_fs_types[@]}"; do
[[ "$fs" == "cifs" ]] && return 0
done
return 255
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
index 8eb542c..9b5b8c8 100755
--- a/modules.d/95nfs/module-setup.sh
+++ b/modules.d/95nfs/module-setup.sh
@@ -7,7 +7,7 @@ check() {
require_binaries rpc.statd mount.nfs mount.nfs4 umount || return 1
[[ $hostonly ]] || [[ $mount_needs ]] && {
- for fs in ${host_fs_types[@]}; do
+ for fs in "${host_fs_types[@]}"; do
[[ "$fs" == "nfs" ]] && return 0
[[ "$fs" == "nfs3" ]] && return 0
[[ "$fs" == "nfs4" ]] && return 0
diff --git a/modules.d/95virtfs/module-setup.sh b/modules.d/95virtfs/module-setup.sh
index 97d39b9..96036ee 100755
--- a/modules.d/95virtfs/module-setup.sh
+++ b/modules.d/95virtfs/module-setup.sh
@@ -3,7 +3,7 @@
# called by dracut
check() {
[[ $hostonly ]] || [[ $mount_needs ]] && {
- for fs in ${host_fs_types[@]}; do
+ for fs in "${host_fs_types[@]}"; do
[[ "$fs" == "9p" ]] && return 0
done
return 255
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
index 3fbdc41..cc94d00 100755
--- a/modules.d/99base/module-setup.sh
+++ b/modules.d/99base/module-setup.sh
@@ -101,15 +101,15 @@ install() {
. "$moddir/dracut-lib.sh"
- for _dev in ${host_devs[@]}; do
- for _dev2 in ${root_devs[@]}; do
+ for _dev in "${host_devs[@]}"; do
+ for _dev2 in "${root_devs[@]}"; do
[[ "$_dev" == "$_dev2" ]] && continue 2
done
# We only actually wait for real devs - swap is only needed
# for resume and udev rules generated when parsing resume=
# argument take care of the waiting for us
- for _dev2 in ${swap_devs[@]}; do
+ for _dev2 in "${swap_devs[@]}"; do
[[ "$_dev" == "$_dev2" ]] && continue 2
done

View File

@ -0,0 +1,139 @@
From 32de4eb5d30b728c2fb42f802e5104095a4bc74c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 15:34:47 +0200
Subject: [PATCH] dracut-functions.sh: simplify some for loops
continue early, if condition is not met
---
dracut-functions.sh | 73 +++++++++++++++++++++++------------------------------
1 file changed, 32 insertions(+), 41 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 3a0a5a2..d559903 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -937,26 +937,23 @@ inst_rules() {
for _rule in "$@"; do
if [ "${_rule#/}" = "$_rule" ]; then
for r in ${udevdir}/rules.d ${hostonly:+/etc/udev/rules.d}; do
- if [[ -e $r/$_rule ]]; then
- _found="$r/$_rule"
- inst_rule_programs "$_found"
- inst_rule_group_owner "$_found"
- inst_rule_initqueue "$_found"
- inst_simple "$_found"
- fi
+ [[ -e $r/$_rule ]] || continue
+ _found="$r/$_rule"
+ inst_rule_programs "$_found"
+ inst_rule_group_owner "$_found"
+ inst_rule_initqueue "$_found"
+ inst_simple "$_found"
done
fi
for r in '' $dracutbasedir/rules.d/; do
# skip rules without an absolute path
[[ "${r}$_rule" != /* ]] && continue
-
- if [[ -f ${r}$_rule ]]; then
- _found="${r}$_rule"
- inst_rule_programs "$_found"
- inst_rule_group_owner "$_found"
- inst_rule_initqueue "$_found"
- inst_simple "$_found" "$_target/${_found##*/}"
- fi
+ [[ -f ${r}$_rule ]] || continue
+ _found="${r}$_rule"
+ inst_rule_programs "$_found"
+ inst_rule_group_owner "$_found"
+ inst_rule_initqueue "$_found"
+ inst_simple "$_found" "$_target/${_found##*/}"
done
[[ $_found ]] || dinfo "Skipping udev rule: $_rule"
done
@@ -968,23 +965,21 @@ inst_rules_wildcard() {
inst_dir "${udevdir}/rules.d"
inst_dir "$_target"
for _rule in ${udevdir}/rules.d/$1 ${dracutbasedir}/rules.d/$1 ; do
- if [[ -e $_rule ]]; then
+ [[ -e $_rule ]] || continue
+ inst_rule_programs "$_rule"
+ inst_rule_group_owner "$_rule"
+ inst_rule_initqueue "$_rule"
+ inst_simple "$_rule"
+ _found=$_rule
+ done
+ if [[ -n ${hostonly} ]] ; then
+ for _rule in ${_target}/$1 ; do
+ [[ -f $_rule ]] || continue
inst_rule_programs "$_rule"
inst_rule_group_owner "$_rule"
inst_rule_initqueue "$_rule"
inst_simple "$_rule"
_found=$_rule
- fi
- done
- if [[ -n ${hostonly} ]] ; then
- for _rule in ${_target}/$1 ; do
- if [[ -f $_rule ]]; then
- inst_rule_programs "$_rule"
- inst_rule_group_owner "$_rule"
- inst_rule_initqueue "$_rule"
- inst_simple "$_rule"
- _found=$_rule
- fi
done
fi
[[ $_found ]] || dinfo "Skipping udev rule: $_rule"
@@ -1051,10 +1046,9 @@ inst_any() {
[[ $1 = '-d' ]] && to="$2" && shift 2
for f in "$@"; do
- if [[ -e $f ]]; then
- [[ $to ]] && inst "$f" "$to" && return 0
- inst "$f" && return 0
- fi
+ [[ -e $f ]] || continue
+ [[ $to ]] && inst "$f" "$to" && return 0
+ inst "$f" && return 0
done
return 1
@@ -1118,8 +1112,7 @@ inst_decompress() {
inst_opt_decompress() {
local _src
- for _src in $@
- do
+ for _src in $@; do
inst_decompress "${_src}" || inst "${_src}"
done
}
@@ -1482,10 +1475,9 @@ install_kmod_with_fw() {
for _fw in $(modinfo -k $kernel -F firmware $1 2>/dev/null); do
_found=''
for _fwdir in $fw_dir; do
- if [[ -d $_fwdir && -f $_fwdir/$_fw ]]; then
- inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
- _found=yes
- fi
+ [[ -d $_fwdir && -f $_fwdir/$_fw ]] || continue
+ inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
+ _found=yes
done
if [[ $_found != yes ]]; then
if ! [[ -d $(echo /sys/module/${_modname//-/_}|{ read a b; echo $a; }) ]]; then
@@ -1557,10 +1549,9 @@ dracut_kernel_post() {
else
for _fw in $(xargs -r modinfo -k $kernel -F firmware < "$DRACUT_KERNEL_LAZY_HASHDIR/lazylist.dep"); do
for _fwdir in $fw_dir; do
- if [[ -d $_fwdir && -f $_fwdir/$_fw ]]; then
- inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
- break
- fi
+ [[ -d $_fwdir && -f $_fwdir/$_fw ]] || continue
+ inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
+ break
done
done
fi

View File

@ -0,0 +1,117 @@
From cb0913db0d23bb0880e525e5cb3d7a179b0c7a20 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 18:02:44 +0200
Subject: [PATCH] dracut.sh: reduce code
---
dracut.sh | 80 ++++++++++++++-------------------------------------------------
1 file changed, 18 insertions(+), 62 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index fc84a41..21d29bf 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -674,55 +674,21 @@ done
export PATH="${NPATH#:}"
unset NPATH
-# these optins add to the stuff in the config file
-if (( ${#add_dracutmodules_l[@]} )); then
- add_dracutmodules+=" ${add_dracutmodules_l[@]} "
-fi
-
-if (( ${#force_add_dracutmodules_l[@]} )); then
- force_add_dracutmodules+=" ${force_add_dracutmodules_l[@]} "
-fi
-
-if (( ${#fscks_l[@]} )); then
- fscks+=" ${fscks_l[@]} "
-fi
-
-if (( ${#add_fstab_l[@]} )); then
- add_fstab+=" ${add_fstab_l[@]} "
-fi
-
-if (( ${#fstab_lines_l[@]} )); then
- fstab_lines+=( "${fstab_lines_l[@]}" )
-fi
-
-if (( ${#install_items_l[@]} )); then
- install_items+=" ${install_items_l[@]} "
-fi
-
-if (( ${#install_optional_items_l[@]} )); then
- install_optional_items+=" ${install_optional_items_l[@]} "
-fi
+# these options add to the stuff in the config file
+(( ${#add_dracutmodules_l[@]} )) && add_dracutmodules+=" ${add_dracutmodules_l[@]} "
+(( ${#force_add_dracutmodules_l[@]} )) && force_add_dracutmodules+=" ${force_add_dracutmodules_l[@]} "
+(( ${#fscks_l[@]} )) && fscks+=" ${fscks_l[@]} "
+(( ${#add_fstab_l[@]} )) && add_fstab+=" ${add_fstab_l[@]} "
+(( ${#fstab_lines_l[@]} )) && fstab_lines+=( "${fstab_lines_l[@]}" )
+(( ${#install_items_l[@]} )) && install_items+=" ${install_items_l[@]} "
+(( ${#install_optional_items_l[@]} )) && install_optional_items+=" ${install_optional_items_l[@]} "
# these options override the stuff in the config file
-if (( ${#dracutmodules_l[@]} )); then
- dracutmodules="${dracutmodules_l[@]}"
-fi
-
-if (( ${#omit_dracutmodules_l[@]} )); then
- omit_dracutmodules="${omit_dracutmodules_l[@]}"
-fi
-
-if (( ${#filesystems_l[@]} )); then
- filesystems="${filesystems_l[@]}"
-fi
-
-if (( ${#fw_dir_l[@]} )); then
- fw_dir="${fw_dir_l[@]}"
-fi
-
-if (( ${#libdirs_l[@]} )); then
- libdirs="${libdirs_l[@]}"
-fi
+(( ${#dracutmodules_l[@]} )) && dracutmodules="${dracutmodules_l[@]}"
+(( ${#omit_dracutmodules_l[@]} )) && omit_dracutmodules="${omit_dracutmodules_l[@]}"
+(( ${#filesystems_l[@]} )) && filesystems="${filesystems_l[@]}"
+(( ${#fw_dir_l[@]} )) && fw_dir="${fw_dir_l[@]}"
+(( ${#libdirs_l[@]} ))&& libdirs="${libdirs_l[@]}"
[[ $stdloglvl_l ]] && stdloglvl=$stdloglvl_l
[[ ! $stdloglvl ]] && stdloglvl=4
@@ -870,29 +836,19 @@ fi
dracutfunctions=$dracutbasedir/dracut-functions.sh
export dracutfunctions
-if (( ${#drivers_l[@]} )); then
- drivers="${drivers_l[@]}"
-fi
+(( ${#drivers_l[@]} )) && drivers="${drivers_l[@]}"
drivers=${drivers/-/_}
-if (( ${#add_drivers_l[@]} )); then
- add_drivers+=" ${add_drivers_l[@]} "
-fi
+(( ${#add_drivers_l[@]} )) && add_drivers+=" ${add_drivers_l[@]} "
add_drivers=${add_drivers/-/_}
-if (( ${#force_drivers_l[@]} )); then
- force_drivers+=" ${force_drivers_l[@]} "
-fi
+(( ${#force_drivers_l[@]} )) && force_drivers+=" ${force_drivers_l[@]} "
force_drivers=${force_drivers/-/_}
-if (( ${#omit_drivers_l[@]} )); then
- omit_drivers+=" ${omit_drivers_l[@]} "
-fi
+(( ${#omit_drivers_l[@]} )) && omit_drivers+=" ${omit_drivers_l[@]} "
omit_drivers=${omit_drivers/-/_}
-if (( ${#kernel_cmdline_l[@]} )); then
- kernel_cmdline+=" ${kernel_cmdline_l[@]} "
-fi
+(( ${#kernel_cmdline_l[@]} )) && kernel_cmdline+=" ${kernel_cmdline_l[@]} "
omit_drivers_corrected=""
for d in $omit_drivers; do

View File

@ -0,0 +1,66 @@
From e8f19bcf26304282301c7aa34dff10f51d5f6172 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 18:22:15 +0200
Subject: [PATCH] dracut.sh: remember $0 for --regenerate-all
---
dracut.sh | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 21d29bf..77da887 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -23,6 +23,7 @@
# store for logging
dracut_args=( "$@" )
+readonly dracut_cmd="$(readlink -f $0)"
set -o pipefail
@@ -34,7 +35,7 @@ usage() {
# 80x25 linebreak here ^
cat << EOF
-Usage: $0 [OPTION]... [<initramfs> [<kernel-version>]]
+Usage: $dracut_cmd [OPTION]... [<initramfs> [<kernel-version>]]
Version: $DRACUT_VERSION
@@ -59,7 +60,7 @@ long_usage() {
# 80x25 linebreak here ^
cat << EOF
-Usage: $0 [OPTION]... [<initramfs> [<kernel-version>]]
+Usage: $dracut_cmd [OPTION]... [<initramfs> [<kernel-version>]]
Version: $DRACUT_VERSION
@@ -586,7 +587,7 @@ if [[ $regenerate_all == "yes" ]]; then
cd /lib/modules
for i in *; do
[[ -f $i/modules.dep ]] || [[ -f $i/modules.dep.bin ]] || continue
- dracut --kver="$i" "${dracut_args[@]}"
+ "$dracut_cmd" --kver="$i" "${dracut_args[@]}"
((ret+=$?))
done
exit $ret
@@ -814,7 +815,7 @@ if [[ -f $dracutbasedir/dracut-init.sh ]]; then
else
printf "%s\n" "dracut: Cannot find $dracutbasedir/dracut-init.sh." >&2
printf "%s\n" "dracut: Are you running from a git checkout?" >&2
- printf "%s\n" "dracut: Try passing -l as an argument to $0" >&2
+ printf "%s\n" "dracut: Try passing -l as an argument to $dracut_cmd" >&2
exit 1
fi
@@ -866,7 +867,7 @@ for ((i=0; i < ${#dracut_args[@]}; i++)); do
#" keep vim happy
done
-dinfo "Executing: $0 ${dracut_args[@]}"
+dinfo "Executing: $dracut_cmd ${dracut_args[@]}"
[[ $do_list = yes ]] && {
for mod in $dracutbasedir/modules.d/*; do

View File

@ -0,0 +1,40 @@
From ee44f6297293f895f2e446690a19e7114eff7ae8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 9 Jul 2015 19:44:30 +0200
Subject: [PATCH] dracut.sh: early check for bash version
---
dracut.sh | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 77da887..b7456dc 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -22,6 +22,13 @@
#
# store for logging
+
+# Verify bash version, current minimum is 4
+if (( BASH_VERSINFO[0] < 4 )); then
+ printf -- 'You need at least Bash 4 to use dracut, sorry.' >&2
+ exit 1
+fi
+
dracut_args=( "$@" )
readonly dracut_cmd="$(readlink -f $0)"
@@ -828,12 +835,6 @@ if ! [[ $print_cmdline ]]; then
rm -fr -- ${initdir}/*
fi
-# Verify bash version, current minimum is 4
-if (( BASH_VERSINFO[0] < 4 )); then
- dfatal 'You need at least Bash 4 to use dracut, sorry.'
- exit 1
-fi
-
dracutfunctions=$dracutbasedir/dracut-functions.sh
export dracutfunctions

View File

@ -0,0 +1,21 @@
From d63a455ffda280899bf9d3d7988789a74ac9ad8c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 10 Jul 2015 11:21:51 +0200
Subject: [PATCH] dracut.spec: add dracut-init.sh
---
dracut.spec | 1 +
1 file changed, 1 insertion(+)
diff --git a/dracut.spec b/dracut.spec
index 4775210..08b281d 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -315,6 +315,7 @@ rm -rf -- $RPM_BUILD_ROOT
%dir %{dracutlibdir}
%dir %{dracutlibdir}/modules.d
%{dracutlibdir}/dracut-functions.sh
+%{dracutlibdir}/dracut-init.sh
%{dracutlibdir}/dracut-functions
%{dracutlibdir}/dracut-version.sh
%{dracutlibdir}/dracut-logger.sh

View File

@ -11,7 +11,7 @@
Name: dracut
Version: 043
Release: 2%{?dist}
Release: 40.git20150710%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@ -30,6 +30,45 @@ URL: https://dracut.wiki.kernel.org/
# Source can be generated by
# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz
Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
Patch1: 0001-Fix-default-udev-systemd-dir-detection-in-usr-merge-.patch
Patch2: 0002-rootfs-generator-check-for-rootok-before-doing-any-a.patch
Patch3: 0003-uefi-lib-remove-bogus-comment.patch
Patch4: 0004-dracut.spec-move-dmsquash-and-livnet-to-subpackage.patch
Patch5: 0005-dracut.spec-Recommends-grubby.patch
Patch6: 0006-dracut.spec-turn-requires-in-recommends.patch
Patch7: 0007-Revert-lvm-Don-t-activate-LVs-with-activationskip-se.patch
Patch8: 0008-systemd-if-kdbus-is-available-include-the-kernel-mod.patch
Patch9: 0009-network-dhclient-script.sh-add-RENEW-REBIND.patch
Patch10: 0010-network-dhclient-script.sh-make-IPv4-DHCP-lease-time.patch
Patch11: 0011-network-don-t-use-ifup-m.patch
Patch12: 0012-lower-the-log-level-for-dfatal.patch
Patch13: 0013-dracut.sh-add-devices-with-x-initrd.mount-in-etc-fst.patch
Patch14: 0014-dracut-lib.sh-info-output-info-to-stderr.patch
Patch15: 0015-nfs-nfs-lib.sh-add-anaconda_nfsv6_to_var.patch
Patch16: 0016-splitup-dracut-init.sh-from-dracut-functions.sh.patch
Patch17: 0017-network-dhclient-script.sh-fixup-lease-time.patch
Patch18: 0018-90multipath-add-hostonly-multipath.conf-in-case-host.patch
Patch19: 0019-dmsquash-live-dmsquash-live-root.sh-fixup-checkisomd.patch
Patch20: 0020-skipcpio-skipcpio.c-linux-kernel-only-accepts-070701.patch
Patch21: 0021-Reset-IFS-variable.patch
Patch22: 0022-mkinitrd-suse.sh-Bail-out-with-exit-1-if-initrd-cann.patch
Patch23: 0023-Use-the-uncompressed-kernel-file-on-arm-and-aarch-to.patch
Patch24: 0024-ensure-pre-mount-and-resume-run-before-root-fsck.patch
Patch25: 0025-dracut-pre-mount.service-should-run-before-systemd-f.patch
Patch26: 0026-TEST-04-FULL-SYSTEMD-fixup-loadkeys-keymap-loading.patch
Patch27: 0027-TEST-14-IMSM-remove-rd.auto.patch
Patch28: 0028-TEST-50-MULTINIC-test.sh-correctly-call-ldconfig.patch
Patch29: 0029-network-dhclient-script.sh-remove-bashism.patch
Patch30: 0030-Add-all-btrfs-devices.patch
Patch31: 0031-dracut.sh-remove-push.patch
Patch32: 0032-dracut.conf-remove-example-parameters.patch
Patch33: 0033-dracut.sh-remove-pop.patch
Patch34: 0034-guard-arrays-with.patch
Patch35: 0035-dracut-functions.sh-simplify-some-for-loops.patch
Patch36: 0036-dracut.sh-reduce-code.patch
Patch37: 0037-dracut.sh-remember-0-for-regenerate-all.patch
Patch38: 0038-dracut.sh-early-check-for-bash-version.patch
Patch39: 0039-dracut.spec-add-dracut-init.sh.patch
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
@ -93,11 +132,21 @@ Requires: cpio
Requires: filesystem >= 2.1.0
Requires: findutils
Requires: grep
Requires: hardlink
Requires: gzip xz
Requires: kmod
Requires: sed
%if 0%{?fedora} > 22
Recommends: grubby
Recommends: hardlink
Recommends: gzip
Recommends: xz
Recommends: kpartx
%else
Requires: hardlink
Requires: gzip
Requires: xz
Requires: kpartx
%endif
%if 0%{?fedora} || 0%{?rhel} > 6
Requires: util-linux >= 2.21
@ -169,6 +218,16 @@ Requires: libcap
This package requires everything which is needed to build an
initramfs with dracut, which drops capabilities.
%package live
Summary: dracut modules to build a dracut initramfs with live image capabilities
Requires: %{name} = %{version}-%{release}
Requires: %{name}-network = %{version}-%{release}
Requires: tar gzip coreutils bash device-mapper curl
%description live
This package requires everything which is needed to build an
initramfs with dracut, with live image capabilities, like Live CDs.
%package config-generic
Summary: dracut configuration to turn off hostonly image generation
Requires: %{name} = %{version}-%{release}
@ -296,6 +355,7 @@ rm -rf -- $RPM_BUILD_ROOT
%dir %{dracutlibdir}
%dir %{dracutlibdir}/modules.d
%{dracutlibdir}/dracut-functions.sh
%{dracutlibdir}/dracut-init.sh
%{dracutlibdir}/dracut-functions
%{dracutlibdir}/dracut-version.sh
%{dracutlibdir}/dracut-logger.sh
@ -346,7 +406,6 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/90crypt
%{dracutlibdir}/modules.d/90dm
%{dracutlibdir}/modules.d/90dmraid
%{dracutlibdir}/modules.d/90dmsquash-live
%{dracutlibdir}/modules.d/90kernel-modules
%{dracutlibdir}/modules.d/90lvm
%{dracutlibdir}/modules.d/90mdraid
@ -380,7 +439,6 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/98usrmount
%{dracutlibdir}/modules.d/99base
%{dracutlibdir}/modules.d/99fs-lib
%{dracutlibdir}/modules.d/99img-lib
%{dracutlibdir}/modules.d/99shutdown
%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
%dir %{_sharedstatedir}/initramfs
@ -414,7 +472,6 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/90kernel-network-modules
%{dracutlibdir}/modules.d/95fcoe
%{dracutlibdir}/modules.d/95iscsi
%{dracutlibdir}/modules.d/90livenet
%{dracutlibdir}/modules.d/90qemu-net
%{dracutlibdir}/modules.d/95cifs
%{dracutlibdir}/modules.d/95nbd
@ -441,6 +498,12 @@ rm -rf -- $RPM_BUILD_ROOT
%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/02caps
%files live
%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/99img-lib
%{dracutlibdir}/modules.d/90dmsquash-live
%{dracutlibdir}/modules.d/90livenet
%files tools
%defattr(-,root,root,0755)
@ -466,6 +529,9 @@ rm -rf -- $RPM_BUILD_ROOT
%endif
%changelog
* Fri Jul 10 2015 Harald Hoyer <harald@redhat.com> 043-40.git20150710
- git snapshot
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 043-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild