138 lines
3.6 KiB
Bash
138 lines
3.6 KiB
Bash
# 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="https://github.com/downloads/hanzz/libtransport/${P}.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 root: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
|
|
}
|