blob: a8a7d6a59c501077935cb73ba3bb7a5f00ab2c1d (
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
|
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-irc/inspircd/inspircd-1.2.8.ebuild,v 1.3 2011/04/26 14:41:35 xarthisius Exp $
EAPI=2
inherit eutils toolchain-funcs multilib
DESCRIPTION="InspIRCd - The Modular C++ IRC Daemon"
HOMEPAGE="http://www.inspircd.org/"
SRC_URI="http://www.inspircd.org/downloads/InspIRCd-${PV}.tar.bz2
mirror://sourceforge/${PN}/InspIRCd-${PV}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="openssl gnutls ipv6 mysql postgres sqlite zlib ldap"
RDEPEND="
dev-lang/perl
openssl? ( dev-libs/openssl )
gnutls? ( net-libs/gnutls )
mysql? ( virtual/mysql )
postgres? ( dev-db/postgresql-server )
sqlite? ( >=dev-db/sqlite-3.0 )
ldap? ( net-nds/openldap )"
DEPEND="${RDEPEND}"
S="${WORKDIR}/inspircd"
src_prepare() {
local SQL=0
cd src/modules || die
if use zlib ; then
cp extra/m_ziplink.cpp . || die
fi
if use openssl ; then
cp extra/m_ssl_openssl.cpp . || die
fi
if use gnutls ; then
cp extra/m_ssl_gnutls.cpp . || die
fi
if use ldap ; then
cp extra/m_ldapauth.cpp . || die
fi
if use mysql ; then
SQL=1
cp extra/m_mysql.cpp . || die
fi
if use postgres ; then
SQL=1
cp extra/m_pgsql.cpp . || die
fi
if use sqlite ; then
SQL=1
cp extra/m_sqlite3.cpp . || die
fi
if [ ${SQL} -eq 1 ] ; then
cp extra/m_sql{auth.cpp,log.cpp,oper.cpp,utils.cpp,utils.h,v2.h} . || die
fi
}
src_configure() {
# ./configure doesn't know --disable-gnutls, -ipv6 and -openssl options,
# so should be used only --enable-like.
local myconf=""
use gnutls && myconf="--enable-gnutls"
use ipv6 && myconf="${myconf} --enable-ipv6 --enable-remote-ipv6"
use openssl && myconf="${myconf} --enable-openssl"
# allow inspircd to be built by root
touch .force-root-ok || die
./configure ${myconf} \
--enable-epoll \
--prefix="/usr/$(get_libdir)/inspircd" \
--config-dir="/etc/inspircd" \
--binary-dir="/usr/bin" \
--library-dir="/usr/$(get_libdir)/inspircd" \
--module-dir="/usr/$(get_libdir)/inspircd/modules" \
|| die "configure failed"
./configure -modupdate || die "modupdate failed"
}
src_compile() {
emake CC="$(tc-getCXX)" || die "emake failed"
}
src_install() {
# the inspircd buildsystem does not create these, its configure script
# does. so, we have to make sure they are there.
dodir /usr/$(get_libdir)/inspircd || die
dodir /usr/$(get_libdir)/inspircd/modules || die
dodir /etc/inspircd || die
dodir /var/log/inspircd || die
dodir /usr/include/inspircd || die
emake install \
LIBPATH="${D}/usr/$(get_libdir)/inspircd/" \
MODPATH="${D}/usr/$(get_libdir)/inspircd/modules/" \
CONPATH="${D}/etc/inspircd" \
BINPATH="${D}/usr/bin" \
BASE="${D}/usr/$(get_libdir)/inspircd/inspircd.launcher" || die
insinto /usr/include/inspircd/
doins include/* || die
newinitd "${FILESDIR}"/init.d_inspircd inspircd || die
keepdir "/var/log/inspircd/"
}
pkg_postinst() {
enewgroup inspircd
enewuser inspircd -1 -1 -1 inspircd
chown -R inspircd:inspircd "${ROOT}"/etc/inspircd
chmod 700 "${ROOT}"/etc/inspircd
chmod 750 "${ROOT}"/var/log/inspircd
chown -R inspircd:inspircd "${ROOT}"/var/log/inspircd
chown -R inspircd:inspircd "${ROOT}"/usr/$(get_libdir)/inspircd
chmod -R 755 "${ROOT}"/usr/$(get_libdir)/inspircd
chmod -R 755 "${ROOT}"/usr/bin/inspircd
}
|