From 89f6faed2b9d1f9616c82f277b0be094094e9489 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Fri, 15 Aug 2014 13:59:08 +0200 Subject: [PATCH] dracut-038-30.git20140815 - git snapshot --- ...ut.spec-fixed-license-file-packaging.patch | 54 ++ 0015-NEWS-update.patch | 32 ++ ...client-init.sh-add-shell-on-rd.shell.patch | 35 ++ ...more-commands-and-fix-client-root-di.patch | 33 ++ 0018-fixed-bridge-setup.patch | 170 +++++++ ...ite-work-with-the-new-systemd-minima.patch | 474 ++++++++++++++++++ ...the-ifcfg-files-generated-for-bridge.patch | 28 ++ ...18n_install_all-yes-rather-than-bein.patch | 25 + ...-extend-parameters-for-shutdown-debu.patch | 23 + ...-also-add-a-link-for-RHEL-7-storage-.patch | 25 + ...-get_persistent_dev-fall-back-to-the.patch | 28 ++ ...-soc-path-for-modalias-needed-by-drm.patch | 28 ++ 0026-Categorize-needed-modules-on-ARM.patch | 31 ++ ...e-ARM-specific-modules-needed-by-drm.patch | 31 ++ ....sh-get_persistent_dev-use-printf-in.patch | 23 + ...nerate-reproducible-initramfs-images.patch | 154 ++++++ dracut.spec | 26 +- 17 files changed, 1217 insertions(+), 3 deletions(-) create mode 100644 0014-dracut.spec-fixed-license-file-packaging.patch create mode 100644 0015-NEWS-update.patch create mode 100644 0016-TEST-20-NFS-client-init.sh-add-shell-on-rd.shell.patch create mode 100644 0017-TEST-20-NFS-add-more-commands-and-fix-client-root-di.patch create mode 100644 0018-fixed-bridge-setup.patch create mode 100644 0019-test-make-testsuite-work-with-the-new-systemd-minima.patch create mode 100644 0020-bridging-update-the-ifcfg-files-generated-for-bridge.patch create mode 100644 0021-i18n-check-for-i18n_install_all-yes-rather-than-bein.patch create mode 100644 0022-dracut.usage.asc-extend-parameters-for-shutdown-debu.patch create mode 100644 0023-dracut.usage.asc-also-add-a-link-for-RHEL-7-storage-.patch create mode 100644 0024-dracut-functions-get_persistent_dev-fall-back-to-the.patch create mode 100644 0025-Test-soc-path-for-modalias-needed-by-drm.patch create mode 100644 0026-Categorize-needed-modules-on-ARM.patch create mode 100644 0027-Introduce-ARM-specific-modules-needed-by-drm.patch create mode 100644 0028-dracut-functions.sh-get_persistent_dev-use-printf-in.patch create mode 100644 0029-Generate-reproducible-initramfs-images.patch diff --git a/0014-dracut.spec-fixed-license-file-packaging.patch b/0014-dracut.spec-fixed-license-file-packaging.patch new file mode 100644 index 0000000..9c73493 --- /dev/null +++ b/0014-dracut.spec-fixed-license-file-packaging.patch @@ -0,0 +1,54 @@ +From caa72f829007a868bf47a9bb82a3e359acd6a420 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/0015-NEWS-update.patch b/0015-NEWS-update.patch new file mode 100644 index 0000000..cad7861 --- /dev/null +++ b/0015-NEWS-update.patch @@ -0,0 +1,32 @@ +From ba7dab6dbab3fee9527384868695de12033529ed Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/0016-TEST-20-NFS-client-init.sh-add-shell-on-rd.shell.patch b/0016-TEST-20-NFS-client-init.sh-add-shell-on-rd.shell.patch new file mode 100644 index 0000000..b5c336f --- /dev/null +++ b/0016-TEST-20-NFS-client-init.sh-add-shell-on-rd.shell.patch @@ -0,0 +1,35 @@ +From 28d03673f9aa76b041ce9a41a82a632d5399d8d1 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/0017-TEST-20-NFS-add-more-commands-and-fix-client-root-di.patch b/0017-TEST-20-NFS-add-more-commands-and-fix-client-root-di.patch new file mode 100644 index 0000000..5a29238 --- /dev/null +++ b/0017-TEST-20-NFS-add-more-commands-and-fix-client-root-di.patch @@ -0,0 +1,33 @@ +From 4e1f8d0c5f071e0e8270eadf73e97aa41b07cb12 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/0018-fixed-bridge-setup.patch b/0018-fixed-bridge-setup.patch new file mode 100644 index 0000000..8e37437 --- /dev/null +++ b/0018-fixed-bridge-setup.patch @@ -0,0 +1,170 @@ +From 2db6d7111870c5d16d812d9cddc23558f3f4a202 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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=: ++# bridge=: + # +-# is a comma-separated list of physical (ethernet) interfaces ++# 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 diff --git a/0019-test-make-testsuite-work-with-the-new-systemd-minima.patch b/0019-test-make-testsuite-work-with-the-new-systemd-minima.patch new file mode 100644 index 0000000..663fa87 --- /dev/null +++ b/0019-test-make-testsuite-work-with-the-new-systemd-minima.patch @@ -0,0 +1,474 @@ +From 068531232b994ef93b3245484987df1cf1504dd0 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/0020-bridging-update-the-ifcfg-files-generated-for-bridge.patch b/0020-bridging-update-the-ifcfg-files-generated-for-bridge.patch new file mode 100644 index 0000000..4d8ba11 --- /dev/null +++ b/0020-bridging-update-the-ifcfg-files-generated-for-bridge.patch @@ -0,0 +1,28 @@ +From 32125a976bb6ff67768ca813446743b781ba012f Mon Sep 17 00:00:00 2001 +From: Alex Harpin +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 diff --git a/0021-i18n-check-for-i18n_install_all-yes-rather-than-bein.patch b/0021-i18n-check-for-i18n_install_all-yes-rather-than-bein.patch new file mode 100644 index 0000000..8935594 --- /dev/null +++ b/0021-i18n-check-for-i18n_install_all-yes-rather-than-bein.patch @@ -0,0 +1,25 @@ +From ae488efa5e6103ffc1be8b8782f8a1c7a5aa90b4 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/0022-dracut.usage.asc-extend-parameters-for-shutdown-debu.patch b/0022-dracut.usage.asc-extend-parameters-for-shutdown-debu.patch new file mode 100644 index 0000000..adbcf7f --- /dev/null +++ b/0022-dracut.usage.asc-extend-parameters-for-shutdown-debu.patch @@ -0,0 +1,23 @@ +From e02a29e7a2403dd1bb4f581b14ec4bf4ace6cba7 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 + ---- + diff --git a/0023-dracut.usage.asc-also-add-a-link-for-RHEL-7-storage-.patch b/0023-dracut.usage.asc-also-add-a-link-for-RHEL-7-storage-.patch new file mode 100644 index 0000000..cc8c7f5 --- /dev/null +++ b/0023-dracut.usage.asc-also-add-a-link-for-RHEL-7-storage-.patch @@ -0,0 +1,25 @@ +From 11b5db88c2d9290fc438b12a79a50bdd1d327203 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/0024-dracut-functions-get_persistent_dev-fall-back-to-the.patch b/0024-dracut-functions-get_persistent_dev-fall-back-to-the.patch new file mode 100644 index 0000000..8490f8d --- /dev/null +++ b/0024-dracut-functions-get_persistent_dev-fall-back-to-the.patch @@ -0,0 +1,28 @@ +From a628b7caf52459a31c46463744fafc42bb8f3407 Mon Sep 17 00:00:00 2001 +From: WANG Chao +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 +--- + 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() { diff --git a/0025-Test-soc-path-for-modalias-needed-by-drm.patch b/0025-Test-soc-path-for-modalias-needed-by-drm.patch new file mode 100644 index 0000000..7a7c2cc --- /dev/null +++ b/0025-Test-soc-path-for-modalias-needed-by-drm.patch @@ -0,0 +1,28 @@ +From 4a3f3ba68c73707231bba72cdf7ab01464456e5a Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +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 diff --git a/0026-Categorize-needed-modules-on-ARM.patch b/0026-Categorize-needed-modules-on-ARM.patch new file mode 100644 index 0000000..d89d860 --- /dev/null +++ b/0026-Categorize-needed-modules-on-ARM.patch @@ -0,0 +1,31 @@ +From b96ea1e196ae5706a68644a3679ee8c432b0b8f1 Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +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 diff --git a/0027-Introduce-ARM-specific-modules-needed-by-drm.patch b/0027-Introduce-ARM-specific-modules-needed-by-drm.patch new file mode 100644 index 0000000..9c31601 --- /dev/null +++ b/0027-Introduce-ARM-specific-modules-needed-by-drm.patch @@ -0,0 +1,31 @@ +From 49fe860b22afd355b67f5f3f2ee30d5a3f0d3f5f Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +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, diff --git a/0028-dracut-functions.sh-get_persistent_dev-use-printf-in.patch b/0028-dracut-functions.sh-get_persistent_dev-use-printf-in.patch new file mode 100644 index 0000000..b5853f5 --- /dev/null +++ b/0028-dracut-functions.sh-get_persistent_dev-use-printf-in.patch @@ -0,0 +1,23 @@ +From 9efb74a32d34533f7ccb201160ea0e40adc13987 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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() { diff --git a/0029-Generate-reproducible-initramfs-images.patch b/0029-Generate-reproducible-initramfs-images.patch new file mode 100644 index 0000000..d362d19 --- /dev/null +++ b/0029-Generate-reproducible-initramfs-images.patch @@ -0,0 +1,154 @@ +From 80626ded3e849ba840ddd64c1713be5abb1c7449 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +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 diff --git a/dracut.spec b/dracut.spec index 8bfc3e7..bdedb89 100644 --- a/dracut.spec +++ b/dracut.spec @@ -11,7 +11,7 @@ Name: dracut Version: 038 -Release: 14.git20140724%{?dist} +Release: 30.git20140815%{?dist} Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} @@ -30,8 +30,6 @@ 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 - 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 @@ -45,6 +43,25 @@ 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 + +Source1: https://www.gnu.org/licenses/lgpl-2.1.txt + BuildRequires: bash git @@ -490,6 +507,9 @@ rm -rf -- $RPM_BUILD_ROOT %endif %changelog +* Fri Aug 15 2014 Harald Hoyer 038-30.git20140815 +- git snapshot + * Thu Jul 24 2014 Harald Hoyer 038-14.git20140724 - fixed lvm modules issues Resolves: rhbz#1118890