dracut-034-62.git20131205

- fixed PATH shortener
- also install /etc/system-fips in the initramfs
- nbd, do not fail in hostonly mode
- add ohci-pci to the list of hardcoded modules
- lvm: do not run pvscan for lvmetad
- network fixes
- skip crypt swaps with password files
- fixed i18n
This commit is contained in:
Harald Hoyer 2013-12-05 17:38:32 +01:00
parent 55473f736f
commit 4734ecf5fb
39 changed files with 2163 additions and 4 deletions

View File

@ -0,0 +1,22 @@
From cf3fd99e72745b894a5c787277f90305f2ea1215 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Sat, 2 Nov 2013 13:14:40 +0100
Subject: [PATCH] dracut.sh: fixed PATH shortener
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index ae792c4..03472ba 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -533,7 +533,7 @@ for i in /usr/sbin /sbin /usr/bin /bin; do
if [ -L "$i" ]; then
rl=$(readlink -f $i)
fi
- if [[ "$NPATH" != "*:$rl*" ]] ; then
+ if [[ "$NPATH" != *:$rl* ]] ; then
NPATH+=":$rl"
fi
done

View File

@ -0,0 +1,21 @@
From 095fa1559178522029ad854017a0c83d4979e876 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Sat, 2 Nov 2013 13:20:32 +0100
Subject: [PATCH] dracut.modules.7.asc: removed empty section
---
dracut.modules.7.asc | 1 -
1 file changed, 1 deletion(-)
diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc
index 4cb2aa1..17acdb4 100644
--- a/dracut.modules.7.asc
+++ b/dracut.modules.7.asc
@@ -10,7 +10,6 @@ dracut.modules - dracut modules
DESCRIPTION
-----------
-== dracut Components
dracut uses a modular system to build and extend the initramfs image. All
modules are located in _/usr/lib/dracut/modules.d_ or in _<git-src>/modules.d_.

View File

@ -0,0 +1,20 @@
From 185e940e27eb8c1658556d17b30ac60a16894502 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 4 Nov 2013 17:29:15 +0100
Subject: [PATCH] fips: also install /etc/system-fips in the initramfs
---
modules.d/01fips/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index fb5a5cd..a4081dc 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -45,5 +45,6 @@ install() {
libssl.so 'hmaccalc/sha512hmac.hmac' libssl.so.10
inst_multiple -o prelink
+ inst_simple /etc/system-fips
}

View File

@ -0,0 +1,43 @@
From 1d50dfe6025126c38b1d23815360bd48e9e8c24c Mon Sep 17 00:00:00 2001
From: Colin Guthrie <colin@mageia.org>
Date: Sat, 2 Nov 2013 11:26:30 +0000
Subject: [PATCH] dracut-functions.sh: Avoid loading unnecessary 32-bit
libraries for 64-bit initrds
Due to the 'inst_libdir_file "libnss_files*"' in the udev-rules module
this caues the /usr/lib/libnss_files-2.18.so* to be included. This is a
32-bit library and pulls in a 32-bit version of glibc also even on a
64-bit system.
This is due to the fact that ldconfig -pN will print [/usr]/lib paths
from the cache as well as [/usr]/lib64. As we handle these paths
specifically we should ignore these results from the cache.
Also there was a missing space when appending the ldconfig paths
onto our list meaning the last builtin and first ldconfig path
were unusable.
---
dracut-functions.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 38095ba..2872516 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -65,6 +65,7 @@ ldconfig_paths()
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[@]}
@@ -81,7 +82,7 @@ if ! [[ $libdirs ]] ; then
[[ -d /usr/lib ]] && libdirs+=" /usr/lib"
fi
- libdirs+="$(ldconfig_paths)"
+ libdirs+=" $(ldconfig_paths)"
export libdirs
fi

View File

