dracut-040-29.git20141204

- git snapshot
This commit is contained in:
Harald Hoyer 2014-12-04 12:31:45 +01:00
parent 72b05d9ec2
commit eeb1c23670
64 changed files with 1340 additions and 2159 deletions

View File

@ -1,23 +0,0 @@
From 8ca5e8c319c3e44bbd06d8c0da429d2df221707b Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Mon, 31 Mar 2014 17:56:13 +0400
Subject: [PATCH] modsign: do not hardcode path to keyctl
https://bugs.gentoo.org/show_bug.cgi?id=506094
---
modules.d/03modsign/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh
index 09285d3..cc0e241 100755
--- a/modules.d/03modsign/module-setup.sh
+++ b/modules.d/03modsign/module-setup.sh
@@ -29,7 +29,7 @@ depends() {
# called by dracut
install() {
inst_dir /lib/modules/keys
- inst_binary /usr/bin/keyctl
+ inst_binary keyctl
inst_hook pre-trigger 01 "$moddir/load-modsign-keys.sh"

View File

@ -0,0 +1,41 @@
From b09faad8779f5579b2f1c559edf7c0570e8d50ac Mon Sep 17 00:00:00 2001
From: Lukas Wunner <lukas@wunner.de>
Date: Mon, 6 Oct 2014 13:43:58 +0200
Subject: [PATCH] shutdown/shutdown.sh: loop over shutdown hooks until all
succeed
Up until now, _check_shutdown() returns true if at least one of
the shutdown hooks succeeded. Change this to only return true if
*all* succeeded. To prevent an infinite loop, introduce an upper
bound of 40 iterations.
---
modules.d/99shutdown/shutdown.sh | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules.d/99shutdown/shutdown.sh b/modules.d/99shutdown/shutdown.sh
index 6e5e559..98eab1d 100755
--- a/modules.d/99shutdown/shutdown.sh
+++ b/modules.d/99shutdown/shutdown.sh
@@ -90,16 +90,19 @@ _check_shutdown() {
( . "$__f" $1 )
if [ $? -eq 0 ]; then
rm -f -- $__f
+ else
__s=0
fi
done
return $__s
}
-while _check_shutdown; do
-:
+_cnt=0
+while [ $_cnt -le 40 ]; do
+ _check_shutdown || break
+ _cnt=$(($_cnt+1))
done
-_check_shutdown final
+[ $_cnt -ge 40 ] && _check_shutdown final
getarg 'rd.break=shutdown' && emergency_shell --shutdown shutdown "Break before shutdown"

View File

@ -0,0 +1,22 @@
From 1c08ad507b1a40bdc58292e05b6efc05ffcd13d8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 24 Oct 2014 14:41:29 +0200
Subject: [PATCH] NEWS: add 040 entry
---
NEWS | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/NEWS b/NEWS
index 1b79da1..da44068 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+dracut-040
+==========
+- fixed dracut module dependency checks
+- fixed test suite
+
dracut-039
==========
- DRACUT_PATH can now be used to specify the PATH used by dracut

View File

@ -1,39 +0,0 @@
From fecc1d69e5a12c305d93e7dca64bd690a1fe8ff5 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 3 Jul 2014 15:04:17 +0200
Subject: [PATCH] lvm:module-setup.sh: check for existance of
69-dm-lvm-metad.rules
fixup for 12819a579900b9691e2bfaf14e76fbb025851530
---
modules.d/90lvm/module-setup.sh | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index 00d4e5a..2f2b64c 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -80,13 +80,16 @@ install() {
inst_rules 11-dm-lvm.rules 69-dm-lvm-metad.rules
# Do not run lvmetad update via pvscan in udev rule - lvmetad is not running yet in dracut!
- if [[ -f ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules ]] && \
- grep -q SYSTEMD_WANTS ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules; then
- sed -i -e 's/^ENV{SYSTEMD_ALIAS}=.*/# No LVM pvscan in dracut - lvmetad is not running yet/' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
- sed -i -e 's/^ENV{ID_MODEL}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
- sed -i -e 's/^ENV{SYSTEMD_WANTS}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
- else
- sed -i -e 's/.*lvm pvscan.*/# No LVM pvscan for in dracut - lvmetad is not running yet/' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ if [[ -f ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules ]]; then
+ if grep -q SYSTEMD_WANTS ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules; then
+ sed -i -e 's/^ENV{SYSTEMD_ALIAS}=.*/# No LVM pvscan in dracut - lvmetad is not running yet/' \
+ ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ sed -i -e 's/^ENV{ID_MODEL}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ sed -i -e 's/^ENV{SYSTEMD_WANTS}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ else
+ sed -i -e 's/.*lvm pvscan.*/# No LVM pvscan for in dracut - lvmetad is not running yet/' \
+ ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
+ fi
fi
# Gentoo ebuild for LVM2 prior to 2.02.63-r1 doesn't install above rules

View File

@ -1,47 +0,0 @@
From 6cd7001b35c66a12787bc0943b9a7e83a3d443c0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Jul 2014 11:50:04 +0200
Subject: [PATCH] dracut.sh: always copy prelink files in FIPS mode
regardless of the the prelink={yes|no} switch
---
dracut.sh | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index c6da411..22273a5 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1400,20 +1400,18 @@ if [[ $kernel_only != yes ]]; then
fi
fi
-if [[ $do_prelink == yes ]]; then
- PRELINK_BIN="$(command -v prelink)"
- if [[ $UID = 0 ]] && [[ $PRELINK_BIN ]]; then
- if [[ $DRACUT_FIPS_MODE ]]; then
- dinfo "*** Installing prelink files ***"
- inst_multiple -o prelink /etc/prelink.conf /etc/prelink.conf.d/*.conf /etc/prelink.cache
- else
- dinfo "*** Pre-linking files ***"
- inst_multiple -o prelink /etc/prelink.conf /etc/prelink.conf.d/*.conf
- chroot "$initdir" "$PRELINK_BIN" -a
- rm -f -- "$initdir/$PRELINK_BIN"
- rm -fr -- "$initdir"/etc/prelink.*
- dinfo "*** Pre-linking files done ***"
- fi
+PRELINK_BIN="$(command -v prelink)"
+if [[ $UID = 0 ]] && [[ $PRELINK_BIN ]]; then
+ if [[ $DRACUT_FIPS_MODE ]]; then
+ dinfo "*** Installing prelink files ***"
+ inst_multiple -o prelink /etc/prelink.conf /etc/prelink.conf.d/*.conf /etc/prelink.cache
+ elif [[ $do_prelink == yes ]]; then
+ dinfo "*** Pre-linking files ***"
+ inst_multiple -o prelink /etc/prelink.conf /etc/prelink.conf.d/*.conf
+ chroot "$initdir" "$PRELINK_BIN" -a
+ rm -f -- "$initdir/$PRELINK_BIN"
+ rm -fr -- "$initdir"/etc/prelink.*
+ dinfo "*** Pre-linking files done ***"
fi
fi

View File

@ -0,0 +1,26 @@
From 3c90cc2f482d13718a45fed2f8aa34442c8651a0 Mon Sep 17 00:00:00 2001
From: Vasiliy Tolstov <v.tolstov@selfip.ru>
Date: Mon, 27 Oct 2014 13:42:06 +0300
Subject: [PATCH] fix gzip compress then it not supports rsyncable option
dracut fail to create initramfs when compressor gzip and
it not have rsyncable option
Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 1c7e208..7aa1264 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -822,7 +822,7 @@ case $compress in
bzip2) compress="bzip2 -9";;
lzma) compress="lzma -9 -T0";;
xz) compress="xz --check=crc32 --lzma2=dict=1MiB -T0";;
- gzip) compress="gzip -n -9 --rsyncable"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
+ gzip) compress="gzip -n -9"; command -v gzip --help 2>&1 | grep -q rsyncable && compress="gzip -n -9 --rsyncable"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
lzo) compress="lzop -9";;
lz4) compress="lz4 -l -9";;
esac

View File

@ -0,0 +1,187 @@
From 3947f07d93cde5e1cf0d788537e93b135d6c27b0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 24 Oct 2014 15:47:24 +0200
Subject: [PATCH] ifcfg/write-ifcfg: only write DEVICE for non-kernel names
Rename an interface to the kernel namespace is not allowed, so don't add
DEVICE="<iface>", if HWADDR is given.
---
modules.d/40network/net-lib.sh | 46 ++++++++++++++++++++++++++++++-
modules.d/45ifcfg/write-ifcfg.sh | 59 ++++++++++++++++++++++++++--------------
2 files changed, 84 insertions(+), 21 deletions(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 8b5fbc6..48e7014 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -551,7 +551,19 @@ find_iface_with_link() {
}
is_persistent_ethernet_name() {
- case "$1" in
+ local _netif="$1"
+ local _name_assign_type="0"
+
+ [ -f "/sys/class/net/$_netif/name_assign_type" ] \
+ && _name_assign_type=$(cat "/sys/class/net/$_netif/name_assign_type")
+
+ # NET_NAME_ENUM 1
+ [ "$_name_assign_type" = "1" ] && return 1
+
+ # NET_NAME_PREDICTABLE 2
+ [ "$_name_assign_type" = "2" ] && return 0
+
+ case "$_netif" in
# udev persistent interface names
eno[0-9]|eno[0-9][0-9]|eno[0-9][0-9][0-9]*)
;;
@@ -571,3 +583,35 @@ is_persistent_ethernet_name() {
esac
return 0
}
+
+is_kernel_ethernet_name() {
+ local _netif="$1"
+ local _name_assign_type="1"
+
+ if [ -e "/sys/class/net/$_netif/name_assign_type" ]; then
+ _name_assign_type=$(cat "/sys/class/net/$_netif/name_assign_type")
+
+ case "$_name_assign_type" in
+ 2|3|4)
+ # NET_NAME_PREDICTABLE 2
+ # NET_NAME_USER 3
+ # NET_NAME_RENAMED 4
+ return 1
+ ;;
+ 1|*)
+ # NET_NAME_ENUM 1
+ return 0
+ ;;
+ esac
+ fi
+
+ # fallback to error prone manual name check
+ case "$_netif" in
+ eth[0-9]|eth[0-9][0-9]|eth[0-9][0-9][0-9]*)
+ return 0
+ ;;
+ *)
+ return 1
+ esac
+
+}
diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
index bb706f6..3dcf304 100755
--- a/modules.d/45ifcfg/write-ifcfg.sh
+++ b/modules.d/45ifcfg/write-ifcfg.sh
@@ -80,18 +80,41 @@ print_s390() {
return 0
}
+hw_bind() {
+ local _netif="$1"
+ local _macaddr="$2"
+
+ [ -n "$_macaddr" ] \
+ && echo "MACADDR=\"$_macaddr\""
+
+ print_s390 "$_netif" \
+ && return 0
+
+ [ -n "$_macaddr" ] && return 0
+
+ is_persistent_ethernet_name "$_netif" && return 0
+
+ [ -f "/sys/class/net/$_netif/addr_assign_type" ] \
+ && [ "$(cat "/sys/class/net/$_netif/addr_assign_type")" != "0" ] \
+ && return 1
+
+ [ -f "/sys/class/net/$_netif/address" ] \
+ || return 1
+
+ echo "HWADDR=\"$(cat /sys/class/net/$_netif/address)\""
+}
+
interface_bind() {
- local netif="$1"
- local macaddr="$2"
- if ! print_s390 $netif; then
- if [ -z "$macaddr" ] && \
- ! is_persistent_ethernet_name "$netif" && \
- [ -f /sys/class/net/$netif/addr_assign_type ] && \
- [ "$(cat /sys/class/net/$netif/addr_assign_type)" = "0" ] && \
- [ -f /sys/class/net/$netif/address ]; then
- echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\""
- fi
+ local _netif="$1"
+ local _macaddr="$2"
+
+ # see, if we can bind it to some hw parms
+ if hw_bind "$_netif" "$_macaddr"; then
+ # only print out DEVICE, if it's user assigned
+ is_kernel_ethernet_name "$_netif" && return 0
fi
+
+ echo "DEVICE=\"$_netif\""
}
for netup in /tmp/net.*.did-setup ; do
@@ -129,7 +152,8 @@ for netup in /tmp/net.*.did-setup ; do
{
echo "# Generated by dracut initrd"
- echo "DEVICE=\"$netif\""
+ echo "NAME=\"$netif\""
+ interface_bind "$netif" "$macaddr"
echo "ONBOOT=yes"
echo "NETBOOT=yes"
echo "UUID=\"$uuid\""
@@ -175,10 +199,7 @@ for netup in /tmp/net.*.did-setup ; do
if [ -z "$bridge" ] && [ -z "$bond" ] && [ -z "$vlan" ]; then
# standard interface
{
- [ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\""
- interface_bind "$netif" "$macaddr"
echo "TYPE=Ethernet"
- echo "NAME=\"$netif\""
[ -n "$mtu" ] && echo "MTU=\"$mtu\""
} >> /tmp/ifcfg/ifcfg-$netif
fi
@@ -205,16 +226,15 @@ for netup in /tmp/net.*.did-setup ; do
# write separate ifcfg file for the raw eth interface
(
echo "# Generated by dracut initrd"
- echo "DEVICE=\"$slave\""
+ echo "NAME=\"$slave\""
echo "TYPE=Ethernet"
echo "ONBOOT=yes"
echo "NETBOOT=yes"
echo "SLAVE=yes"
echo "MASTER=\"$netif\""
- echo "NAME=\"$slave\""
echo "UUID=\"$(cat /proc/sys/kernel/random/uuid)\""
+ unset macaddr
[ -e /tmp/net.$slave.override ] && . /tmp/net.$slave.override
- [ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\""
interface_bind "$slave" "$macaddr"
) >> /tmp/ifcfg/ifcfg-$slave
done
@@ -230,15 +250,14 @@ for netup in /tmp/net.*.did-setup ; do
# write separate ifcfg file for the raw eth interface
(
echo "# Generated by dracut initrd"
- echo "DEVICE=\"$slave\""
+ echo "NAME=\"$slave\""
echo "TYPE=Ethernet"
echo "ONBOOT=yes"
echo "NETBOOT=yes"
echo "BRIDGE=\"$bridgename\""
- echo "NAME=\"$slave\""
echo "UUID=\"$(cat /proc/sys/kernel/random/uuid)\""
+ unset macaddr
[ -e /tmp/net.$slave.override ] && . /tmp/net.$slave.override
- [ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\""
interface_bind "$slave" "$macaddr"
) >> /tmp/ifcfg/ifcfg-$slave
done

View File

@ -1,35 +0,0 @@
From 4adeefc4abb8fb1d83e483d12da6b337c486fded Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Jul 2014 11:50:51 +0200
Subject: [PATCH] plymouth: also find the pkglibdir on debian
---
modules.d/50plymouth/module-setup.sh | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh
index b818324..33fab11 100755
--- a/modules.d/50plymouth/module-setup.sh
+++ b/modules.d/50plymouth/module-setup.sh
@@ -15,12 +15,18 @@ depends() {
# called by dracut
install() {
- if grep -q nash /usr/libexec/plymouth/plymouth-populate-initrd \
- || [ ! -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then
+ PKGLIBDIR="/usr/lib/plymouth"
+ if type -P dpkg-architecture &>/dev/null; then
+ PKGLIBDIR="/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/plymouth"
+ fi
+ [ -x /usr/libexec/plymouth/plymouth-populate-initrd ] && PKGLIBDIR="/usr/libexec/plymouth"
+
+ if grep -q nash ${PKGLIBDIR}/plymouth-populate-initrd \
+ || [ ! -x ${PKGLIBDIR}/plymouth-populate-initrd ]; then
. "$moddir"/plymouth-populate-initrd.sh
else
PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \
- /usr/libexec/plymouth/plymouth-populate-initrd -t "$initdir"
+ ${PKGLIBDIR}/plymouth-populate-initrd -t "$initdir"
fi
inst_hook emergency 50 "$moddir"/plymouth-emergency.sh

View File

@ -0,0 +1,24 @@
From 972d6b44ba54e44c01801614fb57e128604b4a12 Mon Sep 17 00:00:00 2001
From: Stefan Reimer <it@startux.de>
Date: Tue, 28 Oct 2014 17:58:22 -0700
Subject: [PATCH] Fix location of dracut-install for local mode
---
dracut-functions.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 1bcc3b4..3ad8d81 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -741,8 +741,8 @@ if ! [[ $DRACUT_INSTALL ]]; then
DRACUT_INSTALL=$(find_binary dracut-install)
fi
-if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/dracut-install ]]; then
- DRACUT_INSTALL=$dracutbasedir/dracut-install
+if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/install/dracut-install ]]; then
+ DRACUT_INSTALL=$dracutbasedir/install/dracut-install
fi
if ! [[ -x $DRACUT_INSTALL ]]; then

View File

@ -1,29 +0,0 @@
From 5ea0be0a8c83969fd0041b3e647f82fcfb365e44 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 8 Jul 2014 12:54:21 +0200
Subject: [PATCH] dracut-functions.sh: speed up ldconfig_paths()
---
dracut-functions.sh | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index d30e835..9f481b2 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -109,12 +109,11 @@ ldconfig_paths()
local a i
declare -A a
for i in $(
- ldconfig -pN 2>/dev/null | while read a b c d; do
- [[ "$c" != "=>" ]] && continue
- printf "%s\n" ${d%/*};
+ ldconfig -pN 2>/dev/null | grep -F '=>' | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | while read a b c d; do
+ d=${d%/*}
+ printf "%s\n" "$d";
done
); do
- [[ "$i" = "/lib" || "$i" = "/usr/lib" || "$i" = "/lib64" || "$i" = "/usr/lib64" ]] && continue
a["$i"]=1;
done;
printf "%s\n" ${!a[@]}

View File

@ -1,41 +0,0 @@
From f4eb0d98048d51a0782d4a7137f699de174a65e4 Mon Sep 17 00:00:00 2001
From: "Praveen_Paladugu@Dell.com" <Praveen_Paladugu@Dell.com>
Date: Tue, 10 Jun 2014 10:35:16 -0500
Subject: [PATCH] Installing an OS with VLAN enabled to an ISCSI LUN (from
ibft)
When installing OS to a VLAN enabled iscsi LUN (extracted from iBFT), "/tmp/net.{xyz}.has_ibft_config" is not being set properly.
Then anaconda installer requires 'BOOTPROTO="ibft"' populated in ifcfg of the vlan interface (ex: ibft0.20), for it to properly populate the kernel parameters post installation. The setting 'BOOTPROTO="ibft"' is populated by write-ifcfg.sh script only if the corresponding interface has a file /tmp/net.{xyz}.has_inft_config
To get around this issue, in ibft_to_cmdline() function in net-lib.sh file, I made the following changes to populate the has_ibft_config file for the vlan interface(ex: ibft0.20):
---
modules.d/40network/net-lib.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index a82f1a8..f8e1179 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -233,15 +233,20 @@ ibft_to_cmdline() {
case "$vlan" in
[0-9]*)
echo "vlan=$dev.$vlan:$dev"
+ echo $mac > /tmp/net.${dev}.${vlan}.has_ibft_config
;;
*)
echo "vlan=$vlan:$dev"
+ echo $mac > /tmp/net.${vlan}.has_ibft_config
;;
esac
+ else
+ echo $mac > /tmp/net.${dev}.has_ibft_config
fi
+ else
+ echo $mac > /tmp/net.${dev}.has_ibft_config
fi
- echo $mac > /tmp/net.${dev}.has_ibft_config
done
) >> /etc/cmdline.d/40-ibft.conf
}

View File

@ -0,0 +1,24 @@
From 2f0f1b0bbc0aae6b5f54c64d911eb6b09030798d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 29 Oct 2014 13:39:28 +0100
Subject: [PATCH] dracut-functions.sh: fixup for 34a1ec6 for non-local mode
---
dracut-functions.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 3ad8d81..b43b766 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -741,7 +741,9 @@ if ! [[ $DRACUT_INSTALL ]]; then
DRACUT_INSTALL=$(find_binary dracut-install)
fi
-if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/install/dracut-install ]]; then
+if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/dracut-install ]]; then
+ DRACUT_INSTALL=$dracutbasedir/dracut-install
+elif ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/install/dracut-install ]]; then
DRACUT_INSTALL=$dracutbasedir/install/dracut-install
fi

View File

@ -1,93 +0,0 @@
From 4ef45f13f4d11c86c4c8c3fd8d8a6be2c5b4deef Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 21 Jul 2014 16:58:15 +0200
Subject: [PATCH] dracut-functions.sh: fix inst*() functions for "-H" handling
because some inst*() functions check the existance of the source files
and do not know about the "-H" option, some failed to install the
hostonly files.
---
dracut-functions.sh | 46 ++++++++++++++++++++++++++++++++--------------
1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 9f481b2..6cdfea0 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -760,33 +760,46 @@ inst_dir() {
}
inst() {
+ local _hostonly_install
+ if [[ "$1" == "-H" ]]; then
+ _hostonly_install="-H"
+ shift
+ fi
[[ -e ${initdir}/"${2:-$1}" ]] && return 0 # already there
- #dinfo "$DRACUT_INSTALL -l $@"
- $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@"
- (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@" || :
+ $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"
+ (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@" || :
}
inst_simple() {
+ local _hostonly_install
+ if [[ "$1" == "-H" ]]; then
+ _hostonly_install="-H"
+ shift
+ fi
[[ -e ${initdir}/"${2:-$1}" ]] && return 0 # already there
[[ -e $1 ]] || return 1 # no source
- $DRACUT_INSTALL ${initdir:+-D "$initdir"} "$@"
- (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} "$@" || :
+ $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${_hostonly_install:+-H} "$@"
+ (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${_hostonly_install:+-H} "$@" || :
}
inst_symlink() {
+ local _hostonly_install
+ if [[ "$1" == "-H" ]]; then
+ _hostonly_install="-H"
+ shift
+ fi
[[ -e ${initdir}/"${2:-$1}" ]] && return 0 # already there
[[ -L $1 ]] || return 1
- $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@"
- (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@" || :
+ $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"
+ (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@" || :
}
inst_multiple() {
- local ret
- #dinfo "initdir=$initdir $DRACUT_INSTALL -l $@"
+ local _ret
$DRACUT_INSTALL ${initdir:+-D "$initdir"} -a ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@"
- ret=$?
- (($ret != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} -a ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@" || :
- return $ret
+ _ret=$?
+ (($_ret != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} -a ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@" || :
+ return $_ret
}
dracut_install() {
@@ -794,10 +807,15 @@ dracut_install() {
}
inst_library() {
+ local _hostonly_install
+ if [[ "$1" == "-H" ]]; then
+ _hostonly_install="-H"
+ shift
+ fi
[[ -e ${initdir}/"${2:-$1}" ]] && return 0 # already there
[[ -e $1 ]] || return 1 # no source
- $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@"
- (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@" || :
+ $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@"
+ (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} ${_hostonly_install:+-H} "$@" || :
}
inst_binary() {

View File

@ -0,0 +1,40 @@
From 5cac9e14ecadc21cc5a903101135d07eb3fa60e2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 29 Oct 2014 13:51:15 +0100
Subject: [PATCH] shutdown.sh: correct return code of _check_shutdown()
fix commit b09faad8779f5579, which reversed the return code
---
modules.d/99shutdown/shutdown.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules.d/99shutdown/shutdown.sh b/modules.d/99shutdown/shutdown.sh
index 98eab1d..c183f9d 100755
--- a/modules.d/99shutdown/shutdown.sh
+++ b/modules.d/99shutdown/shutdown.sh
@@ -84,14 +84,14 @@ fi
_check_shutdown() {
local __f
- local __s=1
+ local __s=0
for __f in $hookdir/shutdown/*.sh; do
[ -e "$__f" ] || continue
( . "$__f" $1 )
if [ $? -eq 0 ]; then
rm -f -- $__f
else
- __s=0
+ __s=1
fi
done
return $__s
@@ -99,7 +99,7 @@ _check_shutdown() {
_cnt=0
while [ $_cnt -le 40 ]; do
- _check_shutdown || break
+ _check_shutdown && break
_cnt=$(($_cnt+1))
done
[ $_cnt -ge 40 ] && _check_shutdown final

View File

@ -1,27 +0,0 @@
From 611c895772c73ebb5f769942bca5d5991adc169e Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Sun, 20 Jul 2014 22:20:04 +0100
Subject: [PATCH] ARM: update modules for ARM host only options
---
modules.d/90kernel-modules/module-setup.sh | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index cc79b88..1ce133f 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -51,9 +51,10 @@ installkernel() {
if [[ "$(uname -p)" == arm* ]]; then
# arm specific modules
- hostonly='' instmods omapdrm panel-tfp410
- instmods i2c-tegra gpio-regulator as3722-regulator \
- phy-tegra-usb ehci-tegra sdhci-tegra
+ hostonly='' instmods \
+ connector-hdmi connector-dvi encoder-tfp410 \
+ encoder-tpd12s015 i2c-tegra gpio-regulator \
+ as3722-regulator orion-ehci ehci-tegra
fi
# install virtual machine support

View File

@ -0,0 +1,28 @@
From 27dcc3a583e5488ee70dcd0299646cc33faf8a21 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Sun, 26 Oct 2014 11:48:15 +0000
Subject: [PATCH] kernel-modules: Drop explicit modules that are found with
block_module_filter
The usb_storage, nvme and sdhci_acpi modules are discovered with the
block_module_filter so there's no need to explicitly list them here.
Signed-off-by: <pbrobinson@gmail.com>
---
modules.d/90kernel-modules/module-setup.sh | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 83b8995..2fa263c 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -44,8 +44,7 @@ installkernel() {
instmods yenta_socket scsi_dh_rdac scsi_dh_emc \
atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech \
hid-logitech-dj hid-microsoft hid-lcpower firewire-ohci \
- pcmcia usb_storage nvme hid-hyperv hv-vmbus \
- sdhci_acpi hyperv-keyboard
+ pcmcia hid-hyperv hv-vmbus hyperv-keyboard
if [[ "$(uname -p)" == arm* ]]; then
# arm specific modules

View File

@ -0,0 +1,36 @@
From 56d2aed1c82a9ff62a081722f4b9ff9d49a0fe78 Mon Sep 17 00:00:00 2001
From: Minfei Huang <mhuang@redhat.com>
Date: Mon, 27 Oct 2014 14:33:11 +0800
Subject: [PATCH] 40network: Copy the customize dhcp config
It is not available to valid the customize dhcp config
/etc/dhclient.conf in the initram environment.
Dracut uses the default follow config to construct the initramfs.
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
root-path, interface-mtu;
Copy the customize config to make the config availably in the
initram environment.
Signed-off-by: Minfei Huang <mhuang@redhat.com>
---
modules.d/40network/module-setup.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index ae1f43f..55bee4c 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -79,7 +79,8 @@ install() {
inst_script "$moddir/netroot.sh" "/sbin/netroot"
inst_script "$moddir/dhclient-script.sh" "/sbin/dhclient-script"
inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh"
- inst_simple "$moddir/dhclient.conf" "/etc/dhclient.conf"
+ inst_simple -H "/etc/dhclient.conf"
+ cat "$moddir/dhclient.conf" >> "${initdir}/etc/dhclient.conf"
inst_hook pre-udev 50 "$moddir/ifname-genrules.sh"
inst_hook pre-udev 60 "$moddir/net-genrules.sh"
inst_hook cmdline 91 "$moddir/dhcp-root.sh"

View File

@ -1,40 +0,0 @@
From ad8638e04e4ac3641afee0e273c91aa3fb6d4278 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 22 Jul 2014 11:51:08 +0200
Subject: [PATCH] base/dracut-lib:pidof() turn off debugging
---
modules.d/99base/dracut-lib.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index a77b843..abcebf5 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -991,13 +991,17 @@ wait_for_loginit()
# pidof version for root
if ! command -v pidof >/dev/null 2>/dev/null; then
pidof() {
+ debug_off
local _cmd
local _exe
local _rl
local _ret=1
local i
_cmd="$1"
- [ -z "$_cmd" ] && return 1
+ if [ -z "$_cmd" ]; then
+ debug_on
+ return 1
+ fi
_exe=$(type -P "$1")
for i in /proc/*/exe; do
[ -e "$i" ] || continue
@@ -1011,6 +1015,7 @@ if ! command -v pidof >/dev/null 2>/dev/null; then
echo ${i##/proc/}
_ret=0
done
+ debug_on
return $_ret
}
fi

View File

@ -0,0 +1,29 @@
From 66fd7e43295cb67ac6eaaced3c7b271920e07dce Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 29 Oct 2014 14:18:34 +0100
Subject: [PATCH] dracut.sh: don't check gzip for --rsyncable, if pigz is
available
---
dracut.sh | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 7aa1264..4590f79 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -822,7 +822,13 @@ case $compress in
bzip2) compress="bzip2 -9";;
lzma) compress="lzma -9 -T0";;
xz) compress="xz --check=crc32 --lzma2=dict=1MiB -T0";;
- gzip) compress="gzip -n -9"; command -v gzip --help 2>&1 | grep -q rsyncable && compress="gzip -n -9 --rsyncable"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
+ gzip) compress="gzip -n -9";
+ if command -v pigz > /dev/null 2>&1; then
+ compress="pigz -9 -n -T -R"
+ elif command -v gzip --help 2>&1 | grep -q rsyncable; then
+ compress="gzip -n -9 --rsyncable"
+ fi
+ ;;
lzo) compress="lzop -9";;
lz4) compress="lz4 -l -9";;
esac

