summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmadeusz Piotr Żołnowski <aidecoe@gentoo.org>2014-07-18 07:54:18 +0000
committerAmadeusz Piotr Żołnowski <aidecoe@gentoo.org>2014-07-18 07:54:18 +0000
commit624b88b3dbe36bdf96e57e33d1ce3b770de978ab (patch)
tree7dd14b5feba05e49f8e6db23a987087e2b1ce737
parentRemove masked ruby packages. (diff)
downloadgentoo-2-624b88b3dbe36bdf96e57e33d1ce3b770de978ab.tar.gz
gentoo-2-624b88b3dbe36bdf96e57e33d1ce3b770de978ab.tar.bz2
gentoo-2-624b88b3dbe36bdf96e57e33d1ce3b770de978ab.zip
Version bump.
NEWS ~~~~ - "rd.cmdline=ask" will ask the user on the console to enter additional kernel command line parameters - "rd.hostonly=0" removes all "hostonly" added custom files, which is useful in combination with "rd.auto" or other specific parameters, if you want to boot on the same hardware, but the compiled in configuration does not match your setup anymore - inst* functions and dracut-install now accept the "-H" flag, which logs all installed files to /lib/dracut/hostonly-files. This is used to remove those files, if rd.hostonly is given on the kernel command line - strstr now only does literal string match, please use strglob and strglobin for globs - fixed unpacking of the microcode image on shutdown - added systemd-gpt-auto-generator - fcoe: wait for lldpad to be ready - network: handle "ip=dhcp6" - network: DCHPv6: set valid_lft and preferred_lft - dm: support dm-cache - fstab: do not mount and fsck from fstab if using systemd - break at switch_root only for bare rd.break and not for any rd.break=... - nbd: make use of "--systemd-mark", otherwise it gets killed on switch_root - fcoe-uefi: fixed cmdline parameter generation - iscsi: deprecate "ip=ibft", use "rd.iscsi.ibft[=1]" from now on - "lsinitrd -m" now only lists the dracut modules of the image - a lot of small bugfixes (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key F0134531E1DBFAB5)
-rw-r--r--sys-kernel/dracut/ChangeLog39
-rw-r--r--sys-kernel/dracut/dracut-038.ebuild264
-rw-r--r--sys-kernel/dracut/files/038-0001-dracut-functions.sh-support-for-altern.patch41
-rw-r--r--sys-kernel/dracut/files/038-0002-gentoo.conf-let-udevdir-be-handled-by-.patch30
-rw-r--r--sys-kernel/dracut/files/038-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch74
-rw-r--r--sys-kernel/dracut/files/038-0004-Install-dracut-install-into-libexec-di.patch81
-rw-r--r--sys-kernel/dracut/files/038-0005-modsign-do-not-hardcode-path-to-keyctl.patch26
7 files changed, 554 insertions, 1 deletions
diff --git a/sys-kernel/dracut/ChangeLog b/sys-kernel/dracut/ChangeLog
index ca31bfb5d2ca..bd6aa5b8461c 100644
--- a/sys-kernel/dracut/ChangeLog
+++ b/sys-kernel/dracut/ChangeLog
@@ -1,6 +1,43 @@
# ChangeLog for sys-kernel/dracut
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/ChangeLog,v 1.168 2014/06/12 18:47:17 aidecoe Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/ChangeLog,v 1.169 2014/07/18 07:54:18 aidecoe Exp $
+
+*dracut-038 (18 Jul 2014)
+
+ 18 Jul 2014; Amadeusz Żołnowski <aidecoe@gentoo.org> +dracut-038.ebuild,
+ +files/038-0001-dracut-functions.sh-support-for-altern.patch,
+ +files/038-0002-gentoo.conf-let-udevdir-be-handled-by-.patch,
+ +files/038-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch,
+ +files/038-0004-Install-dracut-install-into-libexec-di.patch,
+ +files/038-0005-modsign-do-not-hardcode-path-to-keyctl.patch:
+ Version bump.
+
+ NEWS
+ ~~~~
+ - "rd.cmdline=ask" will ask the user on the console to enter additional
+ kernel command line parameters
+ - "rd.hostonly=0" removes all "hostonly" added custom files, which is useful
+ in combination with "rd.auto" or other specific parameters, if you want to
+ boot on the same hardware, but the compiled in configuration does not match
+ your setup anymore
+ - inst* functions and dracut-install now accept the "-H" flag, which logs all
+ installed files to /lib/dracut/hostonly-files. This is used to remove those
+ files, if rd.hostonly is given on the kernel command line
+ - strstr now only does literal string match, please use strglob and strglobin
+ for globs
+ - fixed unpacking of the microcode image on shutdown
+ - added systemd-gpt-auto-generator
+ - fcoe: wait for lldpad to be ready
+ - network: handle "ip=dhcp6"
+ - network: DCHPv6: set valid_lft and preferred_lft
+ - dm: support dm-cache
+ - fstab: do not mount and fsck from fstab if using systemd
+ - break at switch_root only for bare rd.break and not for any rd.break=...
+ - nbd: make use of "--systemd-mark", otherwise it gets killed on switch_root
+ - fcoe-uefi: fixed cmdline parameter generation
+ - iscsi: deprecate "ip=ibft", use "rd.iscsi.ibft[=1]" from now on
+ - "lsinitrd -m" now only lists the dracut modules of the image
+ - a lot of small bugfixes
*dracut-037-r3 (12 Jun 2014)
diff --git a/sys-kernel/dracut/dracut-038.ebuild b/sys-kernel/dracut/dracut-038.ebuild
new file mode 100644
index 000000000000..40fd505f07af
--- /dev/null
+++ b/sys-kernel/dracut/dracut-038.ebuild
@@ -0,0 +1,264 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-038.ebuild,v 1.1 2014/07/18 07:54:18 aidecoe Exp $
+
+EAPI=4
+
+inherit bash-completion-r1 eutils linux-info multilib systemd
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="http://dracut.wiki.kernel.org"
+SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug selinux systemd"
+
+RESTRICT="test"
+
+CDEPEND="virtual/udev
+ systemd? ( >=sys-apps/systemd-199 )
+ selinux? ( sec-policy/selinux-dracut )
+ "
+RDEPEND="${CDEPEND}
+ app-arch/cpio
+ >=app-shells/bash-4.0
+ >sys-apps/kmod-5[tools]
+ || ( >=sys-apps/sysvinit-2.87-r3 sys-apps/systemd-sysv-utils )
+ >=sys-apps/util-linux-2.21
+
+ debug? ( dev-util/strace )
+ selinux? ( sys-libs/libselinux sys-libs/libsepol )
+ "
+DEPEND="${CDEPEND}
+ app-text/asciidoc
+ >=dev-libs/libxslt-1.1.26
+ app-text/docbook-xml-dtd:4.5
+ >=app-text/docbook-xsl-stylesheets-1.75.2
+ virtual/pkgconfig
+ "
+
+DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules
+ README.testsuite TODO )
+MY_LIBDIR=/usr/lib
+PATCHES=(
+ "${FILESDIR}/${PV}-0001-dracut-functions.sh-support-for-altern.patch"
+ "${FILESDIR}/${PV}-0002-gentoo.conf-let-udevdir-be-handled-by-.patch"
+ "${FILESDIR}/${PV}-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch"
+ "${FILESDIR}/${PV}-0004-Install-dracut-install-into-libexec-di.patch"
+ "${FILESDIR}/${PV}-0005-modsign-do-not-hardcode-path-to-keyctl.patch"
+ )
+
+#
+# Helper functions
+#
+
+# Removes module from modules.d.
+# $1 = module name
+# Module name can be specified without number prefix.
+rm_module() {
+ local force m
+ [[ $1 = -f ]] && force=-f
+
+ for m in $@; do
+ if [[ $m =~ ^[0-9][0-9][^\ ]*$ ]]; then
+ rm ${force} --interactive=never -r "${modules_dir}"/$m
+ else
+ rm ${force} --interactive=never -r "${modules_dir}"/[0-9][0-9]$m
+ fi
+ done
+}
+
+# Grabbed from net-misc/netctl ebuild.
+optfeature() {
+ local desc=$1
+ shift
+ while (( $# )); do
+ if has_version "$1"; then
+ elog " [I] $1 to ${desc}"
+ else
+ elog " [ ] $1 to ${desc}"
+ fi
+ shift
+ done
+}
+
+#
+# ebuild functions
+#
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ local libdirs="/$(get_libdir) /usr/$(get_libdir)"
+ if [[ ${SYMLINK_LIB} = yes ]]; then
+ # Preserve lib -> lib64 symlinks in initramfs
+ [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib"
+ fi
+ einfo "Setting libdirs to \"${libdirs}\" ..."
+ sed -e "3alibdirs=\"${libdirs}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ local udevdir="$("$(tc-getPKG_CONFIG)" udev --variable=udevdir)"
+ einfo "Setting udevdir to ${udevdir}..."
+ sed -r -e "s|^(udevdir=).*$|\1${udevdir}|" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ if use systemd; then
+ local systemdutildir="$(systemd_get_utildir)"
+ local systemdsystemunitdir="$(systemd_get_unitdir)"
+ local systemdsystemconfdir="$("$(tc-getPKG_CONFIG)" systemd \
+ --variable=systemdsystemconfdir)"
+ [[ ${systemdsystemconfdir} ]] \
+ || systemdsystemconfdir=/etc/systemd/system
+ einfo "Setting systemdutildir to ${systemdutildir} and ..."
+ sed -e "5asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir} and..."
+ sed -e "6asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemconfdir to ${systemdsystemconfdir}..."
+ sed -e "7asystemdsystemconfdir=\"${systemdsystemconfdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ else
+ local systemdutildir="/lib/systemd"
+ einfo "Setting systemdutildir for standalone udev to" \
+ "${systemdutildir}..."
+ sed -e "5asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ fi
+
+ epatch_user
+}
+
+src_configure() {
+ local myconf="--libdir=${MY_LIBDIR}"
+ myconf+=" --bashcompletiondir=$(get_bashcompdir)"
+
+ if use systemd; then
+ myconf+=" --systemdsystemunitdir='$(systemd_get_unitdir)'"
+ fi
+
+ econf ${myconf}
+}
+
+src_compile() {
+ tc-export CC
+ emake doc install/dracut-install
+}
+
+src_install() {
+ default
+
+ local my_libdir="${MY_LIBDIR}"
+ local dracutlibdir="${my_libdir#/}/dracut"
+
+ echo "DRACUT_VERSION=$PVR" > "${D%/}/${dracutlibdir}/dracut-version.sh"
+
+ insinto "${dracutlibdir}/dracut.conf.d/"
+ newins dracut.conf.d/gentoo.conf.example gentoo.conf
+
+ insinto /etc/logrotate.d
+ newins dracut.logrotate dracut
+
+ dodir /var/lib/dracut/overlay
+
+ dohtml dracut.html
+
+ #
+ # Modules
+ #
+ local module
+ modules_dir="${D%/}/${dracutlibdir}/modules.d"
+
+ use debug || rm_module 95debug
+ use selinux || rm_module 98selinux
+
+ if use systemd; then
+ # With systemd following modules do not make sense
+ rm_module 96securityfs 97masterkey 98integrity
+ else
+ rm_module 98systemd
+ # Without systemd following modules do not make sense
+ rm_module 00systemd-bootchart
+ fi
+
+ # Remove modules which won't work for sure
+ rm_module 95fcoe # no tools
+ # fips module depends on masked app-crypt/hmaccalc
+ rm_module 01fips 02fips-aesni
+}
+
+pkg_postinst() {
+ if linux-info_get_any_version && linux_config_src_exists; then
+ ewarn ""
+ ewarn "If the following test report contains a missing kernel"
+ ewarn "configuration option, you should reconfigure and rebuild your"
+ ewarn "kernel before booting image generated with this Dracut version."
+ ewarn ""
+
+ local CONFIG_CHECK="~BLK_DEV_INITRD ~DEVTMPFS"
+
+ # Kernel configuration options descriptions:
+ local desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev"
+ local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\
+"(initramfs/initrd) support"
+
+ local opt desc
+
+ # Generate ERROR_* variables for check_extra_config.
+ for opt in ${CONFIG_CHECK}; do
+ opt=${opt#\~}
+ desc=desc_${opt}
+ eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \
+ "is missing and REQUIRED'"
+ done
+
+ check_extra_config
+ echo
+ else
+ ewarn ""
+ ewarn "Your kernel configuration couldn't be checked. Do you have"
+ ewarn "/usr/src/linux/.config file there? Please check manually if"
+ ewarn "following options are enabled:"
+ ewarn ""
+ ewarn " CONFIG_BLK_DEV_INITRD"
+ ewarn " CONFIG_DEVTMPFS"
+ ewarn ""
+ fi
+
+ elog "To get additional features, a number of optional runtime"
+ elog "dependencies may be installed:"
+ elog ""
+ optfeature "Networking support" net-misc/curl "net-misc/dhcp[client]" \
+ sys-apps/iproute2
+ optfeature \
+ "Measure performance of the boot process for later visualisation" \
+ app-benchmarks/bootchart2 sys-apps/usleep sys-process/acct
+ optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs
+ optfeature "Load kernel modules and drop this privilege for real init" \
+ sys-libs/libcap
+ optfeature "Support CIFS" net-fs/cifs-utils
+ optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \
+ sys-fs/cryptsetup
+ optfeature "Support for GPG-encrypted keys for crypt module" \
+ app-crypt/gnupg
+ optfeature \
+ "Allows use of dash instead of default bash (on your own risk)" \
+ app-shells/dash
+ optfeature "Framebuffer splash (media-gfx/splashutils)" \
+ media-gfx/splashutils
+ optfeature "Support iSCSI" sys-block/open-iscsi
+ optfeature "Support Logical Volume Manager" sys-fs/lvm2
+ optfeature "Support MD devices, also known as software RAID devices" \
+ sys-fs/mdadm
+ optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools
+ optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5'
+ optfeature "Support network block devices" sys-block/nbd
+ optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind
+ optfeature \
+ "Install ssh and scp along with config files and specified keys" \
+ dev-libs/openssl
+ optfeature "Enable logging with syslog-ng or rsyslog" app-admin/syslog-ng \
+ app-admin/rsyslog
+}
diff --git a/sys-kernel/dracut/files/038-0001-dracut-functions.sh-support-for-altern.patch b/sys-kernel/dracut/files/038-0001-dracut-functions.sh-support-for-altern.patch
new file mode 100644
index 000000000000..04ba6dcee10a
--- /dev/null
+++ b/sys-kernel/dracut/files/038-0001-dracut-functions.sh-support-for-altern.patch
@@ -0,0 +1,41 @@
+From 5ade0eafee011a55c408ab315c33e7fb76220ce7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
+Date: Sun, 6 Jan 2013 13:35:01 +0100
+Subject: [PATCH 1/5] dracut-functions.sh: support for alternative udev dirs -
+ udevaltdirs
+
+It is required for Gentoo which moves udev from / to /usr and supports
+both /lib/udev and /usr/lib/udev for compatibility with other packages.
+
+Credits go to Alexander Tsoy <alexander@tsoy.me>.
+
+Conflicts:
+ dracut-functions.sh
+---
+ dracut-functions.sh | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index d30e835..70444b8 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -928,6 +928,16 @@ inst_rules() {
+ inst_dir "$_target"
+ for _rule in "$@"; do
+ if [ "${_rule#/}" = "$_rule" ]; then
++ for r in ${udevaltdirs}; do
++ [[ "$r" = "${udevdir}" ]] && continue
++ if [[ -e $r/rules.d/$_rule ]]; then
++ _found="$r/rules.d/$_rule"
++ inst_rule_programs "$_found"
++ inst_rule_group_owner "$_found"
++ inst_rule_initqueue "$_found"
++ inst_simple "$_found" "${udevdir}/rules.d/${_found##*/}"
++ fi
++ done
+ for r in ${udevdir}/rules.d ${hostonly:+/etc/udev/rules.d}; do
+ if [[ -e $r/$_rule ]]; then
+ _found="$r/$_rule"
+--
+2.0.0
+
diff --git a/sys-kernel/dracut/files/038-0002-gentoo.conf-let-udevdir-be-handled-by-.patch b/sys-kernel/dracut/files/038-0002-gentoo.conf-let-udevdir-be-handled-by-.patch
new file mode 100644
index 000000000000..5b5e7a8720a9
--- /dev/null
+++ b/sys-kernel/dracut/files/038-0002-gentoo.conf-let-udevdir-be-handled-by-.patch
@@ -0,0 +1,30 @@
+From 0c135381d80a391bc57e07b60204ef4699287891 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
+Date: Sun, 16 Dec 2012 20:02:48 +0100
+Subject: [PATCH 2/5] gentoo.conf: let udevdir= be handled by pkg-config and
+ use udevaltdirs
+
+To avoid need of rebuild after udev update/downgrade let udevdir= be set
+dynamically with pkg-config. Use udevaltdirs to search for rules both
+in old and new locations.
+---
+ dracut.conf.d/gentoo.conf.example | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example
+index 26e7314..f9617f0 100644
+--- a/dracut.conf.d/gentoo.conf.example
++++ b/dracut.conf.d/gentoo.conf.example
+@@ -1,7 +1,8 @@
+ # /etc/dracut.conf.d/gentoo.conf
+ # dracut config file customized for Gentoo Base System release 2
+
+-udevdir=/lib/udev
++udevdir=
++udevaltdirs="/lib/udev /usr/lib/udev"
+ ro_mnt=yes
+
+ #
+--
+2.0.0
+
diff --git a/sys-kernel/dracut/files/038-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch b/sys-kernel/dracut/files/038-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch
new file mode 100644
index 000000000000..9ea5d414b6d2
--- /dev/null
+++ b/sys-kernel/dracut/files/038-0003-Use-the-same-paths-in-dracut.sh-as-tho.patch
@@ -0,0 +1,74 @@
+From 5825d40138f3738a8b70559af6f6f16927068959 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
+Date: Wed, 2 Oct 2013 22:37:09 +0200
+Subject: [PATCH 3/5] Use the same paths in dracut.sh as those set with
+ configure script
+
+Makefile alters destination main dracut script and sets dracutbasedir to
+the value of pkglibdir set in configure.
+---
+ Makefile | 3 +++
+ dracut.sh | 9 ++++-----
+ 2 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 7383309..842f6b1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -103,6 +103,9 @@ install: dracut-version.sh
+ mkdir -p $(DESTDIR)$(pkglibdir)/modules.d
+ mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
+ install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
++ sed -r \
++ -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
++ -i $(DESTDIR)$(bindir)/dracut
+ install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
+ install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd
+ install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd
+diff --git a/dracut.sh b/dracut.sh
+index c6da411..3764d3d 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -26,10 +26,13 @@
+ # store for logging
+ dracut_args=( "$@" )
+
++# base dirs
++pkglibdir=/usr/lib/dracut
++dracutbasedir="$pkglibdir"
++
+ set -o pipefail
+
+ usage() {
+- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
+ if [[ -f $dracutbasedir/dracut-version.sh ]]; then
+ . $dracutbasedir/dracut-version.sh
+ fi
+@@ -54,7 +57,6 @@ EOF
+ }
+
+ long_usage() {
+- [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
+ if [[ -f $dracutbasedir/dracut-version.sh ]]; then
+ . $dracutbasedir/dracut-version.sh
+ fi
+@@ -652,8 +654,6 @@ export DRACUT_LOG_LEVEL=warning
+ debug=yes
+ }
+
+-[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
+-
+ # if we were not passed a config file, try the default one
+ if [[ ! -f $conffile ]]; then
+ if [[ $allowlocal ]]; then
+@@ -774,7 +774,6 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
+ [[ $use_fstab_l ]] && use_fstab=$use_fstab_l
+ [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
+ [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
+-[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
+ [[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
+ [[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
+ [[ $tmpdir ]] || tmpdir=/var/tmp
+--
+2.0.0
+
diff --git a/sys-kernel/dracut/files/038-0004-Install-dracut-install-into-libexec-di.patch b/sys-kernel/dracut/files/038-0004-Install-dracut-install-into-libexec-di.patch
new file mode 100644
index 000000000000..64f730fb6fea
--- /dev/null
+++ b/sys-kernel/dracut/files/038-0004-Install-dracut-install-into-libexec-di.patch
@@ -0,0 +1,81 @@
+From bd2d9c293c93701944b164da6a616febc35a5db7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
+Date: Wed, 2 Oct 2013 22:40:43 +0200
+Subject: [PATCH 4/5] Install dracut-install into libexec dir instead of lib
+ dir
+
+dracut-install script is the only thing ABI specific atm.
+
+See https://bugs.gentoo.org/show_bug.cgi?id=485218 for details on the
+problem.
+---
+ Makefile | 4 +++-
+ configure | 1 +
+ dracut-functions.sh | 4 ++++
+ dracut.sh | 1 +
+ 4 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 842f6b1..1872896 100644
+--- a/Makefile
++++ b/Makefile
+@@ -104,6 +104,7 @@ install: dracut-version.sh
+ mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
+ install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
+ sed -r \
++ -e "s|^(libexecdir)=.*|\1=$(libexecdir)|" \
+ -e "s|^(pkglibdir)=.*|\1=$(pkglibdir)|" \
+ -i $(DESTDIR)$(bindir)/dracut
+ install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
+@@ -147,7 +148,8 @@ endif
+ done \
+ fi
+ if [ -f install/dracut-install ]; then \
+- install -m 0755 install/dracut-install $(DESTDIR)$(pkglibdir)/dracut-install; \
++ mkdir -p $(DESTDIR)$(libexecdir); \
++ install -m 0755 install/dracut-install $(DESTDIR)$(libexecdir)/dracut-install; \
+ fi
+ if [ -f skipcpio/skipcpio ]; then \
+ install -m 0755 skipcpio/skipcpio $(DESTDIR)$(pkglibdir)/skipcpio; \
+diff --git a/configure b/configure
+index 19b5e1f..d2ffc2c 100755
+--- a/configure
++++ b/configure
+@@ -61,6 +61,7 @@ sbindir ?= ${sbindir:-${prefix}/sbin}
+ mandir ?= ${mandir:-${prefix}/share/man}
+ enable_documentation ?= ${enable_documentation:-yes}
+ bindir ?= ${bindir:-${prefix}/bin}
++libexecdir ?= ${libexecdir:-${prefix}/libexec}
+ EOF
+
+ {
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 70444b8..aa0949d 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -744,6 +744,10 @@ if ! [[ $DRACUT_INSTALL ]]; then
+ DRACUT_INSTALL=$(find_binary dracut-install)
+ fi
+
++if ! [[ $DRACUT_INSTALL ]] && [[ -x $libexecdir/dracut-install ]]; then
++ DRACUT_INSTALL=$libexecdir/dracut-install
++fi
++
+ if ! [[ $DRACUT_INSTALL ]] && [[ -x $dracutbasedir/dracut-install ]]; then
+ DRACUT_INSTALL=$dracutbasedir/dracut-install
+ fi
+diff --git a/dracut.sh b/dracut.sh
+index 3764d3d..cfb2c33 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -27,6 +27,7 @@
+ dracut_args=( "$@" )
+
+ # base dirs
++libexecdir=/usr/libexec
+ pkglibdir=/usr/lib/dracut
+ dracutbasedir="$pkglibdir"
+
+--
+2.0.0
+
diff --git a/sys-kernel/dracut/files/038-0005-modsign-do-not-hardcode-path-to-keyctl.patch b/sys-kernel/dracut/files/038-0005-modsign-do-not-hardcode-path-to-keyctl.patch
new file mode 100644
index 000000000000..b5e1a49a3e26
--- /dev/null
+++ b/sys-kernel/dracut/files/038-0005-modsign-do-not-hardcode-path-to-keyctl.patch
@@ -0,0 +1,26 @@
+From 461a523086f2077908bebda6467e6b6d20caba78 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 31 Mar 2014 17:56:13 +0400
+Subject: [PATCH 5/5] modsign: do not hardcode path to keyctl
+
+https://bugs.gentoo.org/show_bug.cgi?id=506094
+---
+ modules.d/03modsign/module-setup.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh
+index 09285d3..cc0e241 100755
+--- a/modules.d/03modsign/module-setup.sh
++++ b/modules.d/03modsign/module-setup.sh
+@@ -29,7 +29,7 @@ depends() {
+ # called by dracut
+ install() {
+ inst_dir /lib/modules/keys
+- inst_binary /usr/bin/keyctl
++ inst_binary keyctl
+
+ inst_hook pre-trigger 01 "$moddir/load-modsign-keys.sh"
+
+--
+2.0.0
+