@ -0,0 +1,36 @@
From c2ab99093817d4694c0360b77845b8f2a8a10caf Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 11 Nov 2013 16:57:09 +0100
Subject: [PATCH] iscsi,nbd: do not fail in hostonly mode
---
modules.d/95iscsi/module-setup.sh | 2 +-
modules.d/95nbd/module-setup.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
index c8051bd..8379f4b 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -24,7 +24,7 @@ check() {
[[ $hostonly ]] || [[ $mount_needs ]] && {
pushd . >/dev/null
- for_each_host_dev_and_slaves is_iscsi || return 1
+ for_each_host_dev_and_slaves is_iscsi || return 255
popd >/dev/null
}
return 0
diff --git a/modules.d/95nbd/module-setup.sh b/modules.d/95nbd/module-setup.sh
index ac30823..37ace21 100755
--- a/modules.d/95nbd/module-setup.sh
+++ b/modules.d/95nbd/module-setup.sh
@@ -15,7 +15,7 @@ check() {
_rootdev=$(find_root_block_device)
[[ -b /dev/block/$_rootdev ]] || return 1
- check_block_and_slaves is_nbd "$_rootdev" || return 1
+ check_block_and_slaves is_nbd "$_rootdev" || return 255
}
return 0

View File

@ -0,0 +1,27 @@
From 7e4f74f5040fc3f4e7646695b54c5c11b0b95c62 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 11 Nov 2013 16:57:32 +0100
Subject: [PATCH] systemd: do not exit the initqueue, if systemd asks a
password
this prevents bailing out the initqueue, while passwords are still to be
asked
---
modules.d/98systemd/dracut-initqueue.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
index d7ebf2b..64e8154 100755
--- a/modules.d/98systemd/dracut-initqueue.sh
+++ b/modules.d/98systemd/dracut-initqueue.sh
@@ -52,6 +52,10 @@ while :; do
# no more udev jobs and queues empty.
sleep 0.5
+ for i in /run/systemd/ask-password/ask.*; do
+ [ -e "$i" ] && continue
+ done
+
if [ $main_loop -gt $((2*$RDRETRY/3)) ]; then
for job in $hookdir/initqueue/timeout/*.sh; do
[ -e "$job" ] || break

View File

@ -0,0 +1,35 @@
From a3bfaa191958c4b70d6c674f972c3b911f8b1bfa Mon Sep 17 00:00:00 2001
From: Vratislav Podzimek <vpodzime@redhat.com>
Date: Wed, 13 Nov 2013 13:20:39 +0100
Subject: [PATCH] Run 'xz' and 'lzma' with multiple threads
This speeds up compression a lot on multicore systems.
https://bugzilla.redhat.com/show_bug.cgi?id=1029786
[Edited-by: Harald Hoyer: use getconf for cpu_count]
---
dracut.sh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 03472ba..bce2662 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -693,12 +693,14 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
# eliminate IFS hackery when messing with fw_dir
fw_dir=${fw_dir//:/ }
+cpu_count=$(getconf _NPROCESSORS_ONLN)
+
# handle compression options.
[[ $compress ]] || compress="gzip"
case $compress in
bzip2) compress="bzip2 -9";;
- lzma) compress="lzma -9";;
- xz) compress="xz --check=crc32 --lzma2=dict=1MiB";;
+ lzma) compress="lzma -9 ${cpu_count:+-T$cpu_count}";;
+ xz) compress="xz --check=crc32 --lzma2=dict=1MiB ${cpu_count:+-T$cpu_count}";;
gzip) compress="gzip -9"; command -v pigz > /dev/null 2>&1 && compress="pigz -9";;
lzo) compress="lzop -9";;
lz4) compress="lz4 -9";;

View File

@ -0,0 +1,30 @@
From 28609baf6e9581ea97c4550340e2a6031c1b6fbd Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 14 Nov 2013 10:07:04 +0100
Subject: [PATCH] kernel-modules: add ohci-pci to the list of forced module
installs
---
modules.d/90kernel-modules/module-setup.sh | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 2100336..d65e92b 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -36,9 +36,12 @@ installkernel() {
return 0
}
- hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix \
- ehci-hcd ehci-pci ehci-platform ohci-hcd uhci-hcd xhci-hcd hid_generic \
- unix
+ hostonly='' instmods \
+ sr_mod sd_mod scsi_dh ata_piix hid_generic unix \
+ ehci-hcd ehci-pci ehci-platform \
+ ohci-hcd ohci-pci \
+ uhci-hcd \
+ xhci-hcd
instmods yenta_socket scsi_dh_rdac scsi_dh_emc \
atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech \

View File

@ -0,0 +1,36 @@
From 297b8edc050715d563d54cfa34e42bf5909b9a7b Mon Sep 17 00:00:00 2001
From: Peter Rajnoha <prajnoha@redhat.com>
Date: Mon, 25 Nov 2013 14:38:00 +0100
Subject: [PATCH] lvm: do not run pvscan for lvmetad update
The lvmetad daemon is not yet running in initramfs so there's no
need to run pvscan (or instantiate any lvm2-pvscan systemd service).
If pvscan was called in this case (either directly or via systemd
instantiated service), it would fail because there's no lvmetad
daemon to update. This could cause confusion, especially in systemd
instantiated service which is run only once!
---
modules.d/90lvm/module-setup.sh | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index 87374da..a220a55 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -76,6 +76,16 @@ install() {
fi
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 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
+
# Gentoo ebuild for LVM2 prior to 2.02.63-r1 doesn't install above rules
# files, but provides the one below:
inst_rules 64-device-mapper.rules

View File

@ -0,0 +1,39 @@
From 928da5744721842d3e02151323c3a1357baf0032 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 8 Nov 2013 15:06:18 +0100
Subject: [PATCH] fips: fix RHEV vmlinuz check
---
modules.d/01fips/fips.sh | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
index 98dd1c2..7fa48f1 100755
--- a/modules.d/01fips/fips.sh
+++ b/modules.d/01fips/fips.sh
@@ -60,8 +60,8 @@ do_rhevh_check()
KERNEL=$(uname -r)
kpath=${1}
- # If we're on RHEV-H, the kernel is in /dev/.initramfs/live/vmlinuz0
- HMAC_SUM_ORIG=$(cat /boot/.vmlinuz-${KERNEL}.hmac | while read a b; do printf "%s\n" $a; done)
+ # If we're on RHEV-H, the kernel is in /run/initramfs/live/vmlinuz0
+ HMAC_SUM_ORIG=$(cat $NEWROOT/boot/.vmlinuz-${KERNEL}.hmac | while read a b; do printf "%s\n" $a; done)
HMAC_SUM_CALC=$(sha512hmac $kpath | while read a b; do printf "%s\n" $a; done || return 1)
if [ -z "$HMAC_SUM_ORIG" ] || [ -z "$HMAC_SUM_CALC" ] || [ "${HMAC_SUM_ORIG}" != "${HMAC_SUM_CALC}" ]; then
warn "HMAC sum mismatch"
@@ -111,10 +111,10 @@ do_fips()
rmmod tcrypt
info "Checking integrity of kernel"
- if [ -e "$NEWROOT/dev/.initramfs/live/vmlinuz0" ]; then
- do_rhevh_check "$NEWROOT/dev/.initramfs/live/vmlinuz0" || return 1
- elif [ -e "$NEWROOT/dev/.initramfs/live/isolinux/vmlinuz0" ]; then
- do_rhevh_check "$NEWROOT/dev/.initramfs/live/isolinux/vmlinuz0" || return 1
+ if [ -e "/run/initramfs/live/vmlinuz0" ]; then
+ do_rhevh_check /run/initramfs/live/vmlinuz0 || return 1
+ elif [ -e "/run/initramfs/live/isolinux/vmlinuz0" ]; then
+ do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1
else
sha512hmac -c "/boot/.vmlinuz-${KERNEL}.hmac" || return 1
fi

View File

@ -0,0 +1,28 @@
From e38e73d5a683ce93146c147305278b9175def3a0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:30:52 +0100
Subject: [PATCH] dracut.cmdline.7.asc: document "server-ip" of "ip=" parameter
---
dracut.cmdline.7.asc | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 19bfb93..6a5fc8f 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -444,10 +444,12 @@ cannot be used in conjunction with the **ifname** argument for the
same <interface>.
=====================
-**ip=**__<client-IP>__:__<server-IP>__:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__:[:[__<mtu>__][:__<macaddr>__]]::
+**ip=**__<client-IP>__:[__<peer>__]:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__:[:[__<mtu>__][:__<macaddr>__]]::
explicit network configuration. If you want do define a IPv6 address, put it
in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple
- times.
+ times. __<peer>__ is optional and is the address of the remote endpoint
+ for pointopoint interfaces and it may be followed by a slash and a decimal number,
+ encoding the network prefix length.
+
=====================
<macaddr>::: optionally **set** <macaddr> on the <interface>. This

View File

@ -0,0 +1,31 @@
From e41f3f902512a91a286e14d6ffa52206c70ea5f6 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:32:00 +0100
Subject: [PATCH] dracut.sh:_get_fs_type() if block device exists return early
even, if no ID_FS_TYPE was found, return if the block device exists
---
dracut.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index bce2662..177b813 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -987,12 +987,12 @@ unset rest
_get_fs_type() {
[[ $1 ]] || return
- if [[ -b /dev/block/$1 ]] && ID_FS_TYPE=$(get_fs_env "/dev/block/$1"); then
- host_fs_types["$(readlink -f "/dev/block/$1")"]="$ID_FS_TYPE"
+ if [[ -b /dev/block/$1 ]]; then
+ ID_FS_TYPE=$(get_fs_env "/dev/block/$1") && host_fs_types["$(readlink -f "/dev/block/$1")"]="$ID_FS_TYPE"
return 1
fi
- if [[ -b $1 ]] && ID_FS_TYPE=$(get_fs_env "$1"); then
- host_fs_types["$(readlink -f "$1")"]="$ID_FS_TYPE"
+ if [[ -b $1 ]]; then
+ ID_FS_TYPE=$(get_fs_env "$1") && host_fs_types["$(readlink -f "$1")"]="$ID_FS_TYPE"
return 1
fi
if fstype=$(find_dev_fstype "$1"); then

View File

@ -0,0 +1,23 @@
From 56ee31ccfec50f40bade2127eb1fae041a81f16a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:34:18 +0100
Subject: [PATCH] network/net-lib.sh:wait_for_if_up() wait for "state UP"
really wait for "state UP", otherwise it returns earlier than we want
---
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 88e72ec..0aa312a 100644
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -443,7 +443,7 @@ wait_for_if_up() {
local li
while [ $cnt -lt 200 ]; do
li=$(ip -o link show up dev $1)
- [ -n "$li" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*state UP*}" ] && return 0
sleep 0.1
cnt=$(($cnt+1))
done

View File

@ -0,0 +1,73 @@
From 7c8da72c11b74a1759e0ebbabe003d69a4459114 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:36:42 +0100
Subject: [PATCH] network/net-lib.sh:iface_has_link() fixup
Just echo'ing the flags IFF_UP|IFF_RUNNING does _not_ reflect the
carrier state immediately. So wait for it to really show up.
---
modules.d/40network/net-lib.sh | 47 +++++++++++++++++++++---------------------
1 file changed, 23 insertions(+), 24 deletions(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index 0aa312a..7544401 100644
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -28,30 +28,6 @@ iface_for_mac() {
done
}
-iface_has_link() {
- local interface="$1" flags=""
- [ -n "$interface" ] || return 2
- interface="/sys/class/net/$interface"
- [ -d "$interface" ] || return 2
- flags=$(cat $interface/flags)
- echo $(($flags|0x41)) > $interface/flags # 0x41: IFF_UP|IFF_RUNNING
- [ "$(cat $interface/carrier)" = 1 ] || return 1
- # XXX Do we need to reset the flags here? anaconda never bothered..
-}
-
-find_iface_with_link() {
- local iface_path="" iface=""
- for iface_path in /sys/class/net/*; do
- iface=${iface_path##*/}
- str_starts "$iface" "lo" && continue
- if iface_has_link $iface; then
- echo "$iface"
- return 0
- fi
- done
- return 1
-}
-
# get the iface name for the given identifier - either a MAC, IP, or iface name
iface_name() {
case $1 in
@@ -483,3 +459,26 @@ type hostname >/dev/null 2>&1 || \
hostname() {
cat /proc/sys/kernel/hostname
}
+
+iface_has_link() {
+ local interface="$1" flags=""
+ [ -n "$interface" ] || return 2
+ interface="/sys/class/net/$interface"
+ [ -d "$interface" ] || return 2
+ linkup "$1"
+ [ "$(cat $interface/carrier)" = 1 ] || return 1
+ # XXX Do we need to reset the flags here? anaconda never bothered..
+}
+
+find_iface_with_link() {
+ local iface_path="" iface=""
+ for iface_path in /sys/class/net/*; do
+ iface=${iface_path##*/}
+ str_starts "$iface" "lo" && continue
+ if iface_has_link $iface; then
+ echo "$iface"
+ return 0
+ fi
+ done
+ return 1
+}

View File

