diff options
author | Amadeusz Żołnowski <aidecoe@gentoo.org> | 2012-11-01 09:54:17 +0000 |
---|---|---|
committer | Amadeusz Żołnowski <aidecoe@gentoo.org> | 2012-11-01 09:54:17 +0000 |
commit | 42175ea64011a1aaa282911ac85595e8c5fb07f4 (patch) | |
tree | 3a23752dcf7f56d08f60ef5ad97f33b3c27daa7d /sys-kernel | |
parent | Stable for x86, wrt bug #440378 (diff) | |
download | historical-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/ChangeLog | 14 | ||||
-rw-r--r-- | sys-kernel/dracut/Manifest | 20 | ||||
-rw-r--r-- | sys-kernel/dracut/dracut-023-r3.ebuild | 276 | ||||
-rw-r--r-- | sys-kernel/dracut/dracut-024-r1.ebuild | 273 | ||||
-rw-r--r-- | sys-kernel/dracut/files/023-0003-Fallback-to-external-blkid-and-path_id.patch | 127 | ||||
-rw-r--r-- | sys-kernel/dracut/files/024-0001-Fallback-to-external-blkid-and-path_id.patch | 127 |
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 + |