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
|
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=2
inherit cmake-utils
DESCRIPTION="XMPP transport/gateway"
HOMEPAGE="http://spectrum.im"
SRC_URI="http://spectrum.im/attachments/download/43/spectrum-${PV}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="mysql sqlite symlinks tools staticport"
RDEPEND="dev-libs/libev
>=dev-libs/poco-1.3.3[mysql?,sqlite?]
dev-python/xmpppy
media-gfx/imagemagick[cxx]
>=net-im/pidgin-2.6.0
>=net-libs/gloox-1.0"
DEPEND="${RDEPEND}
dev-util/cmake
sys-devel/gettext"
PROTOCOL_LIST="aim facebook gg icq irc msn msn_pecan myspace qq simple sipe twitter xmpp yahoo"
pkg_setup() {
if ! ( use sqlite || use mysql ); then
ewarn "No database use flag set!"
ewarn "You need to enable the mysql or sqlite use flag!"
die
fi
}
src_install () {
cmake-utils_src_install
# Install transports with seperate config files (default).
# If USE="symlinks" is set, install one config file with symlinks to all transports.
# Declare (start) port
port=5347
# prepare config for mysql or just copy
cp "${FILESDIR}/spectrum.cfg" "${WORKDIR}/spectrum.cfg"
if use mysql ; then
sed -e 's,^\(type\)=sqlite$,\1=mysql,' \
-e 's,^#\(host=localhost\)$,\1,' \
-e 's,^#\(user=user\)$,\1,' \
-e 's,^#\(password=password\)$,\1,' \
-e 's,^\(database=.*\),#\1,' \
-e 's,^#\(prefix=.*\),\1,' \
-i "${WORKDIR}/spectrum.cfg" || die
fi
# install shared-config when using symlinks
if use symlinks; then
insinto /etc/spectrum
newins "${WORKDIR}"/spectrum.cfg spectrum-shared-conf || die
fi
# install protocol-specific configs or symlinks
insinto /etc/spectrum
for protocol in ${PROTOCOL_LIST}; do
if use symlinks; then
dosym spectrum-shared-conf "/etc/spectrum/${protocol}:${port}.cfg" || die
sed -e 's,PROTOCOL,'${protocol}:${port}',g' \
"${FILESDIR}"/spectrum.confd > "${WORKDIR}"/spectrum.confd
else
sed -e 's,\$filename:protocol,'${protocol}',g' \
-e 's,\$filename:port,'${port}',g' \
"${WORKDIR}"/spectrum.cfg > "${WORKDIR}/${protocol}.cfg" || die
sed -e 's,PROTOCOL,'${protocol}',g' \
"${FILESDIR}"/spectrum.confd > "${WORKDIR}"/spectrum.confd
doins "${WORKDIR}/${protocol}.cfg" || die
fi
# install prepared confd
newconfd "${WORKDIR}"/spectrum.confd spectrum.${protocol} || die
if ! use staticport; then
port=$[${port}+1]
fi
done
# Install init files
newinitd "${FILESDIR}"/spectrum.initd spectrum || die
for protocol in ${PROTOCOL_LIST}; do
dosym spectrum /etc/init.d/spectrum."${protocol}"
done
# Directories
dodir "/var/lib/spectrum" || die
dodir "/var/log/spectrum" || die
dodir "/var/run/spectrum" || die
# Directories for each transport
for protocol in ${PROTOCOL_LIST}; do
dodir "/var/lib/spectrum/$protocol/database" || die
dodir "/var/lib/spectrum/$protocol/userdir" || die
dodir "/var/lib/spectrum/$protocol/filetransfer_cache" || die
done
# Install mysql schema
if use mysql; then
insinto "/usr/share/spectrum/schemas"
doins schemas/* || die
fi
# Install misc tools
if use tools; then
insinto "/usr/share/spectrum/tools"
doins tools/* || die
fi
}
pkg_postinst() {
# Create jabber-user
enewgroup jabber
enewuser jabber -1 -1 -1 jabber
# Set correct rights
chown jabber:jabber -R "/etc/spectrum" || die
chown jabber:jabber -R "/var/lib/spectrum" || die
chown jabber:jabber -R "/var/log/spectrum" || die
chown jabber:jabber -R "/var/run/spectrum" || die
chmod 750 "/etc/spectrum" || die
chmod 750 "/var/lib/spectrum" || die
chmod 750 "/var/log/spectrum" || die
chmod 750 "/var/run/spectrum" || die
}
|