blob: d3c8d85845903b9709abd6fbce7588da2b8f2771 (
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
|
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-irc/anope/anope-1.8.7.ebuild,v 1.2 2012/01/12 00:35:32 binki Exp $
EAPI=4
inherit autotools eutils multilib versionator
DESCRIPTION="Anope IRC Services"
HOMEPAGE="http://www.anope.org"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="mysql"
DEPEND="mysql? ( virtual/mysql )"
RDEPEND="${DEPEND}"
pkg_pretend() {
local replaced_version
for replaced_version in ${REPLACING_VERSIONS} ; do
if ! version_is_at_least 1.8.7 ${replaced_version} && [[ -f ${ROOT}opt/anope/data/nick.db ]]; then
eerror "It looks like you have an older version of Anope installed."
eerror "To upgrade, shut down Anope and copy your databases to"
eerror "${ROOT}var/lib/anope and your configuration to ${ROOT}etc/anope"
eerror "You can do this by:"
eerror "# mkdir -p ${ROOT}var/lib/anope ${ROOT}etc/anope"
eerror "# chown anope:anope ${ROOT}var/lib/anope"
eerror "# mv ${ROOT}opt/anope/data/*.db ${ROOT}var/lib/anope"
eerror "# mv ${ROOT}opt/anope/data/services.conf ${ROOT}etc/anope"
die "Please move your anope database files from /opt/anope/data"
fi
done
}
pkg_setup() {
enewgroup anope
enewuser anope -1 -1 -1 anope
}
src_prepare() {
epatch "${FILESDIR}/pid-patch.diff"
epatch "${FILESDIR}/${P}-ldflags-fix.patch"
epatch "${FILESDIR}/${P}-libdir-gentoo.patch"
epatch "${FILESDIR}"/${P}-mariadb.patch # bug 381119
eautoconf
}
src_configure() {
local myconf
if ! use mysql; then
myconf="${myconf} --without-mysql"
fi
econf \
${myconf} \
--with-bindir=/usr/bin/ \
--with-datadir=/var/lib/anope \
--with-libdir=/usr/$(get_libdir)/anope/ \
--with-rungroup=anope \
--with-permissions=077
sed -i -e "/^build:/s:$: language:g" "${S}"/Makefile || die "sed failed"
}
src_install() {
keepdir /var/{lib,log,run}/anope
fowners anope:anope /var/{lib,log,run}/anope
local baselibdir
baselibdir="${D}/usr/$(get_libdir)/anope"
dodir /usr/$(get_libdir)/anope/{lang,modules}
emake DATDEST="${baselibdir}" \
BINDEST="${D}/usr/bin" \
MODULE_PATH="${baselibdir}/modules" \
install
newinitd "${FILESDIR}/anope-init.d" anope
newconfd "${FILESDIR}/anope-conf.d" anope
dodoc Changes Changes.conf Changes.lang Changes.mysql docs/* data/example.conf
use mysql && dodoc data/tables.sql
insinto /etc/anope
newins data/example.conf services.conf
}
pkg_preinst() {
if has_version net-irc/anope ; then
local directory
directory="${ROOT}"var/lib/anope/pre-update
elog "Making a backup of your databases to ${directory}"
if [ ! -d "${directory}" ]; then
mkdir -p "${directory}" || die "failed to create backup directory"
chown anope:anope "${directory}"/../ || die "failed to chown data directory"
fi
# don't die otherwise merge will fail if there are no existing databases
cp "${ROOT}"/var/lib/anope/*.db "${directory}"
fi
}
pkg_postinst() {
echo
ewarn "Anope won't run out of the box, you still have to configure it to match your IRCD's configuration."
ewarn "Edit /etc/anope/services.conf to configure Anope."
if use mysql; then
echo
ewarn "!!! ATTENTION !!!"
ewarn "Be sure to read Changes.mysql to update your MySQL"
ewarn "tables or anope will break after restart"
ewarn "!!! ATTENTION !!!"
echo
einfo "The mysql script for updating the tables is located in the"
einfo "/usr/share/doc/${PF} directory"
fi
}
|