summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmadeusz Żołnowski <aidecoe@gentoo.org>2012-11-01 09:54:17 +0000
committerAmadeusz Żołnowski <aidecoe@gentoo.org>2012-11-01 09:54:17 +0000
commit42175ea64011a1aaa282911ac85595e8c5fb07f4 (patch)
tree3a23752dcf7f56d08f60ef5ad97f33b3c27daa7d /sys-kernel
parentStable for x86, wrt bug #440378 (diff)
downloadhistorical-42175ea64011a1aaa282911ac85595e8c5fb07f4.tar.gz
historical-42175ea64011a1aaa282911ac85595e8c5fb07f4.tar.bz2
historical-42175ea64011a1aaa282911ac85595e8c5fb07f4.zip
Fixes bug #437700. Thanks to Alexander Tsoy <alexander@tsoy.me> for the
report and the patch. Also bumped dhcp version dependency to >=4.2.4_p2-r1 wrt bug #437108. Package-Manager: portage-2.1.11.31/cvs/Linux x86_64 Manifest-Sign-Key: 0xE1DBFAB5
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/dracut/ChangeLog14
-rw-r--r--sys-kernel/dracut/Manifest20
-rw-r--r--sys-kernel/dracut/dracut-023-r3.ebuild276
-rw-r--r--sys-kernel/dracut/dracut-024-r1.ebuild273
-rw-r--r--sys-kernel/dracut/files/023-0003-Fallback-to-external-blkid-and-path_id.patch127
-rw-r--r--sys-kernel/dracut/files/024-0001-Fallback-to-external-blkid-and-path_id.patch127
6 files changed, 828 insertions, 9 deletions
diff --git a/sys-kernel/dracut/ChangeLog b/sys-kernel/dracut/ChangeLog
index 823e49427490..a42bd70e7ab3 100644
--- a/sys-kernel/dracut/ChangeLog
+++ b/sys-kernel/dracut/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for sys-kernel/dracut
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/ChangeLog,v 1.90 2012/10/28 11:24:44 aidecoe Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/ChangeLog,v 1.91 2012/11/01 09:54:08 aidecoe Exp $
+
+*dracut-024-r1 (01 Nov 2012)
+*dracut-023-r3 (01 Nov 2012)
+
+ 01 Nov 2012; Amadeusz Żołnowski <aidecoe@gentoo.org>
+ +files/024-0001-Fallback-to-external-blkid-and-path_id.patch,
+ +files/023-0003-Fallback-to-external-blkid-and-path_id.patch,
+ +dracut-023-r3.ebuild, +dracut-024-r1.ebuild:
+ Fixes bug #437700. Thanks to Alexander Tsoy <alexander@tsoy.me> for the
+ report and the patch.
+
+ Also bumped dhcp version dependency to >=4.2.4_p2-r1 wrt bug #437108.
*dracut-024 (28 Oct 2012)
diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest
index d50ff8c3c703..d756c4b043b7 100644
--- a/sys-kernel/dracut/Manifest
+++ b/sys-kernel/dracut/Manifest
@@ -27,6 +27,8 @@ AUX 022-0018-dracut.sh-do-not-copy-var-run-and-var-.patch 983 SHA256 e33e80b3e66
AUX 022-0019-dracut.sh-create-relative-symlinks-for.patch 760 SHA256 d0e17c2847c6e411d673dcfc068edaad91a658299d6f1d41026c2f81d5c80a3e SHA512 72c9d92477fdaade5d7bb92364c465ff3915bc2f4fa47ab61293c72daa5daa6d849824c6f469a28d071794bac79d1798606d798b2f1eebe4ba143aa729a0869e WHIRLPOOL 849e424757e28930552598f1fde97c3d698bb0646e96937a613b0e0b4911da185940d0298242d09e58a16df8d0c391d7d614a154e88e6af673df0b5c824f6d4c
AUX 023-0001-dracut-functions.sh-find_binary-path-s.patch 1272 SHA256 f4d4789f33f6c40894f6fd48da9168a7b8c597e78665f5b2d6256e00c1c7286b SHA512 ff5015dc08d07e0c8a62dd5e93f5bfbf4f20e9999705c0ca45e4dbb0a71f8e0322d8ee7891263866430116127d7dddd56d5e16e0fd60e480399cc90a599c7b67 WHIRLPOOL a0874103b54f729e7c59a4e53f3563918923b83ecdcb6664fccd4e2eaeab0c7f231ef838b4ab2213bcad05a25abde3003bef74f6643f0c0e77d231caee1ae061
AUX 023-0002-90crypt-call-systemd-commands-only-if-.patch 1090 SHA256 827185a3110e850236ba6d080f269b5e73356822d9571a1e5e826c7b5a04fb08 SHA512 a8d2bcd473ff1b0628ada82276d125da0e508ab723446dc1f36075ffe1c7af3d664c0f417c3865f581cda986572a57a9bc7a933696fee1e44f18826849f45093 WHIRLPOOL bd6d4431698471505d7b77eb43490b09c138e23465f4db926e65bc7eb94bd891698cece53aafa072150dfc0a4ea639e1642a9ecc5f7541c7f14ed297e5b70adf
+AUX 023-0003-Fallback-to-external-blkid-and-path_id.patch 5062 SHA256 835a5fbfe43274426c429fa883b3fe314826cb3bb17c6c2f0ae43907a8e7a494 SHA512 bd5c9f01db06d2582460c0c10cb17c7185a60b17fbf9ae1671f7665155a09658f00fd0444a783579bf70e4e89ed8f7390f38cdf7ded940eef090f226f12e1ccf WHIRLPOOL 824322251e3467eddef070b322a73349fd390bfa100451cb64e4a966d16c72c3eac513ea81ee720064806fb2bab3399ededa5645a237bd5665d4b32e9af524d1
+AUX 024-0001-Fallback-to-external-blkid-and-path_id.patch 5058 SHA256 a287a225cd07675bfad477f9be4b06831dac198984d9121ea75207af400d4816 SHA512 83e2f453fbc10120bb8373ea9749630f6cee4ed3f5034bf1971d5b8b95d7b1c163b1199a3c6a91b8a7616dbc878b973b2decd4833c56f50b06b1b1710cf17d9a WHIRLPOOL 23d897f61eecadffbd030a2187ddc020d66b25f1ce814c616fec8b3f3fdcf436fcc45d8dcb37db879bfc3b23561e2d976fc6f5c6138cc5a7fc344ed17c001bcb
AUX dracut-014-multipath-udev-rules.patch 848 SHA256 0e2215897b7cbac1bf9c84b42d6eb8af4438674934749bc339f768cba6662c18 SHA512 c83e2a4e8bc5d25351ce82afdd4f63d9abedbe16a3dfd8aa69f1b0828a841e5106555319f112d93af92b3c1f5e2154a7bf36c8825f1e91feeb512e7c69b5fa16 WHIRLPOOL abc1bc20c022bb040e12ef00aa0aaa5cbbdcdcea71fddb3c222dbf393f7cc1ed1a0725fa95440ba90165c222dc07c6ab530d0b02577608500224f406e66f6257
AUX dracut-014-usrmount-fsck-fix.patch 1208 SHA256 192ed24457c07d282cbdc75576d6bfc272572c482d28188c34a48c613a5b1565 SHA512 71d3199a5acf81cce0527c6e95db61ae07e833e4c27147b9a339655ac01c7e32db40956f171cb9a13a97062f89c6cb5bdcb8e33a2a4b1898c86a1b700fd5c444 WHIRLPOOL 648aa6e97df18f8dd24bd5eba48e18a56ea6a10e36c4e40ec9734547750b10064393c96b31ce2e52229e80507c8333dd95a04aaa873158a220ef4cab6998f8cc
AUX dracut-018-lsinitrd-support-symlinks.patch 699 SHA256 b2d422b0a026265101045b641a2b4cef20e0ca15ca3e6fce8616d721b334ea2f SHA512 6b6f83fa8e99b5160130de6ae86699e6327665d852fdc7910e751c7644f668357f83f108896ebb73130546c76f17f6d0dff50c0da4634779e8d461685529a98b WHIRLPOOL bb2e2c6b12daf8727e874e393e58380b9d49e083ebf929c48104d23d088cc455de3c039fcaa3ac74aa88516c733c2536ccd4a950ee9a8b9745d63e61dbafbb47
@@ -42,17 +44,19 @@ EBUILD dracut-018-r3.ebuild 6894 SHA256 1fd0893281ac2d3343310f0d23e35f22eea6102b
EBUILD dracut-019-r6.ebuild 7083 SHA256 e3a9596fcf4c880163b8aa6ce558f22af5cff38f30db9911babb8d4f7ae073b2 SHA512 17911d02f571475b931a1379039561673aa8649af1920254b059c1733ea1315d6c4bde175610d81b9fffe3de877a847498a2a6dee6f74d09bbad0606d3c2a9fe WHIRLPOOL 631415f0822df0a8011d2e3ee741c914972df284a2a9d884cc10bc3810acd02392c1d48e39d9af042a6aa4bad65d39e5965bb99bd7d3b35693b711c3057b91b4
EBUILD dracut-022-r6.ebuild 8515 SHA256 84d78dc58227147667d422872301a013bfa17c56aa35611691149daf660aa1bc SHA512 6805c94f4fd7fbfed5692a1a049c9e34e248081f0d8e2ecf51809ff31d73d598bcc93c6db4bc2ab7e30dc8d21d81a4d4a093609b8ba80212595215b6cd74e468 WHIRLPOOL df9ef4c0b2f22d0a7ec0963c3a2ca9a3f3b9d20eb0382062b3b0b8406ac485668b9705b70f66cf384aebb0c04b9ec14d5acf232da647af8ab4d006882b2976d0
EBUILD dracut-023-r2.ebuild 8111 SHA256 0ae33590563eb3ea2669e22c2445923c5621365ebcc364b1d697fe40081368cf SHA512 0536caf107f4d8cba298a289a32c4b8af7b7ac5212e94c18c8a83bca32a91384b530057f1422e438abc645b35a152012bb0c9f6a3d3fddabcedaa5f04dca8893 WHIRLPOOL 065e9d6a50d82320bedfd13797a47cc545f3eed06c0271527e1caaec74b0d15e950c7c832725ac8d6ef6d31b39cc1661fb4928bf56301ddac5e472275ad5e294
+EBUILD dracut-023-r3.ebuild 8114 SHA256 f2bdea6af5af7db37a73c2f58fa212672dd4eae909d45ff3a2a0c56da311cf57 SHA512 511a110414c8931919fa68a3bb40c636a869fa611e3e8df8001d43987e93467e26f32adc7ee4b71bc851342256ad7c8c803ffcf738dd00081b17cccd961c8484 WHIRLPOOL d60447f87b4fcf7bd478a933457dc1708ace61f0232be5fc0f7c71411186d6787ea72c85b3f36b749e8c3e65d43a88f40adbf6e889e87b3d9a43460ed7f5cb37
+EBUILD dracut-024-r1.ebuild 7957 SHA256 4350073ab4aeb106cb7f5b76dc0ac42387365780d83ee341ea69a1155e6e69e5 SHA512 cd07cc7d558842f3092063d2a1297ff1e8eb4a33a59ac0e81dc7af47dcd8e46331e636d60ca66b2dfd08c44cef5fda13999e534cde9af7d8301d438bea86061f WHIRLPOOL a7fd74453ede8ca935fe9025a1fb7bb6d771032a4a683bab735a2c4a050217a2ffcff627bdf2c59cf6a6f7c2c6d019fd65ad94454dda29e9fff4c4dfc2aa70f8
EBUILD dracut-024.ebuild 7951 SHA256 d7d29322a26b336979dc736ad18b36a2745711026ada5aea34887ce303fb5deb SHA512 467bc245ebbd2b89a1e8b2b26c52044275aa20ceec43f0350d4585b9b4507f4683bffb66c35c65124ea820968b16d645777dbd00638b5e254301a448536a7abd WHIRLPOOL 79168dc9f7ebb7fca352bee70c374a1f69a00d184fb26c3dcaba3272770fc2253c982a1d989049e9bae77b033c68c5a536899b909ce6468662c241ef20a52f6d
-MISC ChangeLog 34352 SHA256 09fc0d2c9a1c01b2c3b48979e69e9ca7fc46e25d135c31b775c7687adf3b5fd8 SHA512 65bee3eaa6bd3b0190b5af49223c4c2f98d48997b599e50839048924f14a2887ca7b8eb7fefdd6ad54cd088a3ec36a51c3af5aca3da7e221c85ff3152d36faa9 WHIRLPOOL b4ae0a3cf2ab63db80d48ff5e3f2f59631e7bcac7e9f98fed8f617e8eeef508a4dfd12e941c014d0da8a3c4f0359cd33e9fbbaba5eba22689dfc0b011c3f15bf
+MISC ChangeLog 34816 SHA256 85076f008436d615a10d2321941fd0b7535af8b693416172faf9ef29395a69b0 SHA512 5174432586d916b817ba2e22a28e059d022580c69560d23f2d198ffa0ffde9e4ab188d3fa7322aa48107fc78be9c28e1f1ba88c334522dd4a8d2a1cbe0aaff58 WHIRLPOOL bb38ddbf9dfb91135645fad717a6b5f874620153b76888445b4684aff916118948d1cc6332057645c567cb6b7da3520e07e323314f8d39f7b8b78d030173c40f
MISC metadata.xml 926 SHA256 b895115d72a686208816e1042bd295abb183ea832cdda73859deb690c11b932c SHA512 e6695bc301c6b3621e1730bc8e6ecc6c317705037a3004aab36bfea0b7f6a8b235a6d61ec4e4b9bb234ea53971d6c18dfbd0d09b3f30080a07eeb9e57da98c96 WHIRLPOOL d844828523e7bb0805b4b3d64d72163702adb6d4bedf7929494208e50696e43ddddc1e4a262c663ec98e05b65037868454135c0a46f82fb6b455e692826b48dc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
-iQEcBAEBCAAGBQJQjRYBAAoJEPATRTHh2/q1BMUH/0Lx/GM4xO14O2t3bxpEyyOc
-4n+UJ17gAGnaQrHcUEp9L/92gwMs2D4KqnmcDaAwaicSVg9IwNKL3KtA9er0w9m6
-gpoMYioERttgP3YVZ0T+NC7fxNEOs//Jl51hKdR377pfTOf19ZNQ/zcxVPea4Ifh
-fOTd8RdyseWgv+yRNpW1+uqTJCpfP58dlFvwNfCiL2aglCCAc4eWb5JZvZwEOVjN
-0t2LEyHsGvGeEjdUwkxgXE9ql86/uRREpQTgtmcJQjcZqLsj4Jc4a8Yz/wtGQHz5
-DLR274hUMbOUP8dVnYh0W+ZzgHMfdqn194bUes1LOzxoeA2U5J2fTXKin7jQVQI=
-=oTPY
+iQEcBAEBCAAGBQJQkkbDAAoJEPATRTHh2/q17TwH/jHfwbVK6Cp+oz779b5IsLNQ
+IeFH4bnEccx3s/Sp9B5W4Te6IgBB3N7y7B6Ek/Nmzio0msbvNJqHQnEtlpG38krh
+4SVeVTb0vPD3bGaMZ8Uq3VYLb4fIS2MaqGgizQXCeDyECSQ+3G8hgEsxPYMmV2xY
+tuu2ROA7LwT4HKpEMobpEyW6mBh2+J8sjiYCv2w2TZE1X4lHbigebfnXN3OSS6y2
+sDBcfb7a5oxP5p4rHohKzUHFy5fj6MaJO9ubXeGeVRTgCq/dhqReqRWeWnPS9F4H
+sJdr3el7gYZJGPqaTNxcfLcbQxjOiyirZe9nJEQCZb+3HuXiUZvPW+pbSjynIRs=
+=ZEMW
-----END PGP SIGNATURE-----
diff --git a/sys-kernel/dracut/dracut-023-r3.ebuild b/sys-kernel/dracut/dracut-023-r3.ebuild
new file mode 100644
index 000000000000..47440e276145
--- /dev/null
+++ b/sys-kernel/dracut/dracut-023-r3.ebuild
@@ -0,0 +1,276 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-023-r3.ebuild,v 1.1 2012/11/01 09:54:08 aidecoe Exp $
+
+EAPI=4
+
+inherit eutils linux-info toolchain-funcs
+
+add_req_use_for() {
+ local dep="$1"; shift
+ local f
+
+ for f in "$@"; do
+ REQUIRED_USE+="${f}? ( ${dep} )
+"
+ done
+}
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="http://dracut.wiki.kernel.org"
+SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+REQUIRED_USE="dracut_modules_crypt-gpg? ( dracut_modules_crypt )
+ dracut_modules_crypt-loop? ( dracut_modules_crypt )
+ dracut_modules_livenet? ( dracut_modules_dmsquash-live )
+ "
+COMMON_MODULES="
+ dracut_modules_biosdevname
+ dracut_modules_bootchart
+ dracut_modules_btrfs
+ dracut_modules_caps
+ dracut_modules_crypt-gpg
+ dracut_modules_crypt-loop
+ dracut_modules_gensplash
+ dracut_modules_mdraid
+ dracut_modules_multipath
+ dracut_modules_plymouth
+ dracut_modules_syslog
+ dracut_modules_systemd
+ "
+DM_MODULES="
+ dracut_modules_crypt
+ dracut_modules_dmraid
+ dracut_modules_dmsquash-live
+ dracut_modules_livenet
+ dracut_modules_lvm
+ "
+NETWORK_MODULES="
+ dracut_modules_cifs
+ dracut_modules_iscsi
+ dracut_modules_livenet
+ dracut_modules_nbd
+ dracut_modules_nfs
+ dracut_modules_ssh-client
+ "
+add_req_use_for device-mapper ${DM_MODULES}
+add_req_use_for net ${NETWORK_MODULES}
+IUSE_DRACUT_MODULES="${COMMON_MODULES} ${DM_MODULES} ${NETWORK_MODULES}"
+IUSE="debug device-mapper optimization net selinux ${IUSE_DRACUT_MODULES}"
+
+RESTRICT="test"
+
+CDEPEND=">sys-fs/udev-166
+ dracut_modules_systemd? ( sys-apps/systemd )
+ "
+RDEPEND="${CDEPEND}
+ app-arch/cpio
+ >=app-shells/bash-4.0
+ >=app-shells/dash-0.5.4.11
+ >=sys-apps/baselayout-1.12.14-r1
+ || ( >=sys-apps/module-init-tools-3.8 >sys-apps/kmod-5[tools] )
+ >=sys-apps/sysvinit-2.87-r3
+ >=sys-apps/util-linux-2.21
+
+ debug? ( dev-util/strace )
+ device-mapper? ( || ( sys-fs/device-mapper >=sys-fs/lvm2-2.02.33 ) )
+ net? ( net-misc/curl >=net-misc/dhcp-4.2.4_p2-r1[client] sys-apps/iproute2 )
+ selinux? ( sys-libs/libselinux sys-libs/libsepol )
+ dracut_modules_biosdevname? ( sys-apps/biosdevname )
+ dracut_modules_bootchart? ( app-benchmarks/bootchart2 sys-apps/usleep
+ sys-process/acct )
+ dracut_modules_btrfs? ( sys-fs/btrfs-progs )
+ dracut_modules_caps? ( sys-libs/libcap )
+ dracut_modules_cifs? ( net-fs/cifs-utils )
+ dracut_modules_crypt? ( sys-fs/cryptsetup )
+ dracut_modules_crypt-gpg? ( app-crypt/gnupg )
+ dracut_modules_dmraid? ( sys-fs/dmraid sys-fs/multipath-tools )
+ dracut_modules_gensplash? ( media-gfx/splashutils )
+ dracut_modules_iscsi? ( >=sys-block/open-iscsi-2.0.871.3 )
+ dracut_modules_lvm? ( >=sys-fs/lvm2-2.02.33 )
+ dracut_modules_mdraid? ( sys-fs/mdadm )
+ dracut_modules_multipath? ( sys-fs/multipath-tools )
+ dracut_modules_nbd? ( sys-block/nbd )
+ dracut_modules_nfs? ( net-fs/nfs-utils net-nds/rpcbind )
+ dracut_modules_plymouth? ( >=sys-boot/plymouth-0.8.3-r1 )
+ dracut_modules_ssh-client? ( dev-libs/openssl )
+ dracut_modules_syslog? ( || ( app-admin/syslog-ng app-admin/rsyslog ) )
+ "
+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
+ "
+
+#
+# Helper functions
+#
+
+# Returns true if any of specified modules is enabled by USE flag and false
+# otherwise.
+# $1 = list of modules (which have corresponding USE flags of the same name)
+any_module() {
+ local m modules=" $@ "
+
+ for m in ${modules}; do
+ ! use $m && modules=${modules/ $m / }
+ done
+
+ shopt -s extglob
+ modules=${modules%%+( )}
+ shopt -u extglob
+
+ [[ ${modules} ]]
+}
+
+# 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
+}
+
+#
+# ebuild functions
+#
+
+src_prepare() {
+ epatch "${FILESDIR}/${PV}-0001-dracut-functions.sh-find_binary-path-s.patch"
+ epatch "${FILESDIR}/${PV}-0002-90crypt-call-systemd-commands-only-if-.patch"
+
+ local udevdir="$($(tc-getPKG_CONFIG) udev --variable=udevdir)"
+ [[ ${udevdir} ]] || die "Couldn't detect udevdir"
+ einfo "Setting udevdir to ${udevdir}..."
+ sed -e "s@udevdir=.*@udevdir=\"${udevdir}\"@" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ if use dracut_modules_systemd; then
+ local systemdutildir="$($(tc-getPKG_CONFIG) systemd \
+ --variable=systemdutildir)"
+ local systemdsystemunitdir="$($(tc-getPKG_CONFIG) systemd \
+ --variable=systemdsystemunitdir)"
+ [[ ${systemdutildir} ]] || die "Couldn't detect systemdutildir"
+ [[ ${systemdsystemunitdir} ]] \
+ || die "Couldn't detect systemdsystemunitdir"
+ einfo "Setting systemdutildir to ${systemdutildir} and ..."
+ sed -e "4asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir}..."
+ sed -e "5asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ fi
+}
+
+src_compile() {
+ emake prefix=/usr sysconfdir=/etc DESTDIR="${D}" doc
+ if use optimization; then
+ ewarn "Enabling experimental optimization!"
+ tc-export CC
+ emake prefix=/usr sysconfdir=/etc DESTDIR="${D}" install/dracut-install
+ fi
+}
+
+src_install() {
+ local libdir="/usr/lib"
+
+ emake prefix=/usr libdir="${libdir}" sysconfdir=/etc \
+ DESTDIR="${D}" install
+
+ dodir /var/lib/dracut/overlay
+ dodoc HACKING TODO AUTHORS NEWS README*
+
+ insinto /etc/dracut.conf.d
+ newins dracut.conf.d/gentoo.conf.example gentoo.conf
+
+ insinto /etc/logrotate.d
+ newins dracut.logrotate dracut
+
+ dohtml dracut.html
+
+ #
+ # Modules
+ #
+ local module
+ modules_dir="${D%/}/${libdir#/}/dracut/modules.d"
+
+ # Remove modules not enabled by USE flags
+ for module in ${IUSE_DRACUT_MODULES} ; do
+ ! use ${module} && rm_module -f ${module#dracut_modules_}
+ done
+
+ # Those flags are specific, and even are corresponding to modules, they need
+ # to be declared as regular USE flags.
+ use debug || rm_module 95debug
+ use selinux || rm_module 98selinux
+
+ # Following flags define set of helper modules which are base dependencies
+ # for others and as so have no practical use, so remove these modules.
+ use device-mapper || rm_module 90dm
+ use net || rm_module 40network 45ifcfg 45url-lib
+
+ # Remove S/390 modules which are not tested at all
+ rm_module 80cms 95dasd 95dasd_mod 95zfcp 95znet
+
+ # 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
+
+ # Remove extra modules which go to future dracut-extras
+ rm_module 05busybox 97masterkey 98ecryptfs 98integrity
+}
+
+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 ~MODULES"
+
+ # 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 desc_MODULES="Enable loadable module 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 " CONFIG_MODULES"
+ ewarn ""
+ fi
+}
diff --git a/sys-kernel/dracut/dracut-024-r1.ebuild b/sys-kernel/dracut/dracut-024-r1.ebuild
new file mode 100644
index 000000000000..a38e512351fe
--- /dev/null
+++ b/sys-kernel/dracut/dracut-024-r1.ebuild
@@ -0,0 +1,273 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-024-r1.ebuild,v 1.1 2012/11/01 09:54:08 aidecoe Exp $
+
+EAPI=4
+
+inherit eutils linux-info toolchain-funcs
+
+add_req_use_for() {
+ local dep="$1"; shift
+ local f
+
+ for f in "$@"; do
+ REQUIRED_USE+="${f}? ( ${dep} )
+"
+ done
+}
+
+DESCRIPTION="Generic initramfs generation tool"
+HOMEPAGE="http://dracut.wiki.kernel.org"
+SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+REQUIRED_USE="dracut_modules_crypt-gpg? ( dracut_modules_crypt )
+ dracut_modules_crypt-loop? ( dracut_modules_crypt )
+ dracut_modules_livenet? ( dracut_modules_dmsquash-live )
+ "
+COMMON_MODULES="
+ dracut_modules_biosdevname
+ dracut_modules_bootchart
+ dracut_modules_btrfs
+ dracut_modules_caps
+ dracut_modules_crypt-gpg
+ dracut_modules_crypt-loop
+ dracut_modules_gensplash
+ dracut_modules_mdraid
+ dracut_modules_multipath
+ dracut_modules_plymouth
+ dracut_modules_syslog
+ dracut_modules_systemd
+ "
+DM_MODULES="
+ dracut_modules_crypt
+ dracut_modules_dmraid
+ dracut_modules_dmsquash-live
+ dracut_modules_livenet
+ dracut_modules_lvm
+ "
+NETWORK_MODULES="
+ dracut_modules_cifs
+ dracut_modules_iscsi
+ dracut_modules_livenet
+ dracut_modules_nbd
+ dracut_modules_nfs
+ dracut_modules_ssh-client
+ "
+add_req_use_for device-mapper ${DM_MODULES}
+add_req_use_for net ${NETWORK_MODULES}
+IUSE_DRACUT_MODULES="${COMMON_MODULES} ${DM_MODULES} ${NETWORK_MODULES}"
+IUSE="debug device-mapper optimization net selinux ${IUSE_DRACUT_MODULES}"
+
+RESTRICT="test"
+
+CDEPEND=">sys-fs/udev-166
+ dracut_modules_systemd? ( sys-apps/systemd )
+ "
+RDEPEND="${CDEPEND}
+ app-arch/cpio
+ >=app-shells/bash-4.0
+ >=app-shells/dash-0.5.4.11
+ >=sys-apps/baselayout-1.12.14-r1
+ || ( >=sys-apps/module-init-tools-3.8 >sys-apps/kmod-5[tools] )
+ >=sys-apps/sysvinit-2.87-r3
+ >=sys-apps/util-linux-2.21
+
+ debug? ( dev-util/strace )
+ device-mapper? ( || ( sys-fs/device-mapper >=sys-fs/lvm2-2.02.33 ) )
+ net? ( net-misc/curl >=net-misc/dhcp-4.2.4_p2-r1[client] sys-apps/iproute2 )
+ selinux? ( sys-libs/libselinux sys-libs/libsepol )
+ dracut_modules_biosdevname? ( sys-apps/biosdevname )
+ dracut_modules_bootchart? ( app-benchmarks/bootchart2 sys-apps/usleep
+ sys-process/acct )
+ dracut_modules_btrfs? ( sys-fs/btrfs-progs )
+ dracut_modules_caps? ( sys-libs/libcap )
+ dracut_modules_cifs? ( net-fs/cifs-utils )
+ dracut_modules_crypt? ( sys-fs/cryptsetup )
+ dracut_modules_crypt-gpg? ( app-crypt/gnupg )
+ dracut_modules_dmraid? ( sys-fs/dmraid sys-fs/multipath-tools )
+ dracut_modules_gensplash? ( media-gfx/splashutils )
+ dracut_modules_iscsi? ( >=sys-block/open-iscsi-2.0.871.3 )
+ dracut_modules_lvm? ( >=sys-fs/lvm2-2.02.33 )
+ dracut_modules_mdraid? ( sys-fs/mdadm )
+ dracut_modules_multipath? ( sys-fs/multipath-tools )
+ dracut_modules_nbd? ( sys-block/nbd )
+ dracut_modules_nfs? ( net-fs/nfs-utils net-nds/rpcbind )
+ dracut_modules_plymouth? ( >=sys-boot/plymouth-0.8.3-r1 )
+ dracut_modules_ssh-client? ( dev-libs/openssl )
+ dracut_modules_syslog? ( || ( app-admin/syslog-ng app-admin/rsyslog ) )
+ "
+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
+ "
+
+#
+# Helper functions
+#
+
+# Returns true if any of specified modules is enabled by USE flag and false
+# otherwise.
+# $1 = list of modules (which have corresponding USE flags of the same name)
+any_module() {
+ local m modules=" $@ "
+
+ for m in ${modules}; do
+ ! use $m && modules=${modules/ $m / }
+ done
+
+ shopt -s extglob
+ modules=${modules%%+( )}
+ shopt -u extglob
+
+ [[ ${modules} ]]
+}
+
+# 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
+}
+
+#
+# ebuild functions
+#
+
+src_prepare() {
+ local udevdir="$($(tc-getPKG_CONFIG) udev --variable=udevdir)"
+ [[ ${udevdir} ]] || die "Couldn't detect udevdir"
+ einfo "Setting udevdir to ${udevdir}..."
+ sed -e "s@udevdir=.*@udevdir=\"${udevdir}\"@" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+
+ if use dracut_modules_systemd; then
+ local systemdutildir="$($(tc-getPKG_CONFIG) systemd \
+ --variable=systemdutildir)"
+ local systemdsystemunitdir="$($(tc-getPKG_CONFIG) systemd \
+ --variable=systemdsystemunitdir)"
+ [[ ${systemdutildir} ]] || die "Couldn't detect systemdutildir"
+ [[ ${systemdsystemunitdir} ]] \
+ || die "Couldn't detect systemdsystemunitdir"
+ einfo "Setting systemdutildir to ${systemdutildir} and ..."
+ sed -e "4asystemdutildir=\"${systemdutildir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ einfo "Setting systemdsystemunitdir to ${systemdsystemunitdir}..."
+ sed -e "5asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \
+ -i "${S}/dracut.conf.d/gentoo.conf.example" || die
+ fi
+}
+
+src_compile() {
+ emake prefix=/usr sysconfdir=/etc DESTDIR="${D}" doc
+ if use optimization; then
+ ewarn "Enabling experimental optimization!"
+ tc-export CC
+ emake prefix=/usr sysconfdir=/etc DESTDIR="${D}" install/dracut-install
+ fi
+}
+
+src_install() {
+ local libdir="/usr/lib"
+
+ emake prefix=/usr libdir="${libdir}" sysconfdir=/etc \
+ DESTDIR="${D}" install
+
+ dodir /var/lib/dracut/overlay
+ dodoc HACKING TODO AUTHORS NEWS README*
+
+ insinto /etc/dracut.conf.d
+ newins dracut.conf.d/gentoo.conf.example gentoo.conf
+
+ insinto /etc/logrotate.d
+ newins dracut.logrotate dracut
+
+ dohtml dracut.html
+
+ #
+ # Modules
+ #
+ local module
+ modules_dir="${D%/}/${libdir#/}/dracut/modules.d"
+
+ # Remove modules not enabled by USE flags
+ for module in ${IUSE_DRACUT_MODULES} ; do
+ ! use ${module} && rm_module -f ${module#dracut_modules_}
+ done
+
+ # Those flags are specific, and even are corresponding to modules, they need
+ # to be declared as regular USE flags.
+ use debug || rm_module 95debug
+ use selinux || rm_module 98selinux
+
+ # Following flags define set of helper modules which are base dependencies
+ # for others and as so have no practical use, so remove these modules.
+ use device-mapper || rm_module 90dm
+ use net || rm_module 40network 45ifcfg 45url-lib
+
+ # Remove S/390 modules which are not tested at all
+ rm_module 80cms 95dasd 95dasd_mod 95zfcp 95znet
+
+ # 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
+
+ # Remove extra modules which go to future dracut-extras
+ rm_module 05busybox 97masterkey 98ecryptfs 98integrity
+}
+
+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 ~MODULES"
+
+ # 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 desc_MODULES="Enable loadable module 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 " CONFIG_MODULES"
+ ewarn ""
+ fi
+}
diff --git a/sys-kernel/dracut/files/023-0003-Fallback-to-external-blkid-and-path_id.patch b/sys-kernel/dracut/files/023-0003-Fallback-to-external-blkid-and-path_id.patch
new file mode 100644
index 000000000000..0212acfd6404
--- /dev/null
+++ b/sys-kernel/dracut/files/023-0003-Fallback-to-external-blkid-and-path_id.patch
@@ -0,0 +1,127 @@
+From e185a1b4fd7e931beb995b124fd3688031e50863 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
+Date: Thu, 1 Nov 2012 09:31:01 +0100
+Subject: [PATCH 3/3] Fallback to external blkid and path_id in udev rules for
+ <udev-176.
+
+Starting with commit 24a38bc1cbe461c344ce61c7e10b6d51d5689c93 dracut
+uses udev builtins but still depends on >=udev-166 in dracut.spec. This
+patch makes dracut work with older udev again.
+
+All credits go to Alexander Tsoy <alexander@tsoy.me>; see
+
+ https://bugs.gentoo.org/show_bug.cgi?id=437700
+---
+ modules.d/95udev-rules/59-persistent-storage.rules | 8 +++----
+ modules.d/95udev-rules/61-persistent-storage.rules | 2 +-
+ modules.d/95udev-rules/module-setup.sh | 2 ++
+ modules.d/95udev-rules/udev-rules-prepare.sh | 25 ++++++++++++++++++++++
+ modules.d/99base/init.sh | 2 +-
+ 5 files changed, 33 insertions(+), 6 deletions(-)
+ create mode 100644 modules.d/95udev-rules/udev-rules-prepare.sh
+
+diff --git a/modules.d/95udev-rules/59-persistent-storage.rules b/modules.d/95udev-rules/59-persistent-storage.rules
+index f2756ee..c221cda 100644
+--- a/modules.d/95udev-rules/59-persistent-storage.rules
++++ b/modules.d/95udev-rules/59-persistent-storage.rules
+@@ -3,8 +3,8 @@ ACTION!="add|change", GOTO="ps_end"
+ # Also don't process disks that are slated to be a multipath device
+ ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="ps_end"
+
+-KERNEL=="cciss[0-9]*", IMPORT{builtin}="blkid"
+-KERNEL=="nbd[0-9]*", IMPORT{builtin}="blkid"
++KERNEL=="cciss[0-9]*", IMPORT BLKID
++KERNEL=="nbd[0-9]*", IMPORT BLKID
+
+
+ KERNEL!="md[0-9]*|md_d[0-9]*|md/*", KERNEL!="md*", GOTO="md_end"
+@@ -21,7 +21,7 @@ ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
+ LABEL="md_ignore_state"
+
+ IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
+-IMPORT{builtin}="blkid"
++IMPORT BLKID
+ OPTIONS+="link_priority=100"
+ OPTIONS+="watch"
+ LABEL="md_end"
+@@ -34,7 +34,7 @@ ENV{DM_NAME}!="?*", GOTO="ps_end"
+ ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="ps_end"
+ ENV{DM_UUID}=="CRYPT-TEMP-?*", GOTO="ps_end"
+ ENV{DM_UUID}!="?*", ENV{DM_NAME}=="temporary-cryptsetup-?*", GOTO="ps_end"
+-IMPORT{builtin}="blkid"
++IMPORT BLKID
+
+
+ LABEL="ps_end"
+diff --git a/modules.d/95udev-rules/61-persistent-storage.rules b/modules.d/95udev-rules/61-persistent-storage.rules
+index 7dbd151..37148b0 100644
+--- a/modules.d/95udev-rules/61-persistent-storage.rules
++++ b/modules.d/95udev-rules/61-persistent-storage.rules
+@@ -12,7 +12,7 @@ GOTO="pss_end"
+
+ LABEL="do_pss"
+ # by-path (parent device path)
+-ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id"
++ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT PATH_ID
+ ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
+ ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
+
+diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
+index 2e3c955..a9a8655 100755
+--- a/modules.d/95udev-rules/module-setup.sh
++++ b/modules.d/95udev-rules/module-setup.sh
+@@ -55,5 +55,7 @@ install() {
+ inst_script "$moddir/load-modules.sh" /lib/udev/load-modules.sh
+
+ inst_libdir_file "libnss_files*"
++
++ inst_hook pre-udev 10 "$moddir/udev-rules-prepare.sh"
+ }
+
+diff --git a/modules.d/95udev-rules/udev-rules-prepare.sh b/modules.d/95udev-rules/udev-rules-prepare.sh
+new file mode 100644
+index 0000000..08263ea
+--- /dev/null
++++ b/modules.d/95udev-rules/udev-rules-prepare.sh
+@@ -0,0 +1,25 @@
++#!/bin/sh
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++
++for f in /etc/udev/rules.d/*-persistent-storage.rules; do
++ [ -e "$f" ] || continue
++ while read line; do
++ if [ "${line%%IMPORT PATH_ID}" != "$line" ]; then
++ if [ $UDEVVERSION -ge 174 ]; then
++ printf '%sIMPORT{builtin}="path_id"\n' "${line%%IMPORT PATH_ID}"
++ else
++ printf '%sIMPORT{program}="path_id %%p"\n' "${line%%IMPORT PATH_ID}"
++ fi
++ elif [ "${line%%IMPORT BLKID}" != "$line" ]; then
++ if [ $UDEVVERSION -ge 176 ]; then
++ printf '%sIMPORT{builtin}="blkid"\n' "${line%%IMPORT BLKID}"
++ else
++ printf '%sIMPORT{program}="/sbin/blkid -o udev -p $tempnode"\n' "${line%%IMPORT BLKID}"
++ fi
++ else
++ echo "$line"
++ fi
++ done < "${f}" > "${f}.new"
++ mv "${f}.new" "$f"
++done
+diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
+index 16c8958..0259053 100755
+--- a/modules.d/99base/init.sh
++++ b/modules.d/99base/init.sh
+@@ -83,7 +83,7 @@ trap "emergency_shell Signal caught!" 0
+
+ [ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
+
+-UDEVVERSION=$(udevadm --version)
++export UDEVVERSION=$(udevadm --version)
+ if [ $UDEVVERSION -gt 166 ]; then
+ # newer versions of udev use /run/udev/rules.d
+ export UDEVRULESD=/run/udev/rules.d
+--
+1.7.12.4
+
diff --git a/sys-kernel/dracut/files/024-0001-Fallback-to-external-blkid-and-path_id.patch b/sys-kernel/dracut/files/024-0001-Fallback-to-external-blkid-and-path_id.patch
new file mode 100644
index 000000000000..e42bff1e4e7e
--- /dev/null
+++ b/sys-kernel/dracut/files/024-0001-Fallback-to-external-blkid-and-path_id.patch
@@ -0,0 +1,127 @@
+From 226fb690900d869c0f8542ea5983c1c4ec3ac9db Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
+Date: Thu, 1 Nov 2012 09:31:01 +0100
+Subject: [PATCH] Fallback to external blkid and path_id in udev rules for
+ <udev-176.
+
+Starting with commit 24a38bc1cbe461c344ce61c7e10b6d51d5689c93 dracut
+uses udev builtins but still depends on >=udev-166 in dracut.spec. This
+patch makes dracut work with older udev again.
+
+All credits go to Alexander Tsoy <alexander@tsoy.me>; see
+
+ https://bugs.gentoo.org/show_bug.cgi?id=437700
+---
+ modules.d/95udev-rules/59-persistent-storage.rules | 8 +++----
+ modules.d/95udev-rules/61-persistent-storage.rules | 2 +-
+ modules.d/95udev-rules/module-setup.sh | 2 ++
+ modules.d/95udev-rules/udev-rules-prepare.sh | 25 ++++++++++++++++++++++
+ modules.d/99base/init.sh | 2 +-
+ 5 files changed, 33 insertions(+), 6 deletions(-)
+ create mode 100644 modules.d/95udev-rules/udev-rules-prepare.sh
+
+diff --git a/modules.d/95udev-rules/59-persistent-storage.rules b/modules.d/95udev-rules/59-persistent-storage.rules
+index f2756ee..c221cda 100644
+--- a/modules.d/95udev-rules/59-persistent-storage.rules
++++ b/modules.d/95udev-rules/59-persistent-storage.rules
+@@ -3,8 +3,8 @@ ACTION!="add|change", GOTO="ps_end"
+ # Also don't process disks that are slated to be a multipath device
+ ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="ps_end"
+
+-KERNEL=="cciss[0-9]*", IMPORT{builtin}="blkid"
+-KERNEL=="nbd[0-9]*", IMPORT{builtin}="blkid"
++KERNEL=="cciss[0-9]*", IMPORT BLKID
++KERNEL=="nbd[0-9]*", IMPORT BLKID
+
+
+ KERNEL!="md[0-9]*|md_d[0-9]*|md/*", KERNEL!="md*", GOTO="md_end"
+@@ -21,7 +21,7 @@ ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
+ LABEL="md_ignore_state"
+
+ IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
+-IMPORT{builtin}="blkid"
++IMPORT BLKID
+ OPTIONS+="link_priority=100"
+ OPTIONS+="watch"
+ LABEL="md_end"
+@@ -34,7 +34,7 @@ ENV{DM_NAME}!="?*", GOTO="ps_end"
+ ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="ps_end"
+ ENV{DM_UUID}=="CRYPT-TEMP-?*", GOTO="ps_end"
+ ENV{DM_UUID}!="?*", ENV{DM_NAME}=="temporary-cryptsetup-?*", GOTO="ps_end"
+-IMPORT{builtin}="blkid"
++IMPORT BLKID
+
+
+ LABEL="ps_end"
+diff --git a/modules.d/95udev-rules/61-persistent-storage.rules b/modules.d/95udev-rules/61-persistent-storage.rules
+index 7dbd151..37148b0 100644
+--- a/modules.d/95udev-rules/61-persistent-storage.rules
++++ b/modules.d/95udev-rules/61-persistent-storage.rules
+@@ -12,7 +12,7 @@ GOTO="pss_end"
+
+ LABEL="do_pss"
+ # by-path (parent device path)
+-ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id"
++ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT PATH_ID
+ ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
+ ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
+
+diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
+index 533dfeb..54a192e 100755
+--- a/modules.d/95udev-rules/module-setup.sh
++++ b/modules.d/95udev-rules/module-setup.sh
+@@ -74,5 +74,7 @@ install() {
+ inst_script "$moddir/load-modules.sh" /lib/udev/load-modules.sh
+
+ inst_libdir_file "libnss_files*"
++
++ inst_hook pre-udev 10 "$moddir/udev-rules-prepare.sh"
+ }
+
+diff --git a/modules.d/95udev-rules/udev-rules-prepare.sh b/modules.d/95udev-rules/udev-rules-prepare.sh
+new file mode 100644
+index 0000000..08263ea
+--- /dev/null
++++ b/modules.d/95udev-rules/udev-rules-prepare.sh
+@@ -0,0 +1,25 @@
++#!/bin/sh
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++
++for f in /etc/udev/rules.d/*-persistent-storage.rules; do
++ [ -e "$f" ] || continue
++ while read line; do
++ if [ "${line%%IMPORT PATH_ID}" != "$line" ]; then
++ if [ $UDEVVERSION -ge 174 ]; then
++ printf '%sIMPORT{builtin}="path_id"\n' "${line%%IMPORT PATH_ID}"
++ else
++ printf '%sIMPORT{program}="path_id %%p"\n' "${line%%IMPORT PATH_ID}"
++ fi
++ elif [ "${line%%IMPORT BLKID}" != "$line" ]; then
++ if [ $UDEVVERSION -ge 176 ]; then
++ printf '%sIMPORT{builtin}="blkid"\n' "${line%%IMPORT BLKID}"
++ else
++ printf '%sIMPORT{program}="/sbin/blkid -o udev -p $tempnode"\n' "${line%%IMPORT BLKID}"
++ fi
++ else
++ echo "$line"
++ fi
++ done < "${f}" > "${f}.new"
++ mv "${f}.new" "$f"
++done
+diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
+index 16c8958..0259053 100755
+--- a/modules.d/99base/init.sh
++++ b/modules.d/99base/init.sh
+@@ -83,7 +83,7 @@ trap "emergency_shell Signal caught!" 0
+
+ [ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
+
+-UDEVVERSION=$(udevadm --version)
++export UDEVVERSION=$(udevadm --version)
+ if [ $UDEVVERSION -gt 166 ]; then
+ # newer versions of udev use /run/udev/rules.d
+ export UDEVRULESD=/run/udev/rules.d
+--
+1.7.12.4
+