blob: 2a758b2d5a045cb9e27b823fc7cba17fcc633220 (
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header$
EAPI=2
inherit eutils
MY_PV="${PV/_rc/-rc}"
MY_P="${PN}_${MY_PV}"
DESCRIPTION="Distributed key-value database management system"
HOMEPAGE="http://www.membase.org/"
SRC_URI="http://c2512712.cdn.cloudfiles.rackspacecloud.com/${MY_P}_src.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="-ia64 -x86"
IUSE=""
RDEPEND=">=dev-libs/libevent-2.0.7
>=net-misc/curl-7.21.1
>=dev-lang/erlang-13.2.4
>=sys-devel/gcc-4.3.0
>=dev-libs/check-0.9.4"
DEPEND="${RDEPEND}
!>=dev-lang/erlang-14"
# Erlang 14A no longer allows compile option nowarn_bif_clash
S="${WORKDIR}/${MY_P}_src"
src_configure() {
dodir lib doc
einfo "Configuring and building memcached"
cd "${S}/memcached" || die
econf --enable-isasl && emake || die
einfo "Configuring bucket_engine"
cd "${S}/bucket_engine" || die
econf --with-memcached="${S}/memcached" || die
einfo "Configuring ep-engine"
cd "${S}/ep-engine" || die
econf --with-memcached="${S}/memcached" || die
# Some libs are depended on during the config process so build them now
einfo "Configuring and building libmemcached"
cd "${S}/libmemcached" || die
econf --prefix="${S}/lib" \
--mandir="${S}/doc" \
--disable-shared \
--disable-dtrace \
--enable-static \
--with-memcached="${S}/memcached/memcached" || die
emake && emake install || die
einfo "Configuring and building libvbucket"
cd "${S}/libvbucket" || die
econf --prefix="${S}/lib" \
--mandir="${S}/doc" \
--disable-shared \
--enable-static || die
emake && emake install || die
einfo "Configuring and building vbucketmigrator"
cd "${S}/vbucketmigrator" || die
econf --prefix="${S}/lib" \
--mandir="${S}/doc" \
--without-sasl \
--with-isasl \
--with-memcached="${S}/memcached" || die
emake || die
einfo "Configuring and building libconflate"
cd "${S}/libconflate" || die
econf --prefix="${S}/lib" \
--mandir="${S}/doc" \
--disable-shared \
--enable-static || die
emake && emake install || die
einfo "Configuring moxi"
cd "${S}/moxi" || die
econf --prefix="${S}/lib" \
--mandir="${S}/doc" \
--with-memcached="${S}/memcached/memcached" \
--enable-moxi-libvbucket \
--enable-moxi-libmemcached \
CFLAGS="-I${S}/lib/include -Wno-error" \
LDFLAGS="-L${S}/lib/lib" || die
}
src_compile() {
echo "Building bucket_engine"
cd "${S}/bucket_engine" || die
emake || die
echo "Building ep-engine"
cd "${S}/ep-engine" || die
emake || die
echo "Building moxi"
cd "${S}/moxi" || die
emake || die
echo "Building ns-server"
cd "${S}/ns_server"
emake || die
}
src_install() {
# Just copy the whole directory over to /opt until we split out packages
# more efficiently (and/or respect the Makefile destinations)
dodir opt/membase/${PV}
cp -a "${S}"/{bucket_engine,ep-engine,libconflate,libmemcached,libvbucket,membase-cli,memcached,moxi,ns_server,vbucketmigrator} \
"${D}/opt/membase/${PV}" || die "Install failed!"
# Setup keeps for the data, config, and log dirs
dodir "etc/membase/${PV}"
keepdir "etc/membase/${PV}"
cp "${FILESDIR}/${PV}/config" "${D}/etc/membase/${PV}" || \
die "Install failed!"
dosym "etc/membase/${PV}/priv" "/etc/membase/${PV}"
chown -R membase:daemon "${D}/etc/membase" || \
die "Install failed!"
dodir "var/lib/membase/${PV}/mnesia" "var/lib/membase/${PV}/data"
keepdir "var/lib/membase/${PV}/mnesia" "var/lib/membase/${PV}/data"
chown -R membase:daemon "${D}/var/lib/membase" || \
die "Install failed!"
dodir "var/log/membase/${PV}"
keepdir "var/log/membase/${PV}"
chown -R membase:daemon "${D}/var/log/membase/${PV}" || \
die "Install failed!"
# TODO: Sort through all the misc docs in the different subprojects and
# dodoc them
doman doc/man1/* || die
doman doc/man3/* || die
doman doc/man4/* || die
# Install the initscripts
newinitd "${FILESDIR}/${PV}/init-epmd" membase-epmd
newinitd "${FILESDIR}/${PV}/init-server" membase-server
}
pkg_setup() {
enewuser membase -1 -1 /var/lib/membase daemon
}
|