[dracut] dracut-023-13.git20120821
Harald Hoyer
harald at fedoraproject.org
Tue Aug 21 18:04:52 UTC 2012
commit 7e00d97aa69a7f9810cd2483abad9f440047d0d7
Author: Harald Hoyer <harald at redhat.com>
Date: Tue Aug 21 20:04:01 2012 +0200
dracut-023-13.git20120821
- reintroduce rd.neednet, which reenables anaconda networking
- fix some dracut-install corner cases
- fix FIPS for /boot not on extra partition
...ated-to-recent-version-of-http-www.gnu.or.patch | 138 ++++++++++++++++++++
...cut.conf.d-gentoo.conf.example-fix-header.patch | 19 +++
...onf.5.asc-s-dracut-conf.d-dracut.conf.d-g.patch | 24 ++++
0004-include-the-omap_hsmmc-module-on-arm.patch | 22 +++
...ys-create-need_shutdown-if-we-have-assemb.patch | 60 +++++++++
0006-add-back-scsi_wait_scan.patch | 34 +++++
0007-network-reintroduce-rd.neednet.patch | 41 ++++++
...ot-as-symlink-to-sysroot-boot-if-no-boot-.patch | 48 +++++++
...cut-install.c-Ensure-deps-are-resolved-wh.patch | 45 +++++++
...cut-install.c-Deal-gracefully-with-paths-.patch | 43 ++++++
...cut-install.c-No-need-to-compare-the-NULL.patch | 23 ++++
...Pre-usrmove-systemd-installs-might-not-fi.patch | 41 ++++++
dracut.spec | 20 +++-
13 files changed, 556 insertions(+), 2 deletions(-)
---
diff --git a/0001-COPYING-updated-to-recent-version-of-http-www.gnu.or.patch b/0001-COPYING-updated-to-recent-version-of-http-www.gnu.or.patch
new file mode 100644
index 0000000..e23a921
--- /dev/null
+++ b/0001-COPYING-updated-to-recent-version-of-http-www.gnu.or.patch
@@ -0,0 +1,138 @@
+From aa11b710ce86190fbff9afeafedcbce85c7e9a7f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 1 Aug 2012 15:53:25 +0200
+Subject: [PATCH] COPYING: updated to recent version of
+ http://www.gnu.org/licenses/gpl-2.0.txt
+
+---
+ COPYING | 42 +++++++++++++++++++++---------------------
+ 1 file changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/COPYING b/COPYING
+index a43ea21..d159169 100644
+--- a/COPYING
++++ b/COPYING
+@@ -1,12 +1,12 @@
+- GNU GENERAL PUBLIC LICENSE
+- Version 2, June 1991
++ GNU GENERAL PUBLIC LICENSE
++ Version 2, June 1991
+
+- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+- 675 Mass Ave, Cambridge, MA 02139, USA
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+- Preamble
++ Preamble
+
+ The licenses for most software are designed to take away your
+ freedom to share and change it. By contrast, the GNU General Public
+@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
+ General Public License applies to most of the Free Software
+ Foundation's software and to any other program whose authors commit to
+ using it. (Some other Free Software Foundation software is covered by
+-the GNU Library General Public License instead.) You can apply it to
++the GNU Lesser General Public License instead.) You can apply it to
+ your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+ modification follow.
+-
+- GNU GENERAL PUBLIC LICENSE
++
++ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+-
++
+ These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the Program,
+ and can be reasonably considered independent and separate works in
+@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
+ access to copy the source code from the same place counts as
+ distribution of the source code, even though third parties are not
+ compelled to copy the source along with the object code.
+-
++
+ 4. You may not copy, modify, sublicense, or distribute the Program
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense or distribute the Program is
+@@ -225,7 +225,7 @@ impose that choice.
+
+ This section is intended to make thoroughly clear what is believed to
+ be a consequence of the rest of this License.
+-
++
+ 8. If the distribution and/or use of the Program is restricted in
+ certain countries either by patents or by copyrighted interfaces, the
+ original copyright holder who places the Program under this License
+@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
+ of preserving the free status of all derivatives of our free software and
+ of promoting the sharing and reuse of software generally.
+
+- NO WARRANTY
++ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGES.
+
+- END OF TERMS AND CONDITIONS
+-
+- Appendix: How to Apply These Terms to Your New Programs
++ END OF TERMS AND CONDITIONS
++
++ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+ possible use to the public, the best way to achieve this is to make it
+@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
+ the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+- Copyright (C) 19yy <name of author>
++ Copyright (C) <year> <name of author>
+
+ 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
+@@ -303,16 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
+ 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, write to the Free Software
+- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ You should have received a copy of the GNU General Public License along
++ with this program; if not, write to the Free Software Foundation, Inc.,
++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Also add information on how to contact you by electronic and paper mail.
+
+ If the program is interactive, make it output a short notice like this
+ when it starts in an interactive mode:
+
+- Gnomovision version 69, Copyright (C) 19yy name of author
++ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+@@ -335,5 +335,5 @@ necessary. Here is a sample; alter the names:
+ This General Public License does not permit incorporating your program into
+ proprietary programs. If your program is a subroutine library, you may
+ consider it more useful to permit linking proprietary applications with the
+-library. If this is what you want to do, use the GNU Library General
++library. If this is what you want to do, use the GNU Lesser General
+ Public License instead of this License.
diff --git a/0002-dracut.conf.d-gentoo.conf.example-fix-header.patch b/0002-dracut.conf.d-gentoo.conf.example-fix-header.patch
new file mode 100644
index 0000000..6beba7a
--- /dev/null
+++ b/0002-dracut.conf.d-gentoo.conf.example-fix-header.patch
@@ -0,0 +1,19 @@
+From a41dc8f96903b750259e19fe724cd808b7570765 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe at aidecoe.name>
+Date: Wed, 1 Aug 2012 16:23:24 +0200
+Subject: [PATCH] dracut.conf.d/gentoo.conf.example: fix header
+
+---
+ dracut.conf.d/gentoo.conf.example | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example
+index 6b74954..7b94cf5 100644
+--- a/dracut.conf.d/gentoo.conf.example
++++ b/dracut.conf.d/gentoo.conf.example
+@@ -1,4 +1,4 @@
+-# /etc/dracut.conf.d/gentoo-openrc.conf
++# /etc/dracut.conf.d/gentoo.conf
+ # Dracut config file customized for Gentoo Base System release 2
+
+ udevdir=/lib/udev
diff --git a/0003-dracut.conf.5.asc-s-dracut-conf.d-dracut.conf.d-g.patch b/0003-dracut.conf.5.asc-s-dracut-conf.d-dracut.conf.d-g.patch
new file mode 100644
index 0000000..8d32594
--- /dev/null
+++ b/0003-dracut.conf.5.asc-s-dracut-conf.d-dracut.conf.d-g.patch
@@ -0,0 +1,24 @@
+From dece5ee1f530335d2c2c10472733f838f6027434 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 1 Aug 2012 16:35:46 +0200
+Subject: [PATCH] dracut.conf.5.asc: s#dracut/conf.d#dracut.conf.d#g
+
+---
+ dracut.conf.5.asc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
+index 89bbf61..f3a7de6 100644
+--- a/dracut.conf.5.asc
++++ b/dracut.conf.5.asc
+@@ -127,8 +127,8 @@ _/etc/dracut.conf_::
+ Old configuration file. You better use your own file in
+ _/etc/dracut/conf.d/_.
+
+-_/etc/dracut/conf.d/_::
+- Any _/etc/dracut/conf.d/*.conf_ file can overwrite the values in
++_/etc/dracut.conf.d/_::
++ Any _/etc/dracut.conf.d/*.conf_ file can overwrite the values in
+ _/etc/dracut.conf_. The configuration files are read in alphanumerical
+ order.
+
diff --git a/0004-include-the-omap_hsmmc-module-on-arm.patch b/0004-include-the-omap_hsmmc-module-on-arm.patch
new file mode 100644
index 0000000..8687717
--- /dev/null
+++ b/0004-include-the-omap_hsmmc-module-on-arm.patch
@@ -0,0 +1,22 @@
+From ec6d8eab6963078bc472f7512cc1a1491dee98e6 Mon Sep 17 00:00:00 2001
+From: Dennis Gilmore <dennis at ausil.us>
+Date: Thu, 2 Aug 2012 05:12:54 -0500
+Subject: [PATCH] include the omap_hsmmc module on arm
+
+---
+ modules.d/90kernel-modules/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
+index 4e75ef8..e58b257 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -40,7 +40,7 @@ installkernel() {
+ hostonly='' instmods usb_storage sdhci sdhci-pci
+
+ # arm specific modules
+- hostonly='' instmods sdhci_esdhc_imx mmci sdhci_tegra mvsdio omap omapdrm sdhci_dove ahci_platform pata_imx sata_mv
++ hostonly='' instmods sdhci_esdhc_imx mmci sdhci_tegra mvsdio omap omapdrm omap_hsmmc sdhci_dove ahci_platform pata_imx sata_mv
+
+ # install keyboard support
+ hostonly='' instmods atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech hid-logitech-dj hid-microsoft ehci-hcd ohci-hcd uhci-hcd xhci-hcd hid_generic
diff --git a/0005-mdraid-always-create-need_shutdown-if-we-have-assemb.patch b/0005-mdraid-always-create-need_shutdown-if-we-have-assemb.patch
new file mode 100644
index 0000000..3a487a9
--- /dev/null
+++ b/0005-mdraid-always-create-need_shutdown-if-we-have-assemb.patch
@@ -0,0 +1,60 @@
+From e4297a66b1458329437e35bf7d99a4f20c1d824d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 14 Aug 2012 17:44:46 +0200
+Subject: [PATCH] mdraid: always create need_shutdown, if we have assembled a
+ raid
+
+---
+ modules.d/90mdraid/mdraid-cleanup.sh | 4 ++--
+ modules.d/90mdraid/mdraid-needshutdown.sh | 11 +++++++++++
+ modules.d/90mdraid/module-setup.sh | 1 +
+ 3 files changed, 14 insertions(+), 2 deletions(-)
+ create mode 100755 modules.d/90mdraid/mdraid-needshutdown.sh
+
+diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh
+index 9c4bc18..da86d65 100755
+--- a/modules.d/90mdraid/mdraid-cleanup.sh
++++ b/modules.d/90mdraid/mdraid-cleanup.sh
+@@ -14,11 +14,11 @@ for md in /dev/md[0-9_]*; do
+ containers="$containers $md"
+ continue
+ fi
+- mdadm $_offroot -S "$md" >/dev/null 2>&1 || need_shutdown
++ mdadm $_offroot -S "$md" >/dev/null 2>&1
+ done
+
+ for md in $containers; do
+- mdadm $_offroot -S "$md" >/dev/null 2>&1 || need_shutdown
++ mdadm $_offroot -S "$md" >/dev/null 2>&1
+ done
+
+ unset containers udevinfo _offroot
+diff --git a/modules.d/90mdraid/mdraid-needshutdown.sh b/modules.d/90mdraid/mdraid-needshutdown.sh
+new file mode 100755
+index 0000000..79f9852
+--- /dev/null
++++ b/modules.d/90mdraid/mdraid-needshutdown.sh
+@@ -0,0 +1,11 @@
++#!/bin/sh
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++
++type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
++
++for md in /dev/md[0-9_]*; do
++ [ -b "$md" ] || continue
++ need_shutdown
++ break
++done
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index 8522756..6119226 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -84,6 +84,7 @@ install() {
+ inst_hook pre-udev 30 "$moddir/mdmon-pre-udev.sh"
+ inst_hook pre-trigger 30 "$moddir/parse-md.sh"
+ inst_hook pre-mount 10 "$moddir/mdraid-waitclean.sh"
++ inst_hook cleanup 99 "$moddir/mdraid-needshutdown.sh"
+ inst_hook shutdown 30 "$moddir/md-shutdown.sh"
+ inst_script "$moddir/mdraid-cleanup.sh" /sbin/mdraid-cleanup
+ inst_script "$moddir/mdraid_start.sh" /sbin/mdraid_start
diff --git a/0006-add-back-scsi_wait_scan.patch b/0006-add-back-scsi_wait_scan.patch
new file mode 100644
index 0000000..7f7dfb2
--- /dev/null
+++ b/0006-add-back-scsi_wait_scan.patch
@@ -0,0 +1,34 @@
+From bdf1f472b461747d4cb9f32ae18bb2033e592970 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 17 Aug 2012 09:22:12 +0200
+Subject: [PATCH] add back scsi_wait_scan
+
+---
+ modules.d/98systemd/dracut-initqueue.sh | 1 +
+ modules.d/99base/init.sh | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
+index e9da432..773e4cd 100755
+--- a/modules.d/98systemd/dracut-initqueue.sh
++++ b/modules.d/98systemd/dracut-initqueue.sh
+@@ -25,6 +25,7 @@ while :; do
+ check_finished && break
+
+ udevsettle
++ modprobe -q scsi_wait_scan && modprobe -q -r scsi_wait_scan
+
+ check_finished && break
+
+diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
+index 16c8958..4c5a2f8 100755
+--- a/modules.d/99base/init.sh
++++ b/modules.d/99base/init.sh
+@@ -156,6 +156,7 @@ while :; do
+ check_finished && break
+
+ udevsettle
++ modprobe -q scsi_wait_scan && modprobe -q -r scsi_wait_scan
+
+ check_finished && break
+
diff --git a/0007-network-reintroduce-rd.neednet.patch b/0007-network-reintroduce-rd.neednet.patch
new file mode 100644
index 0000000..83642bf
--- /dev/null
+++ b/0007-network-reintroduce-rd.neednet.patch
@@ -0,0 +1,41 @@
+From 48dba7f9ace186871528eb4d83cd96e92e853c6c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 21 Aug 2012 14:47:14 +0200
+Subject: [PATCH] network: reintroduce rd.neednet
+
+rd.neednet is used by anaconda and the network interfaces cannot
+be known in advance.
+---
+ dracut.cmdline.7.asc | 3 +++
+ modules.d/40network/net-genrules.sh | 4 +++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index 71d02ca..c376d79 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -384,6 +384,9 @@ interface name. Better name it "bootnet" or "bluesocket".
+ **biosdevname=0**::
+ boolean, turn off biosdevname network interface renaming
+
++**rd.neednet=1**::
++ boolean, bring up network even without netroot set
++
+ **vlan=_<vlanname>_:_<phydevice>_**::
+ Setup vlan device named <vlanname> on <phydeivce>.
+ We support the four styles of vlan names: VLAN_PLUS_VID (vlan0005), VLAN_PLUS_VID_NO_PAD (vlan5),
+diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
+index 8aeee2d..6a58ab5 100755
+--- a/modules.d/40network/net-genrules.sh
++++ b/modules.d/40network/net-genrules.sh
+@@ -15,7 +15,9 @@ fix_bootif() {
+ }
+
+ # Don't continue if we don't need network
+-[ -z "$netroot" ] && ! [ -e "/tmp/net.ifaces" ] && return;
++if [ -z "$netroot" ] && [ ! -e "/tmp/net.ifaces" ] && ! getargbool 0 rd.neednet >/dev/null; then
++ return
++fi
+
+ # Write udev rules
+ {
diff --git a/0008-fips-set-boot-as-symlink-to-sysroot-boot-if-no-boot-.patch b/0008-fips-set-boot-as-symlink-to-sysroot-boot-if-no-boot-.patch
new file mode 100644
index 0000000..91a7f93
--- /dev/null
+++ b/0008-fips-set-boot-as-symlink-to-sysroot-boot-if-no-boot-.patch
@@ -0,0 +1,48 @@
+From c9a9968dfc7f8fb644909cbb52e27fe7312156a7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 21 Aug 2012 15:01:08 +0200
+Subject: [PATCH] fips: set /boot as symlink to /sysroot/boot if no boot=
+ parameter
+
+otherwise sha512hmac will error out with:
+
+sha512hmac -c /sysroot/boot/.vmlinuz-2.6.32-220.el6.x86_64.hmac
+Error opening "/boot/vmlinuz-2.6.32-220.el6.x86_64": No such file or directory.
+---
+ 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 67eefb8..324e062 100755
+--- a/modules.d/01fips/fips.sh
++++ b/modules.d/01fips/fips.sh
+@@ -45,23 +45,23 @@ mount_boot()
+ mkdir /boot
+ info "Mounting $boot as /boot"
+ mount -oro "$boot" /boot || return 1
++ elif [ -d "$NEWROOT/boot" ]; then
++ rm -fr /boot
++ ln -sf "$NEWROOT/boot" /boot
+ fi
+ }
+
+ do_fips()
+ {
+ info "Checking integrity of kernel"
+- newroot=$NEWROOT
+ KERNEL=$(uname -r)
+
+- [ -e "$newroot/boot/.vmlinuz-${KERNEL}.hmac" ] || unset newroot
+-
+- if ! [ -e "$newroot/boot/.vmlinuz-${KERNEL}.hmac" ]; then
+- warn "$newroot/boot/.vmlinuz-${KERNEL}.hmac does not exist"
++ if ! [ -e "/boot/.vmlinuz-${KERNEL}.hmac" ]; then
++ warn "/boot/.vmlinuz-${KERNEL}.hmac does not exist"
+ return 1
+ fi
+
+- sha512hmac -c "$newroot/boot/.vmlinuz-${KERNEL}.hmac" || return 1
++ sha512hmac -c "/boot/.vmlinuz-${KERNEL}.hmac" || return 1
+
+ FIPSMODULES=$(cat /etc/fipsmodules)
+
diff --git a/0009-install-dracut-install.c-Ensure-deps-are-resolved-wh.patch b/0009-install-dracut-install.c-Ensure-deps-are-resolved-wh.patch
new file mode 100644
index 0000000..ab4124a
--- /dev/null
+++ b/0009-install-dracut-install.c-Ensure-deps-are-resolved-wh.patch
@@ -0,0 +1,45 @@
+From 68318328f1fc394ac043b939425715ba78dc6f57 Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin at mageia.org>
+Date: Tue, 14 Aug 2012 22:09:39 +0100
+Subject: [PATCH] install/dracut-install.c: Ensure deps are resolved when
+ handling scripts
+
+If we are doing lazy dep solving and happen to process a script with a
+shebang on e.g. /bin/bash before we encounter the actual binary itself
+we effectively ignore the fact that we've been asked to resolve the deps
+and put the item in the 'seen' hashmap. Thus when we later really do try
+and resolve deps, we short circuit and don't do anything.
+
+Example test case:
+
+$ cd
+$ mkdir -p foo/bin
+$ cp /bin/bash foo/bin
+$ echo '#!/bin/bash' >foo/bin/script
+$ dracut-install -D $HOME/foo -R $HOME/foo/bin/script $HOME/foo/bin/bash
+---
+ install/dracut-install.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index e79065d..9a244ba 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -392,10 +392,15 @@ static int dracut_install(const char *src, const char *dst, bool isdir, bool res
+ }
+
+ if (ret == 0) {
+- log_debug("'%s' already exists", fulldstpath);
++ if (resolvedeps) {
++ log_debug("'%s' already exists, but checking for any deps", fulldstpath);
++ ret = resolve_deps(src);
++ } else
++ log_debug("'%s' already exists", fulldstpath);
++
+ free(fulldstpath);
+ /* dst does already exist */
+- return 0;
++ return ret;
+ }
+
+ /* check destination directory */
diff --git a/0010-install-dracut-install.c-Deal-gracefully-with-paths-.patch b/0010-install-dracut-install.c-Deal-gracefully-with-paths-.patch
new file mode 100644
index 0000000..6821a82
--- /dev/null
+++ b/0010-install-dracut-install.c-Deal-gracefully-with-paths-.patch
@@ -0,0 +1,43 @@
+From f9c7788ba5bbb9785ba9946c7a6500fc0c782244 Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin at mageia.org>
+Date: Tue, 14 Aug 2012 22:32:00 +0100
+Subject: [PATCH] install/dracut-install.c: Deal gracefully with paths
+ containing double /'s
+
+While such paths should not be included internally, we cannot
+guarantee that external scripts with shebangs will not do this.
+
+Some older versions of plymouth also resulted in double /'s
+in some paths, so best deal with this gracefully.
+---
+ install/dracut-install.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index 9a244ba..dfee259 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -64,7 +64,7 @@ static size_t dir_len(char const *file)
+ size_t length;
+ /* Strip the basename and any redundant slashes before it. */
+ for (length = strlen(file); 0 < length; length--)
+- if (file[length] == '/')
++ if (file[length] == '/' && file[length-1] != '/')
+ break;
+ return length;
+ }
+@@ -91,7 +91,13 @@ static char *convert_abs_rel(const char *from, const char *target)
+ return strdup(from);
+ }
+
+- asprintf(&realtarget, "%s/%s", q, &p[dirlen + 1]);
++ /* dir_len() skips double /'s e.g. //lib64, so we can't skip just one
++ * character - need to skip all leading /'s */
++ rl = strlen(target);
++ for (i = dirlen+1; i < rl; ++i)
++ if (p[i] != '/')
++ break;
++ asprintf(&realtarget, "%s/%s", q, &p[i]);
+ free(p);
+ free(q);
+
diff --git a/0011-install-dracut-install.c-No-need-to-compare-the-NULL.patch b/0011-install-dracut-install.c-No-need-to-compare-the-NULL.patch
new file mode 100644
index 0000000..001bc71
--- /dev/null
+++ b/0011-install-dracut-install.c-No-need-to-compare-the-NULL.patch
@@ -0,0 +1,23 @@
+From 68c49db95233d03a25b27e01709cd052d60cef7a Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin at mageia.org>
+Date: Sat, 18 Aug 2012 11:38:02 +0100
+Subject: [PATCH] install/dracut-install.c: No need to compare the NULL byte
+ each time.
+
+---
+ install/dracut-install.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index dfee259..c95b7c2 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -63,7 +63,7 @@ static size_t dir_len(char const *file)
+ {
+ size_t length;
+ /* Strip the basename and any redundant slashes before it. */
+- for (length = strlen(file); 0 < length; length--)
++ for (length = strlen(file)-1; 0 < length; length--)
+ if (file[length] == '/' && file[length-1] != '/')
+ break;
+ return length;
diff --git a/0012-udev-rules-Pre-usrmove-systemd-installs-might-not-fi.patch b/0012-udev-rules-Pre-usrmove-systemd-installs-might-not-fi.patch
new file mode 100644
index 0000000..7967217
--- /dev/null
+++ b/0012-udev-rules-Pre-usrmove-systemd-installs-might-not-fi.patch
@@ -0,0 +1,41 @@
+From f9452c94c05e505d358329fbb228da7979770c4c Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin at mageia.org>
+Date: Thu, 16 Aug 2012 14:27:22 +0100
+Subject: [PATCH] udev-rules: Pre usrmove systemd installs might not find
+ udevd.
+
+If users had switched to systemd-183+ but have not completed
+the usrmove, then the variable ${systemdutildir} will likely
+refer to /usr/lib/systemd NOT /lib/systemd and thus the
+systemd-udevd daemon may not be found.
+
+So let's try a little harder and add another hard coded path
+and if we don't find it, then bail out hard.
+---
+ modules.d/95udev-rules/module-setup.sh | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
+index 2e3c955..5e1cce5 100755
+--- a/modules.d/95udev-rules/module-setup.sh
++++ b/modules.d/95udev-rules/module-setup.sh
+@@ -12,7 +12,7 @@ install() {
+ /etc/udev/udev.conf /etc/group
+
+ [ -d ${initdir}/lib/systemd ] || mkdir -p ${initdir}/lib/systemd
+- for _i in ${systemdutildir}/systemd-udevd ${udevdir}/udevd /sbin/udevd; do
++ for _i in ${systemdutildir}/systemd-udevd ${udevdir}/udevd /lib/systemd/systemd-udevd /sbin/udevd; do
+ [ -x "$_i" ] || continue
+ inst "$_i"
+
+@@ -21,6 +21,10 @@ install() {
+ fi
+ break
+ done
++ if ! [[ -e ${initdir}/lib/systemd/systemd-udevd ]]; then
++ derror "Cannot find [systemd-]udevd binary!"
++ exit 1
++ fi
+
+ inst_rules 50-udev-default.rules 60-persistent-storage.rules \
+ 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
diff --git a/dracut.spec b/dracut.spec
index e7e9012..e6ae31c 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -10,7 +10,7 @@
Name: dracut
Version: 023
-Release: 2%{?dist}
+Release: 13.git20120821%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel}
@@ -29,8 +29,19 @@ 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.bz2
+Patch1: 0001-COPYING-updated-to-recent-version-of-http-www.gnu.or.patch
+Patch2: 0002-dracut.conf.d-gentoo.conf.example-fix-header.patch
+Patch3: 0003-dracut.conf.5.asc-s-dracut-conf.d-dracut.conf.d-g.patch
+Patch4: 0004-include-the-omap_hsmmc-module-on-arm.patch
+Patch5: 0005-mdraid-always-create-need_shutdown-if-we-have-assemb.patch
+Patch6: 0006-add-back-scsi_wait_scan.patch
+Patch7: 0007-network-reintroduce-rd.neednet.patch
+Patch8: 0008-fips-set-boot-as-symlink-to-sysroot-boot-if-no-boot-.patch
+Patch9: 0009-install-dracut-install.c-Ensure-deps-are-resolved-wh.patch
+Patch10: 0010-install-dracut-install.c-Deal-gracefully-with-paths-.patch
+Patch11: 0011-install-dracut-install.c-No-need-to-compare-the-NULL.patch
+Patch12: 0012-udev-rules-Pre-usrmove-systemd-installs-might-not-fi.patch
-Patch1: 0001-include-the-omap_hsmmc-module-on-arm.patch
BuildRequires: dash bash git
@@ -363,6 +374,11 @@ rm -rf $RPM_BUILD_ROOT
%dir /var/lib/dracut/overlay
%changelog
+* Tue Aug 21 2012 Harald Hoyer <harald at redhat.com> 023-13.git20120821
+- reintroduce rd.neednet, which reenables anaconda networking
+- fix some dracut-install corner cases
+- fix FIPS for /boot not on extra partition
+
* Wed Aug 01 2012 Dennis Gilmore <dennis at ausil.us> - 023-2
- add patch to include omap_hsmmc for arm
More information about the scm-commits
mailing list