@ -0,0 +1,25 @@
From 271cd19dbe895c24b1f70fa5c6bbecace3b97f4d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:38:21 +0100
Subject: [PATCH] network/ifup.sh: before doing dhcp, check, if the link has a
carrier
---
modules.d/40network/ifup.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 9f6f449..2edcfe6 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -87,6 +87,10 @@ do_dhcp() {
# dhclient-script will mark the netif up and generate the online
# event for nfsroot
# XXX add -V vendor class and option parsing per kernel
+ if ! iface_has_link $netif; then
+ echo "No carrier detected"
+ return 1
+ fi
echo "Starting dhcp for interface $netif"
dhclient "$@" -1 -q -cf /etc/dhclient.conf -pf /tmp/dhclient.$netif.pid -lf /tmp/dhclient.$netif.lease $netif \
|| echo "dhcp failed"

View File

@ -0,0 +1,39 @@
From b92896ece49d27741f41e915c4673bde2a9bcb1f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:39:36 +0100
Subject: [PATCH] base/dracut-lib.sh:wait_for_dev() relax requirement
Do not "require" the devices, but "want" them. This might boot more
systems, where:
- the UUID changed
- swap devices do not show up
---
modules.d/99base/dracut-lib.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 0670cf2..970bcfb 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -863,9 +863,9 @@ wait_for_dev()
if [ -n "$DRACUT_SYSTEMD" ]; then
_name=$(dev_unit_name "$1")
- if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device ]; then
- [ -d ${PREFIX}/etc/systemd/system/initrd.target.requires ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.requires
- ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
+ if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device ]; then
+ [ -d ${PREFIX}/etc/systemd/system/initrd.target.wants ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.wants
+ ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device
fi
mkdir -p ${PREFIX}/etc/systemd/system/${_name}.device.d
@@ -885,7 +885,7 @@ cancel_wait_for_dev()
rm -f -- "$hookdir/emergency/80-${_name}.sh"
if [ -n "$DRACUT_SYSTEMD" ]; then
_name=$(dev_unit_name "$1")
- rm -f -- ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
+ rm -f -- ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device
rm -f -- ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
/sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
fi

View File

@ -0,0 +1,37 @@
From 40da1e5a319a02f30c585e0e963e75e4257d2bf7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 10:45:17 +0100
Subject: [PATCH] resume: autoconf resume
---
modules.d/95resume/module-setup.sh | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
index a172c27..ceb7855 100755
--- a/modules.d/95resume/module-setup.sh
+++ b/modules.d/95resume/module-setup.sh
@@ -16,8 +16,23 @@ check() {
}
# called by dracut
+cmdline() {
+ local _activated
+ declare -A _activated
+
+ for dev in "${!host_fs_types[@]}"; do
+ [[ ${host_fs_types[$dev]} =~ ^(swap|swsuspend|swsupend)$ ]] || continue
+ printf "resume=%s " "$(shorten_persistent_dev "$(get_persistent_dev "$dev")")"
+ done
+}
+
+# called by dracut
install() {
local _bin
+
+ cmdline >> "${initdir}/etc/cmdline.d/95resume.conf"
+ echo >> "${initdir}/etc/cmdline.d/95resume.conf"
+
# Optional uswsusp support
for _bin in /usr/sbin/resume /usr/lib/suspend/resume /usr/lib/uswsusp/resume
do

View File

@ -0,0 +1,98 @@
From 8064f68d602b45778afc3f32a703b8376609d019 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 11:02:34 +0100
Subject: [PATCH] resume: no more autoresume
---
modules.d/95resume/parse-resume.sh | 76 +++++++++++++++++++++-----------------
1 file changed, 43 insertions(+), 33 deletions(-)
diff --git a/modules.d/95resume/parse-resume.sh b/modules.d/95resume/parse-resume.sh
index bd4bcd3..c84dafb 100755
--- a/modules.d/95resume/parse-resume.sh
+++ b/modules.d/95resume/parse-resume.sh
@@ -36,41 +36,51 @@ case "$splash" in
;;
esac
-if [ -n "$resume" ]; then
- {
- printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
- ${resume#/dev/};
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
- ${resume#/dev/};
- } >> /etc/udev/rules.d/99-resume-link.rules
- {
- if [ -x /usr/sbin/resume ]; then
- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
- ${resume#/dev/} "$a_splash" "$resume";
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
- ${resume#/dev/} "$a_splash" "$resume";
- fi
- printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n" \
- ${resume#/dev/};
- printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n" \
- ${resume#/dev/};
- } >> /etc/udev/rules.d/99-resume.rules
+if ! getarg noresume; then
+ if [ -n "$resume" ]; then
+ {
+ printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ ${resume#/dev/};
+ printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ ${resume#/dev/};
+ } >> /etc/udev/rules.d/99-resume-link.rules
- printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm -f -- "$job" "%s/initqueue/timeout/resume.sh"; }\n' \
- "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh
+ {
+ if [ -x /usr/sbin/resume ]; then
+ printf -- "KERNEL==\"%s\", " "${resume#/dev/}"
+ printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
+ "$a_splash" "$resume";
+ printf -- "SYMLINK==\"%s\", " "${resume#/dev/}"
+ printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
+ "$a_splash" "$resume";
+ fi
+ printf -- "KERNEL==\"%s\", " ${resume#/dev/};
+ printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n"
+ printf -- "SYMLINK==\"%s\", " ${resume#/dev/};
+ printf -- "%s" "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n"
+ } >> /etc/udev/rules.d/99-resume.rules
- printf 'warn "Cancelling resume operation. Device not found."; cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";' \
- "$hookdir" >> $hookdir/initqueue/timeout/resume.sh
+ printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm -f -- "$job" "%s/initqueue/timeout/resume.sh"; }\n' \
+ "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh
- wait_for_dev "/dev/resume"
- mv /lib/dracut/resume.sh /lib/dracut/hooks/pre-mount/10-resume.sh
-elif ! getarg noresume; then
- {
- if [ -x /usr/sbin/resume ]; then
- printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \$tempnode\"\n" "$a_splash"
- fi
- echo "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\"," \
- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %M:%m > /sys/power/resume\"";
- } >> /etc/udev/rules.d/99-resume.rules
+ printf -- "%s" 'warn "Cancelling resume operation. Device not found.";'
+ printf -- ' cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";' \
+ "$hookdir" >> $hookdir/initqueue/timeout/resume.sh
+
+ mv /lib/dracut/resume.sh /lib/dracut/hooks/pre-mount/10-resume.sh
+ else
+ {
+ if [ -x /usr/sbin/resume ]; then
+ printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \$tempnode\"\n" "$a_splash"
+ fi
+ printf -- "%s" "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
+ printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %M:%m > /sys/power/resume\"";
+ } >> /etc/udev/rules.d/99-resume.rules
+ fi
fi

View File

@ -0,0 +1,22 @@
From 64ae4e07a4af4db2cdd1009ab484f89b4a6b9cb2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Dec 2013 11:05:21 +0100
Subject: [PATCH] dracut.sh: skip crypt swaps with password files
---
dracut.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dracut.sh b/dracut.sh
index 177b813..6975d90 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -947,6 +947,8 @@ if [[ $hostonly ]]; then
[[ $_mapper = \#* ]] && continue
[[ "$_d" -ef /dev/mapper/"$_mapper" ]] || continue
[[ "$_o" ]] || _o="$_p"
+ # skip entries with password files
+ [[ "$_p" == /* ]] && [[ -f $_p ]] && continue 2
# skip mkswap swap
[[ $_o == *swap* ]] && continue 2
done < /etc/crypttab

View File

@ -0,0 +1,41 @@
From b29cb51654db13706c7356aa827e554456b25b0a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 15:06:06 +0100
Subject: [PATCH] dracut-functions.sh: do not force require modules.builtin*
---
dracut-functions.sh | 7 -------
dracut.sh | 2 +-
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 2872516..04f4fea 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -1456,13 +1456,6 @@ dracut_kernel_post() {
wait $_pid
fi
- for _f in modules.builtin.bin modules.builtin; do
- [[ $srcmods/$_f ]] && break
- done || {
- dfatal "No modules.builtin.bin and modules.builtin found!"
- return 1
- }
-
for _f in modules.builtin.bin modules.builtin modules.order; do
[[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
done
diff --git a/dracut.sh b/dracut.sh
index 6975d90..5709874 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -501,7 +501,7 @@ if [[ $regenerate_all == "yes" ]]; then
cd /lib/modules
for i in *; do
- [[ -f $i/modules.builtin ]] || continue
+ [[ -f $i/modules.dep ]] || [[ -f $i/modules.dep.bin ]] || continue
dracut --kver="$i" "${dracut_args[@]}"
((ret+=$?))
done

View File

@ -0,0 +1,56 @@
From 443fb524877f28fd072f63c4dd98b74926d2513a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 15:06:39 +0100
Subject: [PATCH] 10i18n/parse-i18n.sh: fixed vconsole.conf/locale.conf
generation
---
modules.d/10i18n/parse-i18n.sh | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/modules.d/10i18n/parse-i18n.sh b/modules.d/10i18n/parse-i18n.sh
index 416a746..135c57b 100755
--- a/modules.d/10i18n/parse-i18n.sh
+++ b/modules.d/10i18n/parse-i18n.sh
@@ -6,28 +6,27 @@ inst_key_val() {
local _value
local _file
local _default
- _default=$1
- shift
- _file=$1
- shift
- _value=$(getarg $@)
+ _file="$1"; shift
+ _key="$1"; shift
+ _default="$1"; shift
+ _value="$(getarg $@)"
[ -z "${_value}" ] && _value=$_default
if [ -n "${_value}" ]; then
- printf '%s="%s"\n' $2 ${_value} >> $_file
+ printf '%s="%s"\n' $key ${_value} >> $_file
fi
unset _file
unset _value
}
-inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap vconsole.keymap KEYMAP -d KEYTABLE
-inst_key_val '' /etc/vconsole.conf rd.vconsole.font vconsole.font FONT -d SYSFONT
-inst_key_val '' /etc/vconsole.conf rd.vconsole.font.map vconsole.font.map FONT_MAP -d CONTRANS
-inst_key_val '' /etc/vconsole.conf rd.vconsole.font.unimap vconsole.font.unimap FONT_UNIMAP -d UNIMAP
-inst_key_val 1 /etc/vconsole.conf rd.vconsole.font.unicode vconsole.font.unicode UNICODE vconsole.unicode
-inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap.ext vconsole.keymap.ext EXT_KEYMAP
+inst_key_val /etc/vconsole.conf KEYMAP '' rd.vconsole.keymap KEYMAP -d KEYTABLE
+inst_key_val /etc/vconsole.conf FONT '' rd.vconsole.font FONT -d SYSFONT
+inst_key_val /etc/vconsole.conf FONT_MAP '' rd.vconsole.font.map FONT_MAP -d CONTRANS
+inst_key_val /etc/vconsole.conf FONT_UNIMAP '' rd.vconsole.font.unimap FONT_UNIMAP -d UNIMAP
+inst_key_val /etc/vconsole.conf UNICODE 1 rd.vconsole.font.unicode UNICODE vconsole.unicode
+inst_key_val /etc/vconsole.conf EXT_KEYMAP '' rd.vconsole.keymap.ext EXT_KEYMAP
-inst_key_val '' /etc/locale.conf rd.locale.LANG locale.LANG LANG
-inst_key_val '' /etc/locale.conf rd.locale.LC_ALL locale.LC_ALL LC_ALL
+inst_key_val /etc/locale.conf LANG '' rd.locale.LANG LANG
+inst_key_val /etc/locale.conf LC_ALL '' rd.locale.LC_ALL LC_ALL
if [ -f /etc/locale.conf ]; then
. /etc/locale.conf

View File

@ -0,0 +1,34 @@
From 690905cea07bdf1783c86522927efb5fd9b5a299 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:42 +0100
Subject: [PATCH] 95dasd: Install kernel modules only once
Move kernel module selection to 95dasd_mod and make 95dasd depend
on that module.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95dasd/module-setup.sh | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
index 861df29..16207bc 100755
--- a/modules.d/95dasd/module-setup.sh
+++ b/modules.d/95dasd/module-setup.sh
@@ -11,15 +11,11 @@ check() {
# called by dracut
depends() {
+ echo "dasd_mod"
return 0
}
# called by dracut
-installkernel() {
- instmods dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod
-}
-
-# called by dracut
install() {
inst_hook cmdline 30 "$moddir/parse-dasd.sh"
inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg

View File

@ -0,0 +1,25 @@
From 07cacb245547066c7b6a335509a0ed77ad227372 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:43 +0100
Subject: [PATCH] 95dasd: Only install module if normalize_dasd_arg is present
normalize_dasd_arg is a RedHat specific script, so no point
installing this module if the script isn't present.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95dasd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
index 16207bc..9c93d40 100755
--- a/modules.d/95dasd/module-setup.sh
+++ b/modules.d/95dasd/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
local _arch=$(uname -m)
+ [ -x /sbin/normalize_dasd_arg ] || return 1
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
return 0
}

View File

@ -0,0 +1,38 @@
From 8b2b77e460663b3fe45e0eea2f4a5babe4b731bc Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:44 +0100
Subject: [PATCH] 95dasd_mod: make dasd_cio_free optional
dasd_cio_free is a RedHat-specific tool, so make it optional.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95dasd_mod/module-setup.sh | 3 ++-
modules.d/95dasd_mod/parse-dasd-mod.sh | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh
index 011010d..8fde525 100755
--- a/modules.d/95dasd_mod/module-setup.sh
+++ b/modules.d/95dasd_mod/module-setup.sh
@@ -23,6 +23,7 @@ installkernel() {
# called by dracut
install() {
inst_hook cmdline 31 "$moddir/parse-dasd-mod.sh"
- inst_multiple dasd_cio_free grep sed seq
+ inst_multiple grep sed seq
+ inst_multiple -o dasd_cio_free
}
diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
index 87c88ed..0236d12 100755
--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
+++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
@@ -15,4 +15,6 @@ if [ -n "$mod_args" ]; then
fi
unset dasd_arg
-dasd_cio_free
+if [ -x /sbin/dasd_cio_free ] ; then
+ dasd_cio_free
+fi

View File

@ -0,0 +1,35 @@
From 61c0665dad633fdd2358a1a2ce5d25d282673c1a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:45 +0100
Subject: [PATCH] 95zfcp: Make installation optional
zfcp_cio_free is a RedHat-specific tool, so do not install this
module if the program isn't present.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95zfcp/module-setup.sh | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh
index 5d9b506..dfbeed5 100755
--- a/modules.d/95zfcp/module-setup.sh
+++ b/modules.d/95zfcp/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
arch=$(uname -m)
+ [ -x /sbin/zfcp_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
return 0
@@ -12,9 +13,6 @@ check() {
# called by dracut
depends() {
- arch=$(uname -m)
- [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
-
return 0
}

View File

@ -0,0 +1,25 @@
From dda7ae7dcdde7f9a00bbaebc7df7fbd7ed2f8ff0 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:46 +0100
Subject: [PATCH] 95znet: Make installation optional
znet_cio_free is a RedHat-specific tool, so do not install this
module on systems where the program is missing.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95znet/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/95znet/module-setup.sh b/modules.d/95znet/module-setup.sh
index 4c211a9..5012b77 100755
--- a/modules.d/95znet/module-setup.sh
+++ b/modules.d/95znet/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
arch=$(uname -m)
+ [ -z /sbin/znet_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
return 0

View File

@ -0,0 +1,152 @@
From bfa1db78cdcf6aaea09da560b578426fe663a05e Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:47 +0100
Subject: [PATCH] Add DASD configuration for SuSE
On SuSE the DASD configuration is kept in udev rules, one rule
file per device. So add a new module for copying and creating
these rules during boot.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
dracut-functions.sh | 28 +++++++++++++++++
modules.d/95dasd_rules/module-setup.sh | 27 ++++++++++++++++
modules.d/95dasd_rules/parse-dasd.sh | 56 ++++++++++++++++++++++++++++++++++
3 files changed, 111 insertions(+)
create mode 100755 modules.d/95dasd_rules/module-setup.sh
create mode 100755 modules.d/95dasd_rules/parse-dasd.sh
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 04f4fea..7cfa097 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -899,6 +899,34 @@ inst_rules() {
done
}
+inst_rules_wildcard() {
+ local _target=/etc/udev/rules.d _rule _found
+
+ inst_dir "${udevdir}/rules.d"
+ inst_dir "$_target"
+ for _rule in ${udevdir}/rules.d/$1 ${dracutbasedir}/rules.d/$1 ; do
+ if [[ -e $_rule ]]; then
+ inst_rule_programs "$_rule"
+ inst_rule_group_owner "$_rule"
+ inst_rule_initqueue "$_rule"
+ inst_simple "$_rule"
+ _found=$_rule
+ fi
+ done
+ if [ -n ${hostonly} ] ; then
+ for _rule in ${_target}/$1 ; do
+ if [[ -f $_rule ]]; then
+ inst_rule_programs "$_rule"
+ inst_rule_group_owner "$_rule"
+ inst_rule_initqueue "$_rule"
+ inst_simple "$_rule"
+ _found=$_rule
+ fi
+ done
+ fi
+ [[ $_found ]] || dinfo "Skipping udev rule: $_rule"
+}
+
prepare_udev_rules() {
[ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version)
diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh
new file mode 100755
index 0000000..d313171
--- /dev/null
+++ b/modules.d/95dasd_rules/module-setup.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ [ -x /sbin/dasd_configure ] || return 1
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ return 0
+}
+
+# called by dracut
+depends() {
+ echo 'dasd_mod'
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_multiple /usr/lib/udev/collect
+ inst_hook cmdline 30 "$moddir/parse-dasd.sh"
+ if [[ $hostonly ]] ; then
+ inst_rules_wildcard 51-dasd-*.rules
+ fi
+ inst_rules 59-dasd.rules
+}
diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh
new file mode 100755
index 0000000..9389c44
--- /dev/null
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+create_udev_rule() {
+ local ccw=$1
+ local _drv _cu_type _dev_type
+ local _rule=/etc/udev/rules.d/51-dasd-${ccw}.rules
+
+ if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
+ read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
+ read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
+ fi
+ case "$_cu_type" in
+ 3990/*|2105/*|2107/*|1750/*|9343/*)
+ _drv=dasd-eckd
+ ;;
+ 6310/*)
+ _drv=dasd-fba
+ ;;
+ 3880/*)
+ case "$_dev_type" in
+ 3380/*)
+ _drv=dasd_eckd
+ ;;
+ 3370/*)
+ _drv=dasd-fba
+ ;;
+ esac
+ ;;
+ esac
+ [ -z "${_drv}" ] && return 0
+
+ [ -e ${_rule} ] && return 0
+
+ cat > $_rule <<EOF
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="$_drv", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
+ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
+EOF
+}
+
+for dasd_arg in $(getargs root=) $(getargs resume=); do
+ (
+ case $dasd_arg in
+ /dev/disk/by-path/ccw-*)
+ ccw_arg=${dasd_arg##*/}
+ break;
+ esac
+ if [ -n "$ccw_arg" ] ; then
+ IFS="-"
+ set -- $ccw_arg
+ create_udev_rule $2
+ fi
+ )
+done

View File

@ -0,0 +1,118 @@
From d6f0467edf3895143713eab579f48df2be140178 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:48 +0100
Subject: [PATCH] Add zfcp scripts for SUSE
SuSE is storing the zfcp configuration in udev files, so we should
be including these.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/95zfcp_rules/module-setup.sh | 25 +++++++++++++
modules.d/95zfcp_rules/parse-zfcp.sh | 65 ++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
create mode 100755 modules.d/95zfcp_rules/module-setup.sh
create mode 100755 modules.d/95zfcp_rules/parse-zfcp.sh
diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh
new file mode 100755
index 0000000..9a1ab20
--- /dev/null
+++ b/modules.d/95zfcp_rules/module-setup.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ [ -x /sbin/zfcp_disk_configure ] || return 1
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ return 0
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_multiple /usr/lib/udev/collect
+ inst_hook cmdline 30 "$moddir/parse-zfcp.sh"
+ if [[ $hostonly ]] ; then
+ inst_rules_wildcard 51-zfcp-*.rules
+ fi
+}
diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh
new file mode 100755
index 0000000..24dbdd3
--- /dev/null
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+create_udev_rule() {
+ local ccw=$1
+ local wwpn=$2
+ local lun=$3
+ local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
+
+ local _cu_type _dev_type
+ local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
+
+ if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
+ read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
+ read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
+ fi
+ if [ "$_cu_type" != "1731/03" ] ; then
+ return 0;
+ fi
+ if [ "$_dev_type" != "1732/03" ] && [ "$_dev_type" != "1732/04" ] ; then
+ return 0;
+ fi
+
+ [ -e ${_rule} ] && return 0
+
+ if [ ! -f "$_rule" ] ; then
+ cat > $_rule <<EOF
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
+ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
+EOF
+ fi
+ m=$(sed -n "/.*${wwpn}.*${lun}.*/p" $_rule)
+ if [ -z "$m" ] ; then
+ cat >> $_rule <<EOF
+ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun"
+EOF
+ fi
+}
+
+for zfcp_arg in $(getargs rd.zfcp); do
+ (
+ IFS=","
+ set $zfcp_arg
+ create_udev_rule $1 $2 $3
+ )
+done
+
+for zfcp_arg in $(getargs root=) $(getargs resume=); do
+ (
+ case $zfcp_arg in
+ /dev/disk/by-path/ccw-*)
+ ccw_arg=${zfcp_arg##*/}
+ break;
+ esac
+ if [ -n "$ccw_arg" ] ; then
+ IFS="-"
+ set -- $ccw_arg
+ wwpn=${4%:*}
+ lun=${4#*:}
+ create_udev_rule $2 $wwpn $lun
+ fi
+ )
+done

View File

@ -0,0 +1,67 @@
From ee54b8404c10e29e5bddb633a4c7becb7acb0632 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:49 +0100
Subject: [PATCH] Make logfile configurable
Add '--logfile' option to make the log file configurable during
runtime.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
dracut.8.asc | 6 ++++++
dracut.sh | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/dracut.8.asc b/dracut.8.asc
index 2ea6744..d381dcf 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -275,6 +275,12 @@ Default:
**--sshkey** _<sshkey file>_:: ssh key file used with ssh-client module.
+**--logfile** _<logfile>_:: logfile to use; overrides any setting from
+ the configuration files.
++
+Default:
+ _/var/log/dracut.log_
+
**-l, --local**::
activates the local mode. dracut will use modules from the current working
directory instead of the system-wide installed modules in
diff --git a/dracut.sh b/dracut.sh
index 5709874..11dcd0e 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -183,6 +183,7 @@ Creates initial ramdisk images for preloading modules
--keep Keep the temporary initramfs for debugging purposes
--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)
If [LIST] has multiple arguments, then you have to put these in quotes.
@@ -335,6 +336,7 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \
--long debug \
--long profile \
--long sshkey: \
+ --long logfile: \
--long verbose \
--long quiet \
--long local \
@@ -418,6 +420,7 @@ while :; do
--debug) debug="yes";;
--profile) profile="yes";;
--sshkey) sshkey="$2"; shift;;
+ --logfile) logfile_l="$2"; shift;;
-v|--verbose) ((verbosity_mod_l++));;
-q|--quiet) ((verbosity_mod_l--));;
-l|--local)
@@ -690,6 +693,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $ro_mnt_l ]] && ro_mnt="yes"
[[ $early_microcode_l ]] && early_microcode=$early_microcode_l
[[ $early_microcode ]] || early_microcode=no
+[[ $logfile_l ]] && logfile="$logfile_l"
# eliminate IFS hackery when messing with fw_dir
fw_dir=${fw_dir//:/ }

View File

@ -0,0 +1,375 @@
From 2b3e22d60246e7c8bfa96a6d7504fb0bfa67e641 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:50 +0100
Subject: [PATCH] mkinitrd-suse: Add SUSE compability wrapper for dracut
SUSE has its own mkinitrd system. As the arguments clash
with the dracut-provided mkinitrd script I've added a new
mkinitrd-suse.sh wrapper.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
mkinitrd-suse.sh | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 354 insertions(+)
create mode 100755 mkinitrd-suse.sh
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
new file mode 100755
index 0000000..d20270a
--- /dev/null
+++ b/mkinitrd-suse.sh
@@ -0,0 +1,354 @@
+#!/bin/bash --norc
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+#
+# mkinitrd compability wrapper for SUSE.
+#
+# Copyright (c) 2013 SUSE Linux Products GmbH. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+boot_dir="/boot"
+quiet=0
+host_only=1
+force=0
+logfile=/var/log/YaST2/mkinitrd.log
+dracut_cmd=dracut
+
+error() { echo "$@" >&2; }
+
+usage () {
+ [[ $1 = '-n' ]] && cmd=echo || cmd=error
+
+ $cmd "usage: ${0##*/} [options]"
+ $cmd ""
+ $cmd " Create initial ramdisk images that contain all kernel modules needed"
+ $cmd " in the early boot process, before the root file system becomes"
+ $cmd " available."
+ $cmd " This usually includes SCSI and/or RAID modules, a file system module"
+ $cmd " for the root file system, or a network interface driver module for dhcp."
+ $cmd ""
+ $cmd " options:"
+ $cmd " -f \"feature list\" Features to be enabled when generating initrd."
+ $cmd " Available features are:"
+ $cmd " iscsi, md, multipath, lvm, lvm2,"
+ $cmd " ifup, fcoe, dcbd"
+ $cmd " -k \"kernel list\" List of kernel images for which initrd files are"
+ $cmd " created. Defaults to all kernels found in /boot."
+ $cmd " -i \"initrd list\" List of file names for the initrd; position have"
+ $cmd " match to \"kernel list\". Defaults to all kernels"
+ $cmd " found in /boot."
+ $cmd " -b boot_dir Boot directory. Defaults to /boot."
+ $cmd " -t tmp_dir Temporary directory. Defaults to /var/tmp."
+ $cmd " -M map System.map file to use."
+ $cmd " -A Create a so called \"monster initrd\" which"
+ $cmd " includes all features and modules possible."
+ $cmd " -B Do not update bootloader configuration."
+ $cmd " -v Verbose mode."
+ $cmd " -L Disable logging."
+ $cmd " -h This help screen."
+ $cmd " -m \"module list\" Modules to include in initrd. Defaults to the"
+ $cmd " INITRD_MODULES variable in /etc/sysconfig/kernel"
+ $cmd " -u \"DomU module list\" Modules to include in initrd. Defaults to the"
+ $cmd " DOMU_INITRD_MODULES variable in"
+ $cmd " /etc/sysconfig/kernel."
+ $cmd " -d root_device Root device. Defaults to the device from"
+ $cmd " which / is mounted. Overrides the rootdev"
+ $cmd " enviroment variable if set."
+ $cmd " -j device Journal device"
+ $cmd " -D interface Run dhcp on the specified interface."
+ $cmd " -I interface Configure the specified interface statically."
+ $cmd " -a acpi_dsdt Attach compiled ACPI DSDT (Differentiated"
+ $cmd " System Description Table) to initrd. This"
+ $cmd " replaces the DSDT of the BIOS. Defaults to"
+ $cmd " the ACPI_DSDT variable in /etc/sysconfig/kernel."
+ $cmd " -s size Add splash animation and bootscreen to initrd."
+
+ [[ $1 = '-n' ]] && exit 0
+ exit 1
+}
+
+# Little helper function for reading args from the commandline.
+# it automatically handles -a b and -a=b variants, and returns 1 if
+# we need to shift $3.
+read_arg() {
+ # $1 = arg name
+ # $2 = arg value
+ # $3 = arg parameter
+ param="$1"
+ local rematch='^[^=]*=(.*)$' result
+ if [[ $2 =~ $rematch ]]; then
+ read "$param" <<< "${BASH_REMATCH[1]}"
+ else
+ for ((i=3; $i <= $#; i++)); do
+ # Only read next arg if it not an arg itself.
+ if [[ ${@:$i:1} = -* ]];then
+ break
+ fi
+ result="$result ${@:$i:1}"
+ # There is no way to shift our callers args, so
+ # return "no of args" to indicate they should do it instead.
+ done
+ read "$1" <<< "$result"
+ return $(($i - 3))
+ fi
+}
+
+# Helper functions to calculate ipconfig command line
+calc_netmask() {
+ local prefix=$1
+
+ [ -z "$prefix" ] && return
+ mask=$(echo "(2 ^ 32) - (2 ^ $prefix)" | bc -l)
+ byte1=$(( mask >> 24 ))
+ byte2=$(( mask >> 16 ))
+ byte3=$(( mask >> 8 ))
+ byte4=$(( mask & 0xff ))
+ netmask=$(printf "%d.%d.%d.%d" $(( byte1 & 0xff )) $(( byte2 & 0xff )) $(( byte3 & 0xff )) $byte4);
+
+ echo $netmask
+}
+
+ipconfig() {
+ local interface=$1
+ local iplink macaddr broadcast gateway ipaddr prefix netmask
+
+ iplink=$(ip addr show dev $interface | sed -n 's/ *inet \(.*\) brd.*/\1/p')
+ macaddr=$(ip addr show dev $interface | sed -n 's/.*ether \(.*\) brd.*/\1/p')
+ broadcast=$(ip addr show dev $interface | sed -n 's/.*brd \(.*\) scope.*/\1/p')
+ gateway=$(ip route show dev $interface | sed -n 's/default via \([0-9\.]*\).*/\1/p')
+
+ ipaddr=${iplink%%/*}
+ prefix=${iplink##*/}
+ netmask=$(calc_netmask $prefix)
+
+ echo "${ipaddr}:${serveraddr}:${gateway}:${netmask}:${hostname}:${interface}:none::${macaddr}"
+}
+
+is_xen_kernel() {
+ local kversion=$1
+ local root_dir=$2
+ local cfg
+
+ for cfg in ${root_dir}/boot/config-$kversion $root_dir/lib/modules/$kversion/build/.config
+ do
+ test -r $cfg || continue
+ grep -q "^CONFIG_XEN=y\$" $cfg
+ return
+ done
+ test $kversion != "${kversion%-xen*}"
+ return
+}
+
+
+# Taken over from SUSE mkinitrd
+default_kernel_images() {
+ local regex kernel_image kernel_version version_version initrd_image
+ local qf='%{NAME}-%{VERSION}-%{RELEASE}\n'
+
+ case "$(uname -m)" in
+ s390|s390x)
+ regex='image'
+ ;;
+ ppc|ppc64)
+ regex='vmlinux'
+ ;;
+ i386|x86_64)
+ regex='vmlinuz'
+ ;;
+ arm*)
+ regex='[uz]Image'
+ ;;
+ aarch64)
+ regex='Image'
+ ;;
+ *) regex='vmlinu.'
+ ;;
+ esac
+
+ kernel_images=""
+ initrd_images=""
+ for kernel_image in $(ls $boot_dir \
+ | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \
+ | grep -v kdump$ ) ; do
+
+ # Note that we cannot check the RPM database here -- this
+ # script is itself called from within the binary kernel
+ # packages, and rpm does not allow recursive calls.
+
+ [ -L "$boot_dir/$kernel_image" ] && continue
+ [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue
+ kernel_version=$(/usr/bin/get_kernel_version \
+ $boot_dir/$kernel_image 2> /dev/null)
+ initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|")
+ if [ "$kernel_image" != "$initrd_image" -a \
+ -n "$kernel_version" -a \
+ -d "/lib/modules/$kernel_version" ]; then
+ kernel_images="$kernel_images $boot_dir/$kernel_image"
+ initrd_images="$initrd_images $boot_dir/$initrd_image"
+ fi
+ done
+ for kernel_image in $kernel_images;do
+ kernels="$kernels ${kernel_image#*-}"
+ done
+ for initrd_image in $initrd_images;do
+ targets="$targets $initrd_image"
+ done
+ host_only=1
+ force=1
+}
+
+while (($# > 0)); do
+ case ${1%%=*} in
+ -f) read_arg feature_list "$@" || shift $?
+ # Could be several features
+ ;;
+ -k) # Would be nice to get a list of images here
+ read_arg kernel_images "$@" || shift $?
+ for kernel_image in $kernel_images;do
+ kernels="$kernels ${kernel_image#*-}"
+ done
+ host_only=1
+ force=1
+ ;;
+ -i) read_arg initrd_images "$@" || shift $?
+ for initrd_image in $initrd_images;do
+ # Check if the initrd_image contains a path.
+ # if not, then add the default boot_dir
+ dname=`dirname $initrd_image`
+ if [ "$dname" == "." ]; then
+ targets="$targets $boot_dir/$initrd_image";
+ else
+ targets="$targets $initrd_image";
+ fi
+ done
+ ;;
+ -b) read_arg boot_dir "$@" || shift $?
+ if [ ! -d $boot_dir ];then
+ error "Boot directory $boot_dir does not exist"
+ exit 1
+ fi
+ ;;
+ -t) read_arg tmp_dir "$@" || shift $?
+ dracut_args="${dracut_args} --tmpdir $tmp_dir"
+ ;;
+ -M) read_arg map_file "$@" || shift $?
+ ;;
+ -A) host_only=0;;
+ -B) skip_update_bootloader=1;;
+ -v|--verbose) dracut_args="${dracut_args} -v";;
+ -L) logfile=;;
+ -h|--help) usage -n;;
+ -m) read_arg module_list "$@" || shift $? ;;
+ -u) read_arg domu_module_list "$@" || shift $?
+ echo "mkinitrd: DomU modules not yet supported" ;;
+ -d) read_arg rootfs "$@" || shift $?
+ dracut_args="${dracut_args} --filesystems $rootfs" ;;
+ -D) read_arg dhcp_if "$@" || shift $?
+ dracut_cmdline="${dracut_cmdline} ip=${dhcp_if}:dhcp"
+ ;;
+ -I) read_arg static_if "$@" || shift $?
+ dracut_cmdline="${dracut_cmdline} ip=$(ipconfig $static_if)":
+ ;;
+ -a) read_arg acpi_dsdt "$@" || shift $?
+ echo "mkinitrd: custom DSDT not yet supported"
+ exit 1
+ ;;
+ -s) read_arg boot_splash "$@" || shift $?
+ echo "mkinitrd: boot splash not yet supported"
+ exit 1
+ ;;
+ -V) echo "mkinitrd: vendor scipts are no longer supported"
+ exit 1;;
+ --dracut)
+ read_arg dracut_cmd "$@" || shift $? ;;
+ --version|-R)
+ echo "mkinitrd: dracut compatibility wrapper"
+ exit 0;;
+ --force) force=1;;
+ --quiet|-q) quiet=1;;
+ *) if [[ ! $targets ]]; then
+ targets=$1
+ elif [[ ! $kernels ]]; then
+ kernels=$1
+ else
+ usage
+ fi;;
+ esac
+ shift
+done
+
+[[ $targets && $kernels ]] || default_kernel_images
+[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage)
+
+# We can have several targets/kernels, transform the list to an array
+targets=( $targets )
+[[ $kernels ]] && kernels=( $kernels )
+
+[[ $logfile ]] && dracut_args="${dracut_args} --logfile $logfile"
+[[ $host_only == 1 ]] && dracut_args="${dracut_args} --hostonly"
+[[ $force == 1 ]] && dracut_args="${dracut_args} --force"
+[[ $dracut_cmdline ]] && dracut_args="${dracut_args} --kernel-cmdline ${dracut_cmdline}"
+[ -z "$(type -p update-bootloader)" ] && skip_update_bootloader=1
+
+# Update defaults from /etc/sysconfig/kernel
+if [ -f /etc/sysconfig/kernel ] ; then
+ . /etc/sysconfig/kernel
+fi
+[[ $module_list ]] || module_list="${INITRD_MODULES}"
+basicmodules="$basicmodules ${module_list}"
+[[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}"
+[[ $acpi_dsdt ]] || acpi_dsdt="${ACPI_DSDT}"
+
+echo "Creating: target|kernel|dracut args|basicmodules "
+for ((i=0 ; $i<${#targets[@]} ; i++)); do
+
+ if [[ $img_vers ]];then
+ target="${targets[$i]}-${kernels[$i]}"
+ else
+ target="${targets[$i]}"
+ fi
+ kernel="${kernels[$i]}"
+
+ # Duplicate code: No way found how to redirect output based on $quiet
+ if [[ $quiet == 1 ]];then
+ echo "$target|$kernel|$dracut_args|$basicmodules"
+ if is_xen_kernel $kernel $rootfs ; then
+ basicmodules="$basicmodules ${domu_module_list}"
+ fi
+ if [[ $basicmodules ]]; then
+ $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
+ "$kernel" &>/dev/null
+ else
+ $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null
+ fi
+ else
+ if is_xen_kernel $kernel $rootfs ; then
+ basicmodules="$basicmodules ${domu_module_list}"
+ fi
+ if [[ $basicmodules ]]; then
+ $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
+ "$kernel"
+ else
+ $dracut_cmd $dracut_args "$target" "$kernel"
+ fi
+ fi
+done
+
+if [ "$skip_update_bootloader" ] ; then
+ echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually."
+else
+ update-bootloader --refresh
+fi

View File

@ -0,0 +1,136 @@
From 463e13fe8144376a95bf437b64c16bec056a9855 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:51 +0100
Subject: [PATCH] mkinitrd-suse.8.asc: Add manpage for SUSE compat mkinitrd
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
Makefile | 1 +
mkinitrd-suse.8.asc | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 107 insertions(+)
create mode 100644 mkinitrd-suse.8.asc
diff --git a/Makefile b/Makefile
index e7da948..ba551cf 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ man7pages = dracut.cmdline.7 \
man8pages = dracut.8 \
dracut-catimages.8 \
mkinitrd.8 \
+ mkinitrd-suse.8 \
modules.d/98systemd/dracut-cmdline.service.8 \
modules.d/98systemd/dracut-initqueue.service.8 \
modules.d/98systemd/dracut-mount.service.8 \
diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
new file mode 100644
index 0000000..9eb8fc9
--- /dev/null
+++ b/mkinitrd-suse.8.asc
@@ -0,0 +1,106 @@
+MKINITRD(8)
+===========
+:doctype: manpage
+:man source: dracut
+:man manual: dracut
+
+NAME
+----
+mkinitrd-suse - is a compat wrapper, which calls dracut to generate an initramfs
+
+SYNOPSIS
+--------
+*mkinitrd* ['OPTION...']
+
+DESCRIPTION
+-----------
+*mkinitrd* creates an initramfs image <initrd-image> for the kernel with
+version <kernel-version> by calling *dracut*.
+
+[IMPORTANT]
+This version of mkinitrd is provided for compability with older
+versions of mkinitrd. If a more fine grained control over the
+resulting image is needed, *dracut* should be called directly.
+
+OPTIONS
+-------
+**-R, --version**::
+ print info about the version
+
+**-k** _<kernel_list>_::
+ List of kernel images for which initrd files are created (relative
+ to _boot_dir_), defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x
+ and _vmlinuz_ for everything else.
+
+**-i** _<initrd_list>_::
+ List of file names (relative to _boot_dir_) for the initrd; positions
+ have to match the _kernel_list_. Defaults to _initrd_.
+
+**-m** _<module_list>_::
+ Modules to include in initrd, defaults to _INITRD_MODULES_ variable
+ in */etc/sysconfig/kernel*.
+
+**-f** _<feature_list>_::
+ Features to be enabled for the initrd. In general mkinitrd
+ configures the initrd for the root device it is started from. With
+ this option additional feature can be enabled.
+
+**-b** _<bootdir>_::
+ Boot directory, defaults to */boot*, where the initrd is created.
+
+**-d** _<root_device>_::
+ Root device, defaults to the device from which the root_dir is
+ mounted; overwrites the rootdev enviroment variable if set
+
+**-s** _<size>_::
+ Add splash animation and bootscreen to initrd.
+
+**-D** _<interface>::
+ Run dhcp on the specified interface (for example "eth0").
+
+**-I** _<interface>::
+ Configure the specified interface statically.
+
+**-a** _<acpi_dsdt>::
+ Attach compiled ACPI DSDT (Differentiated System Description Table)
+ to initrd. This replaces the DSDT of the BIOS. Defaults to the
+ _ACPI_DSDT_ variable in */etc/sysconfig/kernel*.
+
+**-M** _<map>::
+ System.map file to use.
+
+**-B**::
+ Dont run the *update-bootloader(8)* script after the initrd(s) have
+ been created. This is useful if you call mkinitrd(8) for anything
+ else than the running system.
+
+**-A**::
+ Create a so called "monster initrd" which includes all available
+ features and modules.
+
+**-v, --verbose**::
+ increase verbosity level
+
+**-L**::
+ Disable logging to _/var/log/YaST2/mkinitrd.log_. This is useful for
+ testing if you dont want to clutter the system log.
+
+**--force**::
+ overwrite existing initramfs file.
+
+**--help**::
+ print a help message and exit.
+
+AVAILABILITY
+------------
+The mkinitrd command is part of the dracut package and is available from
+link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org]
+
+AUTHORS
+-------
+Harald Hoyer, Hannes Reinecke
+
+SEE ALSO
+--------
+*dracut*(8)
+*update-bootloader*(8)

View File

@ -0,0 +1,26 @@
From 1d3496b4c1ef229a8e6969e530b49dedb865f409 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:52 +0100
Subject: [PATCH] Fixup keymap setting for openSUSE
openSUSE is using compressed keymaps.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/10i18n/module-setup.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index 0741c64..f07b148 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -161,6 +161,9 @@ install() {
# Gentoo user may have KEYMAP set to something like "-u pl2",
KEYMAP=${KEYMAP#-* }
+ # openSUSE user may have KEYMAP set to something like ".gz"
+ KEYMAP=${KEYMAP/.gz/}
+
# KEYTABLE is a bit special - it defines base keymap name and UNICODE
# determines whether non-UNICODE or UNICODE version is used

View File

@ -0,0 +1,46 @@
From 1c89fd148d361a43b1ddb7ec1e8068849244a9b7 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:53 +0100
Subject: [PATCH] Fixup script permissions
Scripts with a shebang should be marked as executable.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
modules.d/03modsign/load-modsign-keys.sh | 0
modules.d/03modsign/module-setup.sh | 0
modules.d/40network/net-lib.sh | 0
modules.d/40network/parse-vlan.sh | 0
modules.d/50drm/module-setup.sh | 0
modules.d/91crypt-loop/crypt-loop-lib.sh | 0
modules.d/98pollcdrom/pollcdrom.sh | 0
7 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 modules.d/03modsign/load-modsign-keys.sh
mode change 100644 => 100755 modules.d/03modsign/module-setup.sh
mode change 100644 => 100755 modules.d/40network/net-lib.sh
mode change 100644 => 100755 modules.d/40network/parse-vlan.sh
mode change 100644 => 100755 modules.d/50drm/module-setup.sh
mode change 100644 => 100755 modules.d/91crypt-loop/crypt-loop-lib.sh
mode change 100644 => 100755 modules.d/98pollcdrom/pollcdrom.sh
diff --git a/modules.d/03modsign/load-modsign-keys.sh b/modules.d/03modsign/load-modsign-keys.sh
old mode 100644
new mode 100755
diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh
old mode 100644
new mode 100755
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
old mode 100644
new mode 100755
diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/40network/parse-vlan.sh
old mode 100644
new mode 100755
diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
old mode 100644
new mode 100755
diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh
old mode 100644
new mode 100755
diff --git a/modules.d/98pollcdrom/pollcdrom.sh b/modules.d/98pollcdrom/pollcdrom.sh
old mode 100644
new mode 100755

View File

@ -0,0 +1,34 @@
From 336bd09d2cf9d3ded4abb828eb54742218a32b04 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 29 Nov 2013 13:13:54 +0100
Subject: [PATCH] Remove shebang from shell-completion files
Shell-completion files are meant to be sourced, not executed.
So they shouldn't have a shebang at the start.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
dracut-bash-completion.sh | 2 +-
lsinitrd-bash-completion.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh
index d796c35..9f359c6 100644
--- a/dracut-bash-completion.sh
+++ b/dracut-bash-completion.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
#
diff --git a/lsinitrd-bash-completion.sh b/lsinitrd-bash-completion.sh
index 78ab165..3df2965 100644
--- a/lsinitrd-bash-completion.sh
+++ b/lsinitrd-bash-completion.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
#

View File

@ -0,0 +1,27 @@
From c21c4dc2b469107ac35d8c1157f245965fd55292 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 15:57:42 +0100
Subject: [PATCH] lvm: install thin tools, only when needed in hostonly
---
modules.d/90lvm/module-setup.sh | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index a220a55..1206310 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -97,6 +97,11 @@ install() {
inst_libdir_file "libdevmapper-event-lvm*.so"
- inst_multiple -o thin_dump thin_restore thin_check thin_repair
+ if [[ $hostonly ]] && type -P lvs &>/dev/null; then
+ for dev in "${!host_fs_types[@]}"; do
+ if [[ "$(lvs --noheadings -o segtype "$dev" 2>/dev/null)" == *thin* ]] ; then
+ inst_multiple -o thin_dump thin_restore thin_check thin_repair
+ fi
+ done
+ fi
}
-

View File

@ -0,0 +1,127 @@
From 45845cb6a5f1100fa4163e25c0681afceb838b64 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 16:42:05 +0100
Subject: [PATCH] i18n: introduce i18n_install_all, to install everything
if i18n_install_all is set to "yes", then install all keyboard layouts
and fonts regardless of the hostonly setting.
This way, people can switch keyboard layouts, without having to recreate
the initramfs.
---
dracut.conf.5.asc | 14 ++++++++++++--
dracut.conf.d/fedora.conf.example | 1 +
modules.d/10i18n/module-setup.sh | 31 +++++++++++++++++--------------
3 files changed, 30 insertions(+), 16 deletions(-)
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index c9c854a..30b7e03 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -122,10 +122,10 @@ If chrooted to another root other than the real root device, use --fstab and pro
*kernel_only=*"__{yes|no}__"::
Only install kernel drivers and firmware files. (default=no)
-*no_kernel=*"{yes|no}"::
+*no_kernel=*"__{yes|no}__"::
Do not install kernel drivers and firmware files (default=no)
-*acpi_override=*"{yes|no}"::
+*acpi_override=*"__{yes|no}__"::
[WARNING] ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING! +
Override BIOS provided ACPI tables. For further documentation read
Documentation/acpi/initrd_table_override.txt in the kernel sources.
@@ -158,6 +158,16 @@ If chrooted to another root other than the real root device, use --fstab and pro
*show_modules=*"__{yes|no}__"::
Print the name of the included modules to standard output during build.
+*i18n_vars="__<variable mapping>__"::
+ Distribution specific variable mapping.
+ See dracut/modules.d/10i18n/README for a detailed description.
+
+*i18n_default_font=*"__<fontname>__"::
+ The font <fontname> to install, if not specified otherwise. Default is "LatArCyrHeb-16".
+
+*i18n_install_all=*"__{yes|no}__"::
+ Install everything regardless of generic or hostonly mode.
+
Files
-----
_/etc/dracut.conf_::
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index 1a56a86..495e8fb 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -3,6 +3,7 @@
# i18n
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_items+=" vi /etc/virc ps grep cat rm "
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index f07b148..fcb18d1 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -21,15 +21,11 @@ depends() {
# called by dracut
install() {
if dracut_module_included "systemd"; then
- [[ -f /etc/vconsole.conf ]] || return 0
unset FONT
unset KEYMAP
- . /etc/vconsole.conf
- # if vconsole.conf has no settings, do not include anything
- [[ $FONT ]] || [[ $KEYMAP ]] || return 0
+ [[ -f /etc/vconsole.conf ]] && . /etc/vconsole.conf
fi
- inst_multiple -o $systemdutildir/systemd-vconsole-setup
KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps
DEFAULT_FONT="${i18n_default_font:-LatArCyrHeb-16}"
I18N_CONF="/etc/locale.conf"
@@ -213,10 +209,20 @@ install() {
inst_simple ${kbddir}/unimaps/${FONT_UNIMAP}.uni
fi
- mksubdirs ${initdir}${I18N_CONF}
- mksubdirs ${initdir}${VCONFIG_CONF}
- print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
- print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
+ if dracut_module_included "systemd" && [[ -f ${I18N_CONF} ]]; then
+ inst_simple ${I18N_CONF}
+ else
+ mksubdirs ${initdir}${I18N_CONF}
+ print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
+ fi
+
+ if dracut_module_included "systemd" && [[ -f ${VCONFIG_CONF} ]]; then
+ inst_simple ${VCONFIG_CONF}
+ else
+ mksubdirs ${initdir}${VCONFIG_CONF}
+ print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
+ fi
+
return 0
}
@@ -240,16 +246,13 @@ install() {
return 0
}
- if checks
- then
+ if checks; then
install_base
- if [[ ${hostonly} ]]
- then
+ if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} ]]; then
install_local_i18n || install_all_kbd
else
install_all_kbd
fi
fi
}
-

View File

@ -0,0 +1,24 @@
From 57575f3c9c5323887b1aec7f04d1467ba1e5fb1b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 17:27:57 +0100
Subject: [PATCH] dracut.spec: add new modules
---
dracut.spec | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dracut.spec b/dracut.spec
index 44171d8..91ec15d 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -350,8 +350,10 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/95rootfs-block
%{dracutlibdir}/modules.d/95dasd
%{dracutlibdir}/modules.d/95dasd_mod
+%{dracutlibdir}/modules.d/95dasd_rules
%{dracutlibdir}/modules.d/95fstab-sys
%{dracutlibdir}/modules.d/95zfcp
+%{dracutlibdir}/modules.d/95zfcp_rules
%{dracutlibdir}/modules.d/95terminfo
%{dracutlibdir}/modules.d/95udev-rules
%{dracutlibdir}/modules.d/95virtfs

View File

@ -0,0 +1,35 @@
From 11ee2ca8d497980c98c3c5a2c3be25b4724c43a0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 5 Dec 2013 17:31:09 +0100
Subject: [PATCH] dracut.spec: remove suse man pages
---
dracut.spec | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index 91ec15d..bd35aa7 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -246,15 +246,18 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log
mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs
-%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
+%if 0%{?fedora} || 0%{?rhel}
install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
-install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
+rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse*
%endif
-
%if 0%{?suse_version}
install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
%endif
+%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
+install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
+%endif
+
%if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd

View File

@ -10,7 +10,7 @@
Name: dracut
Version: 034
Release: 24.git20131030%{?dist}
Release: 62.git20131205%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@ -52,6 +52,44 @@ Patch20: 0020-Handle-crypto-modules-with-and-without-modaliases.patch
Patch21: 0021-fips-include-crct10dif_generic.patch
Patch22: 0022-iscsi-nbd-do-not-try-to-mount-the-whole-disk-if-root.patch
Patch23: 0023-dracut.spec-move-sbin-dracut-to-usr-sbin-dracut.patch
Patch24: 0024-dracut.sh-fixed-PATH-shortener.patch
Patch25: 0025-dracut.modules.7.asc-removed-empty-section.patch
Patch26: 0026-fips-also-install-etc-system-fips-in-the-initramfs.patch
Patch27: 0027-dracut-functions.sh-Avoid-loading-unnecessary-32-bit.patch
Patch28: 0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch
Patch29: 0029-systemd-do-not-exit-the-initqueue-if-systemd-asks-a-.patch
Patch30: 0030-Run-xz-and-lzma-with-multiple-threads.patch
Patch31: 0031-kernel-modules-add-ohci-pci-to-the-list-of-forced-mo.patch
Patch32: 0032-lvm-do-not-run-pvscan-for-lvmetad-update.patch
Patch33: 0033-fips-fix-RHEV-vmlinuz-check.patch
Patch34: 0034-dracut.cmdline.7.asc-document-server-ip-of-ip-parame.patch
Patch35: 0035-dracut.sh-_get_fs_type-if-block-device-exists-return.patch
Patch36: 0036-network-net-lib.sh-wait_for_if_up-wait-for-state-UP.patch
Patch37: 0037-network-net-lib.sh-iface_has_link-fixup.patch
Patch38: 0038-network-ifup.sh-before-doing-dhcp-check-if-the-link-.patch
Patch39: 0039-base-dracut-lib.sh-wait_for_dev-relax-requirement.patch
Patch40: 0040-resume-autoconf-resume.patch
Patch41: 0041-resume-no-more-autoresume.patch
Patch42: 0042-dracut.sh-skip-crypt-swaps-with-password-files.patch
Patch43: 0043-dracut-functions.sh-do-not-force-require-modules.bui.patch
Patch44: 0044-10i18n-parse-i18n.sh-fixed-vconsole.conf-locale.conf.patch
Patch45: 0045-95dasd-Install-kernel-modules-only-once.patch
Patch46: 0046-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
Patch47: 0047-95dasd_mod-make-dasd_cio_free-optional.patch
Patch48: 0048-95zfcp-Make-installation-optional.patch
Patch49: 0049-95znet-Make-installation-optional.patch
Patch50: 0050-Add-DASD-configuration-for-SuSE.patch
Patch51: 0051-Add-zfcp-scripts-for-SUSE.patch
Patch52: 0052-Make-logfile-configurable.patch
Patch53: 0053-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
Patch54: 0054-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
Patch55: 0055-Fixup-keymap-setting-for-openSUSE.patch
Patch56: 0056-Fixup-script-permissions.patch
Patch57: 0057-Remove-shebang-from-shell-completion-files.patch
Patch58: 0058-lvm-install-thin-tools-only-when-needed-in-hostonly.patch
Patch59: 0059-i18n-introduce-i18n_install_all-to-install-everythin.patch
Patch60: 0060-dracut.spec-add-new-modules.patch
Patch61: 0061-dracut.spec-remove-suse-man-pages.patch
BuildRequires: bash git
@ -270,15 +308,18 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log
mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
%if 0%{?fedora} || 0%{?rhel}
install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse*
%endif
%if 0%{?suse_version}
install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
%endif
%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
%endif
%if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd
@ -374,8 +415,10 @@ rm -rf -- $RPM_BUILD_ROOT
%{dracutlibdir}/modules.d/95rootfs-block
%{dracutlibdir}/modules.d/95dasd
%{dracutlibdir}/modules.d/95dasd_mod
%{dracutlibdir}/modules.d/95dasd_rules
%{dracutlibdir}/modules.d/95fstab-sys
%{dracutlibdir}/modules.d/95zfcp
%{dracutlibdir}/modules.d/95zfcp_rules
%{dracutlibdir}/modules.d/95terminfo
%{dracutlibdir}/modules.d/95udev-rules
%{dracutlibdir}/modules.d/95virtfs
@ -472,6 +515,16 @@ rm -rf -- $RPM_BUILD_ROOT
%endif
%changelog
* Thu Dec 05 2013 Harald Hoyer <harald@redhat.com> 034-62.git20131205
- fixed PATH shortener
- also install /etc/system-fips in the initramfs
- nbd, do not fail in hostonly mode
- add ohci-pci to the list of hardcoded modules
- lvm: do not run pvscan for lvmetad
- network fixes
- skip crypt swaps with password files
- fixed i18n
* Wed Oct 30 2013 Harald Hoyer <harald@redhat.com> 034-24.git20131030
- fixed booting with rd.iscsi.firmware and without root=
- fips: include crct10dif_generic