summaryrefslogtreecommitdiff
blob: f97954b26b3c0e41f73bb85ddc900970a188a7e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=4

inherit linux-info multilib toolchain-funcs versionator

CLUSTER_RELEASE="${PV}"
MY_P="cluster-${CLUSTER_RELEASE}"

MAJ_PV="$(get_major_version)"
MIN_PV="$(get_version_component_range 2-3)"

DESCRIPTION="Cluster Manager"
HOMEPAGE="https://fedorahosted.org/cluster/wiki/HomePage"
SRC_URI="https://fedorahosted.org/releases/c/l/cluster/${MY_P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~x86"
IUSE="dbus ldap"

RDEPEND="dev-libs/libxml2
	dev-libs/libxslt
	dbus? ( sys-apps/dbus )
	ldap? ( net-nds/openldap )
	sys-cluster/corosync
	sys-cluster/openais
	~sys-cluster/libccs-${PV}
	~sys-cluster/libfence-${PV}
	~sys-cluster/libcman-${PV}
	~sys-cluster/libdlm-${PV}
	~sys-cluster/liblogthread-${PV}
	!sys-cluster/dlm
"
DEPEND="${RDEPEND}
	>=sys-kernel/linux-headers-2.6.24"

S="${WORKDIR}/${MY_P}"

# TODO:
# * Gentoo'ise the init script

src_configure() {
	# cluster libs have their own separate packages
	sed -i -e 's|lib||' "${S}/cman/Makefile" || die
	sed -i -e 's|liblogthread||' "${S}/common/Makefile" || die
	sed -i -e 's|libs||' "${S}/config/Makefile" || die
	sed -i -e 's|libdlm libdlmcontrol||' "${S}/dlm/Makefile" || die
	sed -i -e 's|libfence libfenced||' "${S}/fence/Makefile" || die
	sed -i -e 's|fence/libfenced||' "${S}/Makefile" || die

	sed -i \
		-e 's|\(^all:.*\)depends |\1|' \
		config/tools/ccs_tool/Makefile \
		fence/fence{d,_node,_tool}/Makefile \
		cman/{cman_tool,daemon,tests,qdisk,notifyd}/Makefile \
		dlm/{tool,tests/usertest}/Makefile \
		|| die "sed failed"

	if ! use ldap ; then
		sed -i -e 's|ldap||' config/plugins/Makefile || die "sed failed"
	fi
	local myopts=""
	use dbus || myopts="--disable_dbus"
	./configure \
		--cc=$(tc-getCC) \
		--cflags="-Wall" \
		--libdir=/usr/$(get_libdir) \
		--disable_kernel_check \
		--kernel_src=${KERNEL_DIR} \
		--somajor="$MAJ_PV" \
		--sominor="$MIN_PV" \
		--without_rgmanager \
		--without_bindings \
		${myopts} \
		|| die "configure problem"
}

src_install() {
	emake DESTDIR="${D}" install

	# we have to create it in the init.d script anyway
	rmdir "${D}"/var/run/{cluster,}

	keepdir /var/{lib,log}/cluster
	keepdir /etc/cluster/cman-notify.d

	rm -rf "${D}/usr/share/doc"
	dodoc \
		doc/{usage.txt,cman_notify_template.sh} \
		config/plugins/ldap/*.ldif
	dohtml doc/*.html

	# lib-specific man pages are provided by the corresponding packages
	rm "${D}/usr/share/man/man3/libdlm.3"

	newinitd "${FILESDIR}/${PN}.initd" "${PN}"
	newconfd "${FILESDIR}/${PN}.confd" "${PN}"
}