diff options
author | Stuart Shelton <stuart@shelton.me> | 2016-03-07 22:21:05 +0000 |
---|---|---|
committer | Stuart Shelton <stuart@shelton.me> | 2016-03-07 22:21:05 +0000 |
commit | 901a20b9cac0b7ce5499ce1184dd935ca2bbc8b1 (patch) | |
tree | 5d0d81c574d55e3728b407bf687d7b682fc66dac /sys-fs | |
parent | Update sys-apps/openrc-0.19.1 (diff) | |
download | srcshelton-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/Manifest | 5 | ||||
-rw-r--r-- | sys-fs/lvm2/files/lvm.rc-2.02.105-r2 | 24 | ||||
-rw-r--r-- | sys-fs/lvm2/files/lvm.rc-2.02.116-r4 | 137 | ||||
-rw-r--r-- | sys-fs/lvm2/files/lvmetad.initd-2.02.116-r3 | 13 | ||||
-rw-r--r-- | sys-fs/lvm2/lvm2-2.02.116-r4.ebuild | 288 |
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: |