File diff 000000000000 → 000000000000
net-im/spectrum/spectrum-1.4.8.ebuild
Show inline comments
 
new file 100644
 
# 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 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
 
}