View File

@ -1,125 +0,0 @@
From 7b46244bb94e3dfd635a8d222044ae7fc920240d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 22 Jul 2014 11:03:56 +0200
Subject: [PATCH] network: add rd.route parameter
---
dracut.cmdline.7.asc | 15 +++++++++++++-
modules.d/40network/net-lib.sh | 42 ++++++++++++++++++++++++++++++++++++++++
modules.d/45ifcfg/write-ifcfg.sh | 3 +++
3 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index fef13b3..f66bace 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -493,6 +493,19 @@ WARNING: Do **not** use the default kernel naming scheme for the interface name,
as it can conflict with the kernel names. So, don't use "eth[0-9]+" for the
interface name. Better name it "bootnet" or "bluesocket".
+**rd.route=**__<net>__/__<netmask>__:__<gateway>__[:__<interface>__]::
+ Add a static route with route options, which are separated by a colon.
+ IPv6 addresses have to be put in brackets.
++
+[listing]
+.Example
+--
+ rd.route=192.168.200.0/24:192.168.100.222:ens10
+ rd.route=192.168.200.0/24:192.168.100.222
+ rd.route=192.168.200.0/24::ens10
+ rd.route=[2001:DB8:3::/8]:[2001:DB8:2::1]:ens10
+--
+
**bootdev=**__<interface>__::
specify network interface to use routing and netroot information from.
Required if multiple ip= lines are used.
@@ -540,7 +553,7 @@ NFS
~~~
**root=**\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__]::
mount nfs share from <server-ip>:/<root-dir>, if no server-ip is given, use
- dhcp next_server. if server-ip is an IPv6 address it has to be put in
+ dhcp next_server. If server-ip is an IPv6 address it has to be put in
brackets, e.g. [2001:DB8::1]. NFS options can be appended with the prefix
":" or "," and are seperated by ",".
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index f8e1179..c118c53 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -89,6 +89,7 @@ ifdown() {
setup_net() {
local netif="$1" f="" gw_ip="" netroot_ip="" iface="" IFACES=""
+ local _p
[ -e /tmp/net.$netif.did-setup ] && return
[ -e /sys/class/net/$netif/address ] && \
[ -e /tmp/net.$(cat /sys/class/net/$netif/address).did-setup ] && return
@@ -103,6 +104,20 @@ setup_net() {
[ -e /tmp/net.$netif.resolv.conf ] && \
cp -f /tmp/net.$netif.resolv.conf /etc/resolv.conf
+ # add static route
+ for _p in $(getargs rd.route); do
+ route_to_var "$_p" || continue
+ [ -n "$route_dev" ] && [ "$route_dev" != "$netif"] && continue
+ ip route add "$route_mask" ${route_gw:+via "$route_gw"} ${route_dev:+dev "$route_dev"}
+ if strstr ":" "$route_mask"; then
+ printf -- "%s\n" "$route_mask ${route_gw:+via $route_gw} ${route_dev:+dev $route_dev}" \
+ > /tmp/net.route6."$netif"
+ else
+ printf -- "%s\n" "$route_mask ${route_gw:+via $route_gw} ${route_dev:+dev $route_dev}" \
+ > /tmp/net.route."$netif"
+ fi
+ done
+
# Handle STP Timeout: arping the default gateway.
# (or the root server, if a) it's local or b) there's no gateway.)
# Note: This assumes that if no router is present the
@@ -400,6 +415,33 @@ ip_to_var() {
fi
}
+route_to_var() {
+ local v=${1}:
+ local i
+ set --
+ while [ -n "$v" ]; do
+ if [ "${v#\[*:*:*\]:}" != "$v" ]; then
+ # handle IPv6 address
+ i="${v%%\]:*}"
+ i="${i##\[}"
+ set -- "$@" "$i"
+ v=${v#\[$i\]:}
+ else
+ set -- "$@" "${v%%:*}"
+ v=${v#*:}
+ fi
+ done
+
+ unset route_mask route_gw route_dev
+ case $# in
+ 2) [ -n "$1" ] && route_mask="$1"; [ -n "$2" ] && route_gw="$2"
+ return 0;;
+ 3) [ -n "$1" ] && route_mask="$1"; [ -n "$2" ] && route_gw="$2"; [ -n "$3" ] && route_dev="$3"
+ return 0;;
+ *) return 1;;
+ esac
+}
+
parse_ifname_opts() {
local IFS=:
set $1
diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
index 803ae8e..7e301de 100755
--- a/modules.d/45ifcfg/write-ifcfg.sh
+++ b/modules.d/45ifcfg/write-ifcfg.sh
@@ -268,6 +268,9 @@ for netup in /tmp/net.*.did-setup ; do
echo "DNS${i}=\"${ns}\"" >> /tmp/ifcfg/ifcfg-$netif
i=$((i+1))
done
+
+ [ -f /tmp/net.route6."$netif" ] && cp /tmp/net.route6."$netif" /tmp/ifcfg/route6-"$netif"
+ [ -f /tmp/net.route."$netif" ] && cp /tmp/net.route."$netif" /tmp/ifcfg/route-"$netif"
done
# Pass network opts

View File

@ -1,129 +0,0 @@
From 54b68829b60bc3f4c28cfca1ab0336584fe1e74c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 22 Jul 2014 14:09:06 +0200
Subject: [PATCH] add "--install-optional" and install_optional_items
---
dracut-bash-completion.sh | 4 ++--
dracut.8.asc | 3 +++
dracut.conf.5.asc | 4 ++++
dracut.conf.d/fedora.conf.example | 2 +-
dracut.sh | 13 +++++++++++++
5 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh
index 9f359c6..feced60 100644
--- a/dracut-bash-completion.sh
+++ b/dracut-bash-completion.sh
@@ -40,7 +40,7 @@ _dracut() {
--omit-drivers --modules --omit --drivers --filesystems --install
--fwdir --libdirs --fscks --add-fstab --mount --device --nofscks
--kmoddir --conf --confdir --tmpdir --stdlog --compress --prefix
- --kernel-cmdline --sshkey --persistent-policy'
+ --kernel-cmdline --sshkey --persistent-policy --install-optional'
)
if __contains_word "$prev" ${OPTS[ARG]}; then
@@ -49,7 +49,7 @@ _dracut() {
comps=$(compgen -d -- "$cur")
compopt -o filenames
;;
- -c|--conf|--sshkey|--add-fstab|--add-device|-I|--install)
+ -c|--conf|--sshkey|--add-fstab|--add-device|-I|--install|--install-optional)
comps=$(compgen -f -- "$cur")
compopt -o filenames
;;
diff --git a/dracut.8.asc b/dracut.8.asc
index 14ce26b..51a4e9f 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -349,6 +349,9 @@ example:
----
===============================
+**--install-optional** _<file list>_::
+ install the space separated list of files into the initramfs, if they exist.
+
**--gzip**::
Compress the generated initramfs using gzip. This will be done by default,
unless another compression option or --no-compress is passed. Equivalent to
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index be62da9..0b6be6a 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -66,6 +66,10 @@ Configuration files must have the extension .conf; other extensions are ignored.
*install_items+=*" __<file>__[ __<file>__ ...] "::
Specify additional files to include in the initramfs, separated by spaces.
+*install_optional_items+=*" __<file>__[ __<file>__ ...] "::
+ Specify additional files to include in the initramfs, separated by spaces,
+ if they exist.
+
*do_strip=*"__{yes|no}__"::
Strip binaries in the initramfs (default=yes)
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index 495e8fb..c06202b 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -6,7 +6,7 @@ i18n_default_font="latarcyrheb-sun16"
i18n_install_all="yes"
stdloglvl=3
sysloglvl=5
-install_items+=" vi /etc/virc ps grep cat rm "
+install_optional_items+=" vi /etc/virc ps grep cat rm "
prefix="/"
systemdutildir=/usr/lib/systemd
systemdsystemunitdir=/usr/lib/systemd/system
diff --git a/dracut.sh b/dracut.sh
index 22273a5..3e1bf44 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -158,6 +158,8 @@ Creates initial ramdisk images for preloading modules
in the final initramfs.
-I, --install [LIST] Install the space separated list of files into the
initramfs.
+ --install-optional [LIST] Install the space separated list of files into the
+ initramfs, if they exist.
--gzip Compress the generated initramfs using gzip.
This will be done by default, unless another
compression option or --no-compress is passed.
@@ -305,6 +307,7 @@ rearrange_params()
--long drivers: \
--long filesystems: \
--long install: \
+ --long install-optional: \
--long fwdir: \
--long libdirs: \
--long fscks: \
@@ -469,6 +472,9 @@ while :; do
-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;;
@@ -716,6 +722,12 @@ if (( ${#install_items_l[@]} )); then
done
fi
+if (( ${#install_optional_items_l[@]} )); then
+ while pop install_optional_items_l val; do
+ install_optional_items+=" $val "
+ done
+fi
+
# these options override the stuff in the config file
if (( ${#dracutmodules_l[@]} )); then
dracutmodules=''
@@ -1317,6 +1329,7 @@ fi
if [[ $kernel_only != yes ]]; then
(( ${#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"

View File

@ -0,0 +1,28 @@
From 027565d0233f76edf434b63a847a717185d267e2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 6 Nov 2014 10:44:33 +0100
Subject: [PATCH] systemd: add 90-vconsole.rules
run systemd-vconsole-setup if fbcon device shows up
---
modules.d/98systemd/module-setup.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index 1ab253d..bd4433e 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -198,7 +198,12 @@ install() {
inst_binary true
ln_r $(type -P true) "/usr/bin/loginctl"
ln_r $(type -P true) "/bin/loginctl"
- inst_rules 70-uaccess.rules 71-seat.rules 73-seat-late.rules 99-systemd.rules
+ inst_rules \
+ 70-uaccess.rules \
+ 71-seat.rules \
+ 73-seat-late.rules \
+ 90-vconsole.rules \
+ 99-systemd.rules
for i in \
emergency.target \

View File

@ -0,0 +1,56 @@
From af67d62151b0c4708c4478cc5b2cbdaae5803699 Mon Sep 17 00:00:00 2001
From: Colin Guthrie <colin@mageia.org>
Date: Mon, 10 Nov 2014 14:17:39 +0000
Subject: [PATCH] base: Set udevd log level via environment var to cover early
startup.
udevd will these days default to 'info' logging and thus will
often print out the 'starting version nnn' message (which is
logged at level 'info'), thus spamming the console, even on
'quiet' boots.
We generally expect a udev log level of err (the old default
from pre-October 2013) so we should set that explicilty before
launching udevd in order to suppress the spurious 'info' message.
As we are using the environment variable approach anyway, we
may as well use this method rather than setting the log level
later via udevadm control commands when rd.udev.info/debug are
given on the kernel command line.
The enviroment variable has been around since udev 6b493a20e1
around 2005 so should be safe to use in all cases without version
checks.
---
modules.d/99base/init.sh | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index e249b27..3afe6d5 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -137,19 +137,19 @@ make_trace_mem "hook pre-udev" '1:shortmem' '2+:mem' '3+:slab'
getarg 'rd.break=pre-udev' -d 'rdbreak=pre-udev' && emergency_shell -n pre-udev "Break before pre-udev"
source_hook pre-udev
+UDEV_LOG=err
+getargbool 0 rd.udev.info -d -y rdudevinfo && UDEV_LOG=info
+getargbool 0 rd.udev.debug -d -y rdudevdebug && UDEV_LOG=debug
+
# start up udev and trigger cold plugs
-$systemdutildir/systemd-udevd --daemon --resolve-names=never
+UDEV_LOG=$UDEV_LOG $systemdutildir/systemd-udevd --daemon --resolve-names=never
-UDEV_LOG_PRIO_ARG=--log-priority
UDEV_QUEUE_EMPTY="udevadm settle --timeout=0"
if [ $UDEVVERSION -lt 140 ]; then
- UDEV_LOG_PRIO_ARG=--log_priority
UDEV_QUEUE_EMPTY="udevadm settle --timeout=1"
fi
-getargbool 0 rd.udev.info -d -y rdudevinfo && udevadm control "$UDEV_LOG_PRIO_ARG=info"
-getargbool 0 rd.udev.debug -d -y rdudevdebug && udevadm control "$UDEV_LOG_PRIO_ARG=debug"
udevproperty "hookdir=$hookdir"
make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab'

View File

@ -1,31 +0,0 @@
From ece72160cedbe47b973a7925d5e2f5adc409a849 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 22 Jul 2014 14:22:21 +0200
Subject: [PATCH] test/TEST-30-ISCSI: add rd.shell to client root
---
test/TEST-30-ISCSI/client-init.sh | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/test/TEST-30-ISCSI/client-init.sh b/test/TEST-30-ISCSI/client-init.sh
index e78db27..b3e2ee1 100755
--- a/test/TEST-30-ISCSI/client-init.sh
+++ b/test/TEST-30-ISCSI/client-init.sh
@@ -1,6 +1,8 @@
#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
exec >/dev/console 2>&1
+strstr() { [ "${1##*"$2"*}" != "$1" ]; }
+CMDLINE=$(while read line; do echo $line;done < /proc/cmdline)
export TERM=linux
export PS1='initramfs-test:\w\$ '
stty sane
@@ -11,4 +13,8 @@ while read dev fs fstype opts rest; do
break
done < /proc/mounts
#sh -i
+if strstr "$CMDLINE" "rd.shell"; then
+ strstr "$(setsid --help)" "control" && CTTY="-c"
+ setsid $CTTY sh -i
+fi
poweroff -f

View File

@ -1,62 +0,0 @@
From eab9b75c8a9b106d2f35faae0af51ab1c66e8da1 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 22 Jul 2014 14:43:33 +0200
Subject: [PATCH] dracut.sh: add DRACUT_PATH
DRACUT_PATH can now be used to specify the PATH used by dracut
to search for binaries instead of the default
/usr/sbin:/sbin:/usr/bin:/bin
This should be set in the distribution config file
/usr/lib/dracut/dracut.conf.d/01-dist.conf
---
dracut.sh | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 3e1bf44..1844336 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -626,21 +626,10 @@ if ! [[ $outfile ]]; then
fi
fi
-for i in /usr/sbin /sbin /usr/bin /bin; do
- rl=$i
- if [ -L "$i" ]; then
- rl=$(readlink -f $i)
- fi
- if [[ "$NPATH" != *:$rl* ]] ; then
- NPATH+=":$rl"
- fi
-done
-export PATH="${NPATH#:}"
unset LC_MESSAGES
unset LC_CTYPE
export LC_ALL=C
export LANG=C
-unset NPATH
unset LD_LIBRARY_PATH
unset LD_PRELOAD
unset GREP_OPTIONS
@@ -685,6 +674,20 @@ for f in $(dropindirs_sort ".conf" "$confdir" "$dracutbasedir/dracut.conf.d"); d
[[ -e $f ]] && . "$f"
done
+DRACUT_PATH=${DRACUT_PATH:-/usr/sbin /sbin /usr/bin /bin}
+
+for i in $DRACUT_PATH; do
+ rl=$i
+ if [ -L "$i" ]; then
+ rl=$(readlink -f $i)
+ fi
+ if [[ "$NPATH" != *:$rl* ]] ; then
+ NPATH+=":$rl"
+ fi
+done
+export PATH="${NPATH#:}"
+unset NPATH
+
# these optins add to the stuff in the config file
if (( ${#add_dracutmodules_l[@]} )); then
while pop add_dracutmodules_l val; do

View File

@ -0,0 +1,47 @@
From 778b3543609d8c9d32df7111229f4072d00d02f0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 20 Nov 2014 11:27:40 +0100
Subject: [PATCH] multipath: add "rd.multipath=0" option
---
dracut.cmdline.7.asc | 7 +++++++
modules.d/90multipath/multipathd.sh | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 48356c7..8e4835d 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -379,6 +379,11 @@ DM RAID
only activate the raid sets with the given UUID. This parameter can be
specified multiple times.
+MULTIPATH
+~~~~~~~~~
+**rd.multipath=0**::
+ disable multipath detection
+
FIPS
~~~~
**rd.fips**::
@@ -952,6 +957,8 @@ rd_NO_MD:: rd.md=0
rd_MD_UUID:: rd.md.uuid
+rd_NO_MULTIPATH: rd.multipath=0
+
rd_NFS_DOMAIN:: rd.nfs.domain
iscsi_initiator:: rd.iscsi.initiator
diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh
index 1e0e907..2c2dcc8 100755
--- a/modules.d/90multipath/multipathd.sh
+++ b/modules.d/90multipath/multipathd.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-if [ -e /etc/multipath.conf ]; then
+if getargbool 1 rd.multipath -d -n rd_NO_MULTIPATH && [ -e /etc/multipath.conf ]; then
modprobe dm-multipath
multipathd -B || multipathd
need_shutdown

21
0014-TODO-update.patch Normal file
View File

@ -0,0 +1,21 @@
From e1e4ee9d7c005f61b6ad88d92ef8993d2cfe92be Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 20 Nov 2014 16:22:51 +0100
Subject: [PATCH] TODO: update
---
TODO | 1 +
1 file changed, 1 insertion(+)
diff --git a/TODO b/TODO
index 78dae0f..917b97c 100644
--- a/TODO
+++ b/TODO
@@ -28,6 +28,7 @@ GENERATOR TODO
- report errors on missing files in check()
- remove wait for swap devs, if no "resume=" is given on the kernel command line
+- remove wait for swap devs, if the "resume" dracut module is not included (omitted)
- add presets (predefined set of modules)
- add interpreter/plugin-scripts to be sourced at the beginning or end (can use dracut-functions)
- add mechanism for module specific command line options

View File

@ -1,54 +0,0 @@
From caa72f829007a868bf47a9bb82a3e359acd6a420 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 24 Jul 2014 14:47:14 +0200
Subject: [PATCH] dracut.spec: fixed license file packaging
---
dracut.spec | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index cb27f37..8912938 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -30,6 +30,8 @@ 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
+Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
+
BuildRequires: bash git
@@ -194,6 +196,7 @@ This package contains tools to assemble the local initrd and host configuration.
%prep
%setup -q -n %{name}-%{version}
+cp %{SOURCE1} .
%if %{defined PATCH1}
git init
@@ -293,8 +296,10 @@ rm -rf -- $RPM_BUILD_ROOT
%files
%defattr(-,root,root,0755)
%if %{with doc}
-%doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
+%doc README HACKING TODO AUTHORS NEWS dracut.html dracut.png dracut.svg
%endif
+%{!?_licensedir:%global license %%doc}
+%license COPYING lgpl-2.1.txt
%{_bindir}/dracut
# compat symlink
%{_sbindir}/dracut
@@ -441,11 +446,6 @@ rm -rf -- $RPM_BUILD_ROOT
%files fips-aesni
%defattr(-,root,root,0755)
-
-%if %{with doc}
-%doc COPYING
-%endif
-
%{dracutlibdir}/modules.d/02fips-aesni
%files caps

View File

@ -1,32 +0,0 @@
From ba7dab6dbab3fee9527384868695de12033529ed Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 29 Jul 2014 11:04:09 +0200
Subject: [PATCH] NEWS: update
---
NEWS | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/NEWS b/NEWS
index 102fd03..126a9d7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,18 @@
+dracut-039
+==========
+- DRACUT_PATH can now be used to specify the PATH used by dracut
+ to search for binaries instead of the default
+ /usr/sbin:/sbin:/usr/bin:/bin
+ This should be set in the distribution config file
+ /usr/lib/dracut/dracut.conf.d/01-dist.conf
+- "rd.route" kernel command line parameter added
+- "--install-optional" and install_optional_items added
+- find plymouth pkglibdir on debian
+- speed up ldconfig_paths()
+- more ARM modules
+- fixed inst*() functions and "-H" handling
+- various bugfixes
+
dracut-038
==========
- "rd.cmdline=ask" will ask the user on the console to enter additional

View File

@ -0,0 +1,44 @@
From 26d14fb3d36d6091f64258a62c49939478405693 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 24 Nov 2014 15:17:45 +0100
Subject: [PATCH] dracut-functions.sh: check if dinfo is a function
If "dinfo" is an executable, dracut-logger.sh would never be sourced.
See: https://bugzilla.redhat.com/show_bug.cgi?id=1167082
---
dracut-functions.sh | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index b43b766..17a71f0 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -176,7 +176,13 @@ srcmods="/lib/modules/$kernel/"
}
export srcmods
-if ! type dinfo >/dev/null 2>&1; then
+# is_func <command>
+# Check whether $1 is a function.
+is_func() {
+ [[ "$(type -t "$1")" = "function" ]]
+}
+
+if ! is_func dinfo >/dev/null 2>&1; then
. "$dracutbasedir/dracut-logger.sh"
dlog_init
fi
@@ -209,12 +215,6 @@ mksubdirs() {
[[ -e ${1%/*} ]] || mkdir -m 0755 -p -- "${1%/*}"
}
-# is_func <command>
-# Check whether $1 is a function.
-is_func() {
- [[ "$(type -t "$1")" = "function" ]]
-}
-
# Function prints global variables in format name=value line by line.
# $@ = list of global variables' name
print_vars() {

View File

@ -0,0 +1,27 @@
From cf864c1b8009f4544e6b494979bf396bafcd8834 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 20 Nov 2014 15:56:43 +0100
Subject: [PATCH] 90multipath: Install libgcc_s library
multipathd is using pthreads, which require libgcc_s for
pthread_cancel to work. Without it multipathd might crash
with SIGABRT.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
modules.d/90multipath/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index c86c5d9..a547c07 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -87,6 +87,7 @@ install() {
inst $(command -v partx) /sbin/partx
inst_libdir_file "libmultipath*" "multipath/*"
+ inst_libdir_file 'libgcc_s.so*'
if dracut_module_included "systemd"; then
inst_multiple \

View File

@ -1,35 +0,0 @@
From 28d03673f9aa76b041ce9a41a82a632d5399d8d1 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 1 Aug 2014 13:15:05 +0200
Subject: [PATCH] TEST-20-NFS:client-init.sh: add shell on rd.shell
---
test/TEST-20-NFS/client-init.sh | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/test/TEST-20-NFS/client-init.sh b/test/TEST-20-NFS/client-init.sh
index a16db3c..a1c4590 100755
--- a/test/TEST-20-NFS/client-init.sh
+++ b/test/TEST-20-NFS/client-init.sh
@@ -7,14 +7,18 @@ CMDLINE=$(while read line; do echo $line;done < /proc/cmdline)
strstr() { [ "${1##*"$2"*}" != "$1" ]; }
stty sane
-strstr "$CMDLINE" "rd.shell" && sh -i
+if strstr "$CMDLINE" "rd.shell"; then
+ [ -c /dev/watchdog ] && echo -n 'V' > /dev/watchdog
+ strstr "$(setsid --help)" "control" && CTTY="-c"
+ setsid $CTTY sh -i
+fi
+
echo "made it to the rootfs! Powering down."
+
while read dev fs fstype opts rest; do
[ "$fstype" != "nfs" -a "$fstype" != "nfs4" ] && continue
echo "nfs-OK $dev $fstype $opts" > /dev/sda
break
done < /proc/mounts
-#echo 'V' > /dev/watchdog
-#sh -i
>/dev/watchdog
poweroff -f

View File

@ -0,0 +1,48 @@
From 856f8265aa8b86ff74802fbfe3e555864794ec2a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 20 Nov 2014 15:56:44 +0100
Subject: [PATCH] 90multipath: Load device_handler modules early during boot
The device handler modules need to be loaded early during boot
to avoid I/O errors being printed to the system log.
References: bnc#871617
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
modules.d/90multipath/module-setup.sh | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index a547c07..6f4728a 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -28,6 +28,15 @@ depends() {
}
# called by dracut
+cmdline() {
+ for m in scsi_dh_alua scsi_dh_emc scsi_dh_rdac ; do
+ if module_is_host_only $m ; then
+ printf 'rd.driver.pre=%s ' "$m"
+ fi
+ done
+}
+
+# called by dracut
installkernel() {
local _ret
local _arch=$(uname -m)
@@ -89,6 +98,11 @@ install() {
inst_libdir_file "libmultipath*" "multipath/*"
inst_libdir_file 'libgcc_s.so*'
+ if [[ $hostonly_cmdline ]] ; then
+ local _conf=$(cmdline)
+ [[ $_conf ]] && echo "$_conf" >> "${initdir}/etc/cmdline.d/90multipath.conf"
+ fi
+
if dracut_module_included "systemd"; then
inst_multiple \
$systemdsystemunitdir/multipathd.service

View File

@ -1,33 +0,0 @@
From 4e1f8d0c5f071e0e8270eadf73e97aa41b07cb12 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 1 Aug 2014 13:15:44 +0200
Subject: [PATCH] TEST-20-NFS: add more commands and fix client root dirs
---
test/TEST-20-NFS/test.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh
index 4f21d45..19bf510 100755
--- a/test/TEST-20-NFS/test.sh
+++ b/test/TEST-20-NFS/test.sh
@@ -290,7 +290,7 @@ test_setup() {
. $basedir/dracut-functions.sh
inst_multiple sh shutdown poweroff stty cat ps ln ip \
- mount dmesg mkdir cp ping grep
+ mount dmesg mkdir cp ping grep setsid ls vi /etc/virc less cat
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[ -f ${_terminfodir}/l/linux ] && break
done
@@ -301,6 +301,10 @@ test_setup() {
cd "$initdir"
mkdir -p dev sys proc etc run
mkdir -p var/lib/nfs/rpc_pipefs
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
)
inst /etc/nsswitch.conf /etc/nsswitch.conf
inst /etc/passwd /etc/passwd

View File

@ -0,0 +1,63 @@
From 78a78e4239e16a033134dde71830d5bb977f6814 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 20 Nov 2014 15:56:45 +0100
Subject: [PATCH] 90multipath: install dracut-specific service file
The multipathd package might install a service and a socket
file. Using the original service file from the installed
system without the socket file triggers a bug in systemd,
causing systemd to crash.
As we don't actually need to socket file in the initrd we
should be installing our own service file which does not
reference the socket file at all.
References: bnc#871610
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
modules.d/90multipath/module-setup.sh | 7 +++----
modules.d/90multipath/multipathd.service | 15 +++++++++++++++
2 files changed, 18 insertions(+), 4 deletions(-)
create mode 100644 modules.d/90multipath/multipathd.service
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index 6f4728a..a8700f4 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -104,10 +104,9 @@ install() {
fi
if dracut_module_included "systemd"; then
- inst_multiple \
- $systemdsystemunitdir/multipathd.service
- mkdir -p "${initdir}${systemdsystemconfdir}/sysinit.target.wants"
- ln -rfs "${initdir}${systemdsystemunitdir}/multipathd.service" "${initdir}${systemdsystemconfdir}/sysinit.target.wants/multipathd.service"
+ inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service"
+ mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants"
+ ln -rfs "${initdir}${systemdsystemunitdir}/multipathd.service" "${initdir}${systemdsystemunitdir}/sysinit.target.wants/multipathd.service"
else
inst_hook pre-trigger 02 "$moddir/multipathd.sh"
inst_hook cleanup 02 "$moddir/multipathd-stop.sh"
diff --git a/modules.d/90multipath/multipathd.service b/modules.d/90multipath/multipathd.service
new file mode 100644
index 0000000..44a7b80
--- /dev/null
+++ b/modules.d/90multipath/multipathd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Device-Mapper Multipath Device Controller
+Before=iscsi.service iscsid.service lvm2-activation-early.service
+DefaultDependencies=no
+Conflicts=shutdown.target
+
+[Service]
+Type=simple
+ExecStartPre=/sbin/modprobe dm-multipath
+ExecStart=/sbin/multipathd -s -d
+ExecReload=/sbin/multipathd reconfigure
+ExecStop=/sbin/multipathd shutdown
+
+[Install]
+WantedBy=sysinit.target

View File

@ -1,170 +0,0 @@
From 2db6d7111870c5d16d812d9cddc23558f3f4a202 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 1 Aug 2014 13:16:29 +0200
Subject: [PATCH] fixed bridge setup
renamed "ethnames" in bridge.info to "bridgeslaves"
fixed ifcfg generation
---
modules.d/40network/ifup.sh | 4 ++--
modules.d/40network/net-genrules.sh | 2 +-
modules.d/40network/parse-bridge.sh | 18 ++++++++--------
modules.d/45ifcfg/write-ifcfg.sh | 42 +++++++++----------------------------
4 files changed, 22 insertions(+), 44 deletions(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 349530f..41ea631 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -60,7 +60,7 @@ fi
# bridge this interface?
if [ -e /tmp/bridge.info ]; then
. /tmp/bridge.info
- for ethname in $ethnames ; do
+ for ethname in $bridgeslaves ; do
if [ "$netif" = "$ethname" ]; then
if [ "$netif" = "$bondname" ] && [ -n "$DO_BOND_SETUP" ] ; then
: # We need to really setup bond (recursive call)
@@ -236,7 +236,7 @@ if [ -e /tmp/bridge.info ]; then
if [ "$netif" = "$bridgename" ] && [ ! -e /tmp/net.$bridgename.up ]; then
brctl addbr $bridgename
brctl setfd $bridgename 0
- for ethname in $ethnames ; do
+ for ethname in $bridgeslaves ; do
if [ "$ethname" = "$bondname" ] ; then
DO_BOND_SETUP=yes ifup $bondname -m
elif [ "$ethname" = "$teammaster" ] ; then
diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
index af2f09c..a43e3df 100755
--- a/modules.d/40network/net-genrules.sh
+++ b/modules.d/40network/net-genrules.sh
@@ -16,7 +16,7 @@ command -v fix_bootif >/dev/null || . /lib/net-lib.sh
# bridge: attempt only the defined interface
if [ -e /tmp/bridge.info ]; then
. /tmp/bridge.info
- IFACES="$IFACES ${ethnames%% *}"
+ IFACES="$IFACES ${bridgeslaves%% *}"
MASTER_IFACES="$MASTER_IFACES $bridgename"
fi
diff --git a/modules.d/40network/parse-bridge.sh b/modules.d/40network/parse-bridge.sh
index 8c305c0..a910109 100755
--- a/modules.d/40network/parse-bridge.sh
+++ b/modules.d/40network/parse-bridge.sh
@@ -3,9 +3,9 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
#
# Format:
-# bridge=<bridgename>:<ethnames>
+# bridge=<bridgename>:<bridgeslaves>
#
-# <ethnames> is a comma-separated list of physical (ethernet) interfaces
+# <bridgeslaves> is a comma-separated list of physical (ethernet) interfaces
# bridge without parameters assumes bridge=br0:eth0
#
@@ -25,20 +25,20 @@ parsebridge() {
v=${v#*:}
done
- unset bridgename ethnames
+ unset bridgename bridgeslaves
case $# in
- 0) bridgename=br0; ethnames=$iface ;;
+ 0) bridgename=br0; bridgeslaves=$iface ;;
1) die "bridge= requires two parameters" ;;
- 2) bridgename=$1; ethnames=$(str_replace "$2" "," " ") ;;
+ 2) bridgename=$1; bridgeslaves=$(str_replace "$2" "," " ") ;;
*) die "bridge= requires two parameters" ;;
esac
}
-unset bridgename ethnames
+unset bridgename bridgeslaves
iface=eth0
-# Parse bridge for bridgename and ethnames
+# Parse bridge for bridgename and bridgeslaves
if bridge="$(getarg bridge)"; then
# Read bridge= parameters if they exist
if [ -n "$bridge" ]; then
@@ -47,9 +47,9 @@ if bridge="$(getarg bridge)"; then
# Simple default bridge
if [ -z "$bridgename" ]; then
bridgename=br0
- ethnames=$iface
+ bridgeslaves=$iface
fi
echo "bridgename=$bridgename" > /tmp/bridge.info
- echo "ethnames=\"$ethnames\"" >> /tmp/bridge.info
+ echo "bridgeslaves=\"$bridgeslaves\"" >> /tmp/bridge.info
return
fi
diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
index 7e301de..d920c22 100755
--- a/modules.d/45ifcfg/write-ifcfg.sh
+++ b/modules.d/45ifcfg/write-ifcfg.sh
@@ -214,6 +214,7 @@ for netup in /tmp/net.*.did-setup ; do
echo "SLAVE=yes"
echo "MASTER=\"$netif\""
echo "NAME=\"$slave\""
+ echo "UUID=\"$(cat /proc/sys/kernel/random/uuid)\""
} >> /tmp/ifcfg/ifcfg-$slave
done
fi
@@ -224,44 +225,21 @@ for netup in /tmp/net.*.did-setup ; do
echo "TYPE=Bridge"
echo "NAME=\"$netif\""
} >> /tmp/ifcfg/ifcfg-$netif
- if [ "$ethname" = "$bondname" ] ; then
- {
- echo "# Generated by dracut initrd"
- echo "DEVICE=\"$bondname\""
- echo "ONBOOT=yes"
- echo "NETBOOT=yes"
- # This variable is an indicator of a bond interface for initscripts
- echo "BONDING_OPTS=\"$bondoptions\""
- echo "BRIDGE=\"$netif\""
- echo "NAME=\"$bondname\""
- } >> /tmp/ifcfg/ifcfg-$bondname
- for slave in $bondslaves ; do
- # write separate ifcfg file for the raw eth interface
- {
- echo "# Generated by dracut initrd"
- echo "DEVICE=\"$slave\""
- echo "TYPE=Ethernet"
- echo "ONBOOT=yes"
- echo "NETBOOT=yes"
- echo "HWADDR=\"$(cat /sys/class/net/$slave/address)\""
- echo "SLAVE=yes"
- echo "MASTER=\"$bondname\""
- echo "NAME=\"$slave\""
- } >> /tmp/ifcfg/ifcfg-$slave
- done
- else
+ for slave in $bridgeslaves ; do
# write separate ifcfg file for the raw eth interface
{
echo "# Generated by dracut initrd"
- echo "DEVICE=\"$ethname\""
+ echo "DEVICE=\"$slave\""
echo "TYPE=Ethernet"
echo "ONBOOT=yes"
echo "NETBOOT=yes"
- echo "HWADDR=\"$(cat /sys/class/net/$ethname/address)\""
- echo "BRIDGE=\"$netif\""
- echo "NAME=\"$ethname\""
- } >> /tmp/ifcfg/ifcfg-$ethname
- fi
+ echo "HWADDR=\"$(cat /sys/class/net/$slave/address)\""
+ echo "SLAVE=yes"
+ echo "MASTER=\"$bridgename\""
+ echo "NAME=\"$slave\""
+ echo "UUID=\"$(cat /proc/sys/kernel/random/uuid)\""
+ } >> /tmp/ifcfg/ifcfg-$slave
+ done
fi
i=1
for ns in $(getargs nameserver); do

View File

@ -0,0 +1,26 @@
From 2b2033e561bbf35dcdf849b8014be5b9162b8bd6 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 25 Nov 2014 13:23:21 +0100
Subject: [PATCH] multipath/multipathd.service: add more Conditions
Do not start multipathd on rd.multipath=0 rd_NO_MULTIPATH and if there
is no multipath.conf.
---
modules.d/90multipath/multipathd.service | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/90multipath/multipathd.service b/modules.d/90multipath/multipathd.service
index 44a7b80..b64b02c 100644
--- a/modules.d/90multipath/multipathd.service
+++ b/modules.d/90multipath/multipathd.service
@@ -3,6 +3,10 @@ Description=Device-Mapper Multipath Device Controller
Before=iscsi.service iscsid.service lvm2-activation-early.service
DefaultDependencies=no
Conflicts=shutdown.target
+ConditionKernelCommandLine=!nompath
+ConditionKernelCommandLine=!rd.multipath=0
+ConditionKernelCommandLine=!rd_NO_MULTIPATH
+ConditionPathExists=/etc/multipath.conf
[Service]
Type=simple

View File

@ -1,474 +0,0 @@
From 068531232b994ef93b3245484987df1cf1504dd0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 8 Aug 2014 13:34:04 +0200
Subject: [PATCH] test: make testsuite work with the new systemd minimal root
req
systemd needs more directories to switch root
---
test/TEST-01-BASIC/test.sh | 9 ++++++++-
test/TEST-02-SYSTEMD/test.sh | 10 +++++++++-
test/TEST-03-USR-MOUNT/test.sh | 9 ++++++++-
test/TEST-10-RAID/test.sh | 9 ++++++++-
test/TEST-11-LVM/test.sh | 10 +++++++++-
test/TEST-12-RAID-DEG/test.sh | 9 ++++++++-
test/TEST-13-ENC-RAID-LVM/test.sh | 10 +++++++++-
test/TEST-14-IMSM/test.sh | 9 ++++++++-
test/TEST-15-BTRFSRAID/test.sh | 10 +++++++++-
test/TEST-16-DMSQUASH/test.sh | 9 ++++++++-
test/TEST-17-LVM-THIN/test.sh | 10 +++++++++-
test/TEST-30-ISCSI/test.sh | 10 +++++++++-
test/TEST-40-NBD/test.sh | 25 ++++++++++++++++++++++---
test/TEST-50-MULTINIC/client-init.sh | 7 ++++---
test/TEST-50-MULTINIC/test.sh | 18 +++++++++++-------
15 files changed, 139 insertions(+), 25 deletions(-)
diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh
index f857fd4..6c8f1a6 100755
--- a/test/TEST-01-BASIC/test.sh
+++ b/test/TEST-01-BASIC/test.sh
@@ -30,6 +30,14 @@ test_setup() {
export initdir=$TESTDIR/overlay/source
mkdir -p $initdir
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient \
umount strace less setsid
@@ -43,7 +51,6 @@ test_setup() {
inst_simple /etc/os-release
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
sudo ldconfig -r "$initdir"
)
diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh
index cc9da27..3eac744 100755
--- a/test/TEST-02-SYSTEMD/test.sh
+++ b/test/TEST-02-SYSTEMD/test.sh
@@ -26,6 +26,15 @@ test_setup() {
export initdir=$TESTDIR/overlay/source
mkdir -p $initdir
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ mkdir -p -- var/lib/nfs/rpc_pipefs
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient \
umount strace less setsid
@@ -39,7 +48,6 @@ test_setup() {
inst_simple /etc/os-release
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
sudo ldconfig -r "$initdir"
)
diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh
index b3d709e..2a0cd8e 100755
--- a/test/TEST-03-USR-MOUNT/test.sh
+++ b/test/TEST-03-USR-MOUNT/test.sh
@@ -57,6 +57,14 @@ test_setup() {
export initdir=$TESTDIR/overlay/source
mkdir -p $initdir
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient \
umount strace less setsid
@@ -71,7 +79,6 @@ test_setup() {
inst_simple /etc/os-release
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
sudo ldconfig -r "$initdir"
)
diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh
index b17e912..2a420f5 100755
--- a/test/TEST-10-RAID/test.sh
+++ b/test/TEST-10-RAID/test.sh
@@ -27,8 +27,15 @@ test_setup() {
# Create what will eventually be our root filesystem onto an overlay
(
export initdir=$TESTDIR/overlay/source
- (mkdir -p "$initdir"; cd "$initdir"; mkdir -p dev sys proc etc var/run tmp run)
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh
index 6f2461c..44a4c9c 100755
--- a/test/TEST-11-LVM/test.sh
+++ b/test/TEST-11-LVM/test.sh
@@ -25,6 +25,15 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ mkdir -p -- var/lib/nfs/rpc_pipefs
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -37,7 +46,6 @@ test_setup() {
inst_simple /etc/os-release
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
mkdir $initdir/run
sudo ldconfig -r "$initdir"
diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
index dfcf3dc..00ff4bc 100755
--- a/test/TEST-12-RAID-DEG/test.sh
+++ b/test/TEST-12-RAID-DEG/test.sh
@@ -67,6 +67,14 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -79,7 +87,6 @@ test_setup() {
inst_simple /etc/os-release
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
sudo ldconfig -r "$initdir"
)
diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh
index 5102142..55968a1 100755
--- a/test/TEST-13-ENC-RAID-LVM/test.sh
+++ b/test/TEST-13-ENC-RAID-LVM/test.sh
@@ -63,6 +63,15 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ mkdir -p -- var/lib/nfs/rpc_pipefs
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -75,7 +84,6 @@ test_setup() {
inst_simple /etc/os-release
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
sudo ldconfig -r "$initdir"
)
diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh
index 9353a92..53cca27 100755
--- a/test/TEST-14-IMSM/test.sh
+++ b/test/TEST-14-IMSM/test.sh
@@ -55,6 +55,14 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -67,7 +75,6 @@ test_setup() {
inst_multiple grep
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
mkdir $initdir/run
sudo ldconfig -r "$initdir"
diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
index 3fc1d45..2752e86 100755
--- a/test/TEST-15-BTRFSRAID/test.sh
+++ b/test/TEST-15-BTRFSRAID/test.sh
@@ -27,6 +27,15 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ mkdir -p -- var/lib/nfs/rpc_pipefs
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -39,7 +48,6 @@ test_setup() {
inst ./test-init.sh /sbin/init
inst_simple /etc/os-release
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
sudo ldconfig -r "$initdir"
)
diff --git a/test/TEST-16-DMSQUASH/test.sh b/test/TEST-16-DMSQUASH/test.sh
index 252e845..036cf58 100755
--- a/test/TEST-16-DMSQUASH/test.sh
+++ b/test/TEST-16-DMSQUASH/test.sh
@@ -49,6 +49,14 @@ test_setup() {
(
export initdir="$TESTDIR"/root-source
. "$basedir"/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient \
umount strace less
@@ -67,7 +75,6 @@ test_setup() {
inst "$TESTDIR"/initramfs.testing "/boot/initramfs-$KVERSION.img"
inst /boot/vmlinuz-"$KVERSION"
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p -- dev sys proc etc var/run tmp )
cp -a -- /etc/ld.so.conf* "$initdir"/etc
sudo ldconfig -r -- "$initdir"
)
diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh
index 0cfce19..af6fac3 100755
--- a/test/TEST-17-LVM-THIN/test.sh
+++ b/test/TEST-17-LVM-THIN/test.sh
@@ -25,6 +25,15 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ mkdir -p -- var/lib/nfs/rpc_pipefs
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip route \
mount dmesg ifconfig dhclient mkdir cp ping dhclient
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -37,7 +46,6 @@ test_setup() {
inst_simple /etc/os-release
inst ./test-init.sh /sbin/init
find_binary plymouth >/dev/null && inst_multiple plymouth
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
mkdir $initdir/run
sudo ldconfig -r "$initdir"
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
index f597783..d3f59c9 100755
--- a/test/TEST-30-ISCSI/test.sh
+++ b/test/TEST-30-ISCSI/test.sh
@@ -105,6 +105,15 @@ test_setup() {
(
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ mkdir -p -- var/lib/nfs/rpc_pipefs
+ )
inst_multiple sh shutdown poweroff stty cat ps ln ip \
mount dmesg mkdir cp ping grep
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -113,7 +122,6 @@ test_setup() {
inst_multiple -o ${_terminfodir}/l/linux
inst_simple /etc/os-release
inst ./client-init.sh /sbin/init
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
cp -a /etc/ld.so.conf* $initdir/etc
sudo ldconfig -r "$initdir"
)
diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
index 7cf64b1..3bc0dad 100755
--- a/test/TEST-40-NBD/test.sh
+++ b/test/TEST-40-NBD/test.sh
@@ -6,7 +6,7 @@ TEST_DESCRIPTION="root filesystem on NBD"
KVERSION=${KVERSION-$(uname -r)}
# Uncomment this to debug failures
-#DEBUGFAIL="rd.shell rd.retry=10 rd.break"
+#DEBUGFAIL="rd.shell rd.break"
#SERIAL="udp:127.0.0.1:9999"
SERIAL="null"
@@ -197,7 +197,13 @@ make_encrypted_root() {
export initdir=$TESTDIR/overlay/source
. $basedir/dracut-functions.sh
mkdir -p "$initdir"
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
+ (
+ cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip \
mount dmesg mkdir cp ping
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -215,6 +221,13 @@ make_encrypted_root() {
(
export initdir=$TESTDIR/overlay
. $basedir/dracut-functions.sh
+ (
+ cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple mke2fs poweroff cp umount tune2fs
inst_hook emergency 000 ./hard-off.sh
inst_hook initqueue 01 ./create-root.sh
@@ -255,7 +268,13 @@ make_client_root() {
export initdir=$TESTDIR/mnt
. $basedir/dracut-functions.sh
mkdir -p "$initdir"
- (cd "$initdir"; mkdir -p dev sys proc etc var/run tmp )
+ (
+ cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh ls shutdown poweroff stty cat ps ln ip \
dmesg mkdir cp ping
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
diff --git a/test/TEST-50-MULTINIC/client-init.sh b/test/TEST-50-MULTINIC/client-init.sh
index 13affc4..3f3e079 100755
--- a/test/TEST-50-MULTINIC/client-init.sh
+++ b/test/TEST-50-MULTINIC/client-init.sh
@@ -10,9 +10,10 @@ export PS1='initramfs-test:\w\$ '
stty sane
echo "made it to the rootfs! Powering down."
for i in /run/initramfs/net.*.did-setup; do
- strglobin "$i" ":*:*:*:*:" && continue
- i=${i%.did-setup}
- IFACES+="${i##*/net.} "
+ [ -f "$i" ] || continue
+ strglobin "$i" ":*:*:*:*:" && continue
+ i=${i%.did-setup}
+ IFACES+="${i##*/net.} "
done
{
echo "OK"
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index add849c..fa4d692 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -6,7 +6,7 @@ TEST_DESCRIPTION="root filesystem on NFS with multiple nics"
KVERSION=${KVERSION-$(uname -r)}
# Uncomment this to debug failures
-#DEBUGFAIL="rd.shell"
+#DEBUGFAIL="rd.shell rd.break"
#SERIAL="tcp:127.0.0.1:9999"
run_server() {
@@ -154,7 +154,7 @@ test_setup() {
(
cd "$initdir";
- mkdir -p -- dev sys proc run etc var/run tmp var/lib/{dhcpd,rpcbind}
+ mkdir -p -- dev sys proc run var/run etc tmp var/lib/{dhcpd,rpcbind}
mkdir -p -- var/lib/nfs/{v4recovery,rpc_pipefs}
chmod 777 -- var/lib/rpcbind var/lib/nfs
)
@@ -217,6 +217,15 @@ test_setup() {
(
export initdir="$TESTDIR"/mnt/nfs/client
. "$basedir"/dracut-functions.sh
+ (
+ cd "$initdir"
+ mkdir -p dev sys proc etc run
+ mkdir -p var/lib/nfs/rpc_pipefs
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ for i in bin sbin lib lib64; do
+ ln -sfnr usr/$i $i
+ done
+ )
inst_multiple sh shutdown poweroff stty cat ps ln ip \
mount dmesg mkdir cp ping grep ls
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
@@ -225,11 +234,6 @@ test_setup() {
inst_multiple -o "${_terminfodir}"/l/linux
inst_simple /etc/os-release
inst ./client-init.sh /sbin/init
- (
- cd "$initdir"
- mkdir -p -- dev sys proc etc run
- mkdir -p -- var/lib/nfs/rpc_pipefs
- )
inst /etc/nsswitch.conf /etc/nsswitch.conf
inst /etc/passwd /etc/passwd
inst /etc/group /etc/group

View File

@ -1,28 +0,0 @@
From 32125a976bb6ff67768ca813446743b781ba012f Mon Sep 17 00:00:00 2001
From: Alex Harpin <development@landsofshadow.co.uk>
Date: Sat, 2 Aug 2014 20:08:25 +0100
Subject: [PATCH] bridging: update the ifcfg files generated for bridge slaves
Update the ifcfg files generated for bridge slaves so they reference
the bridge they are part of. Related to early patch submitted as a
fix for Bug #1123552.
Bug #1123552 https://bugzilla.redhat.com/show_bug.cgi?id=1123552
---
modules.d/45ifcfg/write-ifcfg.sh | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
index d920c22..7f068cb 100755
--- a/modules.d/45ifcfg/write-ifcfg.sh
+++ b/modules.d/45ifcfg/write-ifcfg.sh
@@ -234,8 +234,7 @@ for netup in /tmp/net.*.did-setup ; do
echo "ONBOOT=yes"
echo "NETBOOT=yes"
echo "HWADDR=\"$(cat /sys/class/net/$slave/address)\""
- echo "SLAVE=yes"
- echo "MASTER=\"$bridgename\""
+ echo "BRIDGE=\"$bridgename\""
echo "NAME=\"$slave\""
echo "UUID=\"$(cat /proc/sys/kernel/random/uuid)\""
} >> /tmp/ifcfg/ifcfg-$slave

View File

@ -0,0 +1,36 @@
From 370035d561baa6852bcb02161ef736a78b62b336 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 25 Nov 2014 13:44:54 +0100
Subject: [PATCH] dmsquash-live: do not abort, if user pressed ESC on
checkisomd5
If the user pressed ESC while checkisomd5 runs the media check, it will
exit with "2". Previously that would mean, that the media check was not
successful.
---
modules.d/90dmsquash-live/checkisomd5@.service | 1 +
modules.d/90dmsquash-live/dmsquash-live-root.sh | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/90dmsquash-live/checkisomd5@.service b/modules.d/90dmsquash-live/checkisomd5@.service
index 20e40bd..c4ca10f 100644
--- a/modules.d/90dmsquash-live/checkisomd5@.service
+++ b/modules.d/90dmsquash-live/checkisomd5@.service
@@ -11,3 +11,4 @@ StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
TimeoutSec=0
+SuccessExitStatus=2
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index 246235b..d921f0c 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -42,7 +42,7 @@ if [ -n "$check" ]; then
else
checkisomd5 --verbose $livedev
fi
- if [ $? -ne 0 ]; then
+ if [ $? -eq 1 ]; then
die "CD check failed!"
exit 1
fi

View File

@ -0,0 +1,23 @@
From 3659d64df3fe87e2ec2ca6a55c8f456dabb953db Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 28 Nov 2014 15:32:17 +0100
Subject: [PATCH] fips: add libfreeblpriv3.so and libfreeblpriv3.chk
---
modules.d/01fips/module-setup.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index aab96da..01e84e5 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -40,7 +40,8 @@ install() {
inst_libdir_file libsoftokn3.so libsoftokn3.so \
libsoftokn3.chk libfreebl3.so libfreebl3.chk \
- libssl.so 'hmaccalc/sha512hmac.hmac' libssl.so.10
+ libssl.so 'hmaccalc/sha512hmac.hmac' libssl.so.10 \
+ libfreeblpriv3.so and libfreeblpriv3.chk
inst_multiple -o prelink
inst_simple /etc/system-fips

View File

@ -1,25 +0,0 @@
From ae488efa5e6103ffc1be8b8782f8a1c7a5aa90b4 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 14 Aug 2014 12:56:53 +0200
Subject: [PATCH] i18n: check for $i18n_install_all == "yes" rather than being
set
i18n_install_all="no" does not have the expected effect without this
patch
---
modules.d/10i18n/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index a091f89..720fcbd 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -247,7 +247,7 @@ install() {
if checks; then
install_base
- if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} ]]; then
+ if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} == "yes" ]]; then
install_local_i18n || install_all_kbd
else
install_all_kbd

View File

@ -0,0 +1,41 @@
From fa45d0d9c9109f3c2953ad02d7e3aa69c4e09add Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 1 Dec 2014 11:50:00 +0100
Subject: [PATCH] base/init.sh: ignore exclamation mark for kmod static-nodes
newer versions add an exclamation mark for the type, to mark it to be
created on boot only.
---
modules.d/99base/init.sh | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index 3afe6d5..5f66d1f 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -73,15 +73,16 @@ fi
if command -v kmod >/dev/null 2>/dev/null; then
kmod static-nodes --format=tmpfiles 2>/dev/null | \
while read type file mode a a a majmin; do
- case $type in
- d)
- mkdir -m $mode -p $file
- ;;
- c)
- mknod -m $mode $file $type ${majmin%:*} ${majmin#*:}
- ;;
- esac
- done
+ type=${type%\!}
+ case $type in
+ d)
+ mkdir -m $mode -p $file
+ ;;
+ c)
+ mknod -m $mode $file $type ${majmin%:*} ${majmin#*:}
+ ;;
+ esac
+ done
fi
trap "action_on_fail Signal caught!" 0

View File

@ -1,23 +0,0 @@
From e02a29e7a2403dd1bb4f581b14ec4bf4ace6cba7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 15 Aug 2014 11:44:26 +0200
Subject: [PATCH] dracut.usage.asc: extend parameters for shutdown debug
procedure
---
dracut.usage.asc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.usage.asc b/dracut.usage.asc
index 6979af6..50ceb49 100644
--- a/dracut.usage.asc
+++ b/dracut.usage.asc
@@ -528,7 +528,7 @@ on _pre-shutdown_ or _shutdown_.
To do this from an already booted system:
----
# mkdir -p /run/initramfs/etc/cmdline.d
-# echo "rd.break=pre-shutdown" > /run/initramfs/etc/cmdline.d/debug.conf
+# echo "rd.debug rd.break=pre-shutdown rd.break=shutdown" > /run/initramfs/etc/cmdline.d/debug.conf
# touch /run/initramfs/.need_shutdown
----

View File

@ -0,0 +1,39 @@
From 3a04bddeed15c810865aa49a2575bf13e651272d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 1 Dec 2014 12:34:54 +0100
Subject: [PATCH] dracut.sh: add $tmpfilesdir to install files to
/usr/lib/tmpfiles.d
---
dracut.sh | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 4590f79..2357987 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1226,6 +1226,14 @@ fi
[[ -d "$systemdsystemconfdir" ]] || systemdsystemconfdir=/etc/systemd/system
+[[ -d $tmpfilesdir ]] \
+ || tmpfilesdir=$(pkg-config systemd --variable=tmpfilesdir 2>/dev/null)
+
+if ! [[ -d "$tmpfilesdir" ]]; then
+ [[ -f /lib/tmpfiles.d ]] && tmpfilesdir=/lib/tmpfiles.d
+ [[ -f /usr/lib/tmpfiles.d ]] && tmpfilesdir=/usr/lib/tmpfiles.d
+fi
+
export initdir dracutbasedir \
dracutmodules force_add_dracutmodules add_dracutmodules omit_dracutmodules \
mods_to_load \
@@ -1236,7 +1244,8 @@ export initdir dracutbasedir \
debug host_fs_types host_devs sshkey add_fstab \
DRACUT_VERSION udevdir prefix filesystems drivers \
systemdutildir systemdsystemunitdir systemdsystemconfdir \
- host_modalias host_modules hostonly_cmdline loginstall
+ host_modalias host_modules hostonly_cmdline loginstall \
+ tmpfilesdir
mods_to_load=""
# check all our modules to see if they should be sourced.

View File

@ -1,25 +0,0 @@
From 11b5db88c2d9290fc438b12a79a50bdd1d327203 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 15 Aug 2014 11:50:31 +0200
Subject: [PATCH] dracut.usage.asc: also add a link for RHEL-7 storage admin
guide
---
dracut.usage.asc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dracut.usage.asc b/dracut.usage.asc
index 50ceb49..6128ec4 100644
--- a/dracut.usage.asc
+++ b/dracut.usage.asc
@@ -259,7 +259,9 @@ local hard drive or it can be served by a PXE/TFTP server.
How to setup your PXE/TFTP server can be found in the
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/[Red
-Hat Enterprise Linux Storage Administration Guide].
+Hat Enterprise Linux 6 Storage Administration Guide]
+or http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/[Red
+Hat Enterprise Linux 7 Storage Administration Guide].
If you specify ip=auto on the kernel command line, then dracut asks a dhcp
server about the ip adress for the machine. The dhcp server can also serve an

View File

@ -0,0 +1,79 @@
From 99d4fd6bb791ca8ce07e07e13b58445f3e20894a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 1 Dec 2014 12:36:20 +0100
Subject: [PATCH] do not symlink /var/log to /run/log
some programs e.g. systemd-journald expect a directory in /var/log as
the marker to do some actions. Here journald tries to flush
/run/log/journal to /var/log/journal, if the directory is seen.
/var/log is now a symlink to /run/initramfs/log.
---
dracut.sh | 1 -
modules.d/98systemd/dracut-tmpfiles.conf | 3 +++
modules.d/98systemd/module-setup.sh | 5 +++++
modules.d/99base/dracut-lib.sh | 6 +++++-
4 files changed, 13 insertions(+), 2 deletions(-)
create mode 100644 modules.d/98systemd/dracut-tmpfiles.conf
diff --git a/dracut.sh b/dracut.sh
index 2357987..a542f33 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1300,7 +1300,6 @@ if [[ $kernel_only != yes ]]; then
ln -sfn ../run "$initdir/var/run"
ln -sfn ../run/lock "$initdir/var/lock"
- ln -sfn ../run/log "$initdir/var/log"
else
for d in lib "$libdir"; do
[[ -e "${initdir}${prefix}/$d" ]] && continue
diff --git a/modules.d/98systemd/dracut-tmpfiles.conf b/modules.d/98systemd/dracut-tmpfiles.conf
new file mode 100644
index 0000000..3c21ce8
--- /dev/null
+++ b/modules.d/98systemd/dracut-tmpfiles.conf
@@ -0,0 +1,3 @@
+d /run/initramfs 0755 root root -
+d /run/initramfs/log 0755 root root -
+L /var/log - - - - ../run/initramfs/log
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index bd4433e..8052984 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -123,6 +123,8 @@ install() {
$systemdsystemunitdir/slices.target \
$systemdsystemunitdir/system.slice \
\
+ $tmpfilesdir/systemd.conf \
+ \
journalctl systemctl echo swapoff systemd-cgls systemd-tmpfiles
inst_multiple -o \
@@ -232,6 +234,9 @@ install() {
ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/initrd.target.wants/${i}"
done
+ inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf"
+
+
mkdir -p "$initdir/etc/systemd"
# turn off RateLimit for journal
{
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 8bc6b26..0a89cc8 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -6,7 +6,11 @@ if [ -n "$NEWROOT" ]; then
[ -d $NEWROOT ] || mkdir -p -m 0755 $NEWROOT
fi
-[ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
+if ! [ -d /run/initramfs ]; then
+ mkdir -p -m 0755 /run/initramfs/log
+ ln -sfn /run/initramfs/log /var/log
+fi
+
[ -d /run/lock ] || mkdir -p -m 0755 /run/lock
[ -d /run/log ] || mkdir -p -m 0755 /run/log

View File

@ -1,28 +0,0 @@
From a628b7caf52459a31c46463744fafc42bb8f3407 Mon Sep 17 00:00:00 2001
From: WANG Chao <chaowang@redhat.com>
Date: Mon, 28 Jul 2014 22:26:28 +0800
Subject: [PATCH] dracut-functions: get_persistent_dev() fall back to the
original name
In case of raw disk/partition, ex. /dev/vda1, which doesn't contain any
filesystem on it. get_persistent_dev() would return empty. Now fix it to
return its original name, /dev/vda1 in above case. So that we don't have
to check its return string every time.
Signed-off-by: WANG Chao <chaowang@redhat.com>
---
dracut-functions.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 6cdfea0..b07063f 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -388,6 +388,7 @@ get_persistent_dev() {
return
fi
done
+ echo $1
}
expand_persistent_dev() {

View File

@ -1,28 +0,0 @@
From 4a3f3ba68c73707231bba72cdf7ab01464456e5a Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Mon, 4 Aug 2014 22:04:37 +0200
Subject: [PATCH] Test soc path for modalias needed by drm
On ARM, both pci and soc path can be tested for drm.
With this patchset, that was missing in recent kernel,
the tegra_drm case is not needed anymore:
http://patchwork.ozlabs.org/patch/361765/
http://www.spinics.net/lists/linux-tegra/msg17948.html
---
modules.d/50drm/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
index e25fc9f..9a48aaf 100755
--- a/modules.d/50drm/module-setup.sh
+++ b/modules.d/50drm/module-setup.sh
@@ -57,7 +57,7 @@ installkernel() {
# as we could e.g. be in the installer; nokmsboot boot parameter will disable
# loading of the driver if needed
if [[ $hostonly ]] && modinfo -F alias $_modname | sed -e 's,\?,\.,g' -e 's,\*,\.\*,g' \
- | grep -qxf - /sys/bus/pci/devices/*/modalias 2>/dev/null; then
+ | grep -qxf - /sys/bus/{pci/devices,soc/devices/soc?}/*/modalias 2>/dev/null; then
hostonly='' instmods $_modname
continue
fi

View File

@ -0,0 +1,21 @@
From 3ae03005b85a702256ead058375c9fab2e53950e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 1 Dec 2014 15:04:53 +0100
Subject: [PATCH] cms/cms-write-ifcfg.sh: turn SUBCHANNELS into lowercase
---
modules.d/80cms/cms-write-ifcfg.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/80cms/cms-write-ifcfg.sh b/modules.d/80cms/cms-write-ifcfg.sh
index d3c7c46..eb10ae2 100755
--- a/modules.d/80cms/cms-write-ifcfg.sh
+++ b/modules.d/80cms/cms-write-ifcfg.sh
@@ -7,6 +7,7 @@ mkdir -m 0755 -p /run/initramfs/state/etc/sysconfig/network-scripts
function cms_write_config()
{
. /tmp/cms.conf
+ SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')"
OLDIFS=$IFS
IFS=,
read -a subch_array <<< "indexzero,$SUBCHANNELS"

View File

@ -0,0 +1,28 @@
From c440d302f1cdfc0336e9086c7b9016356f961936 Mon Sep 17 00:00:00 2001
From: Minfei Huang <mhuang@redhat.com>
Date: Mon, 1 Dec 2014 12:37:06 +0800
Subject: [PATCH] 40network: Fix the syntax to correct the judgment sentence
In the judgment sentence, it will print the following warning message,
becasuse of lacking the blank on the left of ']'.
/lib/net-lib.sh: line 110: [: missing `]'
Signed-off-by: Minfei Huang <mhuang@redhat.com>
---
modules.d/40network/net-lib.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 48e7014..d9c5a1d 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -105,7 +105,7 @@ setup_net() {
# add static route
for _p in $(getargs rd.route); do
route_to_var "$_p" || continue
- [ -n "$route_dev" ] && [ "$route_dev" != "$netif"] && continue
+ [ -n "$route_dev" ] && [ "$route_dev" != "$netif" ] && continue
ip route add "$route_mask" ${route_gw:+via "$route_gw"} ${route_dev:+dev "$route_dev"}
if strstr ":" "$route_mask"; then
printf -- "%s\n" "$route_mask ${route_gw:+via $route_gw} ${route_dev:+dev $route_dev}" \

View File

@ -1,31 +0,0 @@
From b96ea1e196ae5706a68644a3679ee8c432b0b8f1 Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Mon, 4 Aug 2014 22:04:38 +0200
Subject: [PATCH] Categorize needed modules on ARM
---
modules.d/90kernel-modules/module-setup.sh | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 1ce133f..f3e4f65 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -51,10 +51,13 @@ installkernel() {
if [[ "$(uname -p)" == arm* ]]; then
# arm specific modules
- hostonly='' instmods \
- connector-hdmi connector-dvi encoder-tfp410 \
- encoder-tpd12s015 i2c-tegra gpio-regulator \
- as3722-regulator orion-ehci ehci-tegra
+ instmods \
+ "=drivers/i2c/busses" \
+ "=drivers/regulator" \
+ "=drivers/rtc" \
+ "=drivers/usb/host" \
+ "=drivers/usb/phy" \
+ ${NULL}
fi
# install virtual machine support

View File

@ -1,31 +0,0 @@
From 49fe860b22afd355b67f5f3f2ee30d5a3f0d3f5f Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Mon, 4 Aug 2014 22:04:39 +0200
Subject: [PATCH] Introduce ARM specific modules needed by drm
---
modules.d/50drm/module-setup.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
index 9a48aaf..a42bcba 100755
--- a/modules.d/50drm/module-setup.sh
+++ b/modules.d/50drm/module-setup.sh
@@ -51,6 +51,17 @@ installkernel() {
return 0
}
+ if [[ "$(uname -p)" == arm* ]]; then
+ # arm specific modules needed by drm
+ instmods \
+ "=drivers/gpu/drm/i2c" \
+ "=drivers/gpu/drm/panel" \
+ "=drivers/pwm" \
+ "=drivers/video/backlight" \
+ "=drivers/video/fbdev/omap2/displays-new" \
+ ${NULL}
+ fi
+
for _modname in $(find_kernel_modules_by_path drivers/gpu/drm \
| drm_module_filter) ; do
# if the hardware is present, include module even if it is not currently loaded,

View File

@ -0,0 +1,195 @@
From ca4108b78e04d6ee202efbeea13840fac46f76f6 Mon Sep 17 00:00:00 2001
From: Tom Gundersen <teg@jklm.no>
Date: Mon, 1 Dec 2014 16:59:09 +0100
Subject: [PATCH] initrd-release: move from /etc to /usr/lib
This mimicks the similar move of os-release which was done in systemd. These
files are not configuration, but part of the OS.
Still symlinks are in place for compatibility, but those should probably be
dropped eventually.
---
modules.d/98systemd/dracut-cmdline-ask.service | 2 +-
modules.d/98systemd/dracut-cmdline.service | 2 +-
modules.d/98systemd/dracut-cmdline.sh | 2 +-
modules.d/98systemd/dracut-initqueue.service | 2 +-
modules.d/98systemd/dracut-mount.service | 2 +-
modules.d/98systemd/dracut-pre-mount.service | 2 +-
modules.d/98systemd/dracut-pre-pivot.service | 2 +-
modules.d/98systemd/dracut-pre-trigger.service | 2 +-
modules.d/98systemd/dracut-pre-udev.service | 2 +-
modules.d/98systemd/initrd.target | 2 +-
modules.d/99base/dracut-lib.sh | 2 +-
modules.d/99base/init.sh | 2 +-
modules.d/99base/module-setup.sh | 4 +++-
13 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/modules.d/98systemd/dracut-cmdline-ask.service b/modules.d/98systemd/dracut-cmdline-ask.service
index 9993671..9a34b35 100644
--- a/modules.d/98systemd/dracut-cmdline-ask.service
+++ b/modules.d/98systemd/dracut-cmdline-ask.service
@@ -13,7 +13,7 @@ DefaultDependencies=no
Before=dracut-cmdline.service
After=systemd-journald.socket
Wants=systemd-journald.socket
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionKernelCommandLine=rd.cmdline=ask
[Service]
diff --git a/modules.d/98systemd/dracut-cmdline.service b/modules.d/98systemd/dracut-cmdline.service
index f888bf4..6eeb991 100644
--- a/modules.d/98systemd/dracut-cmdline.service
+++ b/modules.d/98systemd/dracut-cmdline.service
@@ -14,7 +14,7 @@ DefaultDependencies=no
Before=dracut-pre-udev.service
After=systemd-journald.socket
Wants=systemd-journald.socket
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionPathExistsGlob=|/etc/cmdline.d/*.conf
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cmdline
ConditionKernelCommandLine=|rd.break=cmdline
diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh
index ad81501..871f81b 100755
--- a/modules.d/98systemd/dracut-cmdline.sh
+++ b/modules.d/98systemd/dracut-cmdline.sh
@@ -5,7 +5,7 @@ if [ -f /dracut-state.sh ]; then
fi
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
-[ -f /etc/initrd-release ] && . /etc/initrd-release
+[ -f /usr/lib/initrd-release ] && . /usr/lib/initrd-release
[ -n "$VERSION" ] && info "dracut-$VERSION"
if ! getargbool 1 'rd.hostonly'; then
diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98systemd/dracut-initqueue.service
index 1b9e701..5d772f7 100644
--- a/modules.d/98systemd/dracut-initqueue.service
+++ b/modules.d/98systemd/dracut-initqueue.service
@@ -15,7 +15,7 @@ Before=remote-fs-pre.target
Wants=remote-fs-pre.target
After=systemd-udev-trigger.service
Wants=systemd-udev-trigger.service
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionPathExists=|/lib/dracut/need-initqueue
ConditionPathExistsGlob=|/lib/dracut/hooks/initqueue/*.sh
ConditionPathExistsGlob=|/lib/dracut/hooks/initqueue/settled/*.sh
diff --git a/modules.d/98systemd/dracut-mount.service b/modules.d/98systemd/dracut-mount.service
index 20c633d..1b14f4a 100644
--- a/modules.d/98systemd/dracut-mount.service
+++ b/modules.d/98systemd/dracut-mount.service
@@ -12,7 +12,7 @@ Description=dracut mount hook
Documentation=man:dracut-mount.service(8)
After=initrd-root-fs.target initrd-parse-etc.service
After=dracut-initqueue.service dracut-pre-mount.service
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/mount
ConditionKernelCommandLine=|rd.break=mount
diff --git a/modules.d/98systemd/dracut-pre-mount.service b/modules.d/98systemd/dracut-pre-mount.service
index d7be48d..96ea995 100644
--- a/modules.d/98systemd/dracut-pre-mount.service
+++ b/modules.d/98systemd/dracut-pre-mount.service
@@ -14,7 +14,7 @@ DefaultDependencies=no
Before=initrd-root-fs.target sysroot.mount
After=dracut-initqueue.service
After=cryptsetup.target
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-mount
ConditionKernelCommandLine=|rd.break=pre-mount
diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service
index d7c7b1d..f5a85ce 100644
--- a/modules.d/98systemd/dracut-pre-pivot.service
+++ b/modules.d/98systemd/dracut-pre-pivot.service
@@ -15,7 +15,7 @@ After=dracut-initqueue.service dracut-pre-mount.service dracut-mount.service
Before=initrd-cleanup.service
Wants=remote-fs.target
After=remote-fs.target
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-pivot
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cleanup
ConditionKernelCommandLine=|rd.break=pre-pivot
diff --git a/modules.d/98systemd/dracut-pre-trigger.service b/modules.d/98systemd/dracut-pre-trigger.service
index 69b4cce..826b89b 100644
--- a/modules.d/98systemd/dracut-pre-trigger.service
+++ b/modules.d/98systemd/dracut-pre-trigger.service
@@ -14,7 +14,7 @@ DefaultDependencies=no
Before=systemd-udev-trigger.service dracut-initqueue.service
After=dracut-pre-udev.service systemd-udevd.service systemd-tmpfiles-setup-dev.service
Wants=dracut-pre-udev.service systemd-udevd.service
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-trigger
ConditionKernelCommandLine=|rd.break=pre-trigger
diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98systemd/dracut-pre-udev.service
index d125b37..73740be 100644
--- a/modules.d/98systemd/dracut-pre-udev.service
+++ b/modules.d/98systemd/dracut-pre-udev.service
@@ -14,7 +14,7 @@ DefaultDependencies=no
Before=systemd-udevd.service dracut-pre-trigger.service
After=dracut-cmdline.service
Wants=dracut-cmdline.service
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-udev
ConditionKernelCommandLine=|rd.break=pre-udev
ConditionKernelCommandLine=|rd.driver.blacklist
diff --git a/modules.d/98systemd/initrd.target b/modules.d/98systemd/initrd.target
index 19494d4..4b7e7da 100644
--- a/modules.d/98systemd/initrd.target
+++ b/modules.d/98systemd/initrd.target
@@ -6,4 +6,4 @@ After=basic.target rescue.service rescue.target
AllowIsolate=yes
OnFailure=emergency.target
OnFailureIsolate=yes
-ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/usr/lib/initrd-release
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 0a89cc8..5fc5615 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -393,7 +393,7 @@ splitsep() {
}
setdebug() {
- [ -f /etc/initrd-release ] || return
+ [ -f /usr/lib/initrd-release ] || return
if [ -z "$RD_DEBUG" ]; then
if [ -e /proc/cmdline ]; then
RD_DEBUG=no
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index 5f66d1f..7fcea4a 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -106,7 +106,7 @@ else
exec 0<>/dev/console 1<>/dev/console 2<>/dev/console
fi
-[ -f /etc/initrd-release ] && . /etc/initrd-release
+[ -f /usr/lib/initrd-release ] && . /usr/lib/initrd-release
[ -n "$VERSION_ID" ] && info "$NAME-$VERSION_ID"
source_conf /etc/conf.d
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
index fab4a78..7d30320 100755
--- a/modules.d/99base/module-setup.sh
+++ b/modules.d/99base/module-setup.sh
@@ -88,8 +88,10 @@ install() {
echo VERSION_ID=$VERSION_ID
echo PRETTY_NAME=\"$PRETTY_NAME\"
echo ANSI_COLOR=\"$ANSI_COLOR\"
- } > $initdir/etc/initrd-release
+ } > $initdir/usr/lib/initrd-release
echo dracut-$DRACUT_VERSION > $initdir/lib/dracut/dracut-$DRACUT_VERSION
+ ln -sf ../usr/lib/initrd-release $initdir/etc/initrd-release
+ ln -sf initrd-release $initdir/usr/lib/os-release
ln -sf initrd-release $initdir/etc/os-release
## save host_devs which we need bring up

View File

@ -1,23 +0,0 @@
From 9efb74a32d34533f7ccb201160ea0e40adc13987 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 15 Aug 2014 12:36:04 +0200
Subject: [PATCH] dracut-functions.sh:get_persistent_dev(): use printf, instead
of echo
---
dracut-functions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index b07063f..9286828 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -388,7 +388,7 @@ get_persistent_dev() {
return
fi
done
- echo $1
+ printf -- "%s" "$1"
}
expand_persistent_dev() {

View File

@ -0,0 +1,27 @@
From 414dc51ca2b60a15405bb2b0b1ac23d4d1ef905c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 4 Dec 2014 11:54:47 +0100
Subject: [PATCH] dracut.conf.d/fedora.conf.example: turn on early_microcode
---
dracut.conf.d/fedora.conf.example | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index c06202b..f248f51 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -4,6 +4,8 @@
i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP"
i18n_default_font="latarcyrheb-sun16"
i18n_install_all="yes"
+
+
stdloglvl=3
sysloglvl=5
install_optional_items+=" vi /etc/virc ps grep cat rm "
@@ -13,3 +15,4 @@ systemdsystemunitdir=/usr/lib/systemd/system
systemdsystemconfdir=/etc/systemd/system
udevdir=/usr/lib/udev
hostonly="yes"
+early_microcode="yes"

View File

@ -1,154 +0,0 @@
From 80626ded3e849ba840ddd64c1713be5abb1c7449 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 3 Jul 2014 12:52:58 +0200
Subject: [PATCH] Generate reproducible initramfs images
With the same source of files, it should be possible to generate the
same image file with every dracut run.
To accomplish this, we modify the timestamps of the files we generate at
runtime, call gzip with "-n" and cpio with "--reproducible".
The cpio --reproducible option is not yet upstream though, so if you
feel like it should be then please nag at the cpio mailing list.
http://lists.gnu.org/archive/html/bug-cpio/2014-08/msg00000.html
---
dracut.8.asc | 3 +++
dracut.conf.5.asc | 3 +++
dracut.sh | 40 ++++++++++++++++++++++++++++++++++------
3 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/dracut.8.asc b/dracut.8.asc
index 51a4e9f..44530bd 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -412,6 +412,9 @@ will not be able to boot.
Do not compress the generated initramfs. This will override any other
compression options.
+**--reproducible**::
+ Create reproducible images.
+
**--list-modules**::
List all available dracut modules.
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index 0b6be6a..9259951 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -179,6 +179,9 @@ provide a valid _/etc/fstab_.
*i18n_install_all=*"__{yes|no}__"::
Install everything regardless of generic or hostonly mode.
+*reproducible=*"__{yes|no}__"::
+ Create reproducible images.
+
Files
-----
_/etc/dracut.conf_::
diff --git a/dracut.sh b/dracut.sh
index 1844336..2cce85b 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -191,6 +191,7 @@ Creates initial ramdisk images for preloading modules
--printsize Print out the module install size
--sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module)
--logfile [FILE] Logfile to use (overrides configuration setting)
+ --reproducible Create reproducible images
If [LIST] has multiple arguments, then you have to put these in quotes.
@@ -372,6 +373,7 @@ rearrange_params()
--long noimageifnotneeded \
--long early-microcode \
--long no-early-microcode \
+ --long reproducible \
-- "$@")
if (( $? != 0 )); then
@@ -557,7 +559,7 @@ while :; do
--printsize) printsize="yes";;
--regenerate-all) regenerate_all="yes";;
--noimageifnotneeded) noimageifnotneeded="yes";;
-
+ --reproducible) reproducible_l="yes";;
--) shift; break;;
*) # should not even reach this point
@@ -801,6 +803,8 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $early_microcode_l ]] && early_microcode=$early_microcode_l
[[ $early_microcode ]] || early_microcode=no
[[ $logfile_l ]] && logfile="$logfile_l"
+[[ $reproducible_l ]] && reproducible="$reproducible_l"
+
# eliminate IFS hackery when messing with fw_dir
fw_dir=${fw_dir//:/ }
@@ -810,7 +814,7 @@ case $compress in
bzip2) compress="bzip2 -9";;
lzma) compress="lzma -9 -T0";;
xz) compress="xz --check=crc32 --lzma2=dict=1MiB -T0";;
- gzip) compress="gzip -9"; command -v pigz > /dev/null 2>&1 && compress="pigz -9";;
+ gzip) compress="gzip -n -9 --rsyncable"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
lzo) compress="lzop -9";;
lz4) compress="lz4 -l -9";;
esac
@@ -821,6 +825,8 @@ fi
[[ $hostonly = yes ]] && hostonly="-h"
[[ $hostonly != "-h" ]] && unset hostonly
+[[ $reproducible == yes ]] && DRACUT_REPRODUCIBLE=1
+
readonly TMPDIR="$tmpdir"
readonly initdir="$(mktemp --tmpdir="$TMPDIR/" -d -t initramfs.XXXXXX)"
[ -d "$initdir" ] || {
@@ -1498,7 +1504,7 @@ if [[ $acpi_override = yes ]] && [[ -d $acpi_table_dir ]]; then
mkdir -p $_dest_dir
for table in $acpi_table_dir/*.aml; do
dinfo " Adding ACPI table: $table"
- cp $table $_dest_dir
+ cp -a $table $_dest_dir
create_early_cpio="yes"
done
fi
@@ -1512,15 +1518,37 @@ fi
rm -f -- "$outfile"
dinfo "*** Creating image file ***"
+if [[ $DRACUT_REPRODUCIBLE ]]; then
+ find "$initdir" -newer "$dracutbasedir/dracut-functions.sh" -print0 \
+ | xargs -r -0 touch -h -m -c -r "$dracutbasedir/dracut-functions.sh"
+
+ [[ "$(cpio --help)" == *--reproducible* ]] && CPIO_REPRODUCIBLE=1
+fi
+
[[ "$UID" != 0 ]] && cpio_owner_root="-R 0:0"
if [[ $create_early_cpio = yes ]]; then
echo 1 > "$early_cpio_dir/d/early_cpio"
+
+ if [[ $DRACUT_REPRODUCIBLE ]]; then
+ find "$early_cpio_dir/d" -newer "$dracutbasedir/dracut-functions.sh" -print0 \
+ | xargs -r -0 touch -h -m -c -r "$dracutbasedir/dracut-functions.sh"
+ fi
+
# The microcode blob is _before_ the initramfs blob, not after
- (cd "$early_cpio_dir/d"; find . -print0 | cpio --null $cpio_owner_root -H newc -o --quiet > $outfile)
+ (
+ cd "$early_cpio_dir/d"
+ find . -print0 | sort -z \
+ | cpio ${CPIO_REPRODUCIBLE:+--reproducible} --null $cpio_owner_root -H newc -o --quiet > $outfile
+ )
fi
-if ! ( umask 077; cd "$initdir"; find . -print0 | cpio --null $cpio_owner_root -H newc -o --quiet | \
- $compress >> "$outfile"; ); then
+
+if ! (
+ umask 077; cd "$initdir"
+ find . -print0 | sort -z \
+ | cpio ${CPIO_REPRODUCIBLE:+--reproducible} --null $cpio_owner_root -H newc -o --quiet \
+ | $compress >> "$outfile"
+ ); then
dfatal "dracut: creation of $outfile failed"
exit 1
fi

View File

@ -1,24 +0,0 @@
From 99128f2b64775313866b1d4edd3cd6220be937f8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 15 Aug 2014 14:03:39 +0200
Subject: [PATCH] Makefile:rpm: wget the lgpl license for Source1
---
Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 7383309..f68960a 100644
--- a/Makefile
+++ b/Makefile
@@ -188,7 +188,9 @@ rpm: dracut-$(VERSION).tar.xz syncheck
rpmbuild=$$(mktemp -d -t rpmbuild-dracut.XXXXXX); src=$$(pwd); \
cp dracut-$(VERSION).tar.xz "$$rpmbuild"; \
LC_MESSAGES=C $$src/git2spec.pl $(VERSION) "$$rpmbuild" < dracut.spec > $$rpmbuild/dracut.spec; \
- (cd "$$rpmbuild"; rpmbuild --define "_topdir $$PWD" --define "_sourcedir $$PWD" \
+ (cd "$$rpmbuild"; \
+ wget https://www.gnu.org/licenses/lgpl-2.1.txt; \
+ rpmbuild --define "_topdir $$PWD" --define "_sourcedir $$PWD" \
--define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \
--define "_rpmdir $$PWD" -ba dracut.spec; ) && \
( mv "$$rpmbuild"/$$(arch)/*.rpm .; mv "$$rpmbuild"/*.src.rpm .;rm -fr -- "$$rpmbuild"; ls *.rpm )

View File

@ -1,31 +0,0 @@
From 95957248a18cd1bd87d017b1b9ec81f2e193be45 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 15 Aug 2014 14:56:42 +0200
Subject: [PATCH] 51-dracut-rescue.install: fixed /proc/cmdline read
---
51-dracut-rescue.install | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/51-dracut-rescue.install b/51-dracut-rescue.install
index b655bc2..677805a 100755
--- a/51-dracut-rescue.install
+++ b/51-dracut-rescue.install
@@ -45,7 +45,7 @@ if [[ -f /etc/kernel/cmdline ]]; then
readarray -t BOOT_OPTIONS < /etc/kernel/cmdline
fi
if ! [[ "${BOOT_OPTIONS[@]}" ]]; then
- readarray -t BOOT_OPTIONS < /proc/cmdline
+ read -ar BOOT_OPTIONS < /proc/cmdline
fi
if ! [[ $BOOT_OPTIONS ]]; then
exit 1
@@ -75,7 +75,7 @@ case "$COMMAND" in
echo "Can't copy '$KERNEL_IMAGE to '$BOOT_DIR_ABS/linux'!" >&2
fi
- dracut --no-hostonly -a "rescue" "$BOOT_DIR_ABS"/initrd "$2"
+ dracut --no-hostonly -a "rescue" "$BOOT_DIR_ABS"/initrd "$KERNEL_VERSION"
((ret+=$?))
{

View File

@ -1,68 +0,0 @@
From ccb8ce0403056fc9af5b010a8d279d3891cbc399 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 15 Aug 2014 14:58:02 +0200
Subject: [PATCH] 50-dracut.install: fixed /proc/cmdline reading
and beautified the code a bit
---
50-dracut.install | 40 ++++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 18 deletions(-)
diff --git a/50-dracut.install b/50-dracut.install
index 0282741..b0cc7c3 100755
--- a/50-dracut.install
+++ b/50-dracut.install
@@ -2,31 +2,35 @@
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
-if [[ -f /etc/kernel/cmdline ]]; then
- readarray -t BOOT_OPTIONS < /etc/kernel/cmdline
-fi
+COMMAND="$1"
+KERNEL_VERSION="$2"
+BOOT_DIR_ABS="$3"
+KERNEL_IMAGE="$4"
-if ! [[ "${BOOT_OPTIONS[@]}" ]]; then
- readarray -t BOOT_OPTIONS < /proc/cmdline
-fi
+ret=0
+case "$COMMAND" in
+ add)
+ if [[ -f /etc/kernel/cmdline ]]; then
+ readarray -t BOOT_OPTIONS < /etc/kernel/cmdline
+ fi
-unset noimageifnotneeded
+ if ! [[ "${BOOT_OPTIONS[@]}" ]]; then
+ read -ar BOOT_OPTIONS < /proc/cmdline
+ fi
-for ((i=0; i < "${#BOOT_OPTIONS[@]}"; i++)); do
- if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then
- noimageifnotneeded="yes"
- break
- fi
-done
+ unset noimageifnotneeded
-ret=0
-case "$1" in
- add)
- dracut ${noimageifnotneeded:+--noimageifnotneeded} "$3"/initrd "$2"
+ for ((i=0; i < "${#BOOT_OPTIONS[@]}"; i++)); do
+ if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then
+ noimageifnotneeded="yes"
+ break
+ fi
+ done
+ dracut ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS"/initrd "$KERNEL_VERSION"
ret=$?
;;
remove)
- rm -f -- "$3"/initrd
+ rm -f -- "$BOOT_DIR_ABS"/initrd
ret=$?
;;
esac

View File

@ -1,32 +0,0 @@
From bc140a0b299d6f873f6d583d85cbdbc40afbc964 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 15 Aug 2014 14:58:34 +0200
Subject: [PATCH] 50-dracut.install: install pregenerated initrd
If there is an already pregenerated initrd at the same location as the
kernel install that and do not generate a new one.
---
50-dracut.install | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/50-dracut.install b/50-dracut.install
index b0cc7c3..ad5fc0e 100755
--- a/50-dracut.install
+++ b/50-dracut.install
@@ -10,6 +10,16 @@ KERNEL_IMAGE="$4"
ret=0
case "$COMMAND" in
add)
+ INITRD_IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/initrd
+ if [[ -f ${INITRD_IMAGE_PREGENERATED} ]]; then
+ # we found an initrd at the same place as the kernel
+ # use this and don't generate a new one
+ cp "$INITRD_IMAGE_PREGENERATED" "$BOOT_DIR_ABS/initrd" \
+ && chown root:root "$BOOT_DIR_ABS/initrd" \
+ && chmod 0600 "$BOOT_DIR_ABS/initrd" \
+ && exit 0
+ fi
+
if [[ -f /etc/kernel/cmdline ]]; then
readarray -t BOOT_OPTIONS < /etc/kernel/cmdline
fi

View File

@ -1,26 +0,0 @@
From 03901ba727136d02f76a2ec6ad6cc9a971b1dd10 Mon Sep 17 00:00:00 2001
From: Fedora dracut team <dracut-maint@redhat.com>
Date: Fri, 26 Sep 2014 08:49:24 -0400
Subject: [PATCH] Enable early-microcode by default
See bug 1083716
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 2cce85b..e4f171b 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -801,7 +801,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $nofscks_l ]] && nofscks="yes"
[[ $ro_mnt_l ]] && ro_mnt="yes"
[[ $early_microcode_l ]] && early_microcode=$early_microcode_l
-[[ $early_microcode ]] || early_microcode=no
+[[ $early_microcode ]] || early_microcode=yes
[[ $logfile_l ]] && logfile="$logfile_l"
[[ $reproducible_l ]] && reproducible="$reproducible_l"
--
1.9.3

View File

@ -1,25 +0,0 @@
From c434437890ee3fd949830b294955318863edce3b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 30 Sep 2014 07:55:11 -0400
Subject: [PATCH] dmsquash-live: treat cancelled check as successfull
Also remove JobTimeout=0 setting, it is the default for Type=oneshot.
https://bugzilla.redhat.com/show_bug.cgi?id=1147941
---
modules.d/90dmsquash-live/checkisomd5@.service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90dmsquash-live/checkisomd5@.service b/modules.d/90dmsquash-live/checkisomd5@.service
index 20e40bd7c8..1efb4a7b45 100644
--- a/modules.d/90dmsquash-live/checkisomd5@.service
+++ b/modules.d/90dmsquash-live/checkisomd5@.service
@@ -10,4 +10,4 @@ ExecStart=/bin/checkisomd5 --verbose %f
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
-TimeoutSec=0
+SuccessExitStatus=2
--
1.9.3

View File

@ -10,8 +10,8 @@
%endif
Name: dracut
Version: 038
Release: 36.git20140815%{?dist}
Version: 040
Release: 29.git20141204%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@ -30,41 +30,34 @@ 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-modsign-do-not-hardcode-path-to-keyctl.patch
Patch2: 0002-lvm-module-setup.sh-check-for-existance-of-69-dm-lvm.patch
Patch3: 0003-dracut.sh-always-copy-prelink-files-in-FIPS-mode.patch
Patch4: 0004-plymouth-also-find-the-pkglibdir-on-debian.patch
Patch5: 0005-dracut-functions.sh-speed-up-ldconfig_paths.patch
Patch6: 0006-Installing-an-OS-with-VLAN-enabled-to-an-ISCSI-LUN-f.patch
Patch7: 0007-dracut-functions.sh-fix-inst-functions-for-H-handlin.patch
Patch8: 0008-ARM-update-modules-for-ARM-host-only-options.patch
Patch9: 0009-base-dracut-lib-pidof-turn-off-debugging.patch
Patch10: 0010-network-add-rd.route-parameter.patch
Patch11: 0011-add-install-optional-and-install_optional_items.patch
Patch12: 0012-test-TEST-30-ISCSI-add-rd.shell-to-client-root.patch
Patch13: 0013-dracut.sh-add-DRACUT_PATH.patch
Patch14: 0014-dracut.spec-fixed-license-file-packaging.patch
Patch15: 0015-NEWS-update.patch
Patch16: 0016-TEST-20-NFS-client-init.sh-add-shell-on-rd.shell.patch
Patch17: 0017-TEST-20-NFS-add-more-commands-and-fix-client-root-di.patch
Patch18: 0018-fixed-bridge-setup.patch
Patch19: 0019-test-make-testsuite-work-with-the-new-systemd-minima.patch
Patch20: 0020-bridging-update-the-ifcfg-files-generated-for-bridge.patch
Patch21: 0021-i18n-check-for-i18n_install_all-yes-rather-than-bein.patch
Patch22: 0022-dracut.usage.asc-extend-parameters-for-shutdown-debu.patch
Patch23: 0023-dracut.usage.asc-also-add-a-link-for-RHEL-7-storage-.patch
Patch24: 0024-dracut-functions-get_persistent_dev-fall-back-to-the.patch
Patch25: 0025-Test-soc-path-for-modalias-needed-by-drm.patch
Patch26: 0026-Categorize-needed-modules-on-ARM.patch
Patch27: 0027-Introduce-ARM-specific-modules-needed-by-drm.patch
Patch28: 0028-dracut-functions.sh-get_persistent_dev-use-printf-in.patch
Patch29: 0029-Generate-reproducible-initramfs-images.patch
Patch30: 0030-Makefile-rpm-wget-the-lgpl-license-for-Source1.patch
Patch31: 0031-51-dracut-rescue.install-fixed-proc-cmdline-read.patch
Patch32: 0032-50-dracut.install-fixed-proc-cmdline-reading.patch
Patch33: 0033-50-dracut.install-install-pregenerated-initrd.patch
Patch34: 0034-Enable-early-microcode-by-default.patch
Patch35: 0035-dmsquash-live-treat-cancelled-check-as-successfull.patch
Patch1: 0001-shutdown-shutdown.sh-loop-over-shutdown-hooks-until-.patch
Patch2: 0002-NEWS-add-040-entry.patch
Patch3: 0003-fix-gzip-compress-then-it-not-supports-rsyncable-opt.patch
Patch4: 0004-ifcfg-write-ifcfg-only-write-DEVICE-for-non-kernel-n.patch
Patch5: 0005-Fix-location-of-dracut-install-for-local-mode.patch
Patch6: 0006-dracut-functions.sh-fixup-for-34a1ec6-for-non-local-.patch
Patch7: 0007-shutdown.sh-correct-return-code-of-_check_shutdown.patch
Patch8: 0008-kernel-modules-Drop-explicit-modules-that-are-found-.patch
Patch9: 0009-40network-Copy-the-customize-dhcp-config.patch
Patch10: 0010-dracut.sh-don-t-check-gzip-for-rsyncable-if-pigz-is-.patch
Patch11: 0011-systemd-add-90-vconsole.rules.patch
Patch12: 0012-base-Set-udevd-log-level-via-environment-var-to-cove.patch
Patch13: 0013-multipath-add-rd.multipath-0-option.patch
Patch14: 0014-TODO-update.patch
Patch15: 0015-dracut-functions.sh-check-if-dinfo-is-a-function.patch
Patch16: 0016-90multipath-Install-libgcc_s-library.patch
Patch17: 0017-90multipath-Load-device_handler-modules-early-during.patch
Patch18: 0018-90multipath-install-dracut-specific-service-file.patch
Patch19: 0019-multipath-multipathd.service-add-more-Conditions.patch
Patch20: 0020-dmsquash-live-do-not-abort-if-user-pressed-ESC-on-ch.patch
Patch21: 0021-fips-add-libfreeblpriv3.so-and-libfreeblpriv3.chk.patch
Patch22: 0022-base-init.sh-ignore-exclamation-mark-for-kmod-static.patch
Patch23: 0023-dracut.sh-add-tmpfilesdir-to-install-files-to-usr-li.patch
Patch24: 0024-do-not-symlink-var-log-to-run-log.patch
Patch25: 0025-cms-cms-write-ifcfg.sh-turn-SUBCHANNELS-into-lowerca.patch
Patch26: 0026-40network-Fix-the-syntax-to-correct-the-judgment-sen.patch
Patch27: 0027-initrd-release-move-from-etc-to-usr-lib.patch
Patch28: 0028-dracut.conf.d-fedora.conf.example-turn-on-early_micr.patch
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
@ -435,7 +428,7 @@ rm -rf -- $RPM_BUILD_ROOT
%dir %{_sharedstatedir}/initramfs
%if %{defined _unitdir}
%{_unitdir}/dracut-shutdown.service
%{_unitdir}/shutdown.target.wants/dracut-shutdown.service
%{_unitdir}/sysinit.target.wants/dracut-shutdown.service
%{_unitdir}/dracut-cmdline.service
%{_unitdir}/dracut-initqueue.service
%{_unitdir}/dracut-mount.service
@ -513,6 +506,9 @@ rm -rf -- $RPM_BUILD_ROOT
%endif
%changelog
* Thu Dec 04 2014 Harald Hoyer <harald@redhat.com> 040-29.git20141204
- git snapshot
* Tue Sep 30 2014 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 038-36.git20140815
- Allow media check to be cancelled (rhbz 1147941)