summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2012-05-27 07:05:22 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2012-05-27 07:05:22 +0000
commitbff7f47c36e96209fcde159110da8e8a92be4d3f (patch)
tree6faf331bb350fde0ae6a045250c7733fac548ed1 /sys-fs/lvm2
parentInitial commit, new dependency for LVM2. (diff)
downloadhistorical-bff7f47c36e96209fcde159110da8e8a92be4d3f.tar.gz
historical-bff7f47c36e96209fcde159110da8e8a92be4d3f.tar.bz2
historical-bff7f47c36e96209fcde159110da8e8a92be4d3f.zip
Revbump to use /run for locking and sockets, also bring in new thin provisioning tools. Please ensure you are running the new baselayout and openrc before you switch to this version! The old addon scripts have been converted to plain init.d scripts now. Bugs #409921, #417491.
Package-Manager: portage-2.2.0_alpha107/cvs/Linux x86_64
Diffstat (limited to 'sys-fs/lvm2')
-rw-r--r--sys-fs/lvm2/ChangeLog12
-rw-r--r--sys-fs/lvm2/Manifest5
-rw-r--r--sys-fs/lvm2/files/device-mapper.rc-2.02.95-r2111
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.95-r296
-rw-r--r--sys-fs/lvm2/lvm2-2.02.95-r2.ebuild265
5 files changed, 487 insertions, 2 deletions
diff --git a/sys-fs/lvm2/ChangeLog b/sys-fs/lvm2/ChangeLog
index 191962ec66c8..20258ca7b514 100644
--- a/sys-fs/lvm2/ChangeLog
+++ b/sys-fs/lvm2/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for sys-fs/lvm2
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/ChangeLog,v 1.269 2012/05/04 19:09:16 jdhore Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/ChangeLog,v 1.270 2012/05/27 07:05:22 robbat2 Exp $
+
+*lvm2-2.02.95-r2 (27 May 2012)
+
+ 27 May 2012; Robin H. Johnson <robbat2@gentoo.org>
+ +files/device-mapper.rc-2.02.95-r2, +files/lvm.rc-2.02.95-r2,
+ +lvm2-2.02.95-r2.ebuild:
+ Revbump to use /run for locking and sockets, also bring in new thin
+ provisioning tools. Please ensure you are running the new baselayout and
+ openrc before you switch to this version! The old addon scripts have been
+ converted to plain init.d scripts now. Bugs #409921, #417491.
04 May 2012; Jeff Horelick <jdhore@gentoo.org> lvm2-2.02.67.ebuild,
lvm2-2.02.67-r1.ebuild, lvm2-2.02.67-r2.ebuild, lvm2-2.02.70.ebuild,
diff --git a/sys-fs/lvm2/Manifest b/sys-fs/lvm2/Manifest
index a41f0f698318..87b582688fc8 100644
--- a/sys-fs/lvm2/Manifest
+++ b/sys-fs/lvm2/Manifest
@@ -4,6 +4,7 @@ AUX clvmd.rc-2.02.39 3682 RMD160 891e8f770a5566fc9102cc02db8ff81174791aca SHA1 4
AUX device-mapper.conf-1.02.22-r3 15 RMD160 1954cbfeea6eeed764a6344039d9c1eb58f7b00a SHA1 0dd47dfb811946a11fbde987e2ce1e105ed7fafb SHA256 57777904f12a35617e5a4193c964ebb32396452487fd02353e71e16e7b46bc22
AUX device-mapper.rc-1.02.51-r2 701 RMD160 cebd843b44b7d03acc113fbaa0af30f21d0f5de6 SHA1 f563adc35777030ec50b29005a9285a90e86a904 SHA256 dfdff0739dad521087ffa20f06e274bbc666e0ab85779621c360c04728e3cf58
AUX device-mapper.rc-2.02.67-r1 841 RMD160 a6bb66fd8d2f30e168658c557efd99b4a277abe7 SHA1 3447311f2ee9cb104fc9db11f29264c9f4a48c22 SHA256 18be4a227c786a8cdbbb0fb0f6da295db55359b91884b4d4e0e9976b80aa4003
+AUX device-mapper.rc-2.02.95-r2 2763 RMD160 1ed52c844cac05d98f5c3d3d85b46661718bce9f SHA1 6c175ff355943c710ffe910fb737a5a142afaa79 SHA256 1b3c74476c2f24dc5a297faaf8d0f65375fd867ef240f7eb48be0868039802a2
AUX dm-start.sh 2114 RMD160 96a6b824e22d5c04f2710f98cda5361bde6a265c SHA1 b18c79802ab8bac9befe4a32cce6fe13beb3134c SHA256 c064c3e2a1d128a6326b539a675f1a6cf88b75f5526222e232d53ea1468a9bcf
AUX dmeventd.initd-2.02.67-r1 683 RMD160 23e3787c3bd9d99a1d73d4688c91ec1198f4a7e6 SHA1 b00215e6297d69330df834e291b809c847396c28 SHA256 84e157b1b99b9fddfc97ab95bc6d37bfa4378578458744447e9478ebe6fc821b
AUX dmtab 416 RMD160 d5da257f9ac48af9e831dbd6591e608577d87717 SHA1 f37631cb644b8a242a0426375b1b6acee0bde399 SHA256 e2e22bbe13fb97ec9a68659daa275b1d22fd0a3fd21e76b1f4bfba504a8bd7b5
@@ -12,6 +13,7 @@ AUX lvm.conf-2.02.67.patch 1676 RMD160 9bd0d32e205853b38493380373a7ba29d5b085ad
AUX lvm.confd-2.02.28-r2 173 RMD160 cf554372fa11df056e3757e5139fad6c7606a696 SHA1 e8186ebb91d12247d0865285dc62346d1cbc207a SHA256 28370c089c39c248d7ded0960b8d8a9256bada44d44c22ce3cec87d512ef6844
AUX lvm.rc-2.02.51-r2 792 RMD160 9a5bb96606d20a420b7ff94e6de2b140d0a5022d SHA1 302111a801f1301f387db52180ec2f876d08898f SHA256 b883e8ae1d3b9d8a0bdf85b009125e9408ee6d22a159b2e4c340fce455d5fd9f
AUX lvm.rc-2.02.67-r1 918 RMD160 f2918f4a25746f8ee2ee220cc2819e13c0093662 SHA1 9e6b995c2b8de569db01f09a070dc466fe0248d9 SHA256 63e8e9cbfbed5124d31b365f0e8108822847ceb381143c9529d9bf5439f2a99a
+AUX lvm.rc-2.02.95-r2 2999 RMD160 e770e400d531a97d7e9e98a4233586a5f284bf8a SHA1 838d6676bb228018ab615f128cbe27adc995e031 SHA256 8f088a15453ec56f96daf44a72f26022b817e14ad1d00514c1fa48b810cac9bb
AUX lvm2-2.02.56-lvm2create_initrd.patch 2032 RMD160 5e9ff47cb85829c41d9876048ee4be4e26554973 SHA1 bd83079490b19efca6846435b92b891aa1ff764a SHA256 b892d0544e05350e78ea400c16e6fd3657671d9bdf50bfae70505fd79bdda081
AUX lvm2-2.02.63-always-make-static-libdm.patch 1420 RMD160 16079ddc546aa6dc6a21bdb3e7f81df7342b93f8 SHA1 3cd5011ec1177aee12d7d2d0768a5874bdf021ad SHA256 1c498b5efce77ed16bbbfcd9e0ec6da404a9c70c7ad0959ed7b60733adfcfc21
AUX lvm2-2.02.64-dmeventd-libs.patch 618 RMD160 c030db2d971e0287fa9c65ab9bede9198501369d SHA1 76a3905e45609cc699221d6c32be8edbbcd2efec SHA256 1b8c281212b3c7edf456b38679c2c7ed838dd55789125c11cde691c2ccf62ace
@@ -64,6 +66,7 @@ EBUILD lvm2-2.02.92.ebuild 8263 RMD160 4315bad29d7bb45a5b6e44af79635103d8946c12
EBUILD lvm2-2.02.93-r1.ebuild 8278 RMD160 fdbaeec2b9c3b9003f6493e00a382c5b8bf31bad SHA1 14b78bfadf121dbd51276583c146b078f50aacd2 SHA256 b184eac892f30cc507e5b85457ef1c4a831a3c5c855fdebc8b6f97cce305c686
EBUILD lvm2-2.02.93.ebuild 8277 RMD160 ff092b7ff383bc955789fb447d95a1e9deec8c8d SHA1 489888d157e4ebe50caf0331f93f13dd0a49154c SHA256 6cca39403c10e212e7f7edf0f1f6eb6859fd515a635b0b4b1e92f13de8773b95
EBUILD lvm2-2.02.95-r1.ebuild 8435 RMD160 6c8df038ef652b606b9198949398956daffc4216 SHA1 880d7dcae872ddcecaaeedae00a988ce095c48a9 SHA256 741d0030c39f63b1794ebe935e6b6bb4e6f4aa86045ba661f61ccd3bea5cce9c
+EBUILD lvm2-2.02.95-r2.ebuild 8419 RMD160 9deac1d7b1c00c740607caea190e79a278b3fddd SHA1 f803e87e693080ea61d880f174cb66137cc79970 SHA256 4d9b19b67d3a46161ceb8ab7548eb281df73fb8c24995bad0c08e2df724239ee
EBUILD lvm2-2.02.95.ebuild 8340 RMD160 16e6be98bbb91053a533e071daf5ef57f4888a44 SHA1 9bdbddc120c68ee5e28a8e7c59e5731a82a36151 SHA256 fbd1b45682794c1567c0ee446732aa82ecd09adb8c9e1302f4abe3bee0cc81d1
-MISC ChangeLog 49485 RMD160 e265c1ee27a811c3771e9ebe2b251ee3955b1575 SHA1 feefd7c5617d75fd3e860c27ce7838ff99f1eecf SHA256 ba6a1e849d9a1a654883a331ceca38b381ef69f9097a9d98b46cfec56594bd13
+MISC ChangeLog 49948 RMD160 133a180e888c2620b8b1aa63c2c37d3dd570be1f SHA1 9d6cadf735d33f1b8b987b2af65fad5267c93b4d SHA256 69a0d6e879905ee28ff27c4595f21e502720d100e1ebeb293e70d02ec023021e
MISC metadata.xml 770 RMD160 10cadeecb8b77288ca9ae9dec2b485f5c1a33ba1 SHA1 950857278b8208a02b256f317a6687b446279a8d SHA256 b0994914cb1d6028fd0d0545c4e6d534797d20e7a40eea5d827afa836e0ea1eb
diff --git a/sys-fs/lvm2/files/device-mapper.rc-2.02.95-r2 b/sys-fs/lvm2/files/device-mapper.rc-2.02.95-r2
new file mode 100644
index 000000000000..404c269b9343
--- /dev/null
+++ b/sys-fs/lvm2/files/device-mapper.rc-2.02.95-r2
@@ -0,0 +1,111 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/files/device-mapper.rc-2.02.95-r2,v 1.1 2012/05/27 07:05:22 robbat2 Exp $
+
+depend() {
+ # As of .67-r1, we call ALL lvm start/stop scripts with --sysinit, that
+ # means dmeventd is NOT notified, as it cannot be safely running
+ before dmeventd checkfs fsck
+ after modules
+}
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+# char **get_new_dm_volumes(void)
+#
+# Return dmsetup commands to setup volumes
+get_new_dm_volumes() {
+ local volume params
+
+ # Filter comments and blank lines
+ grep -v -e '^[[:space:]]*\(#\|$\)' /etc/dmtab | \
+ while read volume params ; do
+ # If it exists, skip it
+ dmvolume_exists "${volume%:}" && continue
+ # Assemble the command to run to create volume
+ echo "echo ${params} | /sbin/dmsetup create ${volume%:}"
+ done
+
+ return 0
+}
+
+# int dmvolume_exists(volume)
+#
+# Return true if volume exists in DM table
+dmvolume_exists() {
+ local x line volume=$1
+
+ [ -z "${volume}" ] && return 1
+
+ /sbin/dmsetup ls 2>/dev/null | \
+ while read line ; do
+ for x in ${line} ; do
+ # the following conditonal return only breaks out
+ # of the while loop, as it is running in a pipe.
+ [ "${x}" = "${volume}" ] && return 1
+ # We only want to check the volume name
+ break
+ done
+ done
+
+ # if 1 was returned from the above loop, then indicate that
+ # volume exists
+ [ $? = 1 ] && return 0
+
+ # otherwise the loop exited normally and the volume does not
+ # exist
+ return 1
+}
+
+# int is_empty_dm_volume(volume)
+#
+# Return true if the volume exists in DM table, but is empty/non-valid
+is_empty_dm_volume() {
+ local table volume=$1
+
+ set -- $(/sbin/dmsetup table 2>/dev/null | grep -e "^${volume}:")
+ [ "${volume}" = "$1" -a -z "$2" ]
+}
+
+
+start() {
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ # Ensure the dirs exist for locking and running
+ checkpath -q -d -m 0700 -o root:root /run/lvm /run/lock/lvm
+
+ local x volume
+
+ if [ -x /sbin/dmsetup -a -c /dev/mapper/control -a -f /etc/dmtab ] ; then
+ [ -n "$(get_new_dm_volumes)" ] && \
+ einfo " Setting up device-mapper volumes:"
+
+ get_new_dm_volumes | \
+ while read x ; do
+ [ -n "${x}" ] || continue
+
+ volume="${x##* }"
+
+ ebegin " Creating volume: ${volume}"
+ if ! eval "${x}" >/dev/null 2>/dev/null ; then
+ eend 1 " Error creating volume: ${volume}"
+ # dmsetup still adds an empty volume in some cases,
+ # so lets remove it
+ is_empty_dm_volume "${volume}" && \
+ /sbin/dmsetup remove "${volume}" 2>/dev/null
+ else
+ eend 0
+ fi
+ done
+ fi
+}
+
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.95-r2 b/sys-fs/lvm2/files/lvm.rc-2.02.95-r2
new file mode 100644
index 000000000000..a06aa0bbfee8
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.95-r2
@@ -0,0 +1,96 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/files/lvm.rc-2.02.95-r2,v 1.1 2012/05/27 07:05:22 robbat2 Exp $
+
+depend() {
+ use dmeventd
+ before checkfs fsck
+ after dmeventd modules device-mapper
+}
+
+config='global { locking_dir = "/run/lock/lvm" }'
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+start() {
+ # 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
+ 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
+ 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 the Logical Volume Manager"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because 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 "${config}" >/dev/null
+ eend $? "Failed to setup the LVM"
+ fi
+ fi
+}
+
+stop() {
+ 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
+# Stop LVM2
+if [ -x /sbin/vgs ] && \
+ [ -x /sbin/vgchange ] && \
+ [ -x /sbin/lvchange ] && \
+ [ -f /etc/lvmtab -o -d /etc/lvm ] && \
+ [ -d /proc/lvm -o "`grep device-mapper /proc/misc 2>/dev/null`" ]
+then
+ einfo "Shutting down the Logical Volume Manager"
+
+
+ VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix 2> /dev/null)
+
+ if [ "$VGS" ]
+ then
+ ebegin " Shutting Down LVs & VGs"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${VGS}\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ln\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 "${config}" >/dev/null
+ eend $? "Failed"
+ fi
+
+ einfo "Finished Shutting down the Logical Volume Manager"
+fi
+}
+
+# vim:ts=4
diff --git a/sys-fs/lvm2/lvm2-2.02.95-r2.ebuild b/sys-fs/lvm2/lvm2-2.02.95-r2.ebuild
new file mode 100644
index 000000000000..4d4f95620f2d
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.95-r2.ebuild
@@ -0,0 +1,265 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/lvm2-2.02.95-r2.ebuild,v 1.1 2012/05/27 07:05:22 robbat2 Exp $
+
+EAPI=3
+inherit eutils multilib toolchain-funcs autotools linux-info
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software."
+HOMEPAGE="http://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 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="readline static static-libs clvm cman +lvm1 selinux +udev"
+
+DEPEND_COMMON="!!sys-fs/device-mapper
+ readline? ( sys-libs/readline )
+ clvm? ( =sys-cluster/libdlm-3*
+ cman? ( =sys-cluster/cman-3* ) )
+ udev? ( >=sys-fs/udev-151-r4 )"
+
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available.
+RDEPEND="${DEPEND_COMMON}
+ !<sys-apps/openrc-0.10.1
+ >=sys-apps/baselayout-2.1-r1
+ !!sys-fs/lvm-user
+ !!sys-fs/clvm
+ >=sys-apps/util-linux-2.16
+ sys-block/thin-provisioning-tools"
+
+# Upgrading to this LVM will break older cryptsetup
+RDEPEND="${RDEPEND}
+ !<sys-fs/cryptsetup-1.1.2"
+
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? ( || ( >=sys-fs/udev-181[static-libs] <sys-fs/udev-181 ) )"
+
+S="${WORKDIR}/${PN/lvm/LVM}.${PV}"
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+ use udev && local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ check_extra_config
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ # 2. There are no longer any linking deps in /usr.
+ 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_unpack() {
+ unpack ${A}
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/lvm.conf-2.02.67.patch
+
+ # Should not be needed due to upstream re-arrangement of build
+ #epatch "${FILESDIR}"/${PN}-2.02.56-dmeventd.patch
+ # Should not be need with new upstream udev rules
+ #epatch "${FILESDIR}"/${PN}-2.02.56-device-mapper-export-format.patch
+
+ # Merged upstream:
+ #epatch "${FILESDIR}"/${PN}-2.02.51-as-needed.patch
+ # Merged upstream:
+ #epatch "${FILESDIR}"/${PN}-2.02.48-fix-pkgconfig.patch
+ # Merged upstream:
+ #epatch "${FILESDIR}"/${PN}-2.02.51-fix-pvcreate.patch
+ # Fixed differently upstream:
+ #epatch "${FILESDIR}"/${PN}-2.02.51-dmsetup-selinux-linking-fix-r3.patch
+
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/lvm2-2.02.56-lvm2create_initrd.patch
+ # bug 318513 - merged upstream
+ #epatch "${FILESDIR}"/${PN}-2.02.64-dmeventd-libs.patch
+ # bug 301331
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch
+ # bug 330373
+ epatch "${FILESDIR}"/${PN}-2.02.92-locale-muck.patch
+ # --as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch
+ # bug 332905
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch
+ # bug 361429 - merged upstream in .85
+ #epatch "${FILESDIR}"/${PN}-2.02.84-udev-pkgconfig.patch
+
+ # Merged upstream
+ #epatch "${FILESDIR}"/${PN}-2.02.73-asneeded.patch
+
+ epatch "${FILESDIR}"/${PN}-2.02.88-respect-cc.patch
+
+ # Upstream bug of LVM path
+ epatch "${FILESDIR}"/${PN}-2.02.95-lvmpath.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf
+ local buildmode
+
+ myconf="${myconf} --enable-dmeventd"
+ myconf="${myconf} --enable-cmdlib"
+ myconf="${myconf} --enable-applib"
+ myconf="${myconf} --enable-fsadm"
+ myconf="${myconf} --enable-lvmetad"
+
+ # 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
+ einfo "Building static LVM, for usage inside genkernel"
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ # For recent systems, there are no linkages against anything in /usr anyway.
+ # We explicitly provide the .static versions so that they can be included in
+ # initramfs environments.
+ myconf="${myconf} --enable-static_link"
+ else
+ ewarn "Building shared LVM, it will not work inside genkernel!"
+ buildmode="shared"
+ fi
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=internal"
+ myconf="${myconf} --with-snapshots=internal"
+ myconf="${myconf} --with-thin=internal"
+
+ 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" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}/sbin" \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-dmeventd-path=/sbin/dmeventd \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "${EPREFIX}/lib/udev/rules.d/") \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}" || die
+}
+
+src_compile() {
+ einfo "Doing symlinks"
+ pushd include
+ emake || die "Failed to prepare symlinks"
+ popd
+
+ einfo "Starting main build"
+ emake || die "compile fail"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "Failed to emake install"
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{conf,c,txt}
+ newinitd "${FILESDIR}"/lvm.rc-2.02.95-r2 lvm || die
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.67-r2 lvm-monitoring || die
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm || die
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd || die
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd || die
+ fi
+
+ # move shared libs to /lib(64)
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a || die "dolib.a libdevmapper.a"
+ #gen_usr_ldscript libdevmapper.so
+ fi
+
+ dosbin "${S}"/scripts/lvm2create_initrd/lvm2create_initrd
+ doman "${S}"/scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc "${S}"/scripts/lvm2create_initrd/README README.lvm2create_initrd
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ # Device mapper stuff
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.95-r2 device-mapper || die
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper || die
+
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd || die
+ if use static-libs; then
+ dolib.a daemons/dmeventd/libdevmapper-event.a \
+ || die "dolib.a libdevmapper-event.a"
+ #gen_usr_ldscript libdevmapper-event.so
+ fi
+
+ use static-libs || \
+ rm -f "${D}"/usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+
+ #insinto /etc/udev/rules.d/
+ #newins "${FILESDIR}"/64-device-mapper.rules-2.02.56-r3 64-device-mapper.rules || die
+
+ # do not rely on /lib -> /libXX link
+ sed -i \
+ -e "s|/lib/rcscripts/|/$(get_libdir)/rcscripts/|" \
+ "${ED}"/etc/init.d/* || die
+
+ elog "USE flag nocman is deprecated and replaced"
+ elog "with the cman USE flag."
+ elog ""
+ elog "USE flags clvm and cman are masked"
+ elog "by default and need to be unmasked to be used"
+ elog ""
+ elog "If you are using genkernel and root-on-LVM, rebuild the initramfs."
+}
+
+pkg_postinst() {
+ elog "lvm volumes are no longer automatically created for"
+ elog "baselayout-2 users. If you are using baselayout-2, be sure to"
+ elog "run: # rc-update add lvm boot"
+ elog "Do NOT add it if you are still using baselayout-1."
+}
+
+src_test() {
+ einfo "Testcases disabled because of device-node mucking"
+ einfo "If you want them, compile the package and see ${S}/tests"
+}
+