aboutsummaryrefslogtreecommitdiff
path: root/sys-fs
diff options
context:
space:
mode:
authorStuart Shelton <stuart@shelton.me>2016-03-07 22:21:05 +0000
committerStuart Shelton <stuart@shelton.me>2016-03-07 22:21:05 +0000
commit901a20b9cac0b7ce5499ce1184dd935ca2bbc8b1 (patch)
tree5d0d81c574d55e3728b407bf687d7b682fc66dac /sys-fs
parentUpdate sys-apps/openrc-0.19.1 (diff)
downloadsrcshelton-901a20b9cac0b7ce5499ce1184dd935ca2bbc8b1.tar.gz
srcshelton-901a20b9cac0b7ce5499ce1184dd935ca2bbc8b1.tar.bz2
srcshelton-901a20b9cac0b7ce5499ce1184dd935ca2bbc8b1.zip
Add sys-fs/lvm2-2.02.116-r4
Diffstat (limited to 'sys-fs')
-rw-r--r--sys-fs/lvm2/Manifest5
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.105-r224
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.116-r4137
-rw-r--r--sys-fs/lvm2/files/lvmetad.initd-2.02.116-r313
-rw-r--r--sys-fs/lvm2/lvm2-2.02.116-r4.ebuild288
5 files changed, 453 insertions, 14 deletions
diff --git a/sys-fs/lvm2/Manifest b/sys-fs/lvm2/Manifest
index 6fbc5813..3417e870 100644
--- a/sys-fs/lvm2/Manifest
+++ b/sys-fs/lvm2/Manifest
@@ -17,8 +17,9 @@ AUX lvm-monitoring.initd-2.02.67-r2 1219 SHA256 1a136b004eda4aafa99bd7f3dd477f08
AUX lvm-monitoring.initd-2.02.97-r1 1122 SHA256 316c8c903ef7a727ae52e400e2ceec833b25e4a87a09ab0da773b0323fb7ca76 SHA512 1c69d53e4f33866d2d5013e092c421f13f9187035dbd69b5abca806bff1e5ca4aa5e6119425cb072670e7b2857e801090c6cae50e5641f15bb136d0740d7ea0e WHIRLPOOL 08b8af4dff85b3aef22183711f1d7bc1af86d25110ccbab1257834c507f8fb8c366f2ab5333a904ff2e8d1efdcf14e985ad4edf0b63d27c96950806638d1ccaa
AUX lvm.conf-2.02.67.patch 1676 SHA256 0d36c4de0503739d822b3103a62dc0110febc3c56cd25d04443b30f54da6d0cb SHA512 59cb4a4625a7a18ec81b10f4b70a1632cf608d30b1fd827cc7a97692ab3cbbe2e0108001952f5002f1ffe6b354be7b96430e5ce86ed183885afdd1b5f0aa76e4 WHIRLPOOL 71c42b80f390de73b116dbe4808b44559196175465126393128b87826248ac5a34d79c4f64647d6b4541288ae4d25669168120ce8889deb08bfb7919dde249ed
AUX lvm.confd-2.02.28-r2 173 SHA256 28370c089c39c248d7ded0960b8d8a9256bada44d44c22ce3cec87d512ef6844 SHA512 67b153cbc5c2327c15f042b3b5590c1d8fdf9823efb19c80192ac4dcf98e530efea8ecae0aaaa4a54b0e3e4907565aa21455b364df1dbe8f2e7dffa1c5d355d0 WHIRLPOOL 06467b28ad2acf36984eef1b7b7e3d88277505760f848a808d85820cd1cccf6bb7397c00624d36961d9bdbb994e55de03444a7cfc97ecefd9bd3b785a3c6fdbf
-AUX lvm.rc-2.02.105-r2 3542 SHA256 72370b4f655ac63825047ec751f7cf7a98c9ce3a57314779830fe48b0a63fa96 SHA512 7b2a6930bea8ed2990377978ae0649891f7cce4d1f3c1c5d3bd5f960116a37aafcac89c3c5f7f1b3c20bbcb140cee9e85890834a9b1e3097b9f25f7ff157f16a WHIRLPOOL fdcb3cbbd005a398af2f4f20f8b98eeebcbc8d9fde78fdc9b1b700abde85c8faa59591ab9591c74e99590d7dfd12a5cd67c3724f8a032d029fcf672db83fe275
+AUX lvm.rc-2.02.105-r2 3536 SHA256 58f38928a7ed2af66e0763ed392f2c4bb0a65269fc221c41ac67701f4c5dc362 SHA512 187e86c85fd6222b90da46261d4b58aaccde17fd8c5af11ed1e9cb833e8b00c6c3c260e175dd3aa68af4b58853d8351cb33a0098953d977e6fd85bac5c7dc88c WHIRLPOOL 76f6e95038211cbf5e72478bd0f9e961f6d46b0a26aa3d602ad36e1cff69348741f63837e55931ee0ceac9dc37e059a3fd022af69c3d43efaea45c31a351715f
AUX lvm.rc-2.02.109 504 SHA256 ffc6173e46c3a6d03b1936b26e9c45188dc00f9419d5e825092761c37d6186b5 SHA512 25e8ba181c8ed2480fba056719327a7efbf621990f3449ead4c3bc1918c4d383370b6a5aec34ee058cf55f1b8341cbad07191210a844be6709749c94863764ab WHIRLPOOL eb1d814d79035b22496aa4ddce568466e0040c515ae81b985d850b7a789f72a2946f27822295a2c79c703a6653f2069ebff796e9643be4a044c9995942c38558
+AUX lvm.rc-2.02.116-r4 3917 SHA256 96088c8808adf19c325a134785fac1a964d365c0b581327fa624931b39bce445 SHA512 10e5ec3ab2ba9fa2edf218972313ca96bb8e087dd2764c906b7c79269029617e5ff49c903a861d4ed68b12b517177013552fa523dec5867066b58e050c90d71b WHIRLPOOL 374140e922052d94e7c46371b2e6616ae4e7c177e222309631649a5981819b956b2fe78c4f7e184d24c4b759d910e65be246993af61dfc2e77499bb18e6faf7f
AUX lvm.rc-2.02.51-r2 792 SHA256 b883e8ae1d3b9d8a0bdf85b009125e9408ee6d22a159b2e4c340fce455d5fd9f SHA512 da565deba09873acd962cbe4d1e18b6f685c00734404236f599eee4368e3cd73ca365af3680e2c4b8c3847deed8d001e3019b6cc116d93efb0171fc8c5740ebb WHIRLPOOL f496128dd7bcde8f711d4e3966b345390201bc0ab8b7420810ba29d40243568968250f23418da13919e5b7a5c23cd4279062db3c9d1582945daf768696be9d58
AUX lvm.rc-2.02.67-r1 918 SHA256 63e8e9cbfbed5124d31b365f0e8108822847ceb381143c9529d9bf5439f2a99a SHA512 b0429dc519300ee385c31309d055b7ac96e633bfbf1038be68018f67182de08c23e13e03fb567eaa68d48c9481f45853283d5a10502cece8e0629329059915bc WHIRLPOOL 1713f7108d42d8c2e60d4675cb503bfe84ad9bb40e84390e3a8463db91b8f133e4dc6b8d23c3e2156c7bf114b3a94154c0fc277d1a7242f389ef69b0ea9ca4da
AUX lvm.rc-2.02.95-r2 3015 SHA256 417079fbf1e673c6bfd097f1b293df982272099d389ad6716109c1529f690372 SHA512 19de2d4d1911800c5299600b4977ee34e6f11c3967e5b7f05377dbe4d5d1f3383582ef1130d70e86a936da5ac53ac3b5b3fee84e2dd9f308940a6cb59e7b6776 WHIRLPOOL 280ba11f900159da1b9568116387feddb49ba72dca9bfe2983fa8755f437a147333fdfb6f7e13d91953e7715268f2108fe1b682b6c5562caf12a2c9abd5d9783
@@ -57,6 +58,7 @@ AUX lvm2-stop.sh-2.02.49-r3 2253 SHA256 dea23f37d232437b15c743ca23af3d7baa95f2b7
AUX lvm2-stop.sh-2.02.67-r1 982 SHA256 7a793715d1b157801fd503f39740a82131bc5b53bb57c845f6a01f960d769bce SHA512 280da1c5ff91d660f1eda3920c9068dfbfe8e180ad8a9a0c3e05368b2531f2f2efa8bc2e405ad315c012ca4015f6080c45dac434aa8355ec783f1745e190667c WHIRLPOOL 380aee9ac828be5f9df7ef0704945554365e695c0f6bb17dfc6f6feb9ecee7c143fbac71a054341945f5f8cced982450d8d670ec9c2dfce8652a23d33cfc7c7e
AUX lvm2-stop.sh-2.02.97-r1 1346 SHA256 71d36c96d5a1b38ed28dd0188232ca8ba03eecd7e93e937dd8956bf5f6208bbb SHA512 1f01d934abbb3306c9c8280bee7aace61d547e9305b9f6198b36cb7bfa1b3187828e779d2ea1e983c43b43106144de2bd6669700c2edeb301e3892b463d1db87 WHIRLPOOL 51e0af405ac1b676025c1d18d8608d022b11f29f405f9b9fe0447da89258ead70b1ce1444303dc4248551ef50b414540b835f01f818c4b9e4e69d854c2d69574
AUX lvmetad.initd-2.02.105-r2 363 SHA256 6c033f7a53513172dbfe860156ae25c7965545684d09f75b43ec2c55e1c0efe7 SHA512 96722fe0c3f43459790e45674e9b7ba744427dfb7eeee89c7083fcaa4b02cf48ab1db095da40cc283a009238779cb4603390f560bc512f354f90acc3920b8c8b WHIRLPOOL 8513c02a5be7ac26f742ae6b6da7360dc584dc3d4cd0b464c5ed4a72f467a8121ddf52b23464b636c8fd45d1c72d8fcd8d538b45e35279e7e47db5b92e68e9b5
+AUX lvmetad.initd-2.02.116-r3 388 SHA256 1507c0020d9711e42f0b975ce74874f88b9e5c4fe006c9e5a62f91ff6196661b SHA512 bd4a6561e3992b0ba667c4f0261952956fdc0542dd1d514184f62bffce9643326f89bcb58a60b0240369b65085088f37721ecd9e058a4bd24e8a72afb6628b94 WHIRLPOOL 633d6857549f79cf3c877ec3d0c5bc53f9298f0625de8c7ad2df2c2271734aa7e9e7364f216cee3e4ed0fff35f7bf246b63f5d5f6eb8cd9c435fc485545fcb98
DIST LVM2.2.02.103.tgz 1343887 SHA256 71c5a2e8842ed2f13f52e02b44eb183110a3410dedd1e117348e4eecc29d3c2a SHA512 1a9920947312e3e248bff7ff5d5eb54dec3f3b05eb3388fa92f95369b26ae8e6838186f87d817b09e8c635ddc3cdf51bc1d07c2a9d65fd7eab33598998bb7afe WHIRLPOOL de96dd8b7fb46ec777f34169759852ee5ef03ccdc93e110bf63c92dddb9cf4f805635444ceeead6b581610d2a23217d3b4729c286f016623f73b99c0b35a42a0
DIST LVM2.2.02.109.tgz 1482167 SHA256 7bc95ba5209c8aa5bd492167b2e2797f156852ed11cfc63fb783070ade8e65e7 SHA512 210645cccf297112ffdbc63e0336385c31b2d17d226ae10813ba8ffd4f01ce07af44a4134e60644283e4360e10e925113e867378502ae0166f3fc91258caea68 WHIRLPOOL 7f2d91446f502440b2ed73df0f2ce29069364bbb198e675223b61c17e5cc6e1c162ce60a977cb07b71e44d672c688bbbf0247380f1b9c5adf325cf324f4c4bb7
DIST LVM2.2.02.116.tgz 1538340 SHA256 2479d6ea61c405efcfcd8a78390d00c1d2e9c92c0262f3ed599f2c0fb6f0b767 SHA512 992541339637d597257850b4ff7f5348fb7cdcccf806ac8d986a3be1ad1edc5f6bfaedeed5128690c541d1a485cdc75742e90a766363c39867901003518fb84d WHIRLPOOL 1e89ec941882fddba62c9649be46eb5bc6c9cb899669d4bbe4a4a1023c8bf7d8264c4815ef88bb39dedcb9637815411feb826aa102e629d77b80e45e099e398d
@@ -64,6 +66,7 @@ DIST LVM2.2.02.88.tgz 1029151 SHA256 a129d1d3949524da7d6d2a67218254baea02df06a67
DIST LVM2.2.02.97.tgz 1193141 SHA256 edda82012e8a9e1f0b00ba5a331468d3e0201992be14c0dbea71bf564a51fc2b SHA512 c209054832f36d7b9cbf833c702410ac95c9de1e213b550c01c42f087fcae346d3c931c409184086bc1fcbcbc154c9a4f8b82b06291cefeb7ae22fe7a4c254a0 WHIRLPOOL d4dafde0ae1607cb231acbf07e8aecd579b9e9042e9356df1074a2683f5f2d1036a3483e1799cf7dd14e64f1f4c5506d3628979fd7128cea70ad45b653403dfa
EBUILD lvm2-2.02.103.ebuild 7624 SHA256 2a2105d375815649338b361f7bbf3f767cfa92cc906a79079a000399515ea5ba SHA512 3db6a62a053b9ed7eec6aac2b719d354fd6cc1fb0ffb1c0488de33671758af57d17cf4f2287f7efeec0270948e26c65b1ec6b51698fa3a3bfdf736a93595a1ea WHIRLPOOL 14686716bef0d65ad5449651b1539d9783ca9d721528a0c7cb39a6b8a8f96eb740289737e94dc70a818f38fa2b5c775bedaf03d2b73eceaf70e14c958dc92068
EBUILD lvm2-2.02.109.ebuild 9330 SHA256 f5eb3ed0d8404c8b733b854f5487d95f35209fef49f194c55caa05846bf59329 SHA512 44a7e55fcc8216a8b297379b54355e57328accfcef72ef85f127d548618d86fcd153cbedd5bc164d1afe2dd764bfea1397d2f853f2d776468b01b2bb35fdfc76 WHIRLPOOL dd018afeb718e4098c95024ec93bca7fb7a86abd624f72e40d9a938bf73e04eeb2b58c5635736b6044daa394d96362834f35e969cb7ebe3009fec6dfd56cc883
+EBUILD lvm2-2.02.116-r4.ebuild 9804 SHA256 ffb86f4413cbcb0e40a8f9bbd68798fe753e04beadfb0147123df8e503c32e47 SHA512 0b08e84f4fe0b1d2da299f7bc2a62b9244da8c5ed10fc46f2142d4d7b8617df18a9a8e86e82bbf8594424cf0f6746f22571b37c87e4959fdf4d97e6f62df3104 WHIRLPOOL 56f10973012628365584c0ff39ea9cbf1e49b937951e026f927dd583142e9c50fe7e73ba393d4fd4df0eb944214b920990e7159b145370ae64e2bf9313ed4566
EBUILD lvm2-2.02.116.ebuild 9470 SHA256 9967efc3dee7374dfc20f95383b4471c4f10927938f3208e8518dcd683c0a6c2 SHA512 71b9719ed52115c06c20ca4b05bf4b11c06be8aaa3cedf6a9fc6efc75ebe1ef619ad71e0406b20f8c35f44e9185d0dc58688e1ff670132dc3cf5feda24e481ad WHIRLPOOL cc5915f6b799d7ce1455f581ac7837f55c3d40e0963be9695728c84bc061fffc117f3074d60de4a120381829197a1b934d017d44fef9386511eb699fab893aca
EBUILD lvm2-2.02.88.ebuild 8238 SHA256 a18f687bea1a3becd7b8a074d2357c27a219b69228046d152aecd35419d3c98e SHA512 97198020f359dfb6019ec9972bb46b6fcd1fbe27c6e3222fe5d17d3d802090bcb50630a1082a3bade7715373ae942dffa956dc480c1644e6a084caa271274e04 WHIRLPOOL bc8b9b674b4a51292905b426286f8bc2655d1b8da3411be240ce1106fc4f4797fcb6c7862b28ef7197be4e5f9a2c34146f1f2798fd455a284f09ff1d0054d1e6
EBUILD lvm2-2.02.97-r1.ebuild 9385 SHA256 e3539cc226839d7d8cb9d3809b4d84621304f5a5e6ae889c893acb645ee88d61 SHA512 80881cc726a55a21100ad9ee3e363612ede37b7332d8f6a81a57b44a1112e96aac914cc1bfbb7e1844a10c786d90cb2451670bf41c15a34525140b2e2677914f WHIRLPOOL 572f8de0c0933b83dfbad7b9a2bb735647a50f620d21424aef7cfee6826289eabcb349912e04a7b0d3d3087295d78f7ee5eaa063ec0d9413d88663f1f4c63dd3
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.105-r2 b/sys-fs/lvm2/files/lvm.rc-2.02.105-r2
index 18be54ee..776855a0 100644
--- a/sys-fs/lvm2/files/lvm.rc-2.02.105-r2
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.105-r2
@@ -56,14 +56,14 @@ start() {
einfo "Using configuration directive '${lvm_config}'"
# Keep stderr, for debugging
lvm_commands="#! ${lvm_path} --config '${lvm_config}'\n"
- # Extra pvscan pass since some devices might not have been available until very recently
+ # Perform extra pvscan pass since some devices might not have been available until very recently
lvm_commands="${lvm_commands}pvscan\n"
# Now make the nodes
lvm_commands="${lvm_commands}vgscan --mknodes\n"
# And turn them on!
lvm_commands="${lvm_commands}vgchange --sysinit -a ly\n"
# Order of this is important, have to work around dash and LVM readline
- printf "%b\n" "${lvm_commands}" | ${lvm_path} /proc/self/fd/0 --config "${lvm_config}" >/dev/null
+ printf "%b\n" "${lvm_commands}" | "${lvm_path}" /proc/self/fd/0 --config "${lvm_config}" >/dev/null
eend ${?} "Failed to setup LVM"
fi
fi
@@ -88,14 +88,12 @@ stop() {
fi
# Stop LVM2
- if [ -x /sbin/vgs ] &&
- [ -x /sbin/vgchange ] &&
- [ -x /sbin/lvchange ] &&
- [ -f /etc/lvmtab || -d /etc/lvm ] &&
- [ -d /proc/lvm || -n "$( grep device-mapper /proc/misc 2>/dev/null )" ]
+ if [ -x "${lvm_path}" ] &&
+ [ -f /etc/lvmtab -o -d /etc/lvm ] &&
+ [ -d /proc/lvm -o -n "$( grep device-mapper /proc/misc 2>/dev/null )" ]
then
- vgs=$($lvm_path vgs --config "${lvm_config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null | cut -d' ' -f 3-)
- lvs=$($lvm_path lvs --config "${lvm_config}" -o vg_name,lv_name --noheadings --nosuffix 2> /dev/null | cut -d' ' -f 3- | sed 's| |/|')
+ vgs=$("${lvm_path}" vgs --config "${lvm_config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null | cut -d' ' -f 3-)
+ lvs=$("${lvm_path}" lvs --config "${lvm_config}" -o vg_name,lv_name --noheadings --nosuffix 2> /dev/null | cut -d' ' -f 3- | sed 's| |/|')
if [ -n "${vgs}" ] ; then
ebegin "Shutting down Logical Volume Manager"
@@ -103,12 +101,12 @@ stop() {
# Keep stderr, for debugging
lvm_commands="#! ${lvm_path} --config '${lvm_config}'\n"
- lvm_commands+="lvchange --sysinit -a ln ${lvs}\n"
- lvm_commands+="vgchange --sysinit -a ln ${vgs}\n"
+ lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${lvs}\n"
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ln ${vgs}\n"
# Order of this is important, have to work around dash and LVM readline
- printf "%b\n" "${lvm_commands}" | ${lvm_path} /proc/self/fd/0 --config "${lvm_config}" >/dev/null
+ printf "%b\n" "${lvm_commands}" | "${lvm_path}" /proc/self/fd/0 --config "${lvm_config}" >/dev/null
eend ${?} "Failed (some LVs may still be required for system-essential volumes)"
- fi
+ fi
fi
}
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.116-r4 b/sys-fs/lvm2/files/lvm.rc-2.02.116-r4
new file mode 100644
index 00000000..5c0465e3
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.116-r4
@@ -0,0 +1,137 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: 8478c239f8f9d291773caab7da9d7daeac32dd3b $
+
+_get_lvm_path() {
+ local lvm_path
+
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "${lvm_path}" ] && break
+ done
+ if ! [ -x "${lvm_path}" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+
+ echo "${lvm_path}"
+ return 0
+}
+
+_need_lvmetad()
+{
+ local lvm_path="$(_get_lvm_path)"
+ [ ! -x "${lvm_path}" ] && return 1
+ ${lvm_path} dumpconfig global | grep -q 'use_lvmetad=1'
+}
+
+depend() {
+ local _need=
+
+ before checkfs fsck
+ after modules device-mapper
+ # We may use lvmetad based on the configuration. If we added lvmetad
+ # support while lvm2 is running then we aren't dependent on it. For the
+ # more common case, if its disabled in the config we aren't dependent
+ # on it.
+ config /etc/lvm/lvm.conf
+
+ if service_started; then
+ _need=$(service_get_value need)
+ else
+ if _need_lvmetad; then
+ _need="${_need} lvmetad"
+ fi
+ fi
+ need sysfs ${_need}
+}
+
+dm_in_proc() {
+ local x
+ local retval
+ declare -i retval=0
+
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/"${x}"
+ retval=$(( retval + ${?} ))
+ done
+
+ return ${retval}
+}
+
+
+if [ -d /var/lock/lvm ] && [ -w /var/lock/lvm ] && ! [ -d /dev/.lvm ]; then
+ export lvm_config='global { locking_dir = "/var/lock/lvm" }'
+else
+ export lvm_config='global { locking_dir = "/dev/.lvm" }'
+fi
+
+start() {
+ local lvm_path lvm_commands
+
+ # LVM support for /usr, /home, /opt ....
+ # This should be done *before* checking local
+ # volumes, or they never get checked.
+
+ # NOTE: Add needed modules for LVM or RAID, etc.
+ # to /etc/modules.autoload if needed
+ lvm_path="$(_get_lvm_path)" || return 1
+
+ if [ -z "${CDBOOT}" ] ; then
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ if [ -d /proc/lvm ] || dm_in_proc ; then
+ ebegin "Setting up Logical Volume Manager"
+ #einfo "Using configuration directive '${lvm_config}'"
+ # Keep stderr, for debugging
+ lvm_commands="#! ${lvm_path} --config '${lvm_config}'\n"
+ # Perform extra pvscan pass since some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}pvscan\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgscan --mknodes\n"
+ # And turn them on!
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ly\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | "${lvm_path}" /proc/self/fd/0 --config "${lvm_config}" >/dev/null
+ eend ${?} "Failed to setup LVM"
+ fi
+ fi
+}
+
+start_post() {
+ # Remember whether we needed lvmetad...
+ if _need_lvmetad; then
+ service_set_value need lvmetad
+ fi
+}
+
+stop() {
+ local lvm_path lvs vgs lvm_commands
+
+ lvm_path="$(_get_lvm_path)" || return 1
+
+ # Stop LVM2
+ if [ -x "${lvm_path}" ] &&
+ [ -f /etc/lvmtab -o -d /etc/lvm ] &&
+ [ -d /proc/lvm -o -n "$( grep device-mapper /proc/misc 2>/dev/null )" ]
+ then
+ vgs=$("${lvm_path}" vgs --config "${lvm_config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null | cut -d' ' -f 3-)
+ lvs=$("${lvm_path}" lvs --config "${lvm_config}" -o vg_name,lv_name --noheadings --nosuffix 2> /dev/null | cut -d' ' -f 3- | sed 's| |/|')
+
+ if [ -n "${vgs}" ] ; then
+ ebegin "Shutting down Logical Volume Manager"
+ #einfo "Using configuration directive '${lvm_config}'"
+
+ # Keep stderr, for debugging
+ lvm_commands="#! ${lvm_path} --config '${lvm_config}'\n"
+ lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${lvs}\n"
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ln ${vgs}\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | "${lvm_path}" /proc/self/fd/0 --config "${lvm_config}" >/dev/null
+ eend ${?} "Failed (some LVs may still be required for system-essential volumes)"
+ fi
+ fi
+}
+
+# vim:ts=4
diff --git a/sys-fs/lvm2/files/lvmetad.initd-2.02.116-r3 b/sys-fs/lvm2/files/lvmetad.initd-2.02.116-r3
new file mode 100644
index 00000000..05533ccc
--- /dev/null
+++ b/sys-fs/lvm2/files/lvmetad.initd-2.02.116-r3
@@ -0,0 +1,13 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: db0b698ec2ec9dafe1ed7bb03e7b2b7f400281ee $
+
+pidfile="/var/run/lvmetad.pid"
+command="/sbin/lvmetad"
+command_args="${LVMETAD_OPTS:=-p ${pidfile}}"
+start_stop_daemon_args="--pidfile ${pidfile}"
+
+start_pre() {
+ checkpath --directory /var/run/lvm || return 1
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.116-r4.ebuild b/sys-fs/lvm2/lvm2-2.02.116-r4.ebuild
new file mode 100644
index 00000000..1b18b0f0
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.116-r4.ebuild
@@ -0,0 +1,288 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: 5daa660f24e0d4b83c2cc7d96f1ced4d71d40fc4 $
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sources.redhat.com/lvm2/"
+SRC_URI="ftp://sources.redhat.com/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sources.redhat.com/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="clvm cman device-mapper-only lvm1 lvm2create_initrd readline selinux static static-libs systemd +thin +udev"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !lvm1 !lvm2create_initrd !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="clvm? ( cman? ( =sys-cluster/cman-3* ) =sys-cluster/libdlm-3* )
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? (
+ app-arch/cpio
+ sys-apps/makedev
+ )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+QA_RUN_ALLOWED="/etc/init.d/device-mapper"
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.108-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.108-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.106-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/var/run \
+ --with-default-run-dir=/var/run/lvm \
+ --with-default-locking-dir=/var/lock/lvm \
+ --with-default-pid-dir=/var/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ $(use_with systemd systemdsystemunitdir "$(systemd_get_unitdir)") \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ if use systemd; then
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+ fi
+}
+
+src_install() {
+ local inst
+ local INSTALL_TARGETS="install"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_tmpfiles_configuration install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r4 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+ ewarn
+ ewarn "After enabling or disabling lvmetad in /etc/lvm/lvm.conf you must"
+ ewarn "run the following to update the init script dependencies: "
+ ewarn "# rc-update -u"
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
+
+# vi: set diffopt=iwhite,